You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sh...@apache.org on 2016/11/07 04:29:48 UTC
[01/50] [abbrv] ignite git commit: Validate hash code presence in
BinaryObject. Fixes #928
Repository: ignite
Updated Branches:
refs/heads/ignite-2788 a8dae9d00 -> 0cd6723d2
Validate hash code presence in BinaryObject. Fixes #928
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/2489b8af
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/2489b8af
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/2489b8af
Branch: refs/heads/ignite-2788
Commit: 2489b8afb408fec7760760aedd98d44085f95748
Parents: ed47392
Author: Alexander Paschenko <al...@gmail.com>
Authored: Wed Sep 28 16:46:46 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Sep 28 16:50:52 2016 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryClassDescriptor.java | 16 ++++-
.../internal/binary/BinaryEnumObjectImpl.java | 5 ++
.../ignite/internal/binary/BinaryObjectEx.java | 8 +++
.../internal/binary/BinaryObjectImpl.java | 7 +++
.../binary/BinaryObjectOffheapImpl.java | 7 +++
.../ignite/internal/binary/BinaryUtils.java | 5 +-
.../internal/binary/BinaryWriterExImpl.java | 6 +-
.../binary/builder/BinaryObjectBuilderImpl.java | 11 +++-
.../processors/cache/GridCacheUtils.java | 5 ++
.../ignite/internal/util/IgniteUtils.java | 23 ++++++-
...ridCacheStoreManagerDeserializationTest.java | 1 +
.../cache/GridCacheUtilsSelfTest.java | 64 +++++++++++++++++++-
...calCacheStoreManagerDeserializationTest.java | 2 +-
.../GridCacheBinaryObjectsAbstractSelfTest.java | 31 ++++++++++
14 files changed, 182 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
index 083057d..4c824d4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
@@ -41,6 +41,7 @@ import org.apache.ignite.binary.BinarySerializer;
import org.apache.ignite.binary.Binarylizable;
import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
import org.apache.ignite.internal.util.GridUnsafe;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -114,6 +115,9 @@ public class BinaryClassDescriptor {
private final boolean excluded;
/** */
+ private final boolean overridesHashCode;
+
+ /** */
private final Class<?>[] intfs;
/**
@@ -164,6 +168,8 @@ public class BinaryClassDescriptor {
this.mapper = mapper;
this.registered = registered;
+ overridesHashCode = IgniteUtils.overridesEqualsAndHashCode(cls);
+
schemaReg = ctx.schemaRegistry(typeId);
excluded = MarshallerExclusions.isExcluded(cls);
@@ -845,7 +851,15 @@ public class BinaryClassDescriptor {
* @param obj Object.
*/
private void postWrite(BinaryWriterExImpl writer, Object obj) {
- writer.postWrite(userType, registered, obj instanceof CacheObjectImpl ? 0 : obj.hashCode());
+ if (obj instanceof CacheObjectImpl)
+ writer.postWrite(userType, registered, 0, false);
+ else if (obj instanceof BinaryObjectEx) {
+ boolean flagSet = ((BinaryObjectEx)obj).isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
+
+ writer.postWrite(userType, registered, obj.hashCode(), !flagSet);
+ }
+ else
+ writer.postWrite(userType, registered, obj.hashCode(), overridesHashCode);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index c9874ed..dcfcc9d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@ -139,6 +139,11 @@ public class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, Cac
}
/** {@inheritDoc} */
+ @Override public boolean isFlagSet(short flag) {
+ return false;
+ }
+
+ /** {@inheritDoc} */
@Override public <F> F field(String fieldName) throws BinaryObjectException {
return null;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
index e3566bc..4e137b7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
@@ -38,4 +38,12 @@ public interface BinaryObjectEx extends BinaryObject {
* @throws BinaryObjectException If failed.
*/
@Nullable public BinaryType rawType() throws BinaryObjectException;
+
+ /**
+ * Check if flag set.
+ *
+ * @param flag flag to check.
+ * @return {@code true} if flag is set, {@code false} otherwise.
+ */
+ public boolean isFlagSet(short flag);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
index 7b42c03..f37d7c2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
@@ -246,6 +246,13 @@ public final class BinaryObjectImpl extends BinaryObjectExImpl implements Extern
}
/** {@inheritDoc} */
+ @Override public boolean isFlagSet(short flag) {
+ short flags = BinaryPrimitives.readShort(arr, start + GridBinaryMarshaller.FLAGS_POS);
+
+ return BinaryUtils.isFlagSet(flags, flag);
+ }
+
+ /** {@inheritDoc} */
@Override public int typeId() {
int off = start + GridBinaryMarshaller.TYPE_ID_POS;
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
index 2225b7a..9cbbaa2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
@@ -145,6 +145,13 @@ public class BinaryObjectOffheapImpl extends BinaryObjectExImpl implements Exter
}
/** {@inheritDoc} */
+ @Override public boolean isFlagSet(short flag) {
+ short flags = BinaryPrimitives.readShort(ptr, start + GridBinaryMarshaller.FLAGS_POS);
+
+ return BinaryUtils.isFlagSet(flags, flag);
+ }
+
+ /** {@inheritDoc} */
@Nullable @Override public BinaryType type() throws BinaryObjectException {
return BinaryUtils.typeProxy(ctx, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index b5834a5..25d87ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -109,6 +109,9 @@ public class BinaryUtils {
/** Flag: compact footer, no field IDs. */
public static final short FLAG_COMPACT_FOOTER = 0x0020;
+ /** Flag: no hash code has been set. */
+ public static final short FLAG_EMPTY_HASH_CODE = 0x0040;
+
/** Offset which fits into 1 byte. */
public static final int OFFSET_1 = 1;
@@ -305,7 +308,7 @@ public class BinaryUtils {
* @param flag Flag.
* @return {@code True} if flag is set in flags.
*/
- private static boolean isFlagSet(short flags, short flag) {
+ static boolean isFlagSet(short flags, short flag) {
return (flags & flag) == flag;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
index 1a81819..22b4d1f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
@@ -245,8 +245,9 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
* @param userType User type flag.
* @param registered Whether type is registered.
* @param hashCode Hash code.
+ * @param isHashCodeSet Hash code presence flag.
*/
- public void postWrite(boolean userType, boolean registered, int hashCode) {
+ public void postWrite(boolean userType, boolean registered, int hashCode, boolean isHashCodeSet) {
short flags;
boolean useCompactFooter;
@@ -303,6 +304,9 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
}
}
+ if (!isHashCodeSet)
+ flags |= BinaryUtils.FLAG_EMPTY_HASH_CODE;
+
// Actual write.
int retPos = out.position();
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
index 086da5c..2c76192 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
@@ -86,6 +86,9 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
/** */
private int hashCode;
+ /** */
+ private boolean isHashCodeSet;
+
/**
* @param clsName Class name.
* @param ctx Binary context.
@@ -117,7 +120,7 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
*/
public BinaryObjectBuilderImpl(BinaryObjectImpl obj) {
this(new BinaryBuilderReader(obj), obj.start());
-
+ isHashCodeSet = !obj.isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
reader.registerObject(this);
}
@@ -329,7 +332,8 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
reader.position(start + BinaryUtils.length(reader, start));
}
- writer.postWrite(true, registeredType, hashCode);
+ //noinspection NumberEquality
+ writer.postWrite(true, registeredType, hashCode, isHashCodeSet);
// Update metadata if needed.
int schemaId = writer.schemaId();
@@ -408,9 +412,12 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
}
/** {@inheritDoc} */
+ @SuppressWarnings("UnnecessaryBoxing")
@Override public BinaryObjectBuilderImpl hashCode(int hashCode) {
this.hashCode = hashCode;
+ isHashCodeSet = true;
+
return this;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/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 1a4ffd5..0f4e89b 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
@@ -1170,6 +1170,7 @@ public class GridCacheUtils {
/**
* Validates that cache key object has overridden equals and hashCode methods.
+ * Will also check that a BinaryObject has a hash code set.
*
* @param key Key.
* @throws IllegalArgumentException If equals or hashCode is not implemented.
@@ -1181,6 +1182,10 @@ public class GridCacheUtils {
if (!U.overridesEqualsAndHashCode(key))
throw new IllegalArgumentException("Cache key must override hashCode() and equals() methods: " +
key.getClass().getName());
+
+ if (U.isHashCodeEmpty(key))
+ throw new IllegalArgumentException("Cache key created with BinaryBuilder is missing hash code - " +
+ "please set it explicitly during building by using BinaryBuilder.hashCode(int)");
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/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 93acc75..569a25f 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
@@ -149,6 +149,7 @@ import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteInterruptedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.IgniteSystemProperties;
+import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryRawReader;
import org.apache.ignite.binary.BinaryRawWriter;
import org.apache.ignite.cluster.ClusterGroupEmptyException;
@@ -170,6 +171,8 @@ import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.IgniteInterruptedCheckedException;
import org.apache.ignite.internal.IgniteNodeAttributes;
+import org.apache.ignite.internal.binary.BinaryObjectEx;
+import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException;
import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
import org.apache.ignite.internal.compute.ComputeTaskCancelledCheckedException;
@@ -8514,9 +8517,15 @@ public abstract class IgniteUtils {
* @return {@code True} if given object has overridden equals and hashCode method.
*/
public static boolean overridesEqualsAndHashCode(Object obj) {
- try {
- Class<?> cls = obj.getClass();
+ return overridesEqualsAndHashCode(obj.getClass());
+ }
+ /**
+ * @param cls Class.
+ * @return {@code True} if given class has overridden equals and hashCode method.
+ */
+ public static boolean overridesEqualsAndHashCode(Class<?> cls) {
+ try {
return !Object.class.equals(cls.getMethod("equals", Object.class).getDeclaringClass()) &&
!Object.class.equals(cls.getMethod("hashCode").getDeclaringClass());
}
@@ -8526,6 +8535,16 @@ public abstract class IgniteUtils {
}
/**
+ * @param obj Object.
+ * @return {@code True} if given object is a {@link BinaryObjectEx} and
+ * has {@link BinaryUtils#FLAG_EMPTY_HASH_CODE} set
+ */
+ public static boolean isHashCodeEmpty(Object obj) {
+ return obj != null && obj instanceof BinaryObjectEx &&
+ ((BinaryObjectEx)obj).isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
+ }
+
+ /**
* Checks if error is MAC invalid argument error which ususally requires special handling.
*
* @param e Exception.
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
index 4a069a9..39ce33d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
@@ -279,6 +279,7 @@ public class GridCacheStoreManagerDeserializationTest extends GridCommonAbstract
for (int i = 0; i < 1; i++) {
builder.setField("id", i);
+ builder.hashCode(i);
entity = builder.build();
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
index d5888e7..5f2c004 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
@@ -18,7 +18,21 @@
package org.apache.ignite.internal.processors.cache;
import java.util.concurrent.Callable;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.configuration.BinaryConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.binary.BinaryCachingMetadataHandler;
+import org.apache.ignite.internal.binary.BinaryContext;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
+import org.apache.ignite.internal.binary.BinaryObjectImpl;
+import org.apache.ignite.internal.binary.GridBinaryMarshaller;
+import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.logger.NullLogger;
+import org.apache.ignite.marshaller.MarshallerContextTestImpl;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -104,7 +118,8 @@ public class GridCacheUtilsSelfTest extends GridCommonAbstractTest {
/**
*/
- public void testCacheKeyValidation() {
+ @SuppressWarnings("ResultOfMethodCallIgnored")
+ public void testCacheKeyValidation() throws IgniteCheckedException {
CU.validateCacheKey("key");
CU.validateCacheKey(1);
@@ -124,6 +139,53 @@ public class GridCacheUtilsSelfTest extends GridCommonAbstractTest {
assertThrowsForInvalidKey(new NoHashCode());
assertThrowsForInvalidKey(new WrongEquals());
+
+ BinaryObjectBuilderImpl binBuilder = new BinaryObjectBuilderImpl(binaryContext(),
+ EqualsAndHashCode.class.getName());
+
+ assertThrowsForInvalidKey(binBuilder.build());
+
+ binBuilder.hashCode(0xFE12);
+
+ BinaryObject binObj = binBuilder.build();
+
+ CU.validateCacheKey(binObj);
+
+ BinaryObjectBuilderImpl binBuilder2 = new BinaryObjectBuilderImpl((BinaryObjectImpl) binObj);
+
+ CU.validateCacheKey(binBuilder2.build());
+ }
+
+ /**
+ * @return Binary marshaller.
+ * @throws IgniteCheckedException if failed.
+ */
+ private BinaryMarshaller binaryMarshaller() throws IgniteCheckedException {
+ IgniteConfiguration iCfg = new IgniteConfiguration();
+
+ BinaryConfiguration bCfg = new BinaryConfiguration();
+
+ iCfg.setBinaryConfiguration(bCfg);
+
+ BinaryContext ctx = new BinaryContext(BinaryCachingMetadataHandler.create(), iCfg, new NullLogger());
+
+ BinaryMarshaller marsh = new BinaryMarshaller();
+
+ marsh.setContext(new MarshallerContextTestImpl(null));
+
+ IgniteUtils.invoke(BinaryMarshaller.class, marsh, "setBinaryContext", ctx, iCfg);
+
+ return marsh;
+ }
+
+ /**
+ * @return Binary context.
+ * @throws IgniteCheckedException if failed.
+ */
+ private BinaryContext binaryContext() throws IgniteCheckedException {
+ GridBinaryMarshaller impl = U.field(binaryMarshaller(), "impl");
+
+ return impl.context();
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
index 827b3cf..b86fe53 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
@@ -86,7 +86,7 @@ public class GridLocalCacheStoreManagerDeserializationTest extends GridCacheStor
final BinaryObjectBuilder builder = grid.binary().builder("custom_type");
- final BinaryObject entity = builder.setField("id", 0).build();
+ final BinaryObject entity = builder.setField("id", 0).hashCode(0).build();
cache.put(entity, entity);
http://git-wip-us.apache.org/repos/asf/ignite/blob/2489b8af/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
index 3a510c3..7936ea4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
@@ -28,6 +28,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import java.util.concurrent.Callable;
import javax.cache.Cache;
import javax.cache.processor.EntryProcessor;
import javax.cache.processor.EntryProcessorException;
@@ -887,6 +888,36 @@ public abstract class GridCacheBinaryObjectsAbstractSelfTest extends GridCommonA
}
/**
+ * @throws Exception If failed.
+ */
+ @SuppressWarnings({ "ThrowableResultOfMethodCallIgnored", "unchecked" })
+ public void testPutWithoutHashCode() throws Exception {
+ final IgniteCache c = jcache(0);
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ /** {@inheritDoc} */
+ @Override public Object call() throws Exception {
+ c.put(new TestObject(5), 5);
+ return null;
+ }
+ }, IllegalArgumentException.class, "Cache key must override hashCode() and equals() methods: ");
+
+ BinaryObjectBuilder bldr = grid(0).binary().builder(TestObject.class.getName());
+ bldr.setField("val", 5);
+
+ final BinaryObject binKey = bldr.build();
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ /** {@inheritDoc} */
+ @Override public Object call() throws Exception {
+ c.put(binKey, 5);
+ return null;
+ }
+ }, IllegalArgumentException.class, "Cache key created with BinaryBuilder is missing hash code - " +
+ "please set it explicitly during building by using BinaryBuilder.hashCode(int)");
+ }
+
+ /**
* @throws Exception if failed.
*/
public void testKeepBinaryTxOverwrite() throws Exception {
[29/50] [abbrv] ignite git commit: Merge branch community/ignite-1.7.3
Posted by sh...@apache.org.
Merge branch community/ignite-1.7.3
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/21377401
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/21377401
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/21377401
Branch: refs/heads/ignite-2788
Commit: 21377401b6d8715bf27252ee063b74feef1a7ccc
Parents: 443b4d4
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 13:26:22 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 13:26:22 2016 +0300
----------------------------------------------------------------------
.../Apache.Ignite.Core/IgniteConfigurationSection.xsd | 12 ------------
1 file changed, 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/21377401/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
index f17c896..40e3055 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
@@ -1107,18 +1107,6 @@
</xs:attribute>
</xs:complexType>
</xs:element>
- <xs:element name="logger" minOccurs="0">
- <xs:annotation>
- <xs:documentation>The logger. If no logger is set, logging is delegated to Java, which uses the logger defined in Spring XML (if present) or logs to console otherwise.</xs:documentation>
- </xs:annotation>
- <xs:complexType>
- <xs:attribute name="type" type="xs:string" use="required">
- <xs:annotation>
- <xs:documentation>Assembly-qualified type name.</xs:documentation>
- </xs:annotation>
- </xs:attribute>
- </xs:complexType>
- </xs:element>
</xs:all>
<xs:attribute name="gridName" type="xs:string">
<xs:annotation>
[45/50] [abbrv] ignite git commit: ignite-4088 Added methods to
create/destroy multiple caches. This closes #1174.
Posted by sh...@apache.org.
ignite-4088 Added methods to create/destroy multiple caches. This closes #1174.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f445e7bc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f445e7bc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f445e7bc
Branch: refs/heads/ignite-2788
Commit: f445e7bcb7d9e1a397ec593ebff44d8f77cb36f5
Parents: 3d9f892
Author: Konstantin Dudkov <kd...@ya.ru>
Authored: Fri Oct 28 16:27:34 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Oct 28 16:27:34 2016 +0300
----------------------------------------------------------------------
.../src/main/java/org/apache/ignite/Ignite.java | 77 ++++-
.../apache/ignite/internal/IgniteKernal.java | 81 ++++++
.../processors/cache/GridCacheProcessor.java | 291 ++++++++++++++-----
.../cache/IgniteDynamicCacheStartSelfTest.java | 217 ++++++++++++--
.../processors/igfs/IgfsIgniteMock.java | 19 ++
.../ignite/testframework/junits/IgniteMock.java | 15 +
.../junits/multijvm/IgniteProcessProxy.java | 15 +
.../org/apache/ignite/IgniteSpringBean.java | 21 ++
8 files changed, 616 insertions(+), 120 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index bd21468..0de08d5 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -20,6 +20,7 @@ package org.apache.ignite;
import java.util.Collection;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
+import javax.cache.CacheException;
import org.apache.ignite.cache.CacheMode;
import org.apache.ignite.cache.affinity.Affinity;
import org.apache.ignite.cluster.ClusterGroup;
@@ -220,8 +221,24 @@ public interface Ignite extends AutoCloseable {
*
* @param cacheCfg Cache configuration to use.
* @return Instance of started cache.
+ * @throws CacheException If a cache with the same name already exists or other error occurs.
*/
- public <K, V> IgniteCache<K, V> createCache(CacheConfiguration<K, V> cacheCfg);
+ public <K, V> IgniteCache<K, V> createCache(CacheConfiguration<K, V> cacheCfg) throws CacheException;
+
+ /**
+ * Dynamically starts new caches with the given cache configurations.
+ * <p>
+ * If local node is an affinity node, this method will return the instance of started caches.
+ * Otherwise, it will create a client caches on local node.
+ * <p>
+ * If for one of configurations a cache with the same name already exists in the grid, an exception will be thrown regardless
+ * whether the given configuration matches the configuration of the existing cache or not.
+ *
+ * @param cacheCfgs Collection of cache configuration to use.
+ * @return Collection of instances of started caches.
+ * @throws CacheException If one of created caches exists or other error occurs.
+ */
+ public Collection<IgniteCache> createCaches(Collection<CacheConfiguration> cacheCfgs) throws CacheException;
/**
* Dynamically starts new cache using template configuration.
@@ -233,8 +250,9 @@ public interface Ignite extends AutoCloseable {
*
* @param cacheName Cache name.
* @return Instance of started cache.
+ * @throws CacheException If a cache with the same name already exists or other error occurs.
*/
- public <K, V> IgniteCache<K, V> createCache(String cacheName);
+ public <K, V> IgniteCache<K, V> createCache(String cacheName) throws CacheException;
/**
* Gets existing cache with the given name or creates new one with the given configuration.
@@ -245,23 +263,39 @@ public interface Ignite extends AutoCloseable {
*
* @param cacheCfg Cache configuration to use.
* @return Existing or newly created cache.
+ * @throws CacheException If error occurs.
*/
- public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg);
+ public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg) throws CacheException;
/**
* Gets existing cache with the given name or creates new one using template configuration.
*
* @param cacheName Cache name.
* @return Existing or newly created cache.
+ * @throws CacheException If error occurs.
*/
- public <K, V> IgniteCache<K, V> getOrCreateCache(String cacheName);
+ public <K, V> IgniteCache<K, V> getOrCreateCache(String cacheName) throws CacheException;
+
+ /**
+ * Gets existing caches with the given name or created one with the given configuration.
+ * <p>
+ * If a cache with the same name already exist, this method will not check that the given
+ * configuration matches the configuration of existing cache and will return an instance
+ * of the existing cache.
+ *
+ * @param cacheCfgs Collection of cache configuration to use.
+ * @return Collection of existing or newly created caches.
+ * @throws CacheException If error occurs.
+ */
+ public Collection<IgniteCache> getOrCreateCaches(Collection<CacheConfiguration> cacheCfgs) throws CacheException;
/**
* Adds cache configuration template.
*
* @param cacheCfg Cache configuration template.
+ * @throws CacheException If error occurs.
*/
- public <K, V> void addCacheConfiguration(CacheConfiguration<K, V> cacheCfg);
+ public <K, V> void addCacheConfiguration(CacheConfiguration<K, V> cacheCfg) throws CacheException;
/**
* Dynamically starts new cache with the given cache configuration.
@@ -275,10 +309,11 @@ public interface Ignite extends AutoCloseable {
* @param cacheCfg Cache configuration to use.
* @param nearCfg Near cache configuration to use on local node in case it is not an
* affinity node.
+ * @throws CacheException If a cache with the same name already exists or other error occurs.
* @return Instance of started cache.
*/
public <K, V> IgniteCache<K, V> createCache(CacheConfiguration<K, V> cacheCfg,
- NearCacheConfiguration<K, V> nearCfg);
+ NearCacheConfiguration<K, V> nearCfg) throws CacheException;
/**
* Gets existing cache with the given cache configuration or creates one if it does not exist.
@@ -293,9 +328,10 @@ public interface Ignite extends AutoCloseable {
* @param cacheCfg Cache configuration.
* @param nearCfg Near cache configuration for client.
* @return {@code IgniteCache} instance.
+ * @throws CacheException If error occurs.
*/
public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg,
- NearCacheConfiguration<K, V> nearCfg);
+ NearCacheConfiguration<K, V> nearCfg) throws CacheException;
/**
* Starts a near cache on local node if cache was previously started with one of the
@@ -305,8 +341,10 @@ public interface Ignite extends AutoCloseable {
* @param cacheName Cache name.
* @param nearCfg Near cache configuration.
* @return Cache instance.
+ * @throws CacheException If error occurs.
*/
- public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg);
+ public <K, V> IgniteCache<K, V> createNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg)
+ throws CacheException;
/**
* Gets existing near cache with the given name or creates a new one.
@@ -314,15 +352,26 @@ public interface Ignite extends AutoCloseable {
* @param cacheName Cache name.
* @param nearCfg Near configuration.
* @return {@code IgniteCache} instance.
+ * @throws CacheException If error occurs.
*/
- public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg);
+ public <K, V> IgniteCache<K, V> getOrCreateNearCache(@Nullable String cacheName, NearCacheConfiguration<K, V> nearCfg)
+ throws CacheException;
/**
* Stops dynamically started cache.
*
* @param cacheName Cache name to stop.
+ * @throws CacheException If error occurs.
+ */
+ public void destroyCache(String cacheName) throws CacheException;
+
+ /**
+ * Stops dynamically started caches.
+ *
+ * @param cacheNames Collection of cache names to stop.
+ * @throws CacheException If error occurs.
*/
- public void destroyCache(String cacheName);
+ public void destroyCaches(Collection<String> cacheNames) throws CacheException;
/**
* Gets an instance of {@link IgniteCache} API. {@code IgniteCache} is a fully-compatible
@@ -330,8 +379,9 @@ public interface Ignite extends AutoCloseable {
*
* @param name Cache name.
* @return Instance of the cache for the specified name.
+ * @throws CacheException If error occurs.
*/
- public <K, V> IgniteCache<K, V> cache(@Nullable String name);
+ public <K, V> IgniteCache<K, V> cache(@Nullable String name) throws CacheException;
/**
* Gets the collection of names of currently available caches.
@@ -357,8 +407,9 @@ public interface Ignite extends AutoCloseable {
*
* @param cacheName Cache name ({@code null} for default cache).
* @return Data streamer.
+ * @throws IllegalStateException If node is stopping.
*/
- public <K, V> IgniteDataStreamer<K, V> dataStreamer(@Nullable String cacheName);
+ public <K, V> IgniteDataStreamer<K, V> dataStreamer(@Nullable String cacheName) throws IllegalStateException;
/**
* Gets an instance of IGFS (Ignite In-Memory File System). If one is not
@@ -372,7 +423,7 @@ public interface Ignite extends AutoCloseable {
* @return IGFS instance.
* @throws IllegalArgumentException If IGFS with such name is not configured.
*/
- public IgniteFileSystem fileSystem(String name);
+ public IgniteFileSystem fileSystem(String name) throws IllegalArgumentException;
/**
* Gets all instances of IGFS (Ignite In-Memory File System).
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/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 c521718..ff64ed5 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
@@ -2522,6 +2522,33 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
}
}
+
+ /** {@inheritDoc} */
+ @Override public Collection<IgniteCache> createCaches(Collection<CacheConfiguration> cacheCfgs) {
+ A.notNull(cacheCfgs, "cacheCfgs");
+
+ guard();
+
+ try {
+ ctx.cache().dynamicStartCaches(cacheCfgs,
+ true,
+ true).get();
+
+ List<IgniteCache> createdCaches = new ArrayList<>(cacheCfgs.size());
+
+ for (CacheConfiguration cacheCfg : cacheCfgs)
+ createdCaches.add(ctx.cache().publicJCache(cacheCfg.getName()));
+
+ return createdCaches;
+ }
+ catch (IgniteCheckedException e) {
+ throw CU.convertToCacheException(e);
+ }
+ finally {
+ unguard();
+ }
+ }
+
/** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> createCache(String cacheName) {
guard();
@@ -2566,6 +2593,32 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> getOrCreateCaches(Collection<CacheConfiguration> cacheCfgs) {
+ A.notNull(cacheCfgs, "cacheCfgs");
+
+ guard();
+
+ try {
+ ctx.cache().dynamicStartCaches(cacheCfgs,
+ false,
+ true).get();
+
+ List<IgniteCache> createdCaches = new ArrayList<>(cacheCfgs.size());
+
+ for (CacheConfiguration cacheCfg : cacheCfgs)
+ createdCaches.add(ctx.cache().publicJCache(cacheCfg.getName()));
+
+ return createdCaches;
+ }
+ catch (IgniteCheckedException e) {
+ throw CU.convertToCacheException(e);
+ }
+ finally {
+ unguard();
+ }
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> createCache(
CacheConfiguration<K, V> cacheCfg,
NearCacheConfiguration<K, V> nearCfg
@@ -2726,6 +2779,18 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
}
}
+ /** {@inheritDoc} */
+ @Override public void destroyCaches(Collection<String> cacheNames) {
+ IgniteInternalFuture stopFut = destroyCachesAsync(cacheNames, true);
+
+ try {
+ stopFut.get();
+ }
+ catch (IgniteCheckedException e) {
+ throw CU.convertToCacheException(e);
+ }
+ }
+
/**
* @param cacheName Cache name.
* @param checkThreadTx If {@code true} checks that current thread does not have active transactions.
@@ -2742,6 +2807,22 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
}
}
+ /**
+ * @param cacheNames Collection of cache names.
+ * @param checkThreadTx If {@code true} checks that current thread does not have active transactions.
+ * @return Ignite future.
+ */
+ public IgniteInternalFuture<?> destroyCachesAsync(Collection<String> cacheNames, boolean checkThreadTx) {
+ guard();
+
+ try {
+ return ctx.cache().dynamicDestroyCaches(cacheNames, checkThreadTx);
+ }
+ finally {
+ unguard();
+ }
+ }
+
/** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> getOrCreateCache(String cacheName) {
guard();
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/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 0a0b40a..c494646 100755
--- 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
@@ -2284,99 +2284,92 @@ public class GridCacheProcessor extends GridProcessorAdapter {
if (checkThreadTx)
checkEmptyTransactions();
- DynamicCacheDescriptor desc = registeredCaches.get(maskNull(cacheName));
-
- DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(cacheName, ctx.localNodeId());
-
- req.failIfExists(failIfExists);
-
- if (ccfg != null) {
- try {
- cloneCheckSerializable(ccfg);
- }
- catch (IgniteCheckedException e) {
- return new GridFinishedFuture<>(e);
- }
-
- if (desc != null) {
- if (failIfExists) {
- return new GridFinishedFuture<>(new CacheExistsException("Failed to start cache " +
- "(a cache with the same name is already started): " + cacheName));
- }
- else {
- CacheConfiguration descCfg = desc.cacheConfiguration();
-
- // Check if we were asked to start a near cache.
- if (nearCfg != null) {
- if (CU.affinityNode(ctx.discovery().localNode(), 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<>();
- else
- return new GridFinishedFuture<>(new IgniteCheckedException("Failed to start near " +
- "cache (local node is an affinity node for cache): " + cacheName));
- }
- else
- // If local node has near cache, return success.
- req.clientStartOnly(true);
- }
- else
- req.clientStartOnly(true);
+ try {
+ DynamicCacheChangeRequest req = prepareCacheChangeRequest(
+ ccfg,
+ cacheName,
+ nearCfg,
+ cacheType,
+ failIfExists,
+ failIfNotStarted);
- req.deploymentId(desc.deploymentId());
+ if (req != null)
+ return F.first(initiateCacheChanges(F.asList(req), failIfExists));
+ else
+ return new GridFinishedFuture<>();
+ }
+ catch (Exception e) {
+ return new GridFinishedFuture<>(e);
+ }
+ }
- req.startCacheConfiguration(descCfg);
- }
- }
- else {
- req.deploymentId(IgniteUuid.randomUuid());
+ /**
+ * Dynamically starts multiple caches.
+ *
+ * @param ccfgList Collection of cache configuration.
+ * @param failIfExists Fail if exists flag.
+ * @param checkThreadTx If {@code true} checks that current thread does not have active transactions.
+ * @return Future that will be completed when all caches are deployed.
+ */
+ public IgniteInternalFuture<?> dynamicStartCaches(
+ Collection<CacheConfiguration> ccfgList,
+ boolean failIfExists,
+ boolean checkThreadTx
+ ) {
+ return dynamicStartCaches(ccfgList, CacheType.USER, failIfExists, checkThreadTx);
+ }
- try {
- CacheConfiguration cfg = new CacheConfiguration(ccfg);
+ /**
+ * Dynamically starts multiple caches.
+ *
+ * @param ccfgList Collection of cache configuration.
+ * @param cacheType Cache type.
+ * @param failIfExists Fail if exists flag.
+ * @param checkThreadTx If {@code true} checks that current thread does not have active transactions.
+ * @return Future that will be completed when all caches are deployed.
+ */
+ private IgniteInternalFuture<?> dynamicStartCaches(
+ Collection<CacheConfiguration> ccfgList,
+ CacheType cacheType,
+ boolean failIfExists,
+ boolean checkThreadTx
+ ) {
+ if (checkThreadTx)
+ checkEmptyTransactions();
- CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
+ List<DynamicCacheChangeRequest> reqList = new ArrayList<>(ccfgList.size());
- initialize(false, cfg, cacheObjCtx);
+ try {
+ for (CacheConfiguration ccfg : ccfgList) {
+ DynamicCacheChangeRequest req = prepareCacheChangeRequest(
+ ccfg,
+ ccfg.getName(),
+ null,
+ cacheType,
+ failIfExists,
+ true
+ );
- req.startCacheConfiguration(cfg);
- }
- catch (IgniteCheckedException e) {
- return new GridFinishedFuture(e);
- }
+ if (req != null)
+ reqList.add(req);
}
}
- else {
- req.clientStartOnly(true);
-
- if (desc != null)
- ccfg = desc.cacheConfiguration();
-
- if (ccfg == null) {
- if (failIfNotStarted)
- return new GridFinishedFuture<>(new CacheExistsException("Failed to start client cache " +
- "(a cache with the given name is not started): " + cacheName));
- else
- return new GridFinishedFuture<>();
- }
-
- req.deploymentId(desc.deploymentId());
- req.startCacheConfiguration(ccfg);
+ catch (Exception e) {
+ return new GridFinishedFuture<>(e);
}
- // Fail cache with swap enabled creation on grid without swap space SPI.
- if (ccfg.isSwapEnabled())
- for (ClusterNode n : ctx.discovery().allNodes())
- if (!GridCacheUtils.clientNode(n) && !GridCacheUtils.isSwapEnabled(n))
- return new GridFinishedFuture<>(new IgniteCheckedException("Failed to start cache " +
- cacheName + " with swap enabled: Remote Node with ID " + n.id().toString().toUpperCase() +
- " has not swap SPI configured"));
+ if (!reqList.isEmpty()) {
+ GridCompoundFuture<?, ?> compoundFut = new GridCompoundFuture<>();
- if (nearCfg != null)
- req.nearCacheConfiguration(nearCfg);
+ for (DynamicCacheStartFuture fut : initiateCacheChanges(reqList, failIfExists))
+ compoundFut.add((IgniteInternalFuture)fut);
- req.cacheType(cacheType);
+ compoundFut.markInitialized();
- return F.first(initiateCacheChanges(F.asList(req), failIfExists));
+ return compoundFut;
+ }
+ else
+ return new GridFinishedFuture<>();
}
/**
@@ -2396,6 +2389,35 @@ public class GridCacheProcessor extends GridProcessorAdapter {
}
/**
+ * @param cacheNames Collection of cache names to destroy.
+ * @param checkThreadTx If {@code true} checks that current thread does not have active transactions.
+ * @return Future that will be completed when cache is destroyed.
+ */
+ public IgniteInternalFuture<?> dynamicDestroyCaches(Collection<String> cacheNames, boolean checkThreadTx) {
+ if (checkThreadTx)
+ checkEmptyTransactions();
+
+ List<DynamicCacheChangeRequest> reqs = new ArrayList<>(cacheNames.size());
+
+ for (String cacheName : cacheNames) {
+ DynamicCacheChangeRequest t = new DynamicCacheChangeRequest(cacheName, ctx.localNodeId());
+
+ t.stop(true);
+
+ reqs.add(t);
+ }
+
+ GridCompoundFuture<?, ?> compoundFut = new GridCompoundFuture<>();
+
+ for (DynamicCacheStartFuture fut : initiateCacheChanges(reqs, false))
+ compoundFut.add((IgniteInternalFuture)fut);
+
+ compoundFut.markInitialized();
+
+ return compoundFut;
+ }
+
+ /**
* @param cacheName Cache name to close.
* @return Future that will be completed when cache is closed.
*/
@@ -2416,6 +2438,7 @@ public class GridCacheProcessor extends GridProcessorAdapter {
/**
* @param reqs Requests.
+ * @param failIfExists Fail if exists flag.
* @return Collection of futures.
*/
@SuppressWarnings("TypeMayBeWeakened")
@@ -3608,6 +3631,114 @@ public class GridCacheProcessor extends GridProcessorAdapter {
}
/**
+ * Prepares DynamicCacheChangeRequest for cache creation.
+ *
+ * @param ccfg Cache configuration
+ * @param cacheName Cache name
+ * @param nearCfg Near cache configuration
+ * @param cacheType Cache type
+ * @param failIfExists Fail if exists flag.
+ * @param failIfNotStarted If {@code true} fails if cache is not started.
+ * @return Request or {@code null} if cache already exists.
+ * @throws IgniteCheckedException if some of pre-checks failed
+ * @throws CacheExistsException if cache exists and failIfExists flag is {@code true}
+ */
+ private DynamicCacheChangeRequest prepareCacheChangeRequest(
+ @Nullable CacheConfiguration ccfg,
+ String cacheName,
+ @Nullable NearCacheConfiguration nearCfg,
+ CacheType cacheType,
+ boolean failIfExists,
+ boolean failIfNotStarted
+ ) throws IgniteCheckedException {
+ DynamicCacheDescriptor desc = registeredCaches.get(maskNull(cacheName));
+
+ DynamicCacheChangeRequest req = new DynamicCacheChangeRequest(cacheName, ctx.localNodeId());
+
+ req.failIfExists(failIfExists);
+
+ if (ccfg != null) {
+ cloneCheckSerializable(ccfg);
+
+ if (desc != null) {
+ if (failIfExists) {
+ throw new CacheExistsException("Failed to start cache " +
+ "(a cache with the same name is already started): " + cacheName);
+ }
+ else {
+ CacheConfiguration descCfg = desc.cacheConfiguration();
+
+ // Check if we were asked to start a near cache.
+ if (nearCfg != null) {
+ if (CU.affinityNode(ctx.discovery().localNode(), descCfg.getNodeFilter())) {
+ // If we are on a data node and near cache was enabled, return success, else - fail.
+ if (descCfg.getNearConfiguration() != null)
+ return null;
+ else
+ throw new IgniteCheckedException("Failed to start near " +
+ "cache (local node is an affinity node for cache): " + cacheName);
+ }
+ else
+ // If local node has near cache, return success.
+ req.clientStartOnly(true);
+ }
+ else
+ req.clientStartOnly(true);
+
+ req.deploymentId(desc.deploymentId());
+
+ req.startCacheConfiguration(descCfg);
+ }
+ }
+ else {
+ req.deploymentId(IgniteUuid.randomUuid());
+
+ CacheConfiguration cfg = new CacheConfiguration(ccfg);
+
+ CacheObjectContext cacheObjCtx = ctx.cacheObjects().contextForCache(cfg);
+
+ initialize(false, cfg, cacheObjCtx);
+
+ req.startCacheConfiguration(cfg);
+ }
+ }
+ else {
+ req.clientStartOnly(true);
+
+ if (desc != null)
+ ccfg = desc.cacheConfiguration();
+
+ if (ccfg == null) {
+ if (failIfNotStarted) {
+ throw new CacheExistsException("Failed to start client cache " +
+ "(a cache with the given name is not started): " + cacheName);
+ }
+ else
+ return null;
+ }
+
+ req.deploymentId(desc.deploymentId());
+ req.startCacheConfiguration(ccfg);
+ }
+
+ // Fail cache with swap enabled creation on grid without swap space SPI.
+ if (ccfg.isSwapEnabled())
+ for (ClusterNode n : ctx.discovery().allNodes())
+ if (!GridCacheUtils.clientNode(n) && !GridCacheUtils.isSwapEnabled(n)) {
+ throw new IgniteCheckedException("Failed to start cache " +
+ cacheName + " with swap enabled: Remote Node with ID " + n.id().toString().toUpperCase() +
+ " has not swap SPI configured");
+ }
+
+ if (nearCfg != null)
+ req.nearCacheConfiguration(nearCfg);
+
+ req.cacheType(cacheType);
+
+ return req;
+ }
+
+ /**
* @param obj Object to clone.
* @return Object copy.
* @throws IgniteCheckedException If failed.
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
index c9cd750..48e06ee 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteDynamicCacheStartSelfTest.java
@@ -17,7 +17,9 @@
package org.apache.ignite.internal.processors.cache;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import java.util.concurrent.Callable;
import java.util.concurrent.ConcurrentLinkedDeque;
import java.util.concurrent.CountDownLatch;
@@ -181,7 +183,8 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
info("Succeeded: " + System.identityHashCode(fut));
succeeded++;
- } catch (IgniteCheckedException e) {
+ }
+ catch (IgniteCheckedException e) {
info(e.getMessage());
failed++;
@@ -246,7 +249,8 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
info("Succeeded: " + System.identityHashCode(fut));
succeeded++;
- } catch (IgniteCheckedException e) {
+ }
+ catch (IgniteCheckedException e) {
info(e.getMessage());
failed++;
@@ -289,6 +293,20 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
}
/**
+ * @throws Exception If failed.
+ */
+ public void testStartStopCachesSimpleTransactional() throws Exception {
+ checkStartStopCachesSimple(CacheAtomicityMode.TRANSACTIONAL);
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testStartStopCachesSimpleAtomic() throws Exception {
+ checkStartStopCachesSimple(CacheAtomicityMode.ATOMIC);
+ }
+
+ /**
* @param mode Cache atomicity mode.
* @throws Exception If failed.
*/
@@ -325,10 +343,10 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
for (int g = 0; g < nodeCount(); g++)
caches[g] = grid(g).cache(DYNAMIC_CACHE_NAME);
- kernal.context().cache().dynamicDestroyCache(DYNAMIC_CACHE_NAME, true).get();
+ kernal.destroyCache(DYNAMIC_CACHE_NAME);
for (int g = 0; g < nodeCount(); g++) {
- final IgniteKernal kernal0 = (IgniteKernal) grid(g);
+ final IgniteKernal kernal0 = (IgniteKernal)grid(g);
final int idx = g;
@@ -346,6 +364,87 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
}
/**
+ * @param mode Cache atomicity mode.
+ * @throws Exception If failed.
+ */
+ private void checkStartStopCachesSimple(CacheAtomicityMode mode) throws Exception {
+ final IgniteEx kernal = grid(0);
+ final int cacheCnt = 3;
+
+ List<CacheConfiguration> ccfgList = new ArrayList<>();
+
+ for (int i = 0; i < cacheCnt; i++) {
+ CacheConfiguration ccfg = new CacheConfiguration();
+ ccfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+ ccfg.setAtomicityMode(mode);
+ ccfg.setName(DYNAMIC_CACHE_NAME + Integer.toString(i));
+
+ ccfgList.add(ccfg);
+ }
+
+ kernal.createCaches(ccfgList);
+
+ for (int g = 0; g < nodeCount(); g++) {
+ IgniteEx kernal0 = grid(g);
+
+ for (IgniteInternalFuture f : kernal0.context().cache().context().exchange().exchangeFutures())
+ f.get();
+
+ info("Getting cache for node: " + g);
+
+ for (int i = 0; i < cacheCnt; i++)
+ assertNotNull(grid(g).cache(DYNAMIC_CACHE_NAME + Integer.toString(i)));
+ }
+
+ for (int i = 0; i < cacheCnt; i++)
+ grid(0).cache(DYNAMIC_CACHE_NAME + Integer.toString(i)).put(Integer.toString(i), Integer.toString(i));
+
+ for (int g = 0; g < nodeCount(); g++) {
+ for (int i = 0; i < cacheCnt; i++) {
+ assertEquals(
+ Integer.toString(i),
+ grid(g).cache(DYNAMIC_CACHE_NAME + Integer.toString(i)).get(Integer.toString(i))
+ );
+ }
+ }
+
+ // Grab caches before stop.
+ final IgniteCache[] caches = new IgniteCache[nodeCount() * cacheCnt];
+
+ for (int g = 0; g < nodeCount(); g++) {
+ for (int i = 0; i < cacheCnt; i++)
+ caches[g * nodeCount() + i] = grid(g).cache(DYNAMIC_CACHE_NAME + Integer.toString(i));
+ }
+
+ List<String> namesToDestroy = new ArrayList<>();
+
+ for (int i = 0; i < cacheCnt; i++)
+ namesToDestroy.add(DYNAMIC_CACHE_NAME + Integer.toString(i));
+
+ kernal.destroyCaches(namesToDestroy);
+
+ for (int g = 0; g < nodeCount(); g++) {
+ final IgniteKernal kernal0 = (IgniteKernal)grid(g);
+
+ for (int i = 0; i < cacheCnt; i++) {
+ final int idx = g * nodeCount() + i;
+ final int expVal = i;
+
+ for (IgniteInternalFuture f : kernal0.context().cache().context().exchange().exchangeFutures())
+ f.get();
+
+ assertNull(kernal0.cache(DYNAMIC_CACHE_NAME));
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ return caches[idx].get(Integer.toString(expVal));
+ }
+ }, IllegalStateException.class, null);
+ }
+ }
+ }
+
+ /**
* @throws Exception If failed.
*/
public void testStartStopCacheAddNode() throws Exception {
@@ -378,13 +477,13 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
}
// Undeploy cache.
- kernal.context().cache().dynamicDestroyCache(DYNAMIC_CACHE_NAME, true).get();
+ kernal.destroyCache(DYNAMIC_CACHE_NAME);
startGrid(nodeCount() + 1);
// Check that cache is not deployed on new node after undeploy.
for (int g = 0; g < nodeCount() + 2; g++) {
- final IgniteKernal kernal0 = (IgniteKernal) grid(g);
+ final IgniteKernal kernal0 = (IgniteKernal)grid(g);
for (IgniteInternalFuture f : kernal0.context().cache().context().exchange().exchangeFutures())
f.get();
@@ -431,16 +530,16 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
for (int g = 0; g < nodeCount(); g++) {
for (int i = 0; i < 100; i++) {
assertFalse(grid(g).affinity(DYNAMIC_CACHE_NAME).mapKeyToPrimaryAndBackups(i)
- .contains(grid(nodeCount()).cluster().localNode()));
+ .contains(grid(nodeCount()).cluster().localNode()));
assertFalse(grid(g).affinity(DYNAMIC_CACHE_NAME).mapKeyToPrimaryAndBackups(i)
- .contains(grid(nodeCount() + 1).cluster().localNode()));
+ .contains(grid(nodeCount() + 1).cluster().localNode()));
}
}
// Check that cache is not deployed on new node after undeploy.
for (int g = 0; g < nodeCount() + 2; g++) {
- final IgniteKernal kernal0 = (IgniteKernal) grid(g);
+ final IgniteKernal kernal0 = (IgniteKernal)grid(g);
for (IgniteInternalFuture f : kernal0.context().cache().context().exchange().exchangeFutures())
f.get();
@@ -455,7 +554,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
}, IllegalArgumentException.class, null);
}
- kernal.context().cache().dynamicDestroyCache(DYNAMIC_CACHE_NAME, true).get();
+ kernal.destroyCache(DYNAMIC_CACHE_NAME);
stopGrid(nodeCount() + 1);
stopGrid(nodeCount());
@@ -489,6 +588,36 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
/**
* @throws Exception If failed.
*/
+ public void testFailWhenOneOfConfiguredCacheExists() throws Exception {
+ GridTestUtils.assertThrowsInherited(log, new Callable<Object>() {
+ @Override public Object call() throws Exception {
+ final Ignite kernal = grid(0);
+
+ CacheConfiguration ccfgDynamic = new CacheConfiguration();
+ ccfgDynamic.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+
+ ccfgDynamic.setName(DYNAMIC_CACHE_NAME);
+
+ ccfgDynamic.setNodeFilter(NODE_FILTER);
+
+ CacheConfiguration ccfgStatic = new CacheConfiguration();
+ ccfgStatic.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+
+ // Cache is already configured, should fail.
+ ccfgStatic.setName(STATIC_CACHE_NAME);
+
+ ccfgStatic.setNodeFilter(NODE_FILTER);
+
+ return kernal.createCaches(F.asList(ccfgDynamic, ccfgStatic));
+ }
+ }, CacheExistsException.class, null);
+
+ assertNull(grid(0).cache(DYNAMIC_CACHE_NAME));
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
public void testClientCache() throws Exception {
try {
testAttribute = false;
@@ -522,7 +651,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
for (int g = 0; g < nodeCount() + 1; g++)
assertEquals("1", ignite(g).cache(DYNAMIC_CACHE_NAME).get("1"));
- kernal.context().cache().dynamicDestroyCache(DYNAMIC_CACHE_NAME, true).get();
+ kernal.destroyCache(DYNAMIC_CACHE_NAME);
}
finally {
stopGrid(nodeCount());
@@ -547,7 +676,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
ccfg.setNodeFilter(NODE_FILTER);
- final IgniteKernal started = (IgniteKernal) grid(nodeCount());
+ final IgniteKernal started = (IgniteKernal)grid(nodeCount());
started.createCache(ccfg);
@@ -564,14 +693,13 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
for (int g = 0; g < nodeCount() + 1; g++)
assertEquals("1", ignite(g).cache(DYNAMIC_CACHE_NAME).get("1"));
- kernal.context().cache().dynamicDestroyCache(DYNAMIC_CACHE_NAME, true).get();
+ kernal.destroyCache(DYNAMIC_CACHE_NAME);
}
finally {
stopGrid(nodeCount());
}
}
-
/**
* @throws Exception If failed.
*/
@@ -610,7 +738,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
for (int g = 0; g < nodeCount() + 1; g++)
assertEquals("1", ignite(g).cache(DYNAMIC_CACHE_NAME).get("1"));
- kernal.context().cache().dynamicDestroyCache(DYNAMIC_CACHE_NAME, true).get();
+ kernal.destroyCache(DYNAMIC_CACHE_NAME);
}
finally {
stopGrid(nodeCount());
@@ -760,7 +888,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
nearGrid.getOrCreateNearCache(DYNAMIC_CACHE_NAME, new NearCacheConfiguration());
GridCacheContext<Object, Object> nCtx = ((IgniteKernal)nearGrid)
- .internalCache(DYNAMIC_CACHE_NAME).context();
+ .internalCache(DYNAMIC_CACHE_NAME).context();
assertTrue(nCtx.isNear());
assertFalse(nCtx.affinityNode());
@@ -771,11 +899,12 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
clientGrid.getOrCreateCache(cfg);
GridCacheContext<Object, Object> cCtx = ((IgniteKernal)clientGrid)
- .internalCache(DYNAMIC_CACHE_NAME).context();
+ .internalCache(DYNAMIC_CACHE_NAME).context();
assertFalse(cCtx.isNear());
assertFalse(cCtx.affinityNode());
- } finally {
+ }
+ finally {
stopGrid(nodeCount() + 1);
stopGrid(nodeCount());
}
@@ -785,6 +914,40 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
}
}
+ /** {@inheritDoc} */
+ public void testGetOrCreateCollection() throws Exception {
+ final int cacheCnt = 3;
+
+ try {
+ final Collection<CacheConfiguration> ccfgs = new ArrayList<>();
+
+ for (int i = 0; i < cacheCnt; i++) {
+ final CacheConfiguration cfg = new CacheConfiguration();
+
+ cfg.setName(DYNAMIC_CACHE_NAME + Integer.toString(i));
+ cfg.setNodeFilter(NODE_FILTER);
+
+ ccfgs.add(cfg);
+
+ grid(0).getOrCreateCaches(ccfgs);
+ }
+
+ for (int i = 0; i < cacheCnt; i++) {
+ assertNotNull(grid(0).cache(DYNAMIC_CACHE_NAME + Integer.toString(i)));
+
+ IgniteCache<Object, Object> jcache = grid(0).cache(DYNAMIC_CACHE_NAME + Integer.toString(i));
+
+ jcache.put(Integer.toString(i), Integer.toString(i));
+
+ assertEquals(jcache.get(Integer.toString(i)), Integer.toString(i));
+ }
+ }
+ finally {
+ for (int i = 0; i < cacheCnt; i++)
+ grid(0).destroyCache(DYNAMIC_CACHE_NAME + Integer.toString(i));
+ }
+ }
+
/**
* @throws Exception If failed.
*/
@@ -813,7 +976,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
assertNull(err.get());
for (int i = 0; i < nodeCount(); i++) {
- GridCacheContext<Object, Object> ctx = ((IgniteKernal) ignite(i)).internalCache(DYNAMIC_CACHE_NAME)
+ GridCacheContext<Object, Object> ctx = ((IgniteKernal)ignite(i)).internalCache(DYNAMIC_CACHE_NAME)
.context();
assertTrue(ctx.affinityNode());
@@ -906,7 +1069,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
assertNull(err.get());
for (int i = 0; i < nodeCount(); i++) {
- GridCacheContext<Object, Object> ctx = ((IgniteKernal) ignite(i)).internalCache(DYNAMIC_CACHE_NAME)
+ GridCacheContext<Object, Object> ctx = ((IgniteKernal)ignite(i)).internalCache(DYNAMIC_CACHE_NAME)
.context();
assertTrue(ctx.affinityNode());
@@ -914,7 +1077,7 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
}
for (int i = 0; i < clientCnt; i++) {
- GridCacheContext<Object, Object> ctx = ((IgniteKernal) ignite(nodeCount() + i))
+ GridCacheContext<Object, Object> ctx = ((IgniteKernal)ignite(nodeCount() + i))
.internalCache(DYNAMIC_CACHE_NAME).context();
assertFalse(ctx.affinityNode());
@@ -995,12 +1158,12 @@ public class IgniteDynamicCacheStartSelfTest extends GridCommonAbstractTest {
for (int i = 0; i < nodeCount(); i++) {
final int idx = i;
- latches[i] = new CountDownLatch(1);
- lsnrs[i] = new IgnitePredicate<CacheEvent>() {
- @Override public boolean apply(CacheEvent e) {
- switch (e.type()) {
- case EventType.EVT_CACHE_NODES_LEFT:
- latches[idx].countDown();
+ latches[i] = new CountDownLatch(1);
+ lsnrs[i] = new IgnitePredicate<CacheEvent>() {
+ @Override public boolean apply(CacheEvent e) {
+ switch (e.type()) {
+ case EventType.EVT_CACHE_NODES_LEFT:
+ latches[idx].countDown();
break;
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsIgniteMock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsIgniteMock.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsIgniteMock.java
index c9f77cd..1b779c2 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsIgniteMock.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsIgniteMock.java
@@ -291,6 +291,13 @@ public class IgfsIgniteMock implements IgniteEx {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> createCaches(Collection<CacheConfiguration> cacheCfgs) {
+ throwUnsupported();
+
+ return null;
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> createCache(String cacheName) {
throwUnsupported();
@@ -312,6 +319,13 @@ public class IgfsIgniteMock implements IgniteEx {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> getOrCreateCaches(Collection<CacheConfiguration> cacheCfgs) {
+ throwUnsupported();
+
+ return null;
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> void addCacheConfiguration(CacheConfiguration<K, V> cacheCfg) {
throwUnsupported();
}
@@ -354,6 +368,11 @@ public class IgfsIgniteMock implements IgniteEx {
}
/** {@inheritDoc} */
+ @Override public void destroyCaches(Collection<String> cacheNames) {
+ throwUnsupported();
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> cache(@Nullable String name) {
throwUnsupported();
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
index c9859fc..a2cc0b5 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
@@ -220,6 +220,11 @@ public class IgniteMock implements Ignite {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> createCaches(Collection<CacheConfiguration> cacheCfgs) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg) {
return null;
}
@@ -251,6 +256,11 @@ public class IgniteMock implements Ignite {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> getOrCreateCaches(Collection<CacheConfiguration> cacheCfgs) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> createCache(String cacheName) {
return null;
}
@@ -266,6 +276,11 @@ public class IgniteMock implements Ignite {
}
/** {@inheritDoc} */
+ @Override public void destroyCaches(Collection<String> cacheNames) {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
@Override public IgniteTransactions transactions() {
return null;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
index b1a1c62..9bb5205 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java
@@ -448,6 +448,11 @@ public class IgniteProcessProxy implements IgniteEx {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> createCaches(Collection<CacheConfiguration> cacheCfgs) {
+ throw new UnsupportedOperationException("Operation isn't supported yet.");
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> createCache(String cacheName) {
throw new UnsupportedOperationException("Operation isn't supported yet.");
}
@@ -463,6 +468,11 @@ public class IgniteProcessProxy implements IgniteEx {
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> getOrCreateCaches(Collection<CacheConfiguration> cacheCfgs) {
+ throw new UnsupportedOperationException("Operation isn't supported yet.");
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> void addCacheConfiguration(CacheConfiguration<K, V> cacheCfg) {
throw new UnsupportedOperationException("Operation isn't supported yet.");
}
@@ -499,6 +509,11 @@ public class IgniteProcessProxy implements IgniteEx {
}
/** {@inheritDoc} */
+ @Override public void destroyCaches(Collection<String> cacheNames) {
+ throw new UnsupportedOperationException("Operation isn't supported yet.");
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> cache(@Nullable final String name) {
return new IgniteCacheProcessProxy<>(name, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/f445e7bc/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java b/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
index b87d023..37a4b74 100644
--- a/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
+++ b/modules/spring/src/main/java/org/apache/ignite/IgniteSpringBean.java
@@ -302,6 +302,13 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> createCaches(Collection<CacheConfiguration> cacheCfgs) {
+ checkIgnite();
+
+ return g.createCaches(cacheCfgs);
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> getOrCreateCache(CacheConfiguration<K, V> cacheCfg, NearCacheConfiguration<K, V> nearCfg) {
checkIgnite();
@@ -330,6 +337,13 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea
}
/** {@inheritDoc} */
+ @Override public Collection<IgniteCache> getOrCreateCaches(Collection<CacheConfiguration> cacheCfgs) {
+ checkIgnite();
+
+ return g.getOrCreateCaches(cacheCfgs);
+ }
+
+ /** {@inheritDoc} */
@Override public <K, V> IgniteCache<K, V> createCache(String cacheName) {
checkIgnite();
@@ -351,6 +365,13 @@ public class IgniteSpringBean implements Ignite, DisposableBean, InitializingBea
}
/** {@inheritDoc} */
+ @Override public void destroyCaches(Collection<String> cacheNames) {
+ checkIgnite();
+
+ g.destroyCaches(cacheNames);
+ }
+
+ /** {@inheritDoc} */
@Override public IgniteTransactions transactions() {
checkIgnite();
[27/50] [abbrv] ignite git commit: Merge branch community/ignite-1.7.3
Posted by sh...@apache.org.
Merge branch community/ignite-1.7.3
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/afc89230
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/afc89230
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/afc89230
Branch: refs/heads/ignite-2788
Commit: afc892300935e09e41cc87218acdf1b549875966
Parents: e7b13cc
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 12:56:55 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 12:56:55 2016 +0300
----------------------------------------------------------------------
.../dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/afc89230/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
index 1b58d17..e623969 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
@@ -23,7 +23,6 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using System.IO;
- using System.Globalization;
using System.Runtime.InteropServices;
using System.Threading;
using Apache.Ignite.Core.Cache.Affinity;
[24/50] [abbrv] ignite git commit: IGNITE-1629 .NET: Introduced
native logging facility
Posted by sh...@apache.org.
IGNITE-1629 .NET: Introduced native logging facility
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3c9e254e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3c9e254e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3c9e254e
Branch: refs/heads/ignite-2788
Commit: 3c9e254ee762dfef0b27b5b95a63502069904d70
Parents: 36087cf
Author: ptupitsyn <pt...@gridgain.com>
Authored: Mon Aug 15 16:40:24 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 12:16:08 2016 +0300
----------------------------------------------------------------------
.../logger/platform/PlatformLogger.java | 223 ++++++++++
.../platform/PlatformAbstractBootstrap.java | 18 +-
.../platform/PlatformConfigurationEx.java | 6 +
.../platform/PlatformNoopProcessor.java | 10 +
.../processors/platform/PlatformProcessor.java | 16 +
.../platform/PlatformProcessorImpl.java | 56 +++
.../callback/PlatformCallbackGateway.java | 45 ++
.../callback/PlatformCallbackUtils.java | 20 +
.../cpp/PlatformCppConfigurationEx.java | 6 +
.../dotnet/PlatformDotNetBootstrap.java | 9 +
.../PlatformDotNetConfigurationClosure.java | 11 +-
.../dotnet/PlatformDotNetConfigurationEx.java | 12 +-
.../cpp/jni/include/ignite/jni/exports.h | 2 +
.../platforms/cpp/jni/include/ignite/jni/java.h | 13 +
modules/platforms/cpp/jni/project/vs/module.def | 3 +-
modules/platforms/cpp/jni/src/exports.cpp | 12 +-
modules/platforms/cpp/jni/src/java.cpp | 72 +++-
.../Apache.Ignite.Core.Tests.csproj | 8 +
.../Binary/BinaryStringTest.cs | 26 +-
.../Config/Log/custom-log.xml | 50 +++
.../Config/Log/dotnet-log4j.xml | 143 ++++++
.../IgniteConfigurationSerializerTest.cs | 30 +-
.../Log/CustomLoggerTest.cs | 430 +++++++++++++++++++
.../Log/DefaultLoggerTest.cs | 114 +++++
.../Apache.Ignite.Core.Tests/TestUtils.cs | 26 ++
.../Apache.Ignite.Core.csproj | 6 +-
.../Cache/Configuration/CacheConfiguration.cs | 19 +-
.../Cache/Configuration/QueryEntity.cs | 25 +-
.../Cache/Configuration/QueryField.cs | 19 +-
.../dotnet/Apache.Ignite.Core/IIgnite.cs | 8 +
.../Apache.Ignite.Core/IgniteConfiguration.cs | 88 ++++
.../IgniteConfigurationSection.xsd | 12 +
.../dotnet/Apache.Ignite.Core/Ignition.cs | 39 +-
.../Apache.Ignite.Core/Impl/Binary/JavaTypes.cs | 29 +-
.../Apache.Ignite.Core/Impl/Common/Logger.cs | 37 --
.../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 9 +
.../Apache.Ignite.Core/Impl/IgniteManager.cs | 6 +-
.../Apache.Ignite.Core/Impl/IgniteProxy.cs | 7 +
.../Apache.Ignite.Core/Impl/IgniteUtils.cs | 26 +-
.../Apache.Ignite.Core/Impl/Log/JavaLogger.cs | 110 +++++
.../Impl/Unmanaged/IgniteJniNativeMethods.cs | 7 +
.../Impl/Unmanaged/UnmanagedCallbackHandlers.cs | 3 +
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 76 +++-
.../Impl/Unmanaged/UnmanagedUtils.cs | 27 +-
.../Apache.Ignite.Core/Log/CategoryLogger.cs | 82 ++++
.../dotnet/Apache.Ignite.Core/Log/ILogger.cs | 51 +++
.../dotnet/Apache.Ignite.Core/Log/LogLevel.cs | 53 +++
.../Apache.Ignite.Core/Log/LoggerExtensions.cs | 320 ++++++++++++++
48 files changed, 2308 insertions(+), 112 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/logger/platform/PlatformLogger.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/logger/platform/PlatformLogger.java b/modules/core/src/main/java/org/apache/ignite/internal/logger/platform/PlatformLogger.java
new file mode 100644
index 0000000..0a0437e
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/logger/platform/PlatformLogger.java
@@ -0,0 +1,223 @@
+/*
+ * 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.logger.platform;
+
+import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.internal.binary.BinaryRawWriterEx;
+import org.apache.ignite.internal.processors.platform.PlatformContext;
+import org.apache.ignite.internal.processors.platform.PlatformNativeException;
+import org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway;
+import org.apache.ignite.internal.processors.platform.memory.PlatformMemory;
+import org.apache.ignite.internal.processors.platform.memory.PlatformOutputStream;
+import org.apache.ignite.internal.util.typedef.X;
+import org.jetbrains.annotations.Nullable;
+
+import static org.apache.ignite.IgniteSystemProperties.IGNITE_QUIET;
+
+/**
+ * Logger that delegates to platform.
+ */
+public class PlatformLogger implements IgniteLogger {
+ /** */
+ public static final int LVL_TRACE = 0;
+
+ /** */
+ public static final int LVL_DEBUG = 1;
+
+ /** */
+ public static final int LVL_INFO = 2;
+
+ /** */
+ public static final int LVL_WARN = 3;
+
+ /** */
+ public static final int LVL_ERROR = 4;
+
+ /** Callbacks. */
+ private volatile PlatformCallbackGateway gate;
+
+ /** Context. */
+ private volatile PlatformContext ctx;
+
+ /** Category. */
+ private final String category;
+
+ /** Trace flag. */
+ private volatile boolean traceEnabled;
+
+ /** Debug flag. */
+ private volatile boolean debugEnabled;
+
+ /** Info flag. */
+ private volatile boolean infoEnabled;
+
+ /** Quiet flag. */
+ private static final boolean isQuiet = Boolean.valueOf(System.getProperty(IGNITE_QUIET, "true"));
+
+ /**
+ * Ctor.
+ *
+ */
+ public PlatformLogger() {
+ category = null;
+ }
+
+ /**
+ * Ctor.
+ */
+ private PlatformLogger(PlatformCallbackGateway gate, PlatformContext ctx, String category,
+ boolean traceEnabled, boolean debugEnabled, boolean infoEnabled) {
+ this.gate = gate;
+ this.ctx = ctx;
+ this.category = category;
+ this.traceEnabled = traceEnabled;
+ this.debugEnabled = debugEnabled;
+ this.infoEnabled = infoEnabled;
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteLogger getLogger(Object ctgr) {
+ return new PlatformLogger(gate, ctx, getCategoryString(ctgr), traceEnabled, debugEnabled, infoEnabled);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void trace(String msg) {
+ log(LVL_TRACE, msg, null);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void debug(String msg) {
+ log(LVL_DEBUG, msg, null);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void info(String msg) {
+ log(LVL_INFO, msg, null);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void warning(String msg) {
+ log(LVL_WARN, msg, null);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void warning(String msg, @Nullable Throwable e) {
+ log(LVL_WARN, msg, e);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void error(String msg) {
+ log(LVL_ERROR, msg, null);
+ }
+
+ /** {@inheritDoc} */
+ @Override public void error(String msg, @Nullable Throwable e) {
+ log(LVL_ERROR, msg, e);
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isTraceEnabled() {
+ return traceEnabled;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isDebugEnabled() {
+ return debugEnabled;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isInfoEnabled() {
+ return infoEnabled;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isQuiet() {
+ return isQuiet;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String fileName() {
+ return null;
+ }
+
+ /**
+ * Sets the gateway.
+ *
+ * @param gate Callback gateway.
+ */
+ public void setGateway(PlatformCallbackGateway gate) {
+ assert gate != null;
+ this.gate = gate;
+
+ // Pre-calculate enabled levels (JNI calls are expensive)
+ traceEnabled = gate.loggerIsLevelEnabled(LVL_TRACE);
+ debugEnabled = gate.loggerIsLevelEnabled(LVL_DEBUG);
+ infoEnabled = gate.loggerIsLevelEnabled(LVL_INFO);
+ }
+
+ /**
+ * Sets the context.
+ *
+ * @param ctx Platform context.
+ */
+ public void setContext(PlatformContext ctx) {
+ assert ctx != null;
+ this.ctx = ctx;
+ }
+
+ /**
+ * Logs the message.
+ *
+ * @param level Log level.
+ * @param msg Message.
+ * @param e Exception.
+ */
+ private void log(int level, String msg, @Nullable Throwable e) {
+ String errorInfo = null;
+
+ if (e != null)
+ errorInfo = X.getFullStackTrace(e);
+
+ PlatformNativeException e0 = X.cause(e, PlatformNativeException.class);
+ if (ctx != null && e0 != null) {
+ try (PlatformMemory mem = ctx.memory().allocate()) {
+ PlatformOutputStream out = mem.output();
+ BinaryRawWriterEx writer = ctx.writer(out);
+ writer.writeObject(e0.cause());
+ out.synchronize();
+
+ gate.loggerLog(level, msg, category, errorInfo, mem.pointer());
+ }
+ }
+ else {
+ gate.loggerLog(level, msg, category, errorInfo, 0);
+ }
+ }
+
+ /**
+ * Gets the category string.
+ *
+ * @param ctgr Category object.
+ * @return Category string.
+ */
+ private static String getCategoryString(Object ctgr) {
+ return ctgr instanceof Class
+ ? ((Class)ctgr).getName()
+ : (ctgr == null ? null : String.valueOf(ctgr));
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractBootstrap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractBootstrap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractBootstrap.java
index a28677f..8b4eb75 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractBootstrap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformAbstractBootstrap.java
@@ -22,7 +22,9 @@ import org.apache.ignite.Ignition;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.IgniteEx;
import org.apache.ignite.internal.IgnitionEx;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.memory.PlatformExternalMemory;
+import org.apache.ignite.internal.processors.platform.memory.PlatformInputStream;
import org.apache.ignite.internal.processors.resource.GridSpringResourceContext;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteClosure;
@@ -35,7 +37,11 @@ public abstract class PlatformAbstractBootstrap implements PlatformBootstrap {
/** {@inheritDoc} */
@Override public PlatformProcessor start(IgniteConfiguration cfg, @Nullable GridSpringResourceContext springCtx,
long envPtr, long dataPtr) {
- Ignition.setClientMode(new PlatformExternalMemory(null, dataPtr).input().readBoolean());
+ final PlatformInputStream input = new PlatformExternalMemory(null, dataPtr).input();
+
+ Ignition.setClientMode(input.readBoolean());
+
+ processInput(input, cfg);
IgniteConfiguration cfg0 = closure(envPtr).apply(cfg);
@@ -61,4 +67,14 @@ public abstract class PlatformAbstractBootstrap implements PlatformBootstrap {
* @return Closure.
*/
protected abstract IgniteClosure<IgniteConfiguration, IgniteConfiguration> closure(long envPtr);
+
+ /**
+ * Processes any additional input data.
+ *
+ * @param input Input stream.
+ * @param cfg Config.
+ */
+ protected void processInput(PlatformInputStream input, IgniteConfiguration cfg) {
+ // No-op.
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
index b7c8895..97f0866 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
@@ -18,6 +18,7 @@
package org.apache.ignite.internal.processors.platform;
import org.apache.ignite.internal.processors.platform.cache.PlatformCacheExtension;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway;
import org.apache.ignite.internal.processors.platform.memory.PlatformMemoryManagerImpl;
import org.jetbrains.annotations.Nullable;
@@ -52,4 +53,9 @@ public interface PlatformConfigurationEx {
* @return Available cache extensions.
*/
@Nullable public Collection<PlatformCacheExtension> cacheExtensions();
+
+ /**
+ * @return Platform logger.
+ */
+ public PlatformLogger logger();
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
index cdf418f..a7b7a8d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformNoopProcessor.java
@@ -175,4 +175,14 @@ public class PlatformNoopProcessor extends GridProcessorAdapter implements Platf
@Override public PlatformTarget getOrCreateNearCache(@Nullable String cacheName, long memPtr) {
return null;
}
+
+ /** {@inheritDoc} */
+ @Override public boolean loggerIsLevelEnabled(int level) {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void loggerLog(int level, String message, String category, String errorInfo) {
+ // No-op.
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
index f0201ef..1d9d3cd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessor.java
@@ -255,4 +255,20 @@ public interface PlatformProcessor extends GridProcessor {
*/
public PlatformTarget getOrCreateNearCache(@Nullable String cacheName, long memPtr);
+ /**
+ * Gets a value indicating whether Ignite logger has specified level enabled.
+ *
+ * @param level Log level.
+ */
+ public boolean loggerIsLevelEnabled(int level);
+
+ /**
+ * Logs to the Ignite logger.
+ *
+ * @param level Log level.
+ * @param message Message.
+ * @param category Category.
+ * @param errorInfo Error info.
+ */
+ public void loggerLog(int level, String message, String category, String errorInfo);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
index b364c4a..548145e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformProcessorImpl.java
@@ -30,6 +30,7 @@ import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.binary.BinaryRawReaderEx;
import org.apache.ignite.internal.binary.BinaryRawWriterEx;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.GridProcessorAdapter;
import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
import org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl;
@@ -128,6 +129,9 @@ public class PlatformProcessorImpl extends GridProcessorAdapter implements Platf
// Initialize cache extensions (if any).
cacheExts = prepareCacheExtensions(interopCfg.cacheExtensions());
+
+ if (interopCfg.logger() != null)
+ interopCfg.logger().setContext(platformCtx);
}
/** {@inheritDoc} */
@@ -433,6 +437,58 @@ public class PlatformProcessorImpl extends GridProcessorAdapter implements Platf
return new PlatformCache(platformCtx, cache, false, cacheExts);
}
+ /** {@inheritDoc} */
+ @Override public boolean loggerIsLevelEnabled(int level) {
+ IgniteLogger log = ctx.grid().log();
+
+ switch (level) {
+ case PlatformLogger.LVL_TRACE:
+ return log.isTraceEnabled();
+ case PlatformLogger.LVL_DEBUG:
+ return log.isDebugEnabled();
+ case PlatformLogger.LVL_INFO:
+ return log.isInfoEnabled();
+ case PlatformLogger.LVL_WARN:
+ return true;
+ case PlatformLogger.LVL_ERROR:
+ return true;
+ default:
+ assert false;
+ }
+
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void loggerLog(int level, String message, String category, String errorInfo) {
+ IgniteLogger log = ctx.grid().log();
+
+ if (category != null)
+ log = log.getLogger(category);
+
+ Throwable err = errorInfo == null ? null : new IgniteException("Platform error:" + errorInfo);
+
+ switch (level) {
+ case PlatformLogger.LVL_TRACE:
+ log.trace(message);
+ break;
+ case PlatformLogger.LVL_DEBUG:
+ log.debug(message);
+ break;
+ case PlatformLogger.LVL_INFO:
+ log.info(message);
+ break;
+ case PlatformLogger.LVL_WARN:
+ log.warning(message, err);
+ break;
+ case PlatformLogger.LVL_ERROR:
+ log.error(message, err);
+ break;
+ default:
+ assert false;
+ }
+ }
+
/**
* Gets the near cache config.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java
index 41d3802..de23242 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackGateway.java
@@ -943,6 +943,44 @@ public class PlatformCallbackGateway {
}
/**
+ * Logs to the platform.
+ *
+ * @param level Log level.
+ * @param message Message.
+ * @param category Category.
+ * @param errorInfo Error info.
+ * @param memPtr Pointer to optional payload (serialized exception).
+ */
+ public void loggerLog(int level, String message, String category, String errorInfo, long memPtr) {
+ if (!tryEnter())
+ return; // Do not lock for logger: this should work during shutdown
+
+ try {
+ PlatformCallbackUtils.loggerLog(envPtr, level, message, category, errorInfo, memPtr);
+ }
+ finally {
+ leave();
+ }
+ }
+
+ /**
+ * Gets a value indicating whether native logger has specified level enabled.
+ *
+ * @param level Log level.
+ */
+ public boolean loggerIsLevelEnabled(int level) {
+ if (!tryEnter())
+ return false; // Do not lock for logger: this should work during shutdown
+
+ try {
+ return PlatformCallbackUtils.loggerIsLevelEnabled(envPtr, level);
+ }
+ finally {
+ leave();
+ }
+ }
+
+ /**
* Kernal stop callback.
*/
public void onStop() {
@@ -1058,6 +1096,13 @@ public class PlatformCallbackGateway {
}
/**
+ * Enter gateway.
+ */
+ protected boolean tryEnter() {
+ return lock.enterBusy();
+ }
+
+ /**
* Leave gateway.
*/
protected void leave() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java
index 63c6682..09a7f1b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/callback/PlatformCallbackUtils.java
@@ -553,6 +553,26 @@ public class PlatformCallbackUtils {
static native void consoleWrite(String str, boolean isErr);
/**
+ * Logs to the native logger.
+ *
+ * @param envPtr Environment pointer.
+ * @param level Log level.
+ * @param message Message.
+ * @param category Category.
+ * @param errorInfo Error info.
+ * @param memPtr Pointer to optional payload (serialized exception).
+ */
+ static native void loggerLog(long envPtr, int level, String message, String category, String errorInfo, long memPtr);
+
+ /**
+ * Gets a value indicating whether native logger has specified level enabled.
+ *
+ * @param envPtr Environment pointer.
+ * @param level Log level.
+ */
+ static native boolean loggerIsLevelEnabled(long envPtr, int level);
+
+ /**
* Private constructor.
*/
private PlatformCallbackUtils() {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
index 931a18e..785c9bd 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.platform.cpp;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.PlatformConfigurationEx;
import org.apache.ignite.internal.processors.platform.cache.PlatformCacheExtension;
import org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway;
@@ -80,6 +81,11 @@ public class PlatformCppConfigurationEx extends PlatformCppConfiguration impleme
return null;
}
+ /** {@inheritDoc} */
+ @Override public PlatformLogger logger() {
+ return null;
+ }
+
/**
* @param warnings Warnings.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetBootstrap.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetBootstrap.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetBootstrap.java
index 9278246..84a4577 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetBootstrap.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetBootstrap.java
@@ -17,8 +17,11 @@
package org.apache.ignite.internal.processors.platform.dotnet;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.PlatformAbstractBootstrap;
import org.apache.ignite.internal.processors.platform.PlatformAbstractConfigurationClosure;
+import org.apache.ignite.internal.processors.platform.memory.PlatformInputStream;
import java.io.PrintStream;
@@ -40,4 +43,10 @@ public class PlatformDotNetBootstrap extends PlatformAbstractBootstrap {
@Override protected PlatformAbstractConfigurationClosure closure(long envPtr) {
return new PlatformDotNetConfigurationClosure(envPtr);
}
+
+ /** {@inheritDoc} */
+ @Override protected void processInput(PlatformInputStream input, IgniteConfiguration cfg) {
+ if (input.readBoolean())
+ cfg.setGridLogger(new PlatformLogger());
+ }
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationClosure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationClosure.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationClosure.java
index cb9696c..0c691af 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationClosure.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationClosure.java
@@ -31,6 +31,7 @@ import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.binary.BinaryRawWriterEx;
import org.apache.ignite.internal.binary.BinaryReaderExImpl;
import org.apache.ignite.internal.binary.GridBinaryMarshaller;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.PlatformAbstractConfigurationClosure;
import org.apache.ignite.internal.processors.platform.lifecycle.PlatformLifecycleBean;
import org.apache.ignite.internal.processors.platform.memory.PlatformMemory;
@@ -89,7 +90,15 @@ public class PlatformDotNetConfigurationClosure extends PlatformAbstractConfigur
memMgr = new PlatformMemoryManagerImpl(gate, 1024);
- PlatformDotNetConfigurationEx dotNetCfg0 = new PlatformDotNetConfigurationEx(dotNetCfg, gate, memMgr);
+ PlatformLogger userLogger = null;
+
+ if (igniteCfg.getGridLogger() instanceof PlatformLogger) {
+ userLogger = (PlatformLogger)igniteCfg.getGridLogger();
+ userLogger.setGateway(gate);
+ }
+
+ PlatformDotNetConfigurationEx dotNetCfg0 = new PlatformDotNetConfigurationEx(dotNetCfg, gate, memMgr,
+ userLogger);
igniteCfg.setPlatformConfiguration(dotNetCfg0);
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
index 78fb755..eded0e7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.platform.dotnet;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.PlatformConfigurationEx;
import org.apache.ignite.internal.processors.platform.cache.PlatformCacheExtension;
import org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway;
@@ -39,6 +40,9 @@ public class PlatformDotNetConfigurationEx extends PlatformDotNetConfiguration i
/** Memory manager. */
private final PlatformMemoryManagerImpl memMgr;
+ /** Logger. */
+ private final PlatformLogger logger;
+
/** Warnings */
private Collection<String> warnings;
@@ -50,11 +54,12 @@ public class PlatformDotNetConfigurationEx extends PlatformDotNetConfiguration i
* @param memMgr Memory manager.
*/
public PlatformDotNetConfigurationEx(PlatformDotNetConfiguration cfg, PlatformCallbackGateway gate,
- PlatformMemoryManagerImpl memMgr) {
+ PlatformMemoryManagerImpl memMgr, PlatformLogger logger) {
super(cfg);
this.gate = gate;
this.memMgr = memMgr;
+ this.logger = logger;
}
/** {@inheritDoc} */
@@ -82,6 +87,11 @@ public class PlatformDotNetConfigurationEx extends PlatformDotNetConfiguration i
return Collections.<PlatformCacheExtension>singleton(new PlatformDotNetSessionCacheExtension());
}
+ /** {@inheritDoc} */
+ @Override public PlatformLogger logger() {
+ return logger;
+ }
+
/**
* @param warnings Warnings.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/cpp/jni/include/ignite/jni/exports.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/include/ignite/jni/exports.h b/modules/platforms/cpp/jni/include/ignite/jni/exports.h
index 3f400fb..7fae0d2 100644
--- a/modules/platforms/cpp/jni/include/ignite/jni/exports.h
+++ b/modules/platforms/cpp/jni/include/ignite/jni/exports.h
@@ -54,6 +54,8 @@ extern "C" {
void* IGNITE_CALL IgniteProcessorAtomicReference(gcj::JniContext* ctx, void* obj, char* name, long long memPtr, bool create);
void IGNITE_CALL IgniteProcessorGetIgniteConfiguration(gcj::JniContext* ctx, void* obj, long long memPtr);
void IGNITE_CALL IgniteProcessorGetCacheNames(gcj::JniContext* ctx, void* obj, long long memPtr);
+ bool IGNITE_CALL IgniteProcessorLoggerIsLevelEnabled(gcj::JniContext* ctx, void* obj, int level);
+ void IGNITE_CALL IgniteProcessorLoggerLog(gcj::JniContext* ctx, void* obj, int level, char* message, char* category, char* errorInfo);
long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr);
void IGNITE_CALL IgniteTargetInStreamOutStream(gcj::JniContext* ctx, void* obj, int opType, long long inMemPtr, long long outMemPtr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/cpp/jni/include/ignite/jni/java.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/include/ignite/jni/java.h b/modules/platforms/cpp/jni/include/ignite/jni/java.h
index 8d79a7d..4cf00a3 100644
--- a/modules/platforms/cpp/jni/include/ignite/jni/java.h
+++ b/modules/platforms/cpp/jni/include/ignite/jni/java.h
@@ -108,6 +108,9 @@ namespace ignite
typedef void(JNICALL *ConsoleWriteHandler)(const char* chars, int charsLen, unsigned char isErr);
+ typedef void(JNICALL *LoggerLogHandler)(void* target, int level, const char* messageChars, int messageCharsLen, const char* categoryChars, int categoryCharsLen, const char* errorInfoChars, int errorInfoCharsLen, long long memPtr);
+ typedef bool(JNICALL *LoggerIsLevelEnabledHandler)(void* target, int level);
+
/**
* JNI handlers holder.
*/
@@ -191,6 +194,9 @@ namespace ignite
AffinityFunctionAssignPartitionsHandler affinityFunctionAssignPartitions;
AffinityFunctionRemoveNodeHandler affinityFunctionRemoveNode;
AffinityFunctionDestroyHandler affinityFunctionDestroy;
+
+ LoggerLogHandler loggerLog;
+ LoggerIsLevelEnabledHandler loggerIsLevelEnabled;
};
/**
@@ -335,6 +341,8 @@ namespace ignite
jmethodID m_PlatformProcessor_getCacheNames;
jmethodID m_PlatformProcessor_atomicSequence;
jmethodID m_PlatformProcessor_atomicReference;
+ jmethodID m_PlatformProcessor_loggerIsLevelEnabled;
+ jmethodID m_PlatformProcessor_loggerLog;
jclass c_PlatformTarget;
jmethodID m_PlatformTarget_inStreamOutLong;
@@ -554,6 +562,8 @@ namespace ignite
jobject ProcessorAtomicReference(jobject obj, char* name, long long memPtr, bool create);
void ProcessorGetIgniteConfiguration(jobject obj, long long memPtr);
void ProcessorGetCacheNames(jobject obj, long long memPtr);
+ bool ProcessorLoggerIsLevelEnabled(jobject obj, int level);
+ void ProcessorLoggerLog(jobject obj, int level, char* message, char* category, char* errorInfo);
long long TargetInStreamOutLong(jobject obj, int type, long long memPtr, JniErrorInfo* errInfo = NULL);
void TargetInStreamOutStream(jobject obj, int opType, long long inMemPtr, long long outMemPtr, JniErrorInfo* errInfo = NULL);
@@ -767,6 +777,9 @@ namespace ignite
JNIEXPORT void JNICALL JniAffinityFunctionDestroy(JNIEnv *env, jclass cls, jlong envPtr, jlong ptr);
JNIEXPORT void JNICALL JniConsoleWrite(JNIEnv *env, jclass cls, jstring str, jboolean isErr);
+
+ JNIEXPORT void JNICALL JniLoggerLog(JNIEnv *env, jclass cls, jlong envPtr, jint level, jstring message, jstring category, jstring errorInfo, jlong memPtr);
+ JNIEXPORT jboolean JNICALL JniLoggerIsLevelEnabled(JNIEnv *env, jclass cls, jlong envPtr, jint level);
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/cpp/jni/project/vs/module.def
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/project/vs/module.def b/modules/platforms/cpp/jni/project/vs/module.def
index ddddace..c1582e6 100644
--- a/modules/platforms/cpp/jni/project/vs/module.def
+++ b/modules/platforms/cpp/jni/project/vs/module.def
@@ -136,4 +136,5 @@ IgniteProcessorGetCacheNames @133
IgniteProjectionForServers @134
IgniteSetConsoleHandler @135
IgniteRemoveConsoleHandler @136
-
\ No newline at end of file
+IgniteProcessorLoggerIsLevelEnabled @137
+IgniteProcessorLoggerLog @138
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/cpp/jni/src/exports.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/src/exports.cpp b/modules/platforms/cpp/jni/src/exports.cpp
index 2950d15..8ef8188 100644
--- a/modules/platforms/cpp/jni/src/exports.cpp
+++ b/modules/platforms/cpp/jni/src/exports.cpp
@@ -93,11 +93,11 @@ extern "C" {
void*IGNITE_CALL IgniteProcessorDataStreamer(gcj::JniContext* ctx, void* obj, char* name, bool keepPortable) {
return ctx->ProcessorDataStreamer(static_cast<jobject>(obj), name, keepPortable);
}
-
+
void* IGNITE_CALL IgniteProcessorTransactions(gcj::JniContext* ctx, void* obj) {
return ctx->ProcessorTransactions(static_cast<jobject>(obj));
}
-
+
void* IGNITE_CALL IgniteProcessorCompute(gcj::JniContext* ctx, void* obj, void* prj) {
return ctx->ProcessorCompute(static_cast<jobject>(obj), static_cast<jobject>(prj));
}
@@ -138,6 +138,14 @@ extern "C" {
return ctx->ProcessorGetCacheNames(static_cast<jobject>(obj), memPtr);
}
+ bool IGNITE_CALL IgniteProcessorLoggerIsLevelEnabled(gcj::JniContext* ctx, void* obj, int level) {
+ return ctx->ProcessorLoggerIsLevelEnabled(static_cast<jobject>(obj), level);
+ }
+
+ void IGNITE_CALL IgniteProcessorLoggerLog(gcj::JniContext* ctx, void* obj, int level, char* message, char* category, char* errorInfo) {
+ ctx->ProcessorLoggerLog(static_cast<jobject>(obj), level, message, category, errorInfo);
+ }
+
long long IGNITE_CALL IgniteTargetInStreamOutLong(gcj::JniContext* ctx, void* obj, int opType, long long memPtr) {
return ctx->TargetInStreamOutLong(static_cast<jobject>(obj), opType, memPtr);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/cpp/jni/src/java.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/jni/src/java.cpp b/modules/platforms/cpp/jni/src/java.cpp
index 7bd6287..eb0d89a 100644
--- a/modules/platforms/cpp/jni/src/java.cpp
+++ b/modules/platforms/cpp/jni/src/java.cpp
@@ -216,6 +216,8 @@ namespace ignite
JniMethod M_PLATFORM_PROCESSOR_ATOMIC_REFERENCE = JniMethod("atomicReference", "(Ljava/lang/String;JZ)Lorg/apache/ignite/internal/processors/platform/PlatformTarget;", false);
JniMethod M_PLATFORM_PROCESSOR_GET_IGNITE_CONFIGURATION = JniMethod("getIgniteConfiguration", "(J)V", false);
JniMethod M_PLATFORM_PROCESSOR_GET_CACHE_NAMES = JniMethod("getCacheNames", "(J)V", false);
+ JniMethod M_PLATFORM_PROCESSOR_LOGGER_IS_LEVEL_ENABLED = JniMethod("loggerIsLevelEnabled", "(I)Z", false);
+ JniMethod M_PLATFORM_PROCESSOR_LOGGER_LOG = JniMethod("loggerLog", "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V", false);
const char* C_PLATFORM_TARGET = "org/apache/ignite/internal/processors/platform/PlatformTarget";
JniMethod M_PLATFORM_TARGET_IN_STREAM_OUT_LONG = JniMethod("inStreamOutLong", "(IJ)J", false);
@@ -366,6 +368,9 @@ namespace ignite
JniMethod M_PLATFORM_CALLBACK_UTILS_ON_CLIENT_DISCONNECTED = JniMethod("onClientDisconnected", "(J)V", true);
JniMethod M_PLATFORM_CALLBACK_UTILS_ON_CLIENT_RECONNECTED = JniMethod("onClientReconnected", "(JZ)V", true);
+ JniMethod M_PLATFORM_CALLBACK_UTILS_LOGGER_LOG = JniMethod("loggerLog", "(JILjava/lang/String;Ljava/lang/String;Ljava/lang/String;J)V", true);
+ JniMethod M_PLATFORM_CALLBACK_UTILS_LOGGER_IS_LEVEL_ENABLED = JniMethod("loggerIsLevelEnabled", "(JI)Z", true);
+
JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_INIT = JniMethod("affinityFunctionInit", "(JJLorg/apache/ignite/internal/processors/platform/cache/affinity/PlatformAffinityFunctionTarget;)J", true);
JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_PARTITION = JniMethod("affinityFunctionPartition", "(JJJ)I", true);
JniMethod M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_ASSIGN_PARTITIONS = JniMethod("affinityFunctionAssignPartitions", "(JJJJ)V", true);
@@ -716,6 +721,8 @@ namespace ignite
m_PlatformProcessor_atomicReference = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_ATOMIC_REFERENCE);
m_PlatformProcessor_getIgniteConfiguration = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_IGNITE_CONFIGURATION);
m_PlatformProcessor_getCacheNames = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_GET_CACHE_NAMES);
+ m_PlatformProcessor_loggerIsLevelEnabled = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_LOGGER_IS_LEVEL_ENABLED);
+ m_PlatformProcessor_loggerLog = FindMethod(env, c_PlatformProcessor, M_PLATFORM_PROCESSOR_LOGGER_LOG);
c_PlatformTarget = FindClass(env, C_PLATFORM_TARGET);
m_PlatformTarget_inStreamOutLong = FindMethod(env, c_PlatformTarget, M_PLATFORM_TARGET_IN_STREAM_OUT_LONG);
@@ -851,7 +858,7 @@ namespace ignite
void RegisterNatives(JNIEnv* env) {
{
- JNINativeMethod methods[60];
+ JNINativeMethod methods[62];
int idx = 0;
@@ -935,6 +942,9 @@ namespace ignite
AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_AFFINITY_FUNCTION_DESTROY, reinterpret_cast<void*>(JniAffinityFunctionDestroy));
AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_CONSOLE_WRITE, reinterpret_cast<void*>(JniConsoleWrite));
+ AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_LOGGER_LOG, reinterpret_cast<void*>(JniLoggerLog));
+ AddNativeMethod(methods + idx++, M_PLATFORM_CALLBACK_UTILS_LOGGER_IS_LEVEL_ENABLED, reinterpret_cast<void*>(JniLoggerIsLevelEnabled));
+
jint res = env->RegisterNatives(FindClass(env, C_PLATFORM_CALLBACK_UTILS), methods, idx);
if (res != JNI_OK)
@@ -1526,6 +1536,40 @@ namespace ignite
ExceptionCheck(env);
}
+ bool JniContext::ProcessorLoggerIsLevelEnabled(jobject obj, int level)
+ {
+ JNIEnv* env = Attach();
+
+ jboolean res = env->CallBooleanMethod(obj, jvm->GetMembers().m_PlatformProcessor_loggerIsLevelEnabled, level);
+
+ ExceptionCheck(env);
+
+ return res != 0;
+ }
+
+ void JniContext::ProcessorLoggerLog(jobject obj, int level, char* message, char* category, char* errorInfo)
+ {
+ JNIEnv* env = Attach();
+
+ jstring message0 = message != NULL ? env->NewStringUTF(message) : NULL;
+ jstring category0 = category != NULL ? env->NewStringUTF(category) : NULL;
+ jstring errorInfo0 = errorInfo != NULL ? env->NewStringUTF(errorInfo) : NULL;
+
+
+ env->CallVoidMethod(obj, jvm->GetMembers().m_PlatformProcessor_loggerLog, level, message0, category0, errorInfo0);
+
+ if (message0)
+ env->DeleteLocalRef(message0);
+
+ if (category0)
+ env->DeleteLocalRef(category0);
+
+ if (errorInfo0)
+ env->DeleteLocalRef(errorInfo0);
+
+ ExceptionCheck(env);
+ }
+
long long JniContext::TargetInStreamOutLong(jobject obj, int opType, long long memPtr, JniErrorInfo* err) {
JNIEnv* env = Attach();
@@ -2952,6 +2996,32 @@ namespace ignite
CONSOLE_LOCK.Leave();
}
+
+ JNIEXPORT void JNICALL JniLoggerLog(JNIEnv *env, jclass cls, jlong envPtr, jint level, jstring message, jstring category, jstring errorInfo, jlong memPtr) {
+ int messageLen;
+ char* messageChars = StringToChars(env, message, &messageLen);
+
+ int categoryLen;
+ char* categoryChars = StringToChars(env, category, &categoryLen);
+
+ int errorInfoLen;
+ char* errorInfoChars = StringToChars(env, errorInfo, &errorInfoLen);
+
+ IGNITE_SAFE_PROC(env, envPtr, LoggerLogHandler, loggerLog, level, messageChars, messageLen, categoryChars, categoryLen, errorInfoChars, errorInfoLen, memPtr);
+
+ if (messageChars)
+ delete[] messageChars;
+
+ if (categoryChars)
+ delete[] categoryChars;
+
+ if (errorInfoChars)
+ delete[] errorInfoChars;
+ }
+
+ JNIEXPORT jboolean JNICALL JniLoggerIsLevelEnabled(JNIEnv *env, jclass cls, jlong envPtr, jint level) {
+ IGNITE_SAFE_FUNC(env, envPtr, LoggerIsLevelEnabledHandler, loggerIsLevelEnabled, level);
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index b1e0dbe..2c6150c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@ -53,6 +53,7 @@
<Reference Include="System.XML" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="Log\DefaultLoggerTest.cs" />
<Compile Include="TestAppConfig.cs" />
<Compile Include="Binary\BinaryBuilderSelfTestFullFooter.cs" />
<Compile Include="Binary\BinaryCompactFooterInteropTest.cs" />
@@ -135,6 +136,7 @@
<Compile Include="LifecycleTest.cs" />
<Compile Include="LoadDllTest.cs" />
<Compile Include="IgniteManagerTest.cs" />
+ <Compile Include="Log\CustomLoggerTest.cs" />
<Compile Include="MarshallerTest.cs" />
<Compile Include="MessagingTest.cs" />
<Compile Include="BinaryConfigurationTest.cs" />
@@ -241,6 +243,12 @@
<Content Include="Config\Lifecycle\lifecycle-no-beans.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
+ <Content Include="Config\Log\dotnet-log4j.xml">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
+ <Content Include="Config\Log\custom-log.xml">
+ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+ </Content>
<Content Include="Config\spring-test.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryStringTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryStringTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryStringTest.cs
index 0c1f0f3..0593af7 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryStringTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Binary/BinaryStringTest.cs
@@ -18,7 +18,6 @@
namespace Apache.Ignite.Core.Tests.Binary
{
using System;
- using System.Diagnostics;
using Apache.Ignite.Core.Impl.Binary;
using NUnit.Framework;
@@ -83,29 +82,10 @@ namespace Apache.Ignite.Core.Tests.Binary
[Test]
public void TestNewMode()
{
- // Run "TestNewMode" in a separate process
- var envVar = BinaryUtils.IgniteBinaryMarshallerUseStringSerializationVer2;
+ // Run "TestOldMode" in a separate process with changed setting.
+ Environment.SetEnvironmentVariable(BinaryUtils.IgniteBinaryMarshallerUseStringSerializationVer2, "true");
- Environment.SetEnvironmentVariable(envVar, "true");
-
- var procStart = new ProcessStartInfo
- {
- FileName = GetType().Assembly.Location,
- Arguments = GetType().FullName + " TestOldMode",
- CreateNoWindow = true,
- UseShellExecute = false,
- RedirectStandardOutput = true,
- RedirectStandardError = true
- };
-
- var proc = Process.Start(procStart);
-
- Assert.IsNotNull(proc);
-
- Console.WriteLine(proc.StandardOutput.ReadToEnd());
- Console.WriteLine(proc.StandardError.ReadToEnd());
- Assert.IsTrue(proc.WaitForExit(15000));
- Assert.AreEqual(0, proc.ExitCode);
+ TestUtils.RunTestInNewProcess(GetType().FullName, "TestOldMode");
}
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/custom-log.xml
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/custom-log.xml b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/custom-log.xml
new file mode 100644
index 0000000..5d7dc65
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/custom-log.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans.xsd">
+ <bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
+ <property name="localHost" value="127.0.0.1"/>
+ <property name="connectorConfiguration"><null/></property>
+
+ <property name="gridLogger">
+ <bean class="org.apache.ignite.logger.log4j.Log4JLogger">
+ <constructor-arg type="java.lang.String" value="config\log\dotnet-log4j.xml"/>
+ </bean>
+ </property>
+
+ <property name="discoverySpi">
+ <bean class="org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi">
+ <property name="ipFinder">
+ <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+ <property name="addresses">
+ <list>
+ <!-- In distributed environment, replace with actual host IP address. -->
+ <value>127.0.0.1:47500</value>
+ </list>
+ </property>
+ </bean>
+ </property>
+ <property name="socketTimeout" value="300" />
+ </bean>
+ </property>
+ </bean>
+</beans>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/dotnet-log4j.xml
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/dotnet-log4j.xml b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/dotnet-log4j.xml
new file mode 100644
index 0000000..c8c62d7
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Config/Log/dotnet-log4j.xml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ 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.
+-->
+
+<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN"
+ "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
+<!--
+ Default log4j configuration for Ignite.
+-->
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+ <!--
+ Logs System.out messages to console.
+ -->
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <!-- Log to STDOUT. -->
+ <param name="Target" value="System.out"/>
+
+ <!-- Log from DEBUG and higher. -->
+ <param name="Threshold" value="DEBUG"/>
+
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{dd-MM-yyyy HH:mm:ss}][%-5p][%t][%c{1}] %m%n"/>
+ </layout>
+
+ <!-- Do not log beyond INFO level. -->
+ <filter class="org.apache.log4j.varia.LevelRangeFilter">
+ <param name="levelMin" value="DEBUG"/>
+ <param name="levelMax" value="INFO"/>
+ </filter>
+ </appender>
+
+ <!--
+ Logs all System.err messages to console.
+ -->
+ <appender name="CONSOLE_ERR" class="org.apache.log4j.ConsoleAppender">
+ <!-- Log to STDERR. -->
+ <param name="Target" value="System.err"/>
+
+ <!-- Log from WARN and higher. -->
+ <param name="Threshold" value="WARN"/>
+
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{dd-MMM-yyyy HH:mm:ss}][%-5p][%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!--
+ Logs all output to specified file.
+ By default, the logging goes to IGNITE_HOME/work/log folder
+
+ Note, this appender is disabled by default.
+ To enable, uncomment the section below and also FILE appender in the <root> element.
+ -->
+ <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
+ <param name="Threshold" value="DEBUG"/>
+ <param name="File" value="${IGNITE_HOME}/work/log/dotnet-logger-test.log"/>
+ <param name="Append" value="true"/>
+ <param name="MaxFileSize" value="10MB"/>
+ <param name="MaxBackupIndex" value="10"/>
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!--
+ Uncomment to enable Ignite debugging.
+ -->
+ <!--
+ <category name="org.apache.ignite">
+ <level value="DEBUG"/>
+ </category>
+ -->
+
+ <!--
+ Uncomment this category to enable cache
+ query execution tracing.
+ -->
+ <!--
+ <category name="org.apache.ignite.cache.queries">
+ <level value="DEBUG"/>
+ </category>
+ -->
+
+ <!--
+ Uncomment to enable DGC tracing.
+ -->
+ <!--
+ <category name="org.apache.ignite.grid.kernal.processors.cache.GridCacheDgcManager.trace">
+ <level value="DEBUG"/>
+ </category>
+ -->
+
+ <!--
+ Uncomment to disable courtesy notice.
+ -->
+ <!--
+ <category name="org.apache.ignite.CourtesyConfigNotice">
+ <level value="OFF"/>
+ </category>
+ -->
+
+ <category name="org.springframework">
+ <level value="WARN"/>
+ </category>
+
+ <category name="org.eclipse.jetty">
+ <level value="FATAL"/>
+ </category>
+
+ <category name="com.amazonaws">
+ <level value="WARN"/>
+ </category>
+
+ <!-- Default settings. -->
+ <root>
+ <!-- Print out all info by default. -->
+ <level value="DEBUG"/>
+
+ <!-- Append to console. -->
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="CONSOLE_ERR"/>
+
+ <!-- Uncomment to enable logging to a file. -->
+ <appender-ref ref="FILE"/>
+ </root>
+</log4j:configuration>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
index e8e8f5d..beb1e8d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
@@ -43,6 +43,7 @@ namespace Apache.Ignite.Core.Tests
using Apache.Ignite.Core.Events;
using Apache.Ignite.Core.Impl.Common;
using Apache.Ignite.Core.Lifecycle;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Tests.Binary;
using Apache.Ignite.Core.Transactions;
using NUnit.Framework;
@@ -109,6 +110,7 @@ namespace Apache.Ignite.Core.Tests
<userAttributes><pair key='myNode' value='true' /></userAttributes>
<atomicConfiguration backups='2' cacheMode='Local' atomicSequenceReserveSize='250' />
<transactionConfiguration defaultTransactionConcurrency='Optimistic' defaultTransactionIsolation='RepeatableRead' defaultTimeout='0:1:2' pessimisticTransactionLogSize='15' pessimisticTransactionLogLinger='0:0:33' />
+ <logger type='Apache.Ignite.Core.Tests.IgniteConfigurationSerializerTest+TestLogger, Apache.Ignite.Core.Tests' />
</igniteConfig>";
var reader = XmlReader.Create(new StringReader(xml));
@@ -193,6 +195,8 @@ namespace Apache.Ignite.Core.Tests
Assert.IsNotNull(comm);
Assert.AreEqual(33, comm.AckSendThreshold);
Assert.AreEqual(new TimeSpan(0, 1, 2), comm.IdleConnectionTimeout);
+
+ Assert.IsInstanceOf<TestLogger>(cfg.Logger);
}
/// <summary>
@@ -253,7 +257,7 @@ namespace Apache.Ignite.Core.Tests
{
var document = new XmlDocument();
- document.Schemas.Add("http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection",
+ document.Schemas.Add("http://ignite.apache.org/schema/dotnet/IgniteConfigurationSection",
XmlReader.Create("IgniteConfigurationSection.xsd"));
document.Load(new StringReader(xml));
@@ -542,7 +546,10 @@ namespace Apache.Ignite.Core.Tests
SlowClientQueueLimit = 98,
SocketSendBufferSize = 2045,
UnacknowledgedMessagesBufferSize = 3450
- }
+ },
+ IsLateAffinityAssignment = false,
+ SpringConfigUrl = "test",
+ Logger = new TestLogger()
};
}
@@ -688,5 +695,24 @@ namespace Apache.Ignite.Core.Tests
return null;
}
}
+
+ /// <summary>
+ /// Test logger.
+ /// </summary>
+ public class TestLogger : ILogger
+ {
+ /** <inheritdoc /> */
+ public void Log(LogLevel level, string message, object[] args, IFormatProvider formatProvider, string category,
+ string nativeErrorInfo, Exception ex)
+ {
+ throw new NotImplementedException();
+ }
+
+ /** <inheritdoc /> */
+ public bool IsEnabled(LogLevel level)
+ {
+ throw new NotImplementedException();
+ }
+ }
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/CustomLoggerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/CustomLoggerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/CustomLoggerTest.cs
new file mode 100644
index 0000000..73134fe
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/CustomLoggerTest.cs
@@ -0,0 +1,430 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.Log
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Globalization;
+ using System.Linq;
+ using Apache.Ignite.Core.Cache.Configuration;
+ using Apache.Ignite.Core.Common;
+ using Apache.Ignite.Core.Communication.Tcp;
+ using Apache.Ignite.Core.Compute;
+ using Apache.Ignite.Core.Impl;
+ using Apache.Ignite.Core.Lifecycle;
+ using Apache.Ignite.Core.Log;
+ using Apache.Ignite.Core.Resource;
+ using NUnit.Framework;
+
+ /// <summary>
+ /// Tests that user-defined logger receives Ignite events.
+ /// </summary>
+ public class CustomLoggerTest
+ {
+ /** */
+ private static readonly LogLevel[] AllLevels = Enum.GetValues(typeof (LogLevel)).OfType<LogLevel>().ToArray();
+
+ /// <summary>
+ /// Test setup.
+ /// </summary>
+ [SetUp]
+ public void TestSetUp()
+ {
+ TestLogger.Entries.Clear();
+ }
+
+ /// <summary>
+ /// Tests the startup output.
+ /// </summary>
+ [Test]
+ public void TestStartupOutput()
+ {
+ var cfg = GetConfigWithLogger(true);
+ using (var ignite = Ignition.Start(cfg))
+ {
+ // Check injection
+ Assert.AreEqual(((Ignite) ignite).Proxy, ((TestLogger) cfg.Logger).Ignite);
+
+ // Check initial message
+ Assert.IsTrue(TestLogger.Entries[0].Message.StartsWith("Starting Ignite.NET"));
+
+ // Check topology message
+ Assert.IsTrue(
+ TestUtils.WaitForCondition(() =>
+ {
+ lock (TestLogger.Entries)
+ {
+ return TestLogger.Entries.Any(x => x.Message.Contains("Topology snapshot"));
+ }
+ }, 9000), "No topology snapshot");
+ }
+
+ // Test that all levels are present
+ foreach (var level in AllLevels.Where(x => x != LogLevel.Error))
+ Assert.IsTrue(TestLogger.Entries.Any(x => x.Level == level), "No messages with level " + level);
+ }
+
+
+ /// <summary>
+ /// Tests startup error in Java.
+ /// </summary>
+ [Test]
+ public void TestStartupJavaError()
+ {
+ // Invalid config
+ Assert.Throws<IgniteException>(() =>
+ Ignition.Start(new IgniteConfiguration(GetConfigWithLogger())
+ {
+ CommunicationSpi = new TcpCommunicationSpi
+ {
+ IdleConnectionTimeout = TimeSpan.MinValue
+ }
+ }));
+
+ var err = TestLogger.Entries.First(x => x.Level == LogLevel.Error);
+ Assert.IsTrue(err.NativeErrorInfo.Contains("SPI parameter failed condition check: idleConnTimeout > 0"));
+ Assert.AreEqual("org.apache.ignite.internal.IgniteKernal", err.Category);
+ Assert.IsNull(err.Exception);
+ }
+
+ /// <summary>
+ /// Tests startup error in .NET.
+ /// </summary>
+ [Test]
+ public void TestStartupDotNetError()
+ {
+ // Invalid bean
+ Assert.Throws<IgniteException>(() =>
+ Ignition.Start(new IgniteConfiguration(GetConfigWithLogger())
+ {
+ LifecycleBeans = new[] {new FailBean()}
+ }));
+
+ var err = TestLogger.Entries.First(x => x.Level == LogLevel.Error);
+ Assert.IsInstanceOf<ArithmeticException>(err.Exception);
+ }
+
+ /// <summary>
+ /// Tests that .NET exception propagates through Java to the log.
+ /// </summary>
+ [Test]
+ public void TestDotNetErrorPropagation()
+ {
+ // Start 2 nodes: PlatformNativeException does not occur in local scenario
+ using (var ignite = Ignition.Start(GetConfigWithLogger()))
+ using (Ignition.Start(new IgniteConfiguration(TestUtils.GetTestConfiguration()) {GridName = "1"}))
+ {
+ var compute = ignite.GetCluster().ForRemotes().GetCompute();
+
+ Assert.Throws<ArithmeticException>(() => compute.Call(new FailFunc()));
+
+ // Log updates may not arrive immediately
+ TestUtils.WaitForCondition(() => TestLogger.Entries.Any(x => x.Exception != null), 3000);
+
+ var errFromJava = TestLogger.Entries.Single(x => x.Exception != null);
+ Assert.AreEqual("Error in func.", ((ArithmeticException) errFromJava.Exception.InnerException).Message);
+ }
+ }
+
+ /// <summary>
+ /// Tests the <see cref="QueryEntity"/> validation.
+ /// </summary>
+ [Test]
+ public void TestQueryEntityValidation()
+ {
+ var cacheCfg = new CacheConfiguration("cache1", new QueryEntity(typeof(uint), typeof(ulong))
+ {
+ Fields = new[]
+ {
+ new QueryField("myField", typeof(ushort))
+ }
+ });
+
+ var cfg = new IgniteConfiguration(GetConfigWithLogger())
+ {
+ CacheConfiguration = new[]
+ {
+ cacheCfg
+ }
+ };
+
+ using (var ignite = Ignition.Start(cfg))
+ {
+ // Check static and dynamic cache start
+ cacheCfg.Name = "cache2";
+ ignite.CreateCache<int, string>(cacheCfg);
+
+ var warns = TestLogger.Entries.Where(x => x.Level == LogLevel.Warn && x.Args != null)
+ .Select(x => string.Format(x.Message, x.Args)).ToList();
+
+ Assert.AreEqual(6, warns.Count);
+
+ Assert.AreEqual("Validating cache configuration 'cache1', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long': Type 'System.UInt32' maps to Java type 'java.lang.Integer' using unchecked " +
+ "conversion. This may cause issues in SQL queries. You can use 'System.Int32' " +
+ "instead to achieve direct mapping.", warns[0]);
+
+ Assert.AreEqual("Validating cache configuration 'cache1', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long': Type 'System.UInt64' maps to Java type 'java.lang.Long' using unchecked " +
+ "conversion. This may cause issues in SQL queries. You can use 'System.Int64' " +
+ "instead to achieve direct mapping.", warns[1]);
+
+ Assert.AreEqual("Validating cache configuration 'cache1', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long', QueryField 'myField': Type 'System.UInt16' maps to Java type 'java.lang." +
+ "Short' using unchecked conversion. This may cause issues in SQL queries. You " +
+ "can use 'System.Int16' instead to achieve direct mapping.", warns[2]);
+
+ Assert.AreEqual("Validating cache configuration 'cache2', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long': Type 'System.UInt32' maps to Java type 'java.lang.Integer' using unchecked " +
+ "conversion. This may cause issues in SQL queries. You can use 'System.Int32' " +
+ "instead to achieve direct mapping.", warns[3]);
+
+ Assert.AreEqual("Validating cache configuration 'cache2', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long': Type 'System.UInt64' maps to Java type 'java.lang.Long' using unchecked " +
+ "conversion. This may cause issues in SQL queries. You can use 'System.Int64' " +
+ "instead to achieve direct mapping.", warns[4]);
+
+ Assert.AreEqual("Validating cache configuration 'cache2', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long', QueryField 'myField': Type 'System.UInt16' maps to Java type 'java.lang." +
+ "Short' using unchecked conversion. This may cause issues in SQL queries. You " +
+ "can use 'System.Int16' instead to achieve direct mapping.", warns[5]);
+ }
+ }
+
+ /// <summary>
+ /// Tests the <see cref="LoggerExtensions"/> methods.
+ /// </summary>
+ [Test]
+ public void TestExtensions()
+ {
+ var log = new TestLogger(LogLevel.Trace);
+ var ex = new FieldAccessException("abc");
+
+ // Log
+ log.Log(LogLevel.Trace, "trace");
+ CheckLastMessage(LogLevel.Trace, "trace");
+
+ log.Log(LogLevel.Debug, "msg {0} {1}", 1, "2");
+ CheckLastMessage(LogLevel.Debug, "msg {0} {1}", new object[] { 1, "2" }, CultureInfo.InvariantCulture);
+
+ log.Log(LogLevel.Info, ex, "msg");
+ CheckLastMessage(LogLevel.Info, "msg", e: ex);
+
+ log.Log(LogLevel.Warn, ex, "msg {0}", 1);
+ CheckLastMessage(LogLevel.Warn, "msg {0}", new object[] {1}, CultureInfo.InvariantCulture, e: ex);
+
+ // Trace
+ log.Trace("trace");
+ CheckLastMessage(LogLevel.Trace, "trace");
+
+ log.Trace("msg {0} {1}", 1, "2");
+ CheckLastMessage(LogLevel.Trace, "msg {0} {1}", new object[] { 1, "2" }, CultureInfo.InvariantCulture);
+
+ log.Trace(ex, "msg");
+ CheckLastMessage(LogLevel.Trace, "msg", e: ex);
+
+ log.Trace(ex, "msg {0}", 1);
+ CheckLastMessage(LogLevel.Trace, "msg {0}", new object[] { 1 }, CultureInfo.InvariantCulture, e: ex);
+
+ // Debug
+ log.Debug("test");
+ CheckLastMessage(LogLevel.Debug, "test");
+
+ log.Debug("msg {0} {1}", 1, "2");
+ CheckLastMessage(LogLevel.Debug, "msg {0} {1}", new object[] { 1, "2" }, CultureInfo.InvariantCulture);
+
+ log.Debug(ex, "msg");
+ CheckLastMessage(LogLevel.Debug, "msg", e: ex);
+
+ log.Debug(ex, "msg {0}", 1);
+ CheckLastMessage(LogLevel.Debug, "msg {0}", new object[] { 1 }, CultureInfo.InvariantCulture, e: ex);
+
+ // Info
+ log.Info("test");
+ CheckLastMessage(LogLevel.Info, "test");
+
+ log.Info("msg {0} {1}", 1, "2");
+ CheckLastMessage(LogLevel.Info, "msg {0} {1}", new object[] { 1, "2" }, CultureInfo.InvariantCulture);
+
+ log.Info(ex, "msg");
+ CheckLastMessage(LogLevel.Info, "msg", e: ex);
+
+ log.Info(ex, "msg {0}", 1);
+ CheckLastMessage(LogLevel.Info, "msg {0}", new object[] { 1 }, CultureInfo.InvariantCulture, e: ex);
+
+ // Warn
+ log.Warn("test");
+ CheckLastMessage(LogLevel.Warn, "test");
+
+ log.Warn("msg {0} {1}", 1, "2");
+ CheckLastMessage(LogLevel.Warn, "msg {0} {1}", new object[] { 1, "2" }, CultureInfo.InvariantCulture);
+
+ log.Warn(ex, "msg");
+ CheckLastMessage(LogLevel.Warn, "msg", e: ex);
+
+ log.Warn(ex, "msg {0}", 1);
+ CheckLastMessage(LogLevel.Warn, "msg {0}", new object[] { 1 }, CultureInfo.InvariantCulture, e: ex);
+
+ // Error
+ log.Error("test");
+ CheckLastMessage(LogLevel.Error, "test");
+
+ log.Error("msg {0} {1}", 1, "2");
+ CheckLastMessage(LogLevel.Error, "msg {0} {1}", new object[] { 1, "2" }, CultureInfo.InvariantCulture);
+
+ log.Error(ex, "msg");
+ CheckLastMessage(LogLevel.Error, "msg", e: ex);
+
+ log.Error(ex, "msg {0}", 1);
+ CheckLastMessage(LogLevel.Error, "msg {0}", new object[] { 1 }, CultureInfo.InvariantCulture, e: ex);
+
+ // GetLogger
+ var catLog = log.GetLogger("myCategory");
+ catLog.Info("info");
+ CheckLastMessage(LogLevel.Info, "info", category: "myCategory");
+
+ catLog.Log(LogLevel.Info, "info", null, null, "explicitCat", null, null);
+ CheckLastMessage(LogLevel.Info, "info", category: "explicitCat");
+
+ catLog = catLog.GetLogger("newCat");
+ catLog.Info("info");
+ CheckLastMessage(LogLevel.Info, "info", category: "newCat");
+
+ catLog.Log(LogLevel.Info, "info", null, null, "explicitCat", null, null);
+ CheckLastMessage(LogLevel.Info, "info", category: "explicitCat");
+ }
+
+ /// <summary>
+ /// Checks the last message.
+ /// </summary>
+ private static void CheckLastMessage(LogLevel level, string message, object[] args = null,
+ IFormatProvider formatProvider = null, string category = null, string nativeErr = null, Exception e = null)
+ {
+ var msg = TestLogger.Entries.Last();
+
+ Assert.AreEqual(msg.Level, level);
+ Assert.AreEqual(msg.Message, message);
+ Assert.AreEqual(msg.Args, args);
+ Assert.AreEqual(msg.FormatProvider, formatProvider);
+ Assert.AreEqual(msg.Category, category);
+ Assert.AreEqual(msg.NativeErrorInfo, nativeErr);
+ Assert.AreEqual(msg.Exception, e);
+ }
+
+ /// <summary>
+ /// Gets the configuration with logger.
+ /// </summary>
+ private static IgniteConfiguration GetConfigWithLogger(bool verbose = false)
+ {
+ return new IgniteConfiguration(TestUtils.GetTestConfiguration())
+ {
+ Logger = new TestLogger(verbose ? LogLevel.Trace : LogLevel.Info)
+ };
+ }
+
+ /// <summary>
+ /// Test log entry.
+ /// </summary>
+ private class LogEntry
+ {
+ public LogLevel Level;
+ public string Message;
+ public object[] Args;
+ public IFormatProvider FormatProvider;
+ public string Category;
+ public string NativeErrorInfo;
+ public Exception Exception;
+
+ public override string ToString()
+ {
+ return string.Format("Level: {0}, Message: {1}, Args: {2}, FormatProvider: {3}, Category: {4}, " +
+ "NativeErrorInfo: {5}, Exception: {6}", Level, Message, Args, FormatProvider,
+ Category, NativeErrorInfo, Exception);
+ }
+ }
+
+ /// <summary>
+ /// Test logger.
+ /// </summary>
+ private class TestLogger : ILogger
+ {
+ public static readonly List<LogEntry> Entries = new List<LogEntry>(5000);
+
+ private readonly LogLevel _minLevel;
+
+ public TestLogger(LogLevel minLevel)
+ {
+ _minLevel = minLevel;
+ }
+
+ public void Log(LogLevel level, string message, object[] args, IFormatProvider formatProvider,
+ string category, string nativeErrorInfo, Exception ex)
+ {
+ if (!IsEnabled(level))
+ return;
+
+ lock (Entries)
+ {
+ Entries.Add(new LogEntry
+ {
+ Level = level,
+ Message = message,
+ Args = args,
+ FormatProvider = formatProvider,
+ Category = category,
+ NativeErrorInfo = nativeErrorInfo,
+ Exception = ex
+ });
+ }
+ }
+
+ public bool IsEnabled(LogLevel level)
+ {
+ return level >= _minLevel;
+ }
+
+ [InstanceResource]
+ // ReSharper disable once UnusedAutoPropertyAccessor.Local
+ public IIgnite Ignite { get; set; }
+ }
+
+
+ /// <summary>
+ /// Failing lifecycle bean.
+ /// </summary>
+ private class FailBean : ILifecycleBean
+ {
+ public void OnLifecycleEvent(LifecycleEventType evt)
+ {
+ throw new ArithmeticException("Failure in bean");
+ }
+ }
+
+ /// <summary>
+ /// Failing computation.
+ /// </summary>
+ [Serializable]
+ private class FailFunc : IComputeFunc<string>
+ {
+ public string Invoke()
+ {
+ throw new ArithmeticException("Error in func.");
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/DefaultLoggerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/DefaultLoggerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/DefaultLoggerTest.cs
new file mode 100644
index 0000000..6623416
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/DefaultLoggerTest.cs
@@ -0,0 +1,114 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.Log
+{
+ using System;
+ using System.IO;
+ using System.Linq;
+ using Apache.Ignite.Core.Cache.Configuration;
+ using Apache.Ignite.Core.Impl.Common;
+ using NUnit.Framework;
+ using LogLevel = Apache.Ignite.Core.Log.LogLevel;
+
+ /// <summary>
+ /// Tests the default logger.
+ /// </summary>
+ public class DefaultLoggerTest
+ {
+ /// <summary>
+ /// Tests that default Java mechanism is used when there is no custom logger.
+ /// </summary>
+ [Test]
+ public void TestJavaLogger()
+ {
+ // Run the test in a separate process because log4jlogger has some static state,
+ // and after Ignite has been started once, it is not possible to start a new node
+ // with a different logger config.
+ const string envVar = "DefaultLoggerTest.TestJavaLogger";
+
+ if (Environment.GetEnvironmentVariable(envVar) == "true")
+ {
+ // Delete all log files from the work dir
+ Func<string[]> getLogs = () =>
+ Directory.GetFiles(IgniteHome.Resolve(null), "dotnet-logger-test.log", SearchOption.AllDirectories);
+
+ getLogs().ToList().ForEach(File.Delete);
+
+ var cfg = new IgniteConfiguration(TestUtils.GetTestConfiguration(false))
+ {
+ SpringConfigUrl = @"config\log\custom-log.xml",
+ CacheConfiguration = new[]
+ {
+ new CacheConfiguration("cache1", new QueryEntity(typeof(uint), typeof(ulong)))
+ }
+ };
+
+ // Start Ignite and verify file log
+ using (var ignite = Ignition.Start(cfg))
+ {
+ // Log with all levels
+ var log = ignite.Logger;
+ var levels = new[] {LogLevel.Trace, LogLevel.Info, LogLevel.Debug, LogLevel.Warn, LogLevel.Error};
+
+ foreach (var level in levels)
+ {
+ var ex = new Exception("EXCEPTION_TEST_" + level);
+
+ log.Log(level, "DOTNET-" + level, null, null, "=DOTNET=", null, ex);
+ }
+ }
+
+ using (var fs = File.Open(getLogs().Single(), FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
+ {
+ var log = new StreamReader(fs).ReadToEnd();
+
+ // Check output from Java:
+ Assert.IsTrue(log.Contains(">>> Topology snapshot."));
+
+ // Check output from .NET:
+ Assert.IsTrue(log.Contains("Starting Ignite.NET " + typeof(Ignition).Assembly.GetName().Version));
+
+ Assert.IsTrue(log.Contains(
+ "Validating cache configuration 'cache1', QueryEntity 'java.lang.Integer:java.lang." +
+ "Long': Type 'System.UInt32' maps to Java type 'java.lang.Integer' using unchecked " +
+ "conversion. This may cause issues in SQL queries. You can use 'System.Int32' " +
+ "instead to achieve direct mapping."));
+
+
+ // Check custom log output (trace is disabled, errors are logged from Warn and up):
+ Assert.IsTrue(log.Contains("[INFO ][main][=DOTNET=] DOTNET-Info"));
+
+ Assert.IsTrue(log.Contains("[DEBUG][main][=DOTNET=] DOTNET-Debug"));
+
+ Assert.IsTrue(log.Contains("[WARN ][main][=DOTNET=] DOTNET-Warn"));
+ Assert.IsTrue(log.Contains("class org.apache.ignite.IgniteException: " +
+ "Platform error:System.Exception: EXCEPTION_TEST_Warn"));
+
+ Assert.IsTrue(log.Contains("[ERROR][main][=DOTNET=] DOTNET-Error"));
+ Assert.IsTrue(log.Contains("class org.apache.ignite.IgniteException: " +
+ "Platform error:System.Exception: EXCEPTION_TEST_Error"));
+ }
+ }
+ else
+ {
+ Environment.SetEnvironmentVariable(envVar, "true");
+ TestUtils.RunTestInNewProcess(GetType().FullName, "TestJavaLogger");
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestUtils.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestUtils.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestUtils.cs
index 6ca2f9d..d3851db 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestUtils.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestUtils.cs
@@ -21,6 +21,7 @@ namespace Apache.Ignite.Core.Tests
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
+ using System.Diagnostics;
using System.Linq;
using System.Threading;
using Apache.Ignite.Core.Discovery.Tcp;
@@ -336,5 +337,30 @@ namespace Apache.Ignite.Core.Tests
JvmClasspath = CreateTestClasspath()
};
}
+
+ /// <summary>
+ /// Runs the test in new process.
+ /// </summary>
+ public static void RunTestInNewProcess(string fixtureName, string testName)
+ {
+ var procStart = new ProcessStartInfo
+ {
+ FileName = typeof(TestUtils).Assembly.Location,
+ Arguments = fixtureName + " " + testName,
+ CreateNoWindow = true,
+ UseShellExecute = false,
+ RedirectStandardOutput = true,
+ RedirectStandardError = true
+ };
+
+ var proc = System.Diagnostics.Process.Start(procStart);
+
+ Assert.IsNotNull(proc);
+
+ Console.WriteLine(proc.StandardOutput.ReadToEnd());
+ Console.WriteLine(proc.StandardError.ReadToEnd());
+ Assert.IsTrue(proc.WaitForExit(15000));
+ Assert.AreEqual(0, proc.ExitCode);
+ }
}
}
[14/50] [abbrv] ignite git commit: IGNITE-4004 .NET: Remove non-ASCII
characters from code
Posted by sh...@apache.org.
IGNITE-4004 .NET: Remove non-ASCII characters from code
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/00576d8a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/00576d8a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/00576d8a
Branch: refs/heads/ignite-2788
Commit: 00576d8a937bf6ab12db02b3d7b225b01cd37c0e
Parents: 106d496
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Thu Sep 29 17:50:33 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Thu Sep 29 17:50:33 2016 +0300
----------------------------------------------------------------------
.../Properties/AssemblyInfo.cs | 2 +-
.../Properties/AssemblyInfo.cs | 36 +++++-----
.../Properties/AssemblyInfo.cs | 34 ++++-----
.../Properties/AssemblyInfo.cs | 34 ++++-----
.../Affinity/AffinityFunctionSpringTest.cs | 38 +++++-----
.../ProjectFilesTest.cs | 11 +--
.../Properties/AssemblyInfo.cs | 36 +++++-----
.../Apache.Ignite.Core.Tests/TestRunner.cs | 37 +++++-----
.../Apache.Ignite.Core/Cache/ICacheLock.cs | 2 +-
.../Apache.Ignite.Core/Cache/ICacheMetrics.cs | 8 +--
.../Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs | 2 +-
.../Memory/PlatformBigEndianMemoryStream.cs | 34 ++++-----
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 74 ++++++++++----------
.../Properties/AssemblyInfo.cs | 36 +++++-----
.../Apache.Ignite.Linq/ICacheQueryable.cs | 32 ++++-----
.../Properties/AssemblyInfo.cs | 36 +++++-----
.../Apache.Ignite/Properties/AssemblyInfo.cs | 36 +++++-----
.../Properties/AssemblyInfo.cs | 40 +++++------
.../Properties/AssemblyInfo.cs | 38 +++++-----
19 files changed, 282 insertions(+), 284 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.AspNet/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.AspNet/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.AspNet/Properties/AssemblyInfo.cs
index 2a7da67..0483c95 100644
--- a/modules/platforms/dotnet/Apache.Ignite.AspNet/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.AspNet/Properties/AssemblyInfo.cs
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2016")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
index 85af146..9a3da85 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Benchmarks/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System.Reflection;
using System.Runtime.InteropServices;
@@ -23,7 +23,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -33,4 +33,4 @@ using System.Runtime.InteropServices;
[assembly: AssemblyVersion("1.8.0.14218")]
[assembly: AssemblyFileVersion("1.8.0.14218")]
-[assembly: AssemblyInformationalVersion("1.8.0")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Properties/AssemblyInfo.cs
index 34fca37..e48b8fd 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System.Reflection;
using System.Runtime.InteropServices;
@@ -32,4 +32,4 @@ using System.Runtime.InteropServices;
[assembly: AssemblyVersion("1.8.0.14218")]
[assembly: AssemblyFileVersion("1.8.0.14218")]
-[assembly: AssemblyInformationalVersion("1.8.0")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
index 4aa03f1..3e7b663 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.TestDll/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System.Reflection;
using System.Runtime.InteropServices;
@@ -23,7 +23,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Affinity/AffinityFunctionSpringTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Affinity/AffinityFunctionSpringTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Affinity/AffinityFunctionSpringTest.cs
index 8d118be..48c5814 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Affinity/AffinityFunctionSpringTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Cache/Affinity/AffinityFunctionSpringTest.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
// ReSharper disable UnusedAutoPropertyAccessor.Local
// ReSharper disable UnusedMember.Local
@@ -162,13 +162,13 @@ namespace Apache.Ignite.Core.Tests.Cache.Affinity
Assert.Greater(basePart, -1);
Assert.Less(basePart, Partitions);
- var longKey = (long) key;
+ var longKey = (long)key;
int res;
if (PredefinedParts.TryGetValue(longKey, out res))
return res;
- return (int) (longKey * 2 % 5);
+ return (int)(longKey * 2 % 5);
}
public override IEnumerable<IEnumerable<IClusterNode>> AssignPartitions(AffinityFunctionContext context)
@@ -181,4 +181,4 @@ namespace Apache.Ignite.Core.Tests.Cache.Affinity
}
}
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ProjectFilesTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ProjectFilesTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ProjectFilesTest.cs
index a030bf2..cadc10b 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ProjectFilesTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/ProjectFilesTest.cs
@@ -56,14 +56,15 @@ namespace Apache.Ignite.Core.Tests
}
/// <summary>
- /// Tests that there are no Cyrillic C instead of English C (which are on the same keyboard key).
+ /// Tests that there are no non-ASCII chars.
/// </summary>
[Test]
- public void TestCyrillicChars()
+ public void TestAsciiChars()
{
- var srcFiles = GetDotNetSourceDir().GetFiles("*.cs", SearchOption.AllDirectories);
+ var srcFiles = GetDotNetSourceDir().GetFiles("*.cs", SearchOption.AllDirectories)
+ .Where(x => x.Name != "BinaryStringTest.cs" && x.Name != "BinarySelfTest.cs");
- CheckFiles(srcFiles, x => x.Contains('\u0441') || x.Contains('\u0421'), "Files with Cyrillic 'C': ");
+ CheckFiles(srcFiles, x => x.Any(ch => ch > 255), "Files with non-ASCII chars: ");
}
/// <summary>
@@ -74,7 +75,7 @@ namespace Apache.Ignite.Core.Tests
var invalidFiles = files.Where(x => isInvalid(File.ReadAllText(x.FullName))).ToArray();
Assert.AreEqual(0, invalidFiles.Length,
- errorText + string.Join(", ", invalidFiles.Select(x => x.FullName)));
+ errorText + string.Join("\n ", invalidFiles.Select(x => x.FullName)));
}
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
index 9eb2e24..817634e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System.Reflection;
using System.Runtime.InteropServices;
@@ -23,7 +23,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -33,4 +33,4 @@ using System.Runtime.InteropServices;
[assembly: AssemblyVersion("1.8.0.14218")]
[assembly: AssemblyFileVersion("1.8.0.14218")]
-[assembly: AssemblyInformationalVersion("1.8.0")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestRunner.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestRunner.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestRunner.cs
index facc598..d67d24b 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestRunner.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/TestRunner.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
namespace Apache.Ignite.Core.Tests
{
@@ -21,9 +21,6 @@ namespace Apache.Ignite.Core.Tests
using System.Diagnostics;
using System.Linq;
using System.Reflection;
- using Apache.Ignite.Core.Tests.Binary;
- using Apache.Ignite.Core.Tests.Cache.Affinity;
- using Apache.Ignite.Core.Tests.Cache.Query;
using Apache.Ignite.Core.Tests.Memory;
using NUnit.ConsoleRunner;
@@ -100,4 +97,4 @@ namespace Apache.Ignite.Core.Tests
}
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheLock.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheLock.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheLock.cs
index a930961..4edfb53 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheLock.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheLock.cs
@@ -43,7 +43,7 @@ namespace Apache.Ignite.Core.Cache
/// </summary>
/// <param name="timeout">
/// A <see cref="TimeSpan" /> representing the amount of time to wait for the lock.
- /// A value of \u20131 millisecond specifies an infinite wait.
+ /// A value of -1 millisecond specifies an infinite wait.
/// </param>
/// <returns>True if the current thread acquires the lock; otherwise, false.</returns>
bool TryEnter(TimeSpan timeout);
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheMetrics.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheMetrics.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheMetrics.cs
index 3405625..3c01587 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheMetrics.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/ICacheMetrics.cs
@@ -92,7 +92,7 @@ namespace Apache.Ignite.Core.Cache
/// The mean time to execute gets.
/// </summary>
/// <returns>
- /// The time in \ufffds.
+ /// The time in ms.
/// </returns>
float AverageGetTime { get; }
@@ -100,7 +100,7 @@ namespace Apache.Ignite.Core.Cache
/// The mean time to execute puts.
/// </summary>
/// <returns>
- /// The time in \ufffds.
+ /// The time in s.
/// </returns>
float AveragePutTime { get; }
@@ -108,7 +108,7 @@ namespace Apache.Ignite.Core.Cache
/// The mean time to execute removes.
/// </summary>
/// <returns>
- /// The time in \ufffds.
+ /// The time in ms.
/// </returns>
float AverageRemoveTime { get; }
@@ -116,7 +116,7 @@ namespace Apache.Ignite.Core.Cache
/// The mean time to execute tx commit.
/// </summary>
/// <returns>
- /// The time in \ufffds.
+ /// The time in ms.
/// </returns>
float AverageTxCommitTime { get; }
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs
index 231220a..3c2c871 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs
@@ -18,7 +18,7 @@
namespace Apache.Ignite.Core.Impl.Common
{
/// <summary>
- /// Fowler\u2013Noll\u2013Vo hash function.
+ /// Fowler-Noll-Vo hash function.
/// </summary>
internal static class Fnv1Hash
{
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Memory/PlatformBigEndianMemoryStream.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Memory/PlatformBigEndianMemoryStream.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Memory/PlatformBigEndianMemoryStream.cs
index d59d572..70f9127 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Memory/PlatformBigEndianMemoryStream.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Memory/PlatformBigEndianMemoryStream.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
namespace Apache.Ignite.Core.Impl.Memory
{
@@ -488,4 +488,4 @@ namespace Apache.Ignite.Core.Impl.Memory
#endregion
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
index 267c717..e623969 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
namespace Apache.Ignite.Core.Impl.Unmanaged
{
@@ -53,9 +53,9 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
/// Unmanaged callbacks.
/// </summary>
[SuppressMessage("ReSharper", "UnusedMember.Local")]
- [SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable",
+ [SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable",
Justification = "This class instance usually lives as long as the app runs.")]
- [SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable",
+ [SuppressMessage("Microsoft.Design", "CA1049:TypesThatOwnNativeResourcesShouldBeDisposable",
Justification = "This class instance usually lives as long as the app runs.")]
internal unsafe class UnmanagedCallbacks
{
@@ -71,7 +71,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
/** Handle registry. */
private readonly HandleRegistry _handleRegistry = new HandleRegistry();
-
+
/** Grid. */
private volatile Ignite _ignite;
@@ -155,7 +155,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
private delegate long MessagingFilterCreateCallbackDelegate(void* target, long memPtr);
private delegate int MessagingFilterApplyCallbackDelegate(void* target, long ptr, long memPtr);
private delegate void MessagingFilterDestroyCallbackDelegate(void* target, long ptr);
-
+
private delegate long EventFilterCreateCallbackDelegate(void* target, long memPtr);
private delegate int EventFilterApplyCallbackDelegate(void* target, long ptr, long memPtr);
private delegate void EventFilterDestroyCallbackDelegate(void* target, long ptr);
@@ -171,7 +171,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
private delegate void OnStartCallbackDelegate(void* target, void* proc, long memPtr);
private delegate void OnStopCallbackDelegate(void* target);
-
+
private delegate void ErrorCallbackDelegate(void* target, int errType, sbyte* errClsChars, int errClsCharsLen, sbyte* errMsgChars, int errMsgCharsLen, sbyte* stackTraceChars, int stackTraceCharsLen, void* errData, int errDataLen);
private delegate long ExtensionCallbackInLongOutLongDelegate(void* target, int typ, long arg1);
@@ -209,7 +209,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
cacheStoreDestroy = CreateFunctionPointer((CacheStoreDestroyCallbackDelegate) CacheStoreDestroy),
cacheStoreSessionCreate = CreateFunctionPointer((CacheStoreSessionCreateCallbackDelegate) CacheStoreSessionCreate),
-
+
cacheEntryFilterCreate = CreateFunctionPointer((CacheEntryFilterCreateCallbackDelegate)CacheEntryFilterCreate),
cacheEntryFilterApply = CreateFunctionPointer((CacheEntryFilterApplyCallbackDelegate)CacheEntryFilterApply),
cacheEntryFilterDestroy = CreateFunctionPointer((CacheEntryFilterDestroyCallbackDelegate)CacheEntryFilterDestroy),
@@ -238,7 +238,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
CreateFunctionPointer((DataStreamerTopologyUpdateCallbackDelegate) DataStreamerTopologyUpdate),
dataStreamerStreamReceiverInvoke =
CreateFunctionPointer((DataStreamerStreamReceiverInvokeCallbackDelegate) DataStreamerStreamReceiverInvoke),
-
+
futureByteResult = CreateFunctionPointer((FutureByteResultCallbackDelegate) FutureByteResult),
futureBoolResult = CreateFunctionPointer((FutureBoolResultCallbackDelegate) FutureBoolResult),
futureShortResult = CreateFunctionPointer((FutureShortResultCallbackDelegate) FutureShortResult),
@@ -253,7 +253,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
lifecycleOnEvent = CreateFunctionPointer((LifecycleOnEventCallbackDelegate) LifecycleOnEvent),
memoryReallocate = CreateFunctionPointer((MemoryReallocateCallbackDelegate) MemoryReallocate),
nodeInfo = CreateFunctionPointer((NodeInfoCallbackDelegate) NodeInfo),
-
+
messagingFilterCreate = CreateFunctionPointer((MessagingFilterCreateCallbackDelegate)MessagingFilterCreate),
messagingFilterApply = CreateFunctionPointer((MessagingFilterApplyCallbackDelegate)MessagingFilterApply),
messagingFilterDestroy = CreateFunctionPointer((MessagingFilterDestroyCallbackDelegate)MessagingFilterDestroy),
@@ -268,11 +268,11 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
serviceInvokeMethod = CreateFunctionPointer((ServiceInvokeMethodCallbackDelegate)ServiceInvokeMethod),
clusterNodeFilterApply = CreateFunctionPointer((ClusterNodeFilterApplyCallbackDelegate)ClusterNodeFilterApply),
-
+
onStart = CreateFunctionPointer((OnStartCallbackDelegate)OnStart),
onStop = CreateFunctionPointer((OnStopCallbackDelegate)OnStop),
error = CreateFunctionPointer((ErrorCallbackDelegate)Error),
-
+
extensionCbInLongOutLong = CreateFunctionPointer((ExtensionCallbackInLongOutLongDelegate)ExtensionCallbackInLongOutLong),
extensionCbInLongLongOutLong = CreateFunctionPointer((ExtensionCallbackInLongLongOutLongDelegate)ExtensionCallbackInLongLongOutLong),
@@ -339,7 +339,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
IUnmanagedTarget cb0 = null;
- if ((long) cb != 0)
+ if ((long)cb != 0)
cb0 = new UnmanagedNonReleaseableTarget(_ctx, cb);
using (PlatformMemoryStream stream = IgniteManager.Memory.Get(memPtr).GetStream())
@@ -461,7 +461,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
{
return task.JobResultLocal(Job(jobPtr));
}
-
+
using (var stream = IgniteManager.Memory.Get(memPtr).GetStream())
{
return task.JobResultRemote(Job(jobPtr), stream);
@@ -605,7 +605,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
var filterHolder = reader.ReadObject<ContinuousQueryFilterHolder>();
// 2. Create real filter from it's holder.
- var filter = (IContinuousQueryFilter) DelegateTypeDescriptor.GetContinuousQueryFilterCtor(
+ var filter = (IContinuousQueryFilter)DelegateTypeDescriptor.GetContinuousQueryFilterCtor(
filterHolder.Filter.GetType())(filterHolder.Filter, filterHolder.KeepBinary);
// 3. Inject grid.
@@ -639,7 +639,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
holder.Release();
});
}
-
+
#endregion
#region IMPLEMENTATION: DATA STREAMER
@@ -685,7 +685,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
#endregion
-
+
#region IMPLEMENTATION: FUTURES
private void FutureByteResult(void* target, long futPtr, int res)
@@ -861,7 +861,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
return SafeCall(() =>
{
var holder = _ignite.HandleRegistry.Get<MessageListenerHolder>(ptr, false);
-
+
if (holder == null)
return 0;
@@ -879,7 +879,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
_ignite.HandleRegistry.Release(ptr);
});
}
-
+
#endregion
#region IMPLEMENTATION: EXTENSIONS
@@ -942,7 +942,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
_ignite.HandleRegistry.Release(ptr);
});
}
-
+
#endregion
#region IMPLEMENTATION: SERVICES
@@ -1098,7 +1098,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
if (ignite != null)
ignite.AfterNodeStop();
}
-
+
private void Error(void* target, int errType, sbyte* errClsChars, int errClsCharsLen, sbyte* errMsgChars,
int errMsgCharsLen, sbyte* stackTraceChars, int stackTraceCharsLen, void* errData, int errDataLen)
{
@@ -1402,7 +1402,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
public void Cleanup()
{
_ignite = null;
-
+
_handleRegistry.Close();
}
@@ -1414,4 +1414,4 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
get { return ConsoleWritePtr; }
}
}
-}
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
index 9fcbeb0..9b5eea4 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System;
using System.Reflection;
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2016")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -45,4 +45,4 @@ using System.Runtime.InteropServices;
[assembly: InternalsVisibleTo("Apache.Ignite.Benchmarks, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a3e0c1df4cbedbd4ed0e88808401c69b69ec12575ed1c056ac9f448e018fb29af19d236b7b03563aad66c48ab2045e72971ed098d4f65d4cdd38d65abcb39b4f84c626b22ccab2754375f0e8c97dc304fa146f0eddad5cc40a71803a8f15b0b0bb0bff0d4bf0ff6a64bb1044e0d71e6e2405b83fd4c1f7b3e2cfc2e9d50823d4")]
[assembly: InternalsVisibleTo("Apache.Ignite.AspNet.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c9380ce05eb74bd7c531f72e9ea615c59d7eceb09bd9795cb3dff1fcf638fd799c2a58a9be42fff156efe1c8cdebb751e27763f6c9a7c80cdc1dc1bbf44283608ef18ccd5017fd57b2b026503637c89c2537f361807f3bdd49265f4d444716159d989342561d324b1a0961640338bb32eaf67f4ae0c95f1b210f65404b0909c6")]
-#endif
+#endif
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Linq/ICacheQueryable.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Linq/ICacheQueryable.cs b/modules/platforms/dotnet/Apache.Ignite.Linq/ICacheQueryable.cs
index 684f746..ef641e2 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Linq/ICacheQueryable.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Linq/ICacheQueryable.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
namespace Apache.Ignite.Linq
{
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite.Linq/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Linq/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Linq/Properties/AssemblyInfo.cs
index d47bef9..a115145 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Linq/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Linq/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System;
using System.Reflection;
@@ -24,7 +24,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -37,4 +37,4 @@ using System.Runtime.InteropServices;
[assembly: AssemblyFileVersion("1.8.0.14218")]
[assembly: AssemblyInformationalVersion("1.8.0")]
-[assembly: CLSCompliant(true)]
+[assembly: CLSCompliant(true)]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
index 82e27b1..7127e3c 100644
--- a/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite/Properties/AssemblyInfo.cs
@@ -1,19 +1,19 @@
-\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System.Reflection;
using System.Runtime.InteropServices;
@@ -23,7 +23,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -33,4 +33,4 @@ using System.Runtime.InteropServices;
[assembly: AssemblyVersion("1.8.0.14218")]
[assembly: AssemblyFileVersion("1.8.0.14218")]
-[assembly: AssemblyInformationalVersion("1.8.0")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
index 4f55039..42fcb29 100644
--- a/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/examples/Apache.Ignite.Examples/Properties/AssemblyInfo.cs
@@ -1,29 +1,29 @@
-\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
-\ufeff\ufeff\ufeff\ufeff\ufeff\ufeff\ufeffusing System.Reflection;
-\ufeff\ufeffusing System.Runtime.InteropServices;
+using System.Reflection;
+using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Apache Ignite.NET Examples")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -33,4 +33,4 @@
[assembly: AssemblyVersion("1.8.0.14218")]
[assembly: AssemblyFileVersion("1.8.0.14218")]
-[assembly: AssemblyInformationalVersion("1.8.0")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/00576d8a/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
index 471e7e9..90c2974 100644
--- a/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/examples/Apache.Ignite.ExamplesDll/Properties/AssemblyInfo.cs
@@ -1,29 +1,29 @@
-\ufeff\ufeff\ufeff/*
- * 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.
- */
+\ufeff/*
+* 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.
+*/
using System.Reflection;
-\ufeff\ufeffusing System.Runtime.InteropServices;
+using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Apache Ignite.NET Examples Library")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -33,4 +33,4 @@ using System.Reflection;
[assembly: AssemblyVersion("1.8.0.14218")]
[assembly: AssemblyFileVersion("1.8.0.14218")]
-[assembly: AssemblyInformationalVersion("1.8.0")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
\ No newline at end of file
[33/50] [abbrv] ignite git commit: Merge remote-tracking branch
'remotes/community/ignite-1.7.3' into UPSTREAM_master
Posted by sh...@apache.org.
Merge remote-tracking branch 'remotes/community/ignite-1.7.3' into UPSTREAM_master
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/04f72c15
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/04f72c15
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/04f72c15
Branch: refs/heads/ignite-2788
Commit: 04f72c15485f23481fe92f3fbdf2264b28bba368
Parents: 909f046
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 14:40:47 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 14:40:47 2016 +0300
----------------------------------------------------------------------
.../Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj | 4 ----
modules/platforms/dotnet/Apache.Ignite.sln | 2 --
2 files changed, 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/04f72c15/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index d956972..c1c4953 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@ -196,10 +196,6 @@
<Project>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</Project>
<Name>Apache.Ignite.NLog</Name>
</ProjectReference>
- <ProjectReference Include="..\Apache.Ignite.NLog\Apache.Ignite.NLog.csproj">
- <Project>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</Project>
- <Name>Apache.Ignite.NLog</Name>
- </ProjectReference>
<ProjectReference Include="..\Apache.Ignite\Apache.Ignite.csproj">
<Project>{27F7F3C6-BDDE-43A9-B565-856F8395A04B}</Project>
<Name>Apache.Ignite</Name>
http://git-wip-us.apache.org/repos/asf/ignite/blob/04f72c15/modules/platforms/dotnet/Apache.Ignite.sln
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.sln b/modules/platforms/dotnet/Apache.Ignite.sln
index df25510..1f5163d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.sln
+++ b/modules/platforms/dotnet/Apache.Ignite.sln
@@ -40,8 +40,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apach
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet.Tests", "Apache.Ignite.AspNet.Tests\Apache.Ignite.AspNet.Tests.csproj", "{18EA4C71-A11D-4AB1-8042-418F7559D84F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apache.Ignite.NLog\Apache.Ignite.NLog.csproj", "{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
[46/50] [abbrv] ignite git commit: IGNITE-4075 Cassandra store should
load all available data when no parameters are provided in loadCache(). -
Fixes #1189.
Posted by sh...@apache.org.
IGNITE-4075 Cassandra store should load all available data when no parameters are provided in loadCache(). - Fixes #1189.
Signed-off-by: Alexey Kuznetsov <ak...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e1defc03
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e1defc03
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e1defc03
Branch: refs/heads/ignite-2788
Commit: e1defc039899259c6ec2df6a77f575250fe4c81c
Parents: f445e7b
Author: Igor <ir...@gmail.com>
Authored: Mon Oct 31 10:17:08 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Mon Oct 31 10:17:08 2016 +0700
----------------------------------------------------------------------
.../cache/store/cassandra/CassandraCacheStore.java | 5 ++++-
.../apache/ignite/tests/IgnitePersistentStoreTest.java | 11 +++++++++++
2 files changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1defc03/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
index aead39a..9058837 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
@@ -96,9 +96,12 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
/** {@inheritDoc} */
@Override public void loadCache(IgniteBiInClosure<K, V> clo, Object... args) throws CacheLoaderException {
- if (clo == null || args == null || args.length == 0)
+ if (clo == null)
return;
+ if (args == null || args.length == 0)
+ args = new String[] {"select * from " + controller.getPersistenceSettings().getKeyspace() + "." + cassandraTable() + ";"};
+
ExecutorService pool = null;
Collection<Future<?>> futs = new ArrayList<>(args.length);
http://git-wip-us.apache.org/repos/asf/ignite/blob/e1defc03/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
index d0a787a..97e7230 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
@@ -444,6 +444,17 @@ public class IgnitePersistentStoreTest {
"Expected number of records is 3, but loaded number of records is " + size);
}
+ personCache3.clear();
+
+ personCache3.loadCache(null);
+
+ size = personCache3.size(CachePeekMode.ALL);
+ if (size != TestsHelper.getBulkOperationSize()) {
+ throw new RuntimeException("Cache data was incorrectly loaded from Cassandra. " +
+ "Expected number of records is " + TestsHelper.getBulkOperationSize() +
+ ", but loaded number of records is " + size);
+ }
+
LOGGER.info("Cache data loaded from Cassandra table");
}
[19/50] [abbrv] ignite git commit: Revert "Fixed missing Apache
header."
Posted by sh...@apache.org.
Revert "Fixed missing Apache header."
This reverts commit b280c3efa1eb84c6bc8abbe31ba669b0c24323d8.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f745371a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f745371a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f745371a
Branch: refs/heads/ignite-2788
Commit: f745371af76baa676385c22257b4577d2e697d16
Parents: c32082f
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Oct 3 10:07:26 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Oct 3 10:07:26 2016 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryFieldOrderSelfTest.java | 17 -----------------
1 file changed, 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f745371a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
index e470948..6bb1e13 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
@@ -1,20 +1,3 @@
-/*
- * 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.binary;
import org.apache.ignite.binary.BinaryObject;
[09/50] [abbrv] ignite git commit: ignite-3621 Fixed
'testEvictExpired'.
Posted by sh...@apache.org.
ignite-3621 Fixed 'testEvictExpired'.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a4d7aa34
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a4d7aa34
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a4d7aa34
Branch: refs/heads/ignite-2788
Commit: a4d7aa343df23a5e00df11c5080cc1762b187161
Parents: 53229e2
Author: sboikov <sb...@gridgain.com>
Authored: Thu Sep 29 12:04:44 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Sep 29 12:04:44 2016 +0300
----------------------------------------------------------------------
.../cache/IgniteCacheConfigVariationsFullApiTest.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a4d7aa34/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
index 2ca09c8..6b0e193 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
@@ -3336,7 +3336,12 @@ public class IgniteCacheConfigVariationsFullApiTest extends IgniteCacheConfigVar
boolean wait = waitForCondition(new GridAbsPredicate() {
@Override public boolean apply() {
- return cache.localPeek(key) == null;
+ for (int i = 0; i < gridCount(); i++) {
+ if (peek(jcache(i), key) != null)
+ return false;
+ }
+
+ return true;
}
}, ttl + 1000);
[48/50] [abbrv] ignite git commit: ignite-2971 Enabled tests
Posted by sh...@apache.org.
ignite-2971 Enabled tests
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/45bb1ac9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/45bb1ac9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/45bb1ac9
Branch: refs/heads/ignite-2788
Commit: 45bb1ac95a9385f9a03388427cd1df25e9993c42
Parents: 138a3aa
Author: sboikov <sb...@gridgain.com>
Authored: Fri Nov 4 16:36:05 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Nov 4 16:36:05 2016 +0300
----------------------------------------------------------------------
.../processors/cache/WithKeepBinaryCacheFullApiTest.java | 10 +---------
1 file changed, 1 insertion(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/45bb1ac9/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WithKeepBinaryCacheFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WithKeepBinaryCacheFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WithKeepBinaryCacheFullApiTest.java
index 1954a8d..3e6b0b0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WithKeepBinaryCacheFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/WithKeepBinaryCacheFullApiTest.java
@@ -459,11 +459,7 @@ public class WithKeepBinaryCacheFullApiTest extends IgniteCacheConfigVariationsA
for (TransactionConcurrency conc : TransactionConcurrency.values()) {
for (TransactionIsolation isolation : TransactionIsolation.values()) {
- // TODO IGNITE-2971: delete this if when the issue will be fixed.
- if (conc == TransactionConcurrency.OPTIMISTIC && isolation == TransactionIsolation.SERIALIZABLE)
- continue;
-
- info(">>>>> Executing test using explicite txs [concurrency=" + conc + ", isolation=" + isolation + "]");
+ info(">>>>> Executing test using explicit txs [concurrency=" + conc + ", isolation=" + isolation + "]");
checkInvokeTx(conc, isolation);
@@ -671,10 +667,6 @@ public class WithKeepBinaryCacheFullApiTest extends IgniteCacheConfigVariationsA
for (TransactionConcurrency conc : TransactionConcurrency.values()) {
for (TransactionIsolation isolation : TransactionIsolation.values()) {
- // TODO IGNITE-2971: delete this if when the issue will be fixed.
- if (conc == TransactionConcurrency.OPTIMISTIC && isolation == TransactionIsolation.SERIALIZABLE)
- continue;
-
checkInvokeAsyncTx(conc, isolation);
jcache().removeAll();
[43/50] [abbrv] ignite git commit: IGNITE-3963
FlinkIgniteSinkSelfTest fails with exception IllegalArgumentException - Fixes
#1112.
Posted by sh...@apache.org.
IGNITE-3963 FlinkIgniteSinkSelfTest fails with exception IllegalArgumentException - Fixes #1112.
Signed-off-by: samaitra <sa...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f600750c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f600750c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f600750c
Branch: refs/heads/ignite-2788
Commit: f600750cda85ab859ba370bed0d22d875c6e29cf
Parents: 3e4042b
Author: samaitra <sa...@gmail.com>
Authored: Sat Oct 8 00:16:20 2016 +0530
Committer: samaitra <sa...@gmail.com>
Committed: Sat Oct 8 00:16:20 2016 +0530
----------------------------------------------------------------------
.../src/main/java/org/apache/ignite/sink/flink/IgniteSink.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f600750c/modules/flink/src/main/java/org/apache/ignite/sink/flink/IgniteSink.java
----------------------------------------------------------------------
diff --git a/modules/flink/src/main/java/org/apache/ignite/sink/flink/IgniteSink.java b/modules/flink/src/main/java/org/apache/ignite/sink/flink/IgniteSink.java
index e0ae783..2f18f80 100644
--- a/modules/flink/src/main/java/org/apache/ignite/sink/flink/IgniteSink.java
+++ b/modules/flink/src/main/java/org/apache/ignite/sink/flink/IgniteSink.java
@@ -34,7 +34,7 @@ public class IgniteSink<IN> extends RichSinkFunction<IN> {
private static final long DFLT_FLUSH_FREQ = 10000L;
/** Logger. */
- private final IgniteLogger log;
+ private final transient IgniteLogger log;
/** Automatic flush frequency. */
private long autoFlushFrequency = DFLT_FLUSH_FREQ;
[50/50] [abbrv] ignite git commit: Merge branch 'master' into
ignite-2788
Posted by sh...@apache.org.
Merge branch 'master' into ignite-2788
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0cd6723d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0cd6723d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0cd6723d
Branch: refs/heads/ignite-2788
Commit: 0cd6723d2e413be61d31827a9f0444d4253a30ed
Parents: a8dae9d 45bb1ac
Author: shtykh_roman <rs...@yahoo.com>
Authored: Mon Nov 7 13:28:04 2016 +0900
Committer: shtykh_roman <rs...@yahoo.com>
Committed: Mon Nov 7 13:28:04 2016 +0900
----------------------------------------------------------------------
.gitignore | 42 +-
RELEASE_NOTES.txt | 108 +
assembly/LICENSE_FABRIC | 3 +-
assembly/LICENSE_HADOOP | 1 -
assembly/dependencies-fabric-lgpl.xml | 4 +-
assembly/dependencies-fabric.xml | 4 +-
assembly/dependencies-schema-import.xml | 1 +
assembly/libs/README.txt | 39 +-
assembly/release-fabric-base.xml | 30 +
assembly/release-schema-import.xml | 2 +-
bin/include/hadoop-classpath.bat | 73 -
bin/include/hadoop-classpath.sh | 65 -
bin/include/setenv.bat | 10 -
bin/include/setenv.sh | 12 -
config/hadoop/default-config.xml | 111 +-
examples/config/filesystem/example-igfs.xml | 3 -
examples/pom.xml | 2 +-
examples/schema-import/pom.xml | 2 +-
.../java/org/apache/ignite/schema/Demo.java | 23 +-
.../ignite/schema/H2DataSourceFactory.java | 35 +
.../hibernate/HibernateL2CacheExample.java | 2 +-
.../CacheContinuousAsyncQueryExample.java | 138 +
.../datagrid/CacheContinuousQueryExample.java | 13 +-
.../examples/datagrid/CacheQueryExample.java | 78 +-
.../datastructures/IgniteLockExample.java | 293 +
.../ignite/examples/CacheExamplesSelfTest.java | 8 +
.../examples/IndexingBridgeMethodTest.java | 93 +
.../IgniteExamplesJ8SelfTestSuite.java | 2 +
modules/aop/pom.xml | 2 +-
modules/apache-license-gen/pom.xml | 2 +-
modules/aws/pom.xml | 2 +-
.../s3/S3CheckpointManagerSelfTest.java | 3 +
.../checkpoint/s3/S3CheckpointSpiSelfTest.java | 4 +
.../s3/S3CheckpointSpiStartStopSelfTest.java | 7 +
.../s3/S3SessionCheckpointSelfTest.java | 2 +
.../s3/TcpDiscoveryS3IpFinderSelfTest.java | 7 +
.../ignite/testsuites/IgniteS3TestSuite.java | 15 +-
modules/benchmarks/pom.xml | 6 +-
.../jmh/notify/JmhParkVsNotifyBenchmark.java | 105 +
.../jmh/notify/JmhWaitStategyBenchmark.java | 259 +
.../internal/benchmarks/model/IntValue.java | 19 +-
modules/camel/pom.xml | 2 +-
modules/cassandra/README.txt | 28 +
modules/cassandra/pom.xml | 52 +
modules/cassandra/serializers/README.txt | 33 +
.../serializers/licenses/apache-2.0.txt | 202 +
modules/cassandra/serializers/pom.xml | 129 +
.../cassandra/serializer/KryoSerializer.java | 95 +
.../apache/ignite/tests/KryoSerializerTest.java | 70 +
.../java/org/apache/ignite/tests/MyPojo.java | 102 +
modules/cassandra/store/README.txt | 32 +
modules/cassandra/store/licenses/apache-2.0.txt | 202 +
modules/cassandra/store/pom.xml | 305 +
.../store/cassandra/CassandraCacheStore.java | 519 +
.../cassandra/CassandraCacheStoreFactory.java | 200 +
.../store/cassandra/common/CassandraHelper.java | 176 +
.../cassandra/common/PropertyMappingHelper.java | 219 +
.../store/cassandra/common/RandomSleeper.java | 104 +
.../store/cassandra/common/SystemHelper.java | 46 +
.../store/cassandra/common/package-info.java | 21 +
.../store/cassandra/datasource/Credentials.java | 39 +
.../store/cassandra/datasource/DataSource.java | 647 +
.../cassandra/datasource/PlainCredentials.java | 53 +
.../cassandra/datasource/package-info.java | 21 +
.../cache/store/cassandra/package-info.java | 21 +
.../persistence/KeyPersistenceSettings.java | 305 +
.../KeyValuePersistenceSettings.java | 526 +
.../persistence/PersistenceController.java | 462 +
.../persistence/PersistenceSettings.java | 446 +
.../persistence/PersistenceStrategy.java | 62 +
.../store/cassandra/persistence/PojoField.java | 245 +
.../cassandra/persistence/PojoKeyField.java | 87 +
.../cassandra/persistence/PojoValueField.java | 143 +
.../persistence/ValuePersistenceSettings.java | 120 +
.../cassandra/persistence/package-info.java | 21 +
.../cassandra/serializer/JavaSerializer.java | 80 +
.../store/cassandra/serializer/Serializer.java | 43 +
.../cassandra/serializer/package-info.java | 21 +
.../session/BatchExecutionAssistant.java | 102 +
.../cassandra/session/BatchLoaderAssistant.java | 47 +
.../cassandra/session/CassandraSession.java | 70 +
.../cassandra/session/CassandraSessionImpl.java | 943 ++
.../cassandra/session/ExecutionAssistant.java | 84 +
.../session/GenericBatchExecutionAssistant.java | 71 +
.../session/LoadCacheCustomQueryWorker.java | 105 +
.../store/cassandra/session/package-info.java | 21 +
.../cassandra/session/pool/SessionPool.java | 173 +
.../cassandra/session/pool/SessionWrapper.java | 71 +
.../cassandra/session/pool/package-info.java | 21 +
.../session/transaction/BaseMutation.java | 68 +
.../session/transaction/DeleteMutation.java | 57 +
.../cassandra/session/transaction/Mutation.java | 63 +
.../session/transaction/WriteMutation.java | 60 +
.../session/transaction/package-info.java | 21 +
.../store/cassandra/utils/DDLGenerator.java | 76 +
.../store/cassandra/utils/package-info.java | 21 +
.../store/src/test/bootstrap/aws/README.txt | 13 +
.../aws/cassandra/cassandra-bootstrap.sh | 336 +
.../bootstrap/aws/cassandra/cassandra-env.sh | 287 +
.../bootstrap/aws/cassandra/cassandra-start.sh | 217 +
.../aws/cassandra/cassandra-template.yaml | 888 ++
.../store/src/test/bootstrap/aws/common.sh | 1481 ++
.../store/src/test/bootstrap/aws/env.sh | 113 +
.../test/bootstrap/aws/ganglia/agent-start.sh | 75 +
.../bootstrap/aws/ganglia/ganglia-bootstrap.sh | 417 +
.../bootstrap/aws/ignite/ignite-bootstrap.sh | 336 +
.../ignite/ignite-cassandra-server-template.xml | 190 +
.../src/test/bootstrap/aws/ignite/ignite-env.sh | 29 +
.../test/bootstrap/aws/ignite/ignite-start.sh | 266 +
.../src/test/bootstrap/aws/logs-collector.sh | 173 +
.../tests/ignite-cassandra-client-template.xml | 192 +
.../test/bootstrap/aws/tests/tests-bootstrap.sh | 317 +
.../test/bootstrap/aws/tests/tests-manager.sh | 458 +
.../test/bootstrap/aws/tests/tests-report.sh | 499 +
.../CassandraDirectPersistenceLoadTest.java | 107 +
.../tests/CassandraDirectPersistenceTest.java | 696 +
.../ignite/tests/CassandraLocalServer.java | 59 +
.../apache/ignite/tests/DDLGeneratorTest.java | 57 +
.../tests/DatasourceSerializationTest.java | 158 +
.../tests/IgnitePersistentStoreLoadTest.java | 111 +
.../ignite/tests/IgnitePersistentStoreTest.java | 666 +
.../LoadTestsCassandraArtifactsCreator.java | 104 +
.../org/apache/ignite/tests/load/Generator.java | 27 +
.../apache/ignite/tests/load/IntGenerator.java | 33 +
.../ignite/tests/load/LoadTestDriver.java | 238 +
.../apache/ignite/tests/load/LongGenerator.java | 28 +
.../ignite/tests/load/PersonGenerator.java | 43 +
.../ignite/tests/load/PersonIdGenerator.java | 31 +
.../ignite/tests/load/StringGenerator.java | 28 +
.../org/apache/ignite/tests/load/Worker.java | 429 +
.../tests/load/cassandra/BulkReadWorker.java | 63 +
.../tests/load/cassandra/BulkWriteWorker.java | 52 +
.../ignite/tests/load/cassandra/ReadWorker.java | 51 +
.../tests/load/cassandra/WriteWorker.java | 51 +
.../tests/load/cassandra/package-info.java | 21 +
.../tests/load/ignite/BulkReadWorker.java | 52 +
.../tests/load/ignite/BulkWriteWorker.java | 52 +
.../ignite/tests/load/ignite/ReadWorker.java | 51 +
.../ignite/tests/load/ignite/WriteWorker.java | 51 +
.../ignite/tests/load/ignite/package-info.java | 21 +
.../apache/ignite/tests/load/package-info.java | 21 +
.../org/apache/ignite/tests/package-info.java | 21 +
.../org/apache/ignite/tests/pojos/Person.java | 279 +
.../org/apache/ignite/tests/pojos/PersonId.java | 110 +
.../org/apache/ignite/tests/pojos/Product.java | 123 +
.../apache/ignite/tests/pojos/ProductOrder.java | 148 +
.../apache/ignite/tests/pojos/package-info.java | 21 +
.../ignite/tests/utils/CacheStoreHelper.java | 77 +
.../tests/utils/CassandraAdminCredentials.java | 38 +
.../ignite/tests/utils/CassandraHelper.java | 358 +
.../tests/utils/CassandraLifeCycleBean.java | 149 +
.../utils/CassandraRegularCredentials.java | 38 +
.../ignite/tests/utils/TestCacheSession.java | 95 +
.../ignite/tests/utils/TestTransaction.java | 132 +
.../apache/ignite/tests/utils/TestsHelper.java | 660 +
.../apache/ignite/tests/utils/package-info.java | 21 +
.../store/src/test/resources/log4j.properties | 119 +
.../tests/cassandra/connection-settings.xml | 52 +
.../tests/cassandra/connection.properties | 17 +
.../tests/cassandra/credentials.properties | 22 +
.../tests/cassandra/embedded-cassandra.yaml | 119 +
.../ignite/tests/cassandra/keyspaces.properties | 17 +
.../tests/persistence/blob/ignite-config.xml | 94 +
.../persistence/blob/persistence-settings-1.xml | 21 +
.../persistence/blob/persistence-settings-2.xml | 21 +
.../persistence/blob/persistence-settings-3.xml | 29 +
.../tests/persistence/pojo/ignite-config.xml | 169 +
.../ignite/tests/persistence/pojo/order.xml | 21 +
.../persistence/pojo/persistence-settings-1.xml | 21 +
.../persistence/pojo/persistence-settings-2.xml | 21 +
.../persistence/pojo/persistence-settings-3.xml | 175 +
.../persistence/pojo/persistence-settings-4.xml | 175 +
.../ignite/tests/persistence/pojo/product.xml | 21 +
.../persistence/primitive/ignite-config.xml | 94 +
.../primitive/ignite-remote-client-config.xml | 99 +
.../primitive/ignite-remote-server-config.xml | 110 +
.../primitive/persistence-settings-1.xml | 21 +
.../primitive/persistence-settings-2.xml | 21 +
.../store/src/test/resources/tests.properties | 65 +
.../src/test/scripts/cassandra-load-tests.bat | 41 +
.../src/test/scripts/cassandra-load-tests.sh | 39 +
.../src/test/scripts/ignite-load-tests.bat | 41 +
.../store/src/test/scripts/ignite-load-tests.sh | 39 +
.../cassandra/store/src/test/scripts/jvm-opt.sh | 21 +
.../store/src/test/scripts/jvm-opts.bat | 24 +
.../scripts/recreate-cassandra-artifacts.bat | 41 +
.../scripts/recreate-cassandra-artifacts.sh | 39 +
modules/clients/pom.xml | 10 +-
modules/clients/src/test/config/jdbc-config.xml | 3 +-
.../client/ClientDefaultCacheSelfTest.java | 119 +-
.../ignite/internal/client/ClientHttpTask.java | 33 +-
.../client/ClientReconnectionSelfTest.java | 4 +-
.../ignite/internal/client/ClientTcpTask.java | 10 +-
.../ClientAbstractMultiNodeSelfTest.java | 8 +-
.../integration/ClientAbstractSelfTest.java | 92 +-
.../client/router/TcpSslRouterSelfTest.java | 7 +-
.../client/suite/IgniteClientTestSuite.java | 71 +-
.../internal/jdbc2/JdbcConnectionSelfTest.java | 2 +
.../jdbc2/JdbcDistributedJoinsQueryTest.java | 319 +
.../internal/jdbc2/JdbcMetadataSelfTest.java | 63 +-
.../internal/jdbc2/JdbcNoDefaultCacheTest.java | 161 +
.../internal/jdbc2/JdbcResultSetSelfTest.java | 4 +-
.../JettyRestProcessorAbstractSelfTest.java | 1586 +-
.../rest/JettyRestProcessorSignedSelfTest.java | 5 +-
.../JettyRestProcessorUnsignedSelfTest.java | 5 +-
.../internal/processors/rest/SimplePerson.java | 74 +
.../ignite/jdbc/JdbcMetadataSelfTest.java | 18 +
.../ignite/jdbc/JdbcNoDefaultCacheTest.java | 161 +
.../ignite/jdbc/JdbcResultSetSelfTest.java | 4 +-
.../jdbc/suite/IgniteJdbcDriverTestSuite.java | 5 +
modules/cloud/pom.xml | 2 +-
.../TcpDiscoveryCloudIpFinderSelfTest.java | 6 +-
.../ignite/testsuites/IgniteCloudTestSuite.java | 5 +-
modules/codegen/pom.xml | 2 +-
.../ignite/codegen/MessageCodeGenerator.java | 139 +-
modules/core/pom.xml | 23 +-
.../src/main/java/org/apache/ignite/Ignite.java | 98 +-
.../java/org/apache/ignite/IgniteCache.java | 237 +-
.../java/org/apache/ignite/IgniteCompute.java | 69 +-
.../java/org/apache/ignite/IgniteCondition.java | 338 +
.../org/apache/ignite/IgniteDataStreamer.java | 57 +-
.../IgniteDataStreamerTimeoutException.java | 45 +
.../org/apache/ignite/IgniteFileSystem.java | 39 +-
.../org/apache/ignite/IgniteJdbcDriver.java | 16 +-
.../main/java/org/apache/ignite/IgniteLock.java | 489 +
.../java/org/apache/ignite/IgniteServices.java | 48 +-
.../apache/ignite/IgniteSystemProperties.java | 100 +-
.../main/java/org/apache/ignite/Ignition.java | 19 +-
.../ignite/binary/BinaryObjectBuilder.java | 11 +
.../ignite/cache/CacheInterceptorEntry.java | 39 +
.../cache/CacheWriteSynchronizationMode.java | 5 +-
.../org/apache/ignite/cache/QueryEntity.java | 18 +
.../ignite/cache/affinity/AffinityFunction.java | 2 +
.../affinity/fair/FairAffinityFunction.java | 91 +-
.../rendezvous/RendezvousAffinityFunction.java | 47 +-
.../cache/query/CacheQueryEntryEvent.java | 12 +-
.../ignite/cache/query/ContinuousQuery.java | 74 +-
.../ignite/cache/query/SqlFieldsQuery.java | 53 +
.../org/apache/ignite/cache/query/SqlQuery.java | 28 +
.../store/jdbc/CacheAbstractJdbcStore.java | 335 +-
.../cache/store/jdbc/CacheJdbcBlobStore.java | 20 +-
.../cache/store/jdbc/CacheJdbcPojoStore.java | 31 +-
.../store/jdbc/CacheJdbcPojoStoreFactory.java | 130 +-
.../ignite/cache/store/jdbc/JdbcType.java | 2 +-
.../store/jdbc/JdbcTypesDefaultTransformer.java | 117 +
.../cache/store/jdbc/JdbcTypesTransformer.java | 39 +
.../store/jdbc/dialect/BasicJdbcDialect.java | 15 +-
.../cache/store/jdbc/dialect/DB2Dialect.java | 6 +-
.../cache/store/jdbc/dialect/H2Dialect.java | 5 +-
.../cache/store/jdbc/dialect/JdbcDialect.java | 29 +-
.../cache/store/jdbc/dialect/MySQLDialect.java | 27 +-
.../cache/store/jdbc/dialect/OracleDialect.java | 5 +-
.../store/jdbc/dialect/SQLServerDialect.java | 16 +-
.../org/apache/ignite/compute/ComputeJob.java | 2 +-
.../ignite/compute/ComputeJobAfterSend.java | 2 +-
.../compute/ComputeJobBeforeFailover.java | 2 +-
.../ignite/compute/ComputeJobContext.java | 2 +-
.../compute/ComputeJobContinuationAdapter.java | 12 +-
.../ignite/compute/ComputeLoadBalancer.java | 12 +-
.../org/apache/ignite/compute/ComputeTask.java | 26 +-
.../ignite/compute/ComputeTaskAdapter.java | 8 +-
.../compute/ComputeTaskNoResultCache.java | 6 +-
.../ignite/compute/ComputeTaskSession.java | 4 +-
.../apache/ignite/compute/ComputeTaskSpis.java | 8 +-
.../ignite/compute/ComputeTaskSplitAdapter.java | 8 +-
.../apache/ignite/compute/gridify/Gridify.java | 2 +-
.../configuration/BasicAddressResolver.java | 146 +
.../configuration/CacheConfiguration.java | 45 +-
.../configuration/ConnectorConfiguration.java | 4 +
.../configuration/FileSystemConfiguration.java | 60 +-
.../configuration/HadoopConfiguration.java | 41 +-
.../configuration/IgniteConfiguration.java | 154 +-
.../ignite/configuration/OdbcConfiguration.java | 212 +
.../configuration/TransactionConfiguration.java | 8 +
.../igfs/IgfsGroupDataBlocksKeyMapper.java | 43 +-
.../java/org/apache/ignite/igfs/IgfsPath.java | 40 +-
.../org/apache/ignite/igfs/IgfsPathSummary.java | 35 +-
.../apache/ignite/igfs/mapreduce/IgfsTask.java | 6 +-
.../igfs/secondary/IgfsSecondaryFileSystem.java | 6 +-
.../local/LocalIgfsSecondaryFileSystem.java | 415 +
.../igfs/secondary/local/package-info.java | 22 +
.../ignite/igfs/secondary/package-info.java | 2 +-
.../ignite/internal/GridCodegenConverter.java | 56 +
.../internal/GridEventConsumeHandler.java | 10 +-
.../ignite/internal/GridJobExecuteRequest.java | 148 +-
.../ignite/internal/GridJobExecuteResponse.java | 42 +-
.../ignite/internal/GridKernalContext.java | 24 +
.../ignite/internal/GridKernalContextImpl.java | 40 +-
.../apache/ignite/internal/GridLoggerProxy.java | 6 +-
.../internal/GridMessageListenHandler.java | 10 +-
.../ignite/internal/GridTaskSessionImpl.java | 17 +-
.../org/apache/ignite/internal/GridTopic.java | 5 +-
.../ignite/internal/IgniteComponentType.java | 15 +-
.../ignite/internal/IgniteComputeImpl.java | 120 +-
.../ignite/internal/IgniteEventsImpl.java | 11 +-
.../apache/ignite/internal/IgniteKernal.java | 244 +-
.../ignite/internal/IgniteMessagingImpl.java | 7 +-
.../ignite/internal/IgniteNodeAttributes.java | 10 +
.../ignite/internal/IgniteServicesImpl.java | 6 +-
.../org/apache/ignite/internal/IgnitionEx.java | 117 +-
.../apache/ignite/internal/LessNamingBean.java | 28 +
.../ignite/internal/MarshallerContextImpl.java | 107 +-
.../internal/binary/BinaryClassDescriptor.java | 102 +-
.../ignite/internal/binary/BinaryContext.java | 251 +-
.../internal/binary/BinaryEnumObjectImpl.java | 14 +-
.../internal/binary/BinaryMarshaller.java | 28 +-
.../binary/BinaryMethodWriteReplacer.java | 59 +
.../ignite/internal/binary/BinaryObjectEx.java | 19 +
.../internal/binary/BinaryObjectExImpl.java | 166 +-
.../internal/binary/BinaryObjectImpl.java | 100 +-
.../binary/BinaryObjectOffheapImpl.java | 55 +-
.../internal/binary/BinaryReaderExImpl.java | 99 +-
.../internal/binary/BinaryReaderHandles.java | 2 +-
.../ignite/internal/binary/BinaryTreeMap.java | 96 +
.../binary/BinaryTreeMapWriteReplacer.java | 34 +
.../ignite/internal/binary/BinaryTreeSet.java | 93 +
.../binary/BinaryTreeSetWriteReplacer.java | 34 +
.../ignite/internal/binary/BinaryTypeImpl.java | 8 +
.../ignite/internal/binary/BinaryTypeProxy.java | 111 +
.../ignite/internal/binary/BinaryUtils.java | 269 +-
.../internal/binary/BinaryWriteReplacer.java | 33 +
.../internal/binary/BinaryWriterExImpl.java | 51 +-
.../internal/binary/GridBinaryMarshaller.java | 7 +-
.../binary/builder/BinaryBuilderReader.java | 11 +-
.../binary/builder/BinaryObjectBuilderImpl.java | 13 +-
.../client/GridClientConfiguration.java | 1 -
.../GridClientConnectionManagerAdapter.java | 25 +-
.../connection/GridClientNioTcpConnection.java | 3 +
.../GridClientOptimizedMarshaller.java | 4 +-
.../GridClientZipOptimizedMarshaller.java | 167 +
.../impl/GridTcpRouterNioListenerAdapter.java | 11 +-
.../internal/cluster/ClusterGroupAdapter.java | 26 +-
.../ignite/internal/cluster/ClusterGroupEx.java | 14 +-
.../cluster/ClusterNodeLocalMapImpl.java | 3 +-
.../internal/cluster/IgniteClusterImpl.java | 9 +-
.../internal/direct/DirectMessageReader.java | 5 +
.../igfs/common/IgfsControlResponse.java | 19 +-
.../internal/igfs/common/IgfsMarshaller.java | 14 +-
.../ignite/internal/jdbc2/JdbcConnection.java | 33 +-
.../ignite/internal/jdbc2/JdbcQueryTask.java | 24 +-
.../ignite/internal/jdbc2/JdbcResultSet.java | 6 +-
.../ignite/internal/jdbc2/JdbcStatement.java | 2 +-
.../logger/platform/PlatformLogger.java | 223 +
.../internal/managers/GridManagerAdapter.java | 36 +-
.../managers/communication/GridIoManager.java | 34 +-
.../communication/GridIoMessageFactory.java | 36 +-
.../managers/communication/GridIoPolicy.java | 5 +-
.../deployment/GridDeploymentCommunication.java | 3 +-
.../GridDeploymentPerVersionStore.java | 2 +-
.../discovery/GridDiscoveryManager.java | 221 +-
.../eventstorage/GridEventStorageManager.java | 2 +-
.../failover/GridFailoverContextImpl.java | 27 +-
.../managers/failover/GridFailoverManager.java | 17 +-
.../loadbalancer/GridLoadBalancerManager.java | 10 +-
.../affinity/GridAffinityAssignment.java | 64 +-
.../affinity/GridAffinityAssignmentCache.java | 312 +-
.../GridAffinityFunctionContextImpl.java | 9 +
.../affinity/GridAffinityProcessor.java | 143 +-
.../processors/affinity/GridAffinityUtils.java | 3 +-
.../cache/CacheAffinityChangeMessage.java | 160 +
.../cache/CacheAffinitySharedManager.java | 1795 +++
.../cache/CacheEvictableEntryImpl.java | 13 +-
.../processors/cache/CacheInvokeEntry.java | 41 +-
.../processors/cache/CacheLazyEntry.java | 58 +-
.../processors/cache/CacheObjectContext.java | 15 +
.../processors/cache/CacheOperationFilter.java | 61 +
.../cache/CacheWeakQueryIteratorsHolder.java | 169 +-
.../cache/DynamicCacheChangeRequest.java | 17 +
.../cache/DynamicCacheDescriptor.java | 49 +
.../EntryProcessorResourceInjectorProxy.java | 105 +
.../processors/cache/GridCacheAdapter.java | 1518 +-
.../cache/GridCacheAffinityManager.java | 154 +-
.../processors/cache/GridCacheAtomicFuture.java | 5 -
.../cache/GridCacheClearAllRunnable.java | 3 +-
.../cache/GridCacheConcurrentMap.java | 1996 +--
.../cache/GridCacheConcurrentMapImpl.java | 344 +
.../processors/cache/GridCacheContext.java | 94 +-
.../GridCacheDefaultAffinityKeyMapper.java | 19 +
.../cache/GridCacheDeploymentManager.java | 6 +-
.../processors/cache/GridCacheEntryEx.java | 40 +-
.../processors/cache/GridCacheEntryInfo.java | 2 +-
.../processors/cache/GridCacheEntrySet.java | 113 -
.../processors/cache/GridCacheEventManager.java | 10 +-
.../cache/GridCacheEvictionManager.java | 34 +-
.../processors/cache/GridCacheIoManager.java | 220 +-
.../processors/cache/GridCacheKeySet.java | 104 -
.../processors/cache/GridCacheLogger.java | 3 +-
.../processors/cache/GridCacheMapEntry.java | 1022 +-
.../processors/cache/GridCacheMessage.java | 11 +-
.../processors/cache/GridCacheMvcc.java | 7 +
.../cache/GridCacheMvccCandidate.java | 16 +-
.../processors/cache/GridCacheMvccManager.java | 20 +-
.../GridCachePartitionExchangeManager.java | 338 +-
.../processors/cache/GridCachePreloader.java | 23 +-
.../cache/GridCachePreloaderAdapter.java | 17 +-
.../processors/cache/GridCacheProcessor.java | 635 +-
.../processors/cache/GridCacheProxyImpl.java | 103 +-
.../processors/cache/GridCacheReturn.java | 10 +-
.../GridCacheReturnCompletableWrapper.java | 101 +
.../cache/GridCacheSharedContext.java | 144 +-
.../cache/GridCacheSharedTtlCleanupManager.java | 132 +
.../processors/cache/GridCacheSwapManager.java | 175 +-
.../processors/cache/GridCacheTtlManager.java | 112 +-
.../processors/cache/GridCacheUtils.java | 162 +-
.../cache/GridDeferredAckMessageSender.java | 219 +
.../processors/cache/GridNoStorageCacheMap.java | 107 +
.../processors/cache/IgniteCacheProxy.java | 240 +-
.../processors/cache/IgniteInternalCache.java | 113 +-
.../processors/cache/KeyCacheObject.java | 18 +
.../processors/cache/KeyCacheObjectImpl.java | 40 +-
.../cache/affinity/GridCacheAffinityImpl.java | 2 +-
.../cache/binary/CacheObjectBinaryContext.java | 10 +-
.../binary/CacheObjectBinaryProcessorImpl.java | 149 +-
.../CacheDataStructuresManager.java | 4 +-
.../distributed/GridCacheCommittedTxInfo.java | 1 +
.../distributed/GridCacheTxRecoveryFuture.java | 141 +-
.../distributed/GridCacheTxRecoveryRequest.java | 7 +
.../GridCacheTxRecoveryResponse.java | 29 +-
.../GridDistributedCacheAdapter.java | 6 +-
.../distributed/GridDistributedLockRequest.java | 25 +-
.../GridDistributedLockResponse.java | 14 +-
.../GridDistributedTxFinishRequest.java | 28 +-
.../GridDistributedTxFinishResponse.java | 7 +
.../GridDistributedTxPrepareRequest.java | 36 +-
.../GridDistributedTxPrepareResponse.java | 25 +-
.../GridDistributedTxRemoteAdapter.java | 85 +-
.../GridDistributedUnlockRequest.java | 22 +-
.../dht/CacheDistributedGetFutureAdapter.java | 3 -
.../dht/GridCachePartitionedConcurrentMap.java | 271 +
.../dht/GridClientPartitionTopology.java | 23 +-
.../dht/GridDhtAffinityAssignmentResponse.java | 198 +-
.../dht/GridDhtAssignmentFetchFuture.java | 80 +-
.../distributed/dht/GridDhtCacheAdapter.java | 182 +-
.../distributed/dht/GridDhtCacheEntry.java | 33 +-
.../cache/distributed/dht/GridDhtGetFuture.java | 78 +-
.../distributed/dht/GridDhtGetSingleFuture.java | 6 +
.../distributed/dht/GridDhtLocalPartition.java | 188 +-
.../distributed/dht/GridDhtLockFuture.java | 149 +-
.../distributed/dht/GridDhtLockRequest.java | 16 +-
.../dht/GridDhtOffHeapCacheEntry.java | 8 +
.../dht/GridDhtPartitionTopology.java | 21 +-
.../dht/GridDhtPartitionTopologyImpl.java | 656 +-
.../dht/GridDhtPartitionsReservation.java | 3 +-
.../dht/GridDhtTransactionalCacheAdapter.java | 149 +-
.../distributed/dht/GridDhtTxFinishFuture.java | 137 +-
.../distributed/dht/GridDhtTxFinishRequest.java | 33 +-
.../dht/GridDhtTxFinishResponse.java | 52 +-
.../cache/distributed/dht/GridDhtTxLocal.java | 263 +-
.../distributed/dht/GridDhtTxLocalAdapter.java | 15 +-
.../dht/GridDhtTxOnePhaseCommitAckRequest.java | 134 +
.../distributed/dht/GridDhtTxPrepareFuture.java | 295 +-
.../dht/GridDhtTxPrepareRequest.java | 97 +-
.../cache/distributed/dht/GridDhtTxRemote.java | 15 +-
.../distributed/dht/GridDhtUnlockRequest.java | 15 +-
.../distributed/dht/GridNoStorageCacheMap.java | 122 -
.../dht/GridPartitionedGetFuture.java | 17 +-
.../dht/GridPartitionedSingleGetFuture.java | 17 +-
.../dht/atomic/GridDhtAtomicCache.java | 1170 +-
.../GridDhtAtomicDeferredUpdateResponse.java | 7 +
.../atomic/GridDhtAtomicOffHeapCacheEntry.java | 8 +
.../dht/atomic/GridDhtAtomicUpdateFuture.java | 179 +-
.../dht/atomic/GridDhtAtomicUpdateRequest.java | 155 +-
.../dht/atomic/GridDhtAtomicUpdateResponse.java | 6 +
.../GridNearAtomicAbstractUpdateFuture.java | 318 +
.../GridNearAtomicSingleUpdateFuture.java | 600 +
.../dht/atomic/GridNearAtomicUpdateFuture.java | 1445 +-
.../dht/atomic/GridNearAtomicUpdateRequest.java | 37 +-
.../atomic/GridNearAtomicUpdateResponse.java | 6 +
.../dht/colocated/GridDhtColocatedCache.java | 40 +-
.../colocated/GridDhtColocatedLockFuture.java | 188 +-
.../GridDhtColocatedOffHeapCacheEntry.java | 8 +
.../colocated/GridDhtDetachedCacheEntry.java | 2 +-
.../dht/preloader/GridDhtForceKeysFuture.java | 9 +-
.../dht/preloader/GridDhtPartitionDemander.java | 24 +-
.../dht/preloader/GridDhtPartitionMap2.java | 9 +-
.../dht/preloader/GridDhtPartitionSupplier.java | 37 +-
.../GridDhtPartitionsExchangeFuture.java | 1586 +-
.../dht/preloader/GridDhtPreloader.java | 158 +-
.../distributed/near/GridNearAtomicCache.java | 44 +-
.../distributed/near/GridNearCacheAdapter.java | 121 +-
.../distributed/near/GridNearCacheEntry.java | 118 +-
.../distributed/near/GridNearGetFuture.java | 50 +-
.../distributed/near/GridNearGetRequest.java | 45 +-
.../distributed/near/GridNearLockFuture.java | 109 +-
.../distributed/near/GridNearLockRequest.java | 16 +-
...arOptimisticSerializableTxPrepareFuture.java | 28 +-
.../near/GridNearOptimisticTxPrepareFuture.java | 323 +-
...ridNearOptimisticTxPrepareFutureAdapter.java | 21 +-
.../GridNearPessimisticTxPrepareFuture.java | 54 +-
.../near/GridNearSingleGetRequest.java | 24 +-
.../near/GridNearTransactionalCache.java | 9 +-
.../near/GridNearTxFinishFuture.java | 359 +-
.../near/GridNearTxFinishRequest.java | 46 +-
.../cache/distributed/near/GridNearTxLocal.java | 126 +-
.../near/GridNearTxPrepareFutureAdapter.java | 19 +-
.../near/GridNearTxPrepareRequest.java | 4 +-
.../distributed/near/GridNearTxRemote.java | 24 +-
.../distributed/near/GridNearUnlockRequest.java | 21 +-
.../processors/cache/dr/GridCacheDrManager.java | 4 +-
.../cache/dr/GridOsCacheDrManager.java | 2 +-
.../processors/cache/local/GridLocalCache.java | 7 +-
.../cache/local/GridLocalCacheEntry.java | 27 -
.../cache/local/GridLocalLockFuture.java | 77 +-
.../local/atomic/GridLocalAtomicCache.java | 190 +-
.../processors/cache/query/CacheQuery.java | 19 +-
.../cache/query/CacheQueryFuture.java | 13 +-
.../query/GridCacheDistributedQueryManager.java | 102 +-
.../cache/query/GridCacheLocalQueryManager.java | 33 +-
.../cache/query/GridCacheQueryAdapter.java | 236 +-
.../cache/query/GridCacheQueryBean.java | 8 +-
.../cache/query/GridCacheQueryErrorFuture.java | 12 +-
.../query/GridCacheQueryFutureAdapter.java | 10 +-
.../cache/query/GridCacheQueryInfo.java | 8 +-
.../cache/query/GridCacheQueryManager.java | 729 +-
.../cache/query/GridCacheQueryMarshallable.java | 37 +
.../query/GridCacheQueryMetricsAdapter.java | 12 +-
.../cache/query/GridCacheQueryRequest.java | 6 +-
.../cache/query/GridCacheSqlIndexMetadata.java | 3 +-
.../cache/query/GridCacheSqlMetadata.java | 3 +-
.../cache/query/GridCacheSqlQuery.java | 42 +-
.../cache/query/GridCacheTwoStepQuery.java | 123 +-
.../continuous/CacheContinuousQueryEntry.java | 54 +-
.../continuous/CacheContinuousQueryEvent.java | 7 +
.../continuous/CacheContinuousQueryHandler.java | 607 +-
.../CacheContinuousQueryListener.java | 6 +-
.../continuous/CacheContinuousQueryManager.java | 216 +-
.../query/jdbc/GridCacheQueryJdbcTask.java | 59 +-
.../jdbc/GridCacheQueryJdbcValidationTask.java | 10 +-
.../store/GridCacheStoreManagerAdapter.java | 34 +-
.../cache/store/GridCacheWriteBehindStore.java | 2 +-
.../cache/transactions/IgniteInternalTx.java | 43 +-
.../cache/transactions/IgniteTxAdapter.java | 463 +-
.../cache/transactions/IgniteTxEntry.java | 112 +-
.../cache/transactions/IgniteTxHandler.java | 552 +-
.../IgniteTxImplicitSingleStateImpl.java | 29 +-
.../transactions/IgniteTxLocalAdapter.java | 578 +-
.../cache/transactions/IgniteTxLocalEx.java | 26 +-
.../cache/transactions/IgniteTxManager.java | 791 +-
.../IgniteTxRemoteSingleStateImpl.java | 30 +
.../IgniteTxRemoteStateAdapter.java | 16 +-
.../transactions/IgniteTxRemoteStateImpl.java | 72 +-
.../cache/transactions/IgniteTxState.java | 11 +-
.../cache/transactions/IgniteTxStateAware.java | 34 +
.../cache/transactions/IgniteTxStateImpl.java | 53 +-
.../cache/transactions/TxDeadlock.java | 159 +
.../cache/transactions/TxDeadlockDetection.java | 626 +
.../processors/cache/transactions/TxLock.java | 225 +
.../cache/transactions/TxLockList.java | 134 +
.../cache/transactions/TxLocksRequest.java | 205 +
.../cache/transactions/TxLocksResponse.java | 318 +
.../GridCacheLazyPlainVersionedEntry.java | 113 +
.../version/GridCachePlainVersionedEntry.java | 12 +-
.../cache/version/GridCacheVersion.java | 14 +-
.../cache/version/GridCacheVersionEx.java | 9 +
.../cache/version/GridCacheVersionManager.java | 21 +-
.../cacheobject/IgniteCacheObjectProcessor.java | 18 +-
.../IgniteCacheObjectProcessorImpl.java | 91 +-
.../processors/clock/GridClockServer.java | 3 +-
.../clock/GridClockSyncProcessor.java | 2 +-
.../processors/closure/AffinityTask.java | 17 +-
.../processors/closure/GridClosurePolicy.java | 51 -
.../closure/GridClosureProcessor.java | 226 +-
.../processors/cluster/GridUpdateNotifier.java | 3 +-
.../continuous/GridContinuousHandler.java | 13 +-
.../continuous/GridContinuousProcessor.java | 293 +-
.../continuous/GridContinuousQueryBatch.java | 47 +
.../datastreamer/DataStreamerImpl.java | 150 +-
.../datastructures/DataStructuresProcessor.java | 162 +-
.../datastructures/GridCacheAtomicLongImpl.java | 3 +-
.../GridCacheAtomicReferenceImpl.java | 4 +-
.../GridCacheAtomicSequenceImpl.java | 3 +-
.../GridCacheAtomicStampedImpl.java | 3 +-
.../GridCacheCountDownLatchImpl.java | 57 +-
.../datastructures/GridCacheLockEx.java | 52 +
.../datastructures/GridCacheLockImpl.java | 1538 ++
.../datastructures/GridCacheLockState.java | 353 +
.../datastructures/GridCacheQueueProxy.java | 3 +-
.../datastructures/GridCacheSemaphoreImpl.java | 144 +-
.../datastructures/GridCacheSetImpl.java | 9 +-
.../datastructures/GridCacheSetProxy.java | 3 +-
.../processors/hadoop/HadoopClassLoader.java | 487 +
.../processors/hadoop/HadoopClasspathUtils.java | 424 +
.../processors/hadoop/HadoopDefaultJobInfo.java | 156 +
.../processors/hadoop/HadoopHelper.java | 55 +
.../processors/hadoop/HadoopJobInfo.java | 5 +-
.../processors/hadoop/HadoopLocations.java | 123 +
.../processors/hadoop/HadoopNoopHelper.java | 66 +
.../processors/hadoop/HadoopNoopProcessor.java | 29 +-
.../hadoop/HadoopProcessorAdapter.java | 7 +
.../igfs/IgfsAbstractOutputStream.java | 266 +
.../internal/processors/igfs/IgfsAsyncImpl.java | 29 +-
.../processors/igfs/IgfsBlockLocationImpl.java | 87 +-
.../internal/processors/igfs/IgfsContext.java | 70 +-
.../processors/igfs/IgfsCreateResult.java | 66 +
.../processors/igfs/IgfsDataManager.java | 395 +-
.../processors/igfs/IgfsDeleteResult.java | 62 +
.../processors/igfs/IgfsDeleteWorker.java | 60 +-
.../ignite/internal/processors/igfs/IgfsEx.java | 34 +-
.../processors/igfs/IgfsFileAffinityRange.java | 40 +-
.../internal/processors/igfs/IgfsFileImpl.java | 59 +-
.../igfs/IgfsFragmentizerManager.java | 29 +-
.../internal/processors/igfs/IgfsImpl.java | 1171 +-
.../processors/igfs/IgfsInputStreamAdapter.java | 51 -
.../processors/igfs/IgfsInputStreamImpl.java | 219 +-
.../processors/igfs/IgfsIpcHandler.java | 19 +-
.../processors/igfs/IgfsKernalContextAware.java | 32 +
...zySecondaryFileSystemPositionedReadable.java | 77 +
.../processors/igfs/IgfsMetaManager.java | 1266 +-
.../processors/igfs/IgfsModeResolver.java | 104 +-
.../processors/igfs/IgfsNodePredicate.java | 80 +
.../igfs/IgfsOutputStreamAdapter.java | 265 -
.../processors/igfs/IgfsOutputStreamImpl.java | 406 +-
.../igfs/IgfsOutputStreamProxyImpl.java | 163 +
.../internal/processors/igfs/IgfsPathIds.java | 12 +-
.../internal/processors/igfs/IgfsPaths.java | 11 +-
.../internal/processors/igfs/IgfsProcessor.java | 88 +-
.../IgfsSecondaryFileSystemCreateContext.java | 114 +
.../igfs/IgfsSecondaryFileSystemImpl.java | 17 +-
.../igfs/IgfsSecondaryFileSystemV2.java | 40 +
.../IgfsSecondaryOutputStreamDescriptor.java | 59 -
.../internal/processors/igfs/IgfsUtils.java | 306 +-
.../igfs/client/IgfsClientAbstractCallable.java | 125 +
.../igfs/client/IgfsClientAffinityCallable.java | 95 +
.../igfs/client/IgfsClientDeleteCallable.java | 77 +
.../igfs/client/IgfsClientExistsCallable.java | 58 +
.../igfs/client/IgfsClientInfoCallable.java | 59 +
.../client/IgfsClientListFilesCallable.java | 61 +
.../client/IgfsClientListPathsCallable.java | 60 +
.../igfs/client/IgfsClientMkdirsCallable.java | 82 +
.../igfs/client/IgfsClientRenameCallable.java | 80 +
.../igfs/client/IgfsClientSetTimesCallable.java | 87 +
.../igfs/client/IgfsClientSizeCallable.java | 59 +
.../igfs/client/IgfsClientSummaryCallable.java | 59 +
.../igfs/client/IgfsClientUpdateCallable.java | 81 +
.../meta/IgfsClientMetaIdsForPathCallable.java | 65 +
.../meta/IgfsClientMetaInfoForPathCallable.java | 63 +
.../meta/IgfsClientMetaUnlockCallable.java | 123 +
.../igfs/data/IgfsDataPutProcessor.java | 99 +
.../meta/IgfsMetaDirectoryCreateProcessor.java | 40 +-
...IgfsMetaDirectoryListingRemoveProcessor.java | 2 -
...IgfsMetaDirectoryListingRenameProcessor.java | 133 +
.../igfs/meta/IgfsMetaFileCreateProcessor.java | 46 +-
.../igfs/meta/IgfsMetaFileUnlockProcessor.java | 69 +-
.../local/LocalFileSystemIgfsFile.java | 134 +
.../local/LocalFileSystemSizeVisitor.java | 60 +
...fsSecondaryFileSystemPositionedReadable.java | 65 +
.../processors/job/GridJobProcessor.java | 160 +-
.../internal/processors/job/GridJobWorker.java | 207 +-
.../OsDiscoveryNodeValidationProcessor.java | 2 +-
.../processors/odbc/OdbcBufferedParser.java | 81 +
.../processors/odbc/OdbcColumnMeta.java | 110 +
.../processors/odbc/OdbcHandshakeRequest.java | 83 +
.../processors/odbc/OdbcHandshakeResult.java | 73 +
.../processors/odbc/OdbcMessageParser.java | 295 +
.../processors/odbc/OdbcNioListener.java | 179 +
.../processors/odbc/OdbcNioServerBuffer.java | 114 +
.../internal/processors/odbc/OdbcProcessor.java | 199 +
.../processors/odbc/OdbcProtocolVersion.java | 125 +
.../processors/odbc/OdbcQueryCloseRequest.java | 49 +
.../processors/odbc/OdbcQueryCloseResult.java | 40 +
.../odbc/OdbcQueryExecuteRequest.java | 78 +
.../processors/odbc/OdbcQueryExecuteResult.java | 54 +
.../processors/odbc/OdbcQueryFetchRequest.java | 61 +
.../processors/odbc/OdbcQueryFetchResult.java | 66 +
.../odbc/OdbcQueryGetColumnsMetaRequest.java | 74 +
.../odbc/OdbcQueryGetColumnsMetaResult.java | 42 +
.../odbc/OdbcQueryGetTablesMetaRequest.java | 85 +
.../odbc/OdbcQueryGetTablesMetaResult.java | 42 +
.../internal/processors/odbc/OdbcRequest.java | 58 +
.../processors/odbc/OdbcRequestHandler.java | 409 +
.../internal/processors/odbc/OdbcResponse.java | 96 +
.../internal/processors/odbc/OdbcTableMeta.java | 85 +
.../internal/processors/odbc/OdbcUtils.java | 56 +
.../odbc/escape/OdbcEscapeParseResult.java | 73 +
.../processors/odbc/escape/OdbcEscapeToken.java | 61 +
.../processors/odbc/escape/OdbcEscapeType.java | 112 +
.../processors/odbc/escape/OdbcEscapeUtils.java | 392 +
.../offheap/GridOffHeapProcessor.java | 26 +
.../platform/PlatformAbstractBootstrap.java | 40 +-
.../platform/PlatformAbstractTarget.java | 17 +-
.../processors/platform/PlatformBootstrap.java | 12 +-
.../platform/PlatformConfigurationEx.java | 14 +
.../platform/PlatformContextImpl.java | 5 +-
.../PlatformDefaultJavaObjectFactory.java | 62 +
.../processors/platform/PlatformIgnition.java | 25 +-
.../platform/PlatformJavaObjectFactoryEx.java | 36 +
.../PlatformJavaObjectFactoryProxy.java | 192 +
.../PlatformJavaObjectSingletonFactory.java | 48 +
.../platform/PlatformNoopProcessor.java | 29 +-
.../processors/platform/PlatformProcessor.java | 52 +-
.../platform/PlatformProcessorImpl.java | 224 +-
.../platform/cache/PlatformCache.java | 453 +-
.../platform/cache/PlatformCacheExtension.java | 47 +
.../affinity/PlatformAffinityFunction.java | 304 +
.../PlatformAffinityFunctionTarget.java | 113 +
.../cache/affinity/PlatformAffinityUtils.java | 118 +
.../query/PlatformAbstractQueryCursor.java | 11 +-
.../query/PlatformContinuousQueryImpl.java | 50 +-
.../cache/query/PlatformFieldsQueryCursor.java | 6 +
.../callback/PlatformCallbackGateway.java | 147 +-
.../callback/PlatformCallbackUtils.java | 77 +
.../platform/cluster/PlatformClusterGroup.java | 7 +
.../platform/compute/PlatformAbstractTask.java | 1 +
.../cpp/PlatformCppConfigurationEx.java | 13 +
.../dotnet/PlatformDotNetBootstrap.java | 21 +
.../dotnet/PlatformDotNetCacheStore.java | 37 +-
.../PlatformDotNetConfigurationClosure.java | 54 +-
.../dotnet/PlatformDotNetConfigurationEx.java | 21 +-
.../dotnet/PlatformDotNetConsoleStream.java | 54 +
.../services/PlatformAbstractService.java | 3 +-
.../platform/services/PlatformServices.java | 249 +-
.../utils/PlatformConfigurationUtils.java | 476 +-
.../platform/utils/PlatformFutureUtils.java | 4 +-
.../platform/utils/PlatformUtils.java | 234 +
.../PlatformDotNetSessionCacheExtension.java | 144 +
.../websession/PlatformDotNetSessionData.java | 260 +
.../PlatformDotNetSessionLockProcessor.java | 84 +
.../PlatformDotNetSessionLockResult.java | 106 +
...tformDotNetSessionSetAndUnlockProcessor.java | 179 +
.../processors/plugin/CachePluginManager.java | 25 +
.../processors/query/GridQueryIndexing.java | 51 +-
.../processors/query/GridQueryProcessor.java | 215 +-
.../query/GridQueryTypeDescriptor.java | 7 +
.../messages/GridQueryCancelRequest.java | 2 +-
.../twostep/messages/GridQueryFailResponse.java | 2 +-
.../messages/GridQueryNextPageRequest.java | 2 +-
.../messages/GridQueryNextPageResponse.java | 12 +-
.../h2/twostep/messages/GridQueryRequest.java | 28 +-
.../processors/resource/GridResourceIoc.java | 438 +-
.../GridResourceJobContextInjector.java | 4 +-
.../resource/GridResourceProcessor.java | 396 +-
.../message/GridClientHandshakeRequest.java | 4 +-
.../handlers/cache/GridCacheCommandHandler.java | 100 +-
.../handlers/query/QueryCommandHandler.java | 28 +-
.../handlers/task/GridTaskCommandHandler.java | 2 +-
.../protocols/tcp/GridTcpRestNioListener.java | 19 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 19 +-
.../rest/request/RestQueryRequest.java | 19 +-
.../service/GridServiceAssignments.java | 10 +-
.../service/GridServiceNotFoundException.java | 4 +-
.../service/GridServiceProcessor.java | 885 +-
.../processors/service/GridServiceProxy.java | 332 +-
.../service/LazyServiceConfiguration.java | 129 +
.../processors/service/ServiceContextImpl.java | 29 +-
.../service/ServiceDescriptorImpl.java | 17 +-
.../session/GridTaskSessionProcessor.java | 9 +-
.../processors/task/GridTaskProcessor.java | 9 +-
.../processors/task/GridTaskWorker.java | 277 +-
.../apache/ignite/internal/util/ClassCache.java | 32 +
.../org/apache/ignite/internal/util/F0.java | 4 +-
.../util/GridBoundedConcurrentOrderedMap.java | 5 +
.../internal/util/GridExecutionStatistics.java | 106 -
.../ignite/internal/util/GridJavaProcess.java | 5 +-
.../ignite/internal/util/GridLeanSet.java | 1 +
.../ignite/internal/util/GridLogThrottle.java | 35 +-
.../ignite/internal/util/HostAndPortRange.java | 205 +
.../internal/util/IgniteExceptionRegistry.java | 5 +-
.../ignite/internal/util/IgniteUtils.java | 303 +-
.../util/StripedCompositeReadWriteLock.java | 10 +
.../util/future/GridCompoundFuture.java | 100 +-
.../internal/util/future/GridFutureAdapter.java | 3 +-
.../ipc/shmem/IpcSharedMemoryNativeLoader.java | 2 +-
.../shmem/IpcSharedMemoryServerEndpoint.java | 10 +-
.../ignite/internal/util/lang/GridFunc.java | 119 +-
.../ignite/internal/util/lang/GridTuple.java | 2 -
.../ignite/internal/util/lang/GridTuple3.java | 2 -
.../ignite/internal/util/lang/GridTuple4.java | 2 -
.../ignite/internal/util/lang/GridTuple5.java | 2 -
.../ignite/internal/util/lang/GridTuple6.java | 2 -
.../ignite/internal/util/lang/GridTupleV.java | 1 +
.../nio/GridConnectionBytesVerifyFilter.java | 2 +-
.../internal/util/nio/GridNioCodecFilter.java | 2 +-
.../internal/util/nio/GridNioFilterChain.java | 2 +-
.../util/nio/GridNioRecoveryDescriptor.java | 19 +-
.../ignite/internal/util/nio/GridNioServer.java | 62 +-
.../util/nio/GridSelectorNioSessionImpl.java | 9 +-
.../util/nio/GridTcpNioCommunicationClient.java | 5 +-
.../offheap/unsafe/GridOffHeapSnapTreeMap.java | 91 +-
.../util/offheap/unsafe/GridUnsafeLru.java | 30 +-
.../apache/ignite/internal/util/typedef/PN.java | 2 +-
.../ignite/internal/visor/cache/VisorCache.java | 75 +-
.../cache/VisorCacheAffinityConfiguration.java | 5 +-
.../visor/cache/VisorCacheAffinityNodeTask.java | 70 +
.../cache/VisorCacheAggregatedMetrics.java | 3 +-
.../visor/cache/VisorCacheConfiguration.java | 8 +-
.../cache/VisorCacheDefaultConfiguration.java | 5 +-
.../cache/VisorCacheEvictionConfiguration.java | 5 +-
.../internal/visor/cache/VisorCacheMetrics.java | 12 +-
.../cache/VisorCacheNearConfiguration.java | 5 +-
.../visor/cache/VisorCachePartition.java | 90 +
.../visor/cache/VisorCachePartitions.java | 89 +
.../visor/cache/VisorCachePartitionsTask.java | 152 +
.../cache/VisorCacheQueryConfiguration.java | 3 +-
.../visor/cache/VisorCacheQueryMetrics.java | 5 +-
.../cache/VisorCacheRebalanceConfiguration.java | 5 +-
.../cache/VisorCacheResetQueryMetricsTask.java | 69 +
.../cache/VisorCacheStoreConfiguration.java | 3 +-
.../cache/VisorCacheTypeFieldMetadata.java | 3 +-
.../visor/cache/VisorCacheTypeMetadata.java | 23 +-
.../internal/visor/cache/VisorCacheV3.java | 52 +
.../internal/visor/cache/VisorCacheV4.java | 124 +
.../visor/compute/VisorGatewayTask.java | 362 +
.../internal/visor/debug/VisorThreadInfo.java | 5 +-
.../visor/debug/VisorThreadLockInfo.java | 5 +-
.../visor/event/VisorGridDiscoveryEventV2.java | 80 +
.../internal/visor/event/VisorGridEvent.java | 5 +-
.../internal/visor/file/VisorFileBlock.java | 5 +-
.../ignite/internal/visor/igfs/VisorIgfs.java | 7 +-
.../internal/visor/igfs/VisorIgfsEndpoint.java | 5 +-
.../internal/visor/igfs/VisorIgfsMetrics.java | 16 +-
.../visor/igfs/VisorIgfsProfilerEntry.java | 5 +-
.../visor/igfs/VisorIgfsProfilerTask.java | 20 +-
.../VisorIgfsProfilerUniformityCounters.java | 5 +-
.../visor/log/VisorLogSearchResult.java | 5 +-
.../visor/node/VisorAtomicConfiguration.java | 5 +-
.../visor/node/VisorBasicConfiguration.java | 5 +-
.../node/VisorExecutorServiceConfiguration.java | 5 +-
.../visor/node/VisorGridConfiguration.java | 5 +-
.../visor/node/VisorIgfsConfiguration.java | 3 +-
.../visor/node/VisorLifecycleConfiguration.java | 5 +-
.../visor/node/VisorMetricsConfiguration.java | 5 +-
.../visor/node/VisorNodeDataCollectorJob.java | 82 +-
.../visor/node/VisorNodeDataCollectorTask.java | 26 -
.../node/VisorNodeDataCollectorTaskResult.java | 5 +-
.../node/VisorPeerToPeerConfiguration.java | 5 +-
.../visor/node/VisorRestConfiguration.java | 5 +-
.../node/VisorSegmentationConfiguration.java | 5 +-
.../visor/node/VisorSpisConfiguration.java | 5 +-
.../node/VisorTransactionConfiguration.java | 5 +-
.../internal/visor/query/VisorQueryArgV2.java | 49 +
.../internal/visor/query/VisorQueryField.java | 5 +-
.../internal/visor/query/VisorQueryJob.java | 39 +-
.../internal/visor/query/VisorQueryResult.java | 5 +-
.../query/VisorQueryScanSubstringFilter.java | 63 +
.../internal/visor/query/VisorQueryUtils.java | 6 +
.../internal/visor/util/VisorEventMapper.java | 96 +-
.../internal/visor/util/VisorTaskUtils.java | 38 +-
.../WebSessionAttributeProcessor.java | 134 +
.../internal/websession/WebSessionEntity.java | 193 +
.../apache/ignite/lang/IgniteAsyncCallback.java | 111 +
.../java/org/apache/ignite/lang/IgniteUuid.java | 2 +-
.../ignite/marshaller/AbstractMarshaller.java | 41 +-
.../AbstractNodeNameAwareMarshaller.java | 142 +
.../apache/ignite/marshaller/Marshaller.java | 6 +-
.../ignite/marshaller/MarshallerUtils.java | 58 +
.../ignite/marshaller/jdk/JdkMarshaller.java | 40 +-
.../optimized/OptimizedMarshaller.java | 12 +-
.../platform/PlatformJavaObjectFactory.java | 36 +
.../dotnet/PlatformDotNetAffinityFunction.java | 186 +
.../ignite/plugin/CachePluginProvider.java | 11 +
.../extensions/communication/MessageReader.java | 9 +
.../plugin/security/SecurityPermissionSet.java | 5 +-
.../ignite/plugin/security/SecuritySubject.java | 5 +-
.../SpringApplicationContextResource.java | 4 +-
.../apache/ignite/resources/SpringResource.java | 15 +-
.../ignite/scheduler/SchedulerFuture.java | 5 +-
.../org/apache/ignite/services/Service.java | 12 +-
.../ignite/services/ServiceConfiguration.java | 14 +-
.../ignite/spi/IgniteNodeValidationResult.java | 8 +-
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 40 +-
.../org/apache/ignite/spi/IgniteSpiContext.java | 26 +-
.../sharedfs/SharedFsCheckpointSpi.java | 7 +-
.../jobstealing/JobStealingCollisionSpi.java | 14 +-
.../jobstealing/JobStealingDisabled.java | 2 +-
.../communication/tcp/TcpCommunicationSpi.java | 238 +-
.../ignite/spi/discovery/tcp/ClientImpl.java | 53 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 905 +-
.../spi/discovery/tcp/TcpDiscoveryImpl.java | 15 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 64 +-
.../tcp/internal/TcpDiscoveryNode.java | 2 +-
.../tcp/internal/TcpDiscoveryStatistics.java | 45 +-
.../ipfinder/jdbc/BasicJdbcIpFinderDialect.java | 28 +
.../tcp/ipfinder/jdbc/JdbcIpFinderDialect.java | 28 +
.../jdbc/OracleJdbcIpFinderDialect.java | 28 +
.../ipfinder/jdbc/TcpDiscoveryJdbcIpFinder.java | 69 +-
.../TcpDiscoveryMulticastIpFinder.java | 7 +-
.../sharedfs/TcpDiscoverySharedFsIpFinder.java | 60 +-
.../messages/TcpDiscoveryAbstractMessage.java | 4 +-
.../TcpDiscoveryClientHeartbeatMessage.java | 1 +
.../TcpDiscoveryClientReconnectMessage.java | 16 +
.../TcpDiscoveryCustomEventMessage.java | 13 +-
.../TcpDiscoveryJoinRequestMessage.java | 16 +-
.../TcpDiscoveryStatusCheckMessage.java | 18 +-
.../ignite/spi/failover/FailoverContext.java | 15 +-
.../spi/failover/always/AlwaysFailoverSpi.java | 15 +-
.../spi/indexing/IndexingQueryFilter.java | 9 +
.../spi/loadbalancing/LoadBalancingSpi.java | 8 +-
.../adaptive/AdaptiveLoadBalancingSpi.java | 20 +-
.../adaptive/AdaptiveLoadProbe.java | 2 +-
.../roundrobin/RoundRobinLoadBalancingSpi.java | 6 +-
.../WeightedRandomLoadBalancingSpi.java | 14 +-
.../spi/swapspace/file/FileSwapSpaceSpi.java | 91 +-
.../ignite/stream/socket/SocketStreamer.java | 18 +-
.../thread/IgniteStripedThreadPoolExecutor.java | 164 +-
.../apache/ignite/transactions/Transaction.java | 19 +-
.../TransactionDeadlockException.java | 42 +
.../TransactionTimeoutException.java | 5 +-
.../java/org/jetbrains/annotations/NotNull.java | 38 -
.../org/jetbrains/annotations/Nullable.java | 33 -
.../org/jetbrains/annotations/package-info.java | 27 -
.../resources/META-INF/classnames.properties | 249 +-
.../core/src/main/resources/ignite.properties | 2 +-
modules/core/src/test/config/igfs-loopback.xml | 7 -
modules/core/src/test/config/igfs-shmem.xml | 7 -
modules/core/src/test/config/log4j-test.xml | 6 +
.../GridCacheAffinityBackupsSelfTest.java | 2 +-
.../AbstractAffinityFunctionSelfTest.java | 18 +-
.../affinity/AffinityClientNodeSelfTest.java | 77 +-
...ityFunctionBackupFilterAbstractSelfTest.java | 131 +-
.../affinity/AffinityHistoryCleanupTest.java | 414 +
...airAffinityFunctionBackupFilterSelfTest.java | 9 +
.../fair/FairAffinityFunctionNodesSelfTest.java | 2 +
.../local/LocalAffinityFunctionTest.java | 80 +
...ousAffinityFunctionBackupFilterSelfTest.java | 9 +
.../CacheJdbcPojoStoreAbstractSelfTest.java | 212 +-
...heJdbcPojoStoreBinaryMarshallerSelfTest.java | 26 +-
...reBinaryMarshallerWithSqlEscapeSelfTest.java | 28 +
...dbcPojoStoreOptimizedMarshallerSelfTest.java | 2 +-
...ptimizedMarshallerWithSqlEscapeSelfTest.java | 28 +
...eJdbcStoreAbstractMultithreadedSelfTest.java | 25 +-
.../cache/store/jdbc/H2DataSourceFactory.java | 35 +
.../ignite/cache/store/jdbc/model/Person.java | 25 +
.../ignite/igfs/IgfsEventsAbstractSelfTest.java | 26 +-
.../ignite/igfs/IgfsFragmentizerSelfTest.java | 2 -
.../apache/ignite/igfs/IgfsPathSelfTest.java | 6 -
.../ignite/internal/ClusterGroupSelfTest.java | 32 +-
.../internal/ClusterNodeMetricsSelfTest.java | 101 +-
.../ignite/internal/GridAffinitySelfTest.java | 5 +-
.../GridEventStorageCheckAllEventsSelfTest.java | 30 +-
.../internal/GridEventStorageSelfTest.java | 97 +-
.../ignite/internal/GridGetOrStartSelfTest.java | 70 +
.../GridJobMasterLeaveAwareSelfTest.java | 4 +-
...ectionLocalJobMultipleArgumentsSelfTest.java | 4 +-
.../internal/GridTaskExecutionSelfTest.java | 90 +-
.../GridTaskFailoverAffinityRunTest.java | 8 +-
.../IgniteClientReconnectAbstractTest.java | 15 +-
.../IgniteClientReconnectAtomicsTest.java | 66 +-
.../IgniteClientReconnectCacheTest.java | 35 +
.../IgniteClientReconnectCollectionsTest.java | 4 +-
.../IgniteClientReconnectComputeTest.java | 6 +-
...eClientReconnectContinuousProcessorTest.java | 60 +-
.../IgniteClientReconnectFailoverTest.java | 2 +
.../IgniteClientReconnectServicesTest.java | 4 +-
.../IgniteClientReconnectStreamerTest.java | 2 +-
.../IgniteComputeEmptyClusterGroupTest.java | 8 +-
...eConcurrentEntryProcessorAccessStopTest.java | 82 +
.../IgniteLocalNodeMapBeforeStartTest.java | 82 +
.../MarshallerContextLockingSelfTest.java | 139 +
.../internal/TestRecordingCommunicationSpi.java | 65 +-
.../ignite/internal/binary/AffinityKey.java | 69 +
.../binary/BinaryMarshallerSelfTest.java | 304 +-
.../BinaryObjectBuilderAdditionalSelfTest.java | 92 +-
.../binary/BinaryObjectToStringSelfTest.java | 92 +
.../internal/binary/BinaryTreeSelfTest.java | 341 +
.../binary/GridBinaryAffinityKeySelfTest.java | 19 +-
.../binary/GridBinaryWildcardsSelfTest.java | 53 +-
...aultBinaryMappersBinaryMetaDataSelfTest.java | 17 +
...GridManagerLocalMessageListenerSelfTest.java | 222 +
.../GridDiscoveryManagerAliveCacheSelfTest.java | 4 +-
.../GridDiscoveryManagerAttributesSelfTest.java | 126 +
.../discovery/GridDiscoveryManagerSelfTest.java | 6 +-
.../BinaryObjectOffHeapUnswapTemporaryTest.java | 368 +
.../cache/CacheAffinityCallSelfTest.java | 85 +-
.../cache/CacheClientStoreSelfTest.java | 209 +-
.../cache/CacheGetEntryAbstractTest.java | 39 +-
...GetEntryOptimisticReadCommittedSeltTest.java | 2 +-
...erceptorPartitionCounterLocalSanityTest.java | 687 +
...torPartitionCounterRandomOperationsTest.java | 1054 ++
.../processors/cache/CacheNamesSelfTest.java | 16 +-
.../CacheNamesWithSpecialCharactersTest.java | 71 +
...cheNearUpdateTopologyChangeAbstractTest.java | 2 +
.../cache/CacheReadThroughRestartSelfTest.java | 2 +
.../CacheSerializableTransactionsTest.java | 5 +
.../CacheStartupInDeploymentModesTest.java | 230 +
.../CacheStoreUsageMultinodeAbstractTest.java | 5 +-
.../CacheSwapUnswapGetTestSmallQueueSize.java | 35 +
.../processors/cache/CacheTxFastFinishTest.java | 253 +
.../CacheTxNotAllowReadFromBackupTest.java | 297 +
.../cache/CrossCacheTxRandomOperationsTest.java | 13 +-
.../EntryVersionConsistencyReadThroughTest.java | 265 +
...idAbstractCacheInterceptorRebalanceTest.java | 356 +
.../cache/GridCacheAbstractFullApiSelfTest.java | 849 +-
.../GridCacheAbstractLocalStoreSelfTest.java | 480 +-
.../cache/GridCacheAbstractMetricsSelfTest.java | 2 +-
.../GridCacheAbstractRemoveFailureTest.java | 10 +-
.../cache/GridCacheAbstractSelfTest.java | 243 +-
...acheAbstractUsersAffinityMapperSelfTest.java | 2 +-
.../cache/GridCacheDeploymentSelfTest.java | 2 +
.../cache/GridCacheEntryVersionSelfTest.java | 2 +-
.../GridCacheInterceptorAbstractSelfTest.java | 2 +-
...heInterceptorAtomicOffheapRebalanceTest.java | 30 +
...GridCacheInterceptorAtomicRebalanceTest.java | 36 +
...ceptorTransactionalOffheapRebalanceTest.java | 35 +
...heInterceptorTransactionalRebalanceTest.java | 36 +
.../cache/GridCacheOffHeapCleanupTest.java | 169 +
.../GridCachePartitionedLocalStoreSelfTest.java | 6 -
...chePartitionedOffHeapLocalStoreSelfTest.java | 6 -
.../GridCachePreloadingEvictionsSelfTest.java | 4 +-
.../GridCacheReplicatedLocalStoreSelfTest.java | 6 -
...ridCacheStoreManagerDeserializationTest.java | 41 +-
.../cache/GridCacheStoreValueBytesSelfTest.java | 2 +-
.../cache/GridCacheSwapCleanupTest.java | 99 +
...acheTcpClientDiscoveryMultiThreadedTest.java | 2 +-
.../processors/cache/GridCacheTestEntryEx.java | 20 +-
.../GridCacheTtlManagerNotificationTest.java | 297 +
.../cache/GridCacheTtlManagerSelfTest.java | 2 +-
...ridCacheTxPartitionedLocalStoreSelfTest.java | 6 -
.../cache/GridCacheUtilsSelfTest.java | 64 +-
...idCacheValueConsistencyAbstractSelfTest.java | 9 +-
.../GridCacheVersionTopologyChangeTest.java | 246 +
...calCacheStoreManagerDeserializationTest.java | 2 +-
.../cache/GridLocalIgniteSerializationTest.java | 378 +
.../processors/cache/H2CacheStoreStrategy.java | 468 +
.../cache/IgniteCacheAbstractTest.java | 2 +-
.../cache/IgniteCacheAtomicPeekModesTest.java | 2 +-
.../IgniteCacheBinaryObjectsScanSelfTest.java | 2 +
.../IgniteCacheConfigVariationsFullApiTest.java | 336 +-
.../cache/IgniteCacheCreateRestartSelfTest.java | 2 -
.../IgniteCacheEntryProcessorNodeJoinTest.java | 147 +-
...niteCacheExpireAndUpdateConsistencyTest.java | 444 +
.../cache/IgniteCacheIncrementTxTest.java | 299 +
.../IgniteCacheInterceptorSelfTestSuite.java | 7 +
...gniteCacheInvokeReadThroughAbstractTest.java | 382 +
...iteCacheInvokeReadThroughSingleNodeTest.java | 106 +
.../cache/IgniteCacheInvokeReadThroughTest.java | 182 +-
.../cache/IgniteCacheNearLockValueSelfTest.java | 2 +-
.../IgniteCacheP2pUnmarshallingErrorTest.java | 1 -
...CacheP2pUnmarshallingRebalanceErrorTest.java | 36 +-
.../IgniteCacheP2pUnmarshallingTxErrorTest.java | 2 +
.../cache/IgniteCachePeekModesAbstractTest.java | 471 +-
.../IgniteCacheReadThroughEvictionSelfTest.java | 297 +
...acheReadThroughEvictionsVariationsSuite.java | 58 +
.../IgniteCacheReadThroughStoreCallTest.java | 288 +
.../IgniteClientAffinityAssignmentSelfTest.java | 2 +-
...eDynamicCacheStartNoExchangeTimeoutTest.java | 2 +
.../cache/IgniteDynamicCacheStartSelfTest.java | 217 +-
...niteDynamicCacheStartStopConcurrentTest.java | 8 +-
.../IgniteDynamicClientCacheStartSelfTest.java | 10 -
.../cache/IgniteTxConfigCacheSelfTest.java | 91 +-
.../IgniteTxExceptionAbstractSelfTest.java | 38 +-
.../cache/IgniteTxReentryAbstractSelfTest.java | 2 +-
.../IgniteTxStoreExceptionAbstractSelfTest.java | 8 +-
...rceptorCacheConfigVariationsFullApiTest.java | 118 +
...terceptorWithKeepBinaryCacheFullApiTest.java | 124 +
.../processors/cache/MapCacheStoreStrategy.java | 145 +
.../MarshallerCacheJobRunNodeRestartTest.java | 307 +
.../cache/TestCacheStoreStrategy.java | 96 +
.../cache/WithKeepBinaryCacheFullApiTest.java | 1226 ++
.../CacheKeepBinaryWithInterceptorTest.java | 419 +
...acheBinaryObjectUserClassloaderSelfTest.java | 274 +
.../GridCacheBinaryObjectsAbstractSelfTest.java | 298 +-
...eAbstractDataStructuresFailoverSelfTest.java | 220 +-
...actQueueFailoverDataConsistencySelfTest.java | 2 +-
.../GridCacheQueueCleanupSelfTest.java | 4 +-
.../GridCacheSequenceApiSelfAbstractTest.java | 37 -
.../GridCacheSetAbstractSelfTest.java | 5 +-
.../GridCacheSetFailoverAbstractSelfTest.java | 8 +-
.../IgniteClientDataStructuresAbstractTest.java | 70 +
.../IgniteCountDownLatchAbstractSelfTest.java | 158 +-
.../IgniteDataStructureUniqueNameTest.java | 16 +-
.../IgniteLockAbstractSelfTest.java | 1629 ++
.../IgniteSemaphoreAbstractSelfTest.java | 56 +-
...SemaphoreFailoverSafeReleasePermitsTest.java | 129 +
.../local/IgniteLocalLockSelfTest.java | 110 +
.../IgnitePartitionedLockSelfTest.java | 33 +
.../IgnitePartitionedQueueNoBackupsTest.java | 6 +-
.../IgnitePartitionedSetNoBackupsSelfTest.java | 6 +-
.../IgniteReplicatedLockSelfTest.java | 33 +
.../CacheGetInsideLockChangingTopologyTest.java | 6 +
...eLateAffinityAssignmentFairAffinityTest.java | 32 +
...ffinityAssignmentNodeJoinValidationTest.java | 134 +
.../CacheLateAffinityAssignmentTest.java | 2684 ++++
.../GridCacheAbstractJobExecutionTest.java | 6 +-
.../distributed/GridCacheLockAbstractTest.java | 2 +-
.../GridCacheTransformEventSelfTest.java | 68 +-
...niteCacheClientNodeChangingTopologyTest.java | 37 +-
...teCacheClientNodePartitionsExchangeTest.java | 85 +-
.../IgniteCacheClientReconnectTest.java | 2 +
.../IgniteCacheConnectionRecoveryTest.java | 205 +
.../distributed/IgniteCacheCreatePutTest.java | 6 +-
.../distributed/IgniteCacheGetRestartTest.java | 4 +
.../IgniteCacheMessageRecoveryAbstractTest.java | 14 +-
...eCacheMessageRecoveryIdleConnectionTest.java | 157 +
.../IgniteCacheMessageWriteTimeoutTest.java | 129 +
.../IgniteCacheNearRestartRollbackSelfTest.java | 28 +-
.../distributed/IgniteCachePrimarySyncTest.java | 45 +-
.../IgniteCacheReadFromBackupTest.java | 12 +-
.../IgniteCacheServerNodeConcurrentStart.java | 3 +
.../IgniteCacheSingleGetMessageTest.java | 8 +-
.../IgniteCacheTxIteratorSelfTest.java | 241 +
.../IgniteTxCachePrimarySyncTest.java | 1114 ++
...teSynchronizationModesMultithreadedTest.java | 422 +
.../IgniteTxTimeoutAbstractTest.java | 8 +-
.../dht/GridCacheDhtEvictionSelfTest.java | 15 +-
.../GridCacheDhtPreloadMessageCountTest.java | 6 +-
.../distributed/dht/GridCacheDhtTestUtils.java | 9 +-
...idCachePartitionedPreloadEventsSelfTest.java | 11 +
...ridCachePartitionedUnloadEventsSelfTest.java | 2 +
.../dht/GridCacheTxNodeFailureSelfTest.java | 12 +-
.../dht/IgniteCacheConcurrentPutGetRemove.java | 201 +
.../IgniteCachePutRetryAbstractSelfTest.java | 43 +-
...gniteCachePutRetryTransactionalSelfTest.java | 75 +-
...tionedMultiNodeLongTxTimeoutFullApiTest.java | 34 +
...nabledMultiNodeLongTxTimeoutFullApiTest.java | 41 +
...tomicClientOnlyMultiNodeFullApiSelfTest.java | 17 +-
...imaryWriteOrderMultiNodeFullApiSelfTest.java | 35 +
...eAtomicNearOnlyMultiNodeFullApiSelfTest.java | 17 +-
.../near/GridCacheNearJobExecutionSelfTest.java | 2 -
.../near/GridCacheNearMultiNodeSelfTest.java | 4 +-
.../near/GridCacheNearOneNodeSelfTest.java | 4 +-
...idCacheNearOnlyMultiNodeFullApiSelfTest.java | 170 +-
.../near/GridCacheNearReadersSelfTest.java | 2 +
.../near/GridCacheNearTxForceKeyTest.java | 6 +-
...ePartitionedBasicStoreMultiNodeSelfTest.java | 2 +
...LateAffDisabledMultiNodeFullApiSelfTest.java | 34 +
...achePartitionedMultiNodeCounterSelfTest.java | 43 +-
...achePartitionedMultiNodeFullApiSelfTest.java | 2 +
...edOffHeapTieredMultiNodeFullApiSelfTest.java | 2 +-
...achePartitionedPreloadLifecycleSelfTest.java | 102 +-
...idCacheRendezvousAffinityClientSelfTest.java | 2 +
.../rebalancing/CacheNodeSafeAssertion.java | 118 +
...cingDelayedPartitionMapExchangeSelfTest.java | 14 +-
.../GridCacheRebalancingOrderingTest.java | 916 ++
...cheRebalancingPartitionDistributionTest.java | 149 +
.../GridCacheRebalancingSyncSelfTest.java | 245 +-
.../GridCacheReplicatedJobExecutionTest.java | 2 -
.../IgniteCacheSyncRebalanceModeSelfTest.java | 116 +
...CacheReplicatedPreloadLifecycleSelfTest.java | 132 +-
.../IgniteCacheExpiryPolicyAbstractTest.java | 17 +-
.../IgniteCacheExpiryPolicyTestSuite.java | 11 +
...eCacheOnlyOneTtlCleanupThreadExistsTest.java | 102 +
.../expiry/IgniteCacheTtlCleanupSelfTest.java | 2 +-
.../IgniteCacheLoaderWriterAbstractTest.java | 10 +
...CacheLocalOffHeapAndSwapMetricsSelfTest.java | 415 -
.../CacheOffHeapAndSwapMetricsSelfTest.java | 621 +
.../local/GridCacheLocalTxTimeoutSelfTest.java | 5 +-
.../GridCacheQueryTransformerSelfTest.java | 575 +
...FailoverAtomicPrimaryWriteOrderSelfTest.java | 50 +
...sQueryAsyncFailoverTxReplicatedSelfTest.java | 37 +
...eContinuousQueryAsyncFailoverTxSelfTest.java | 44 +
...eContinuousQueryAsyncFilterListenerTest.java | 986 ++
...acheContinuousQueryExecuteInPrimaryTest.java | 306 +
...ryFactoryAsyncFilterRandomOperationTest.java | 131 +
...usQueryFactoryFilterRandomOperationTest.java | 725 +
.../CacheContinuousQueryFactoryFilterTest.java | 714 -
...ContinuousQueryFailoverAbstractSelfTest.java | 198 +-
.../CacheContinuousQueryLostPartitionTest.java | 14 +
...ontinuousQueryOperationFromCallbackTest.java | 627 +
.../CacheContinuousQueryOrderingEventTest.java | 722 +
...acheContinuousQueryRandomOperationsTest.java | 23 +
.../CacheContinuousQueryVariationsTest.java | 949 ++
.../CacheEntryProcessorNonSerializableTest.java | 410 +
...CacheKeepBinaryIterationNearEnabledTest.java | 44 +
...acheKeepBinaryIterationStoreEnabledTest.java | 90 +
...CacheKeepBinaryIterationSwapEnabledTest.java | 56 +
.../CacheKeepBinaryIterationTest.java | 471 +
...yRemoteFilterMissingInClassPathSelfTest.java | 237 +
...ridCacheContinuousQueryAbstractSelfTest.java | 49 +-
...eContinuousQueryMultiNodesFilteringTest.java | 439 +
...dCacheContinuousQueryNodesFilteringTest.java | 168 +
...niteCacheContinuousQueryBackupQueueTest.java | 299 +
...eCacheContinuousQueryImmutableEntryTest.java | 205 +
...teCacheContinuousQueryNoUnsubscribeTest.java | 153 +
...BehindStorePartitionedMultiNodeSelfTest.java | 11 +-
.../transactions/DepthFirstSearchTest.java | 350 +
.../TxDeadlockDetectionNoHangsTest.java | 246 +
.../transactions/TxDeadlockDetectionTest.java | 494 +
...timisticDeadlockDetectionCrossCacheTest.java | 257 +
.../TxOptimisticDeadlockDetectionTest.java | 574 +
...simisticDeadlockDetectionCrossCacheTest.java | 212 +
.../TxPessimisticDeadlockDetectionTest.java | 517 +
.../cluster/GridAddressResolverSelfTest.java | 97 +
...gniteComputeConfigVariationsFullApiTest.java | 2011 +++
.../continuous/GridMessageListenSelfTest.java | 30 +-
.../IgniteNoCustomEventsOnNodeStart.java | 85 +
.../datastreamer/DataStreamerTimeoutTest.java | 163 +
...faultIgfsSecondaryFileSystemTestAdapter.java | 117 +
.../igfs/IgfsAbstractBaseSelfTest.java | 1074 ++
.../processors/igfs/IgfsAbstractSelfTest.java | 1924 +--
.../IgfsAtomicPrimaryMultiNodeSelfTest.java | 39 +
.../IgfsAtomicPrimaryOffheapTieredSelfTest.java | 39 +
.../IgfsAtomicPrimaryOffheapValuesSelfTest.java | 39 +
.../igfs/IgfsAtomicPrimarySelfTest.java | 39 +
.../igfs/IgfsBackupFailoverSelfTest.java | 2 +-
...sCachePerBlockLruEvictionPolicySelfTest.java | 7 +-
.../igfs/IgfsClientCacheSelfTest.java | 139 -
.../igfs/IgfsDataManagerSelfTest.java | 18 +-
.../igfs/IgfsDualAbstractSelfTest.java | 319 +-
.../igfs/IgfsDualAsyncClientSelfTest.java | 28 +
.../igfs/IgfsDualSyncClientSelfTest.java | 28 +
.../igfs/IgfsExUniversalFileSystemAdapter.java | 101 -
.../processors/igfs/IgfsIgniteMock.java | 520 +
...SecondaryFileSystemDualAbstractSelfTest.java | 279 +
...ondaryFileSystemDualAsyncClientSelfTest.java | 28 +
...calSecondaryFileSystemDualAsyncSelfTest.java | 32 +
...condaryFileSystemDualSyncClientSelfTest.java | 28 +
...ocalSecondaryFileSystemDualSyncSelfTest.java | 32 +
...lSecondaryFileSystemProxyClientSelfTest.java | 28 +
...fsLocalSecondaryFileSystemProxySelfTest.java | 272 +
...IgfsLocalSecondaryFileSystemTestAdapter.java | 141 +
.../processors/igfs/IgfsMaxSizeSelfTest.java | 122 +
.../igfs/IgfsMetaManagerSelfTest.java | 28 +-
.../processors/igfs/IgfsMetricsSelfTest.java | 75 +-
.../internal/processors/igfs/IgfsMock.java | 405 +
.../igfs/IgfsModeResolverSelfTest.java | 161 +-
.../processors/igfs/IgfsModesSelfTest.java | 64 +-
.../processors/igfs/IgfsOneClientNodeTest.java | 7 +-
.../igfs/IgfsPrimaryClientSelfTest.java | 30 +
...PrimaryRelaxedConsistencyClientSelfTest.java | 28 +
.../processors/igfs/IgfsProcessorSelfTest.java | 11 +-
.../igfs/IgfsProcessorValidationSelfTest.java | 64 +-
.../processors/igfs/IgfsProxySelfTest.java | 32 +
.../IgfsSecondaryFileSystemTestAdapter.java | 118 +
.../processors/igfs/IgfsSizeSelfTest.java | 133 -
.../processors/igfs/IgfsStreamsSelfTest.java | 9 +-
.../processors/igfs/IgfsTaskSelfTest.java | 2 +-
.../igfs/UniversalFileSystemAdapter.java | 98 -
...niteMessagingConfigVariationFullApiTest.java | 484 +
.../odbc/OdbcEscapeSequenceSelfTest.java | 778 +
.../odbc/OdbcProcessorValidationSelfTest.java | 175 +
.../GridCacheAtomicCommandHandlerSelfTest.java | 39 +
.../cache/GridCacheCommandHandlerSelfTest.java | 20 +-
.../query/GridQueryCommandHandlerTest.java | 191 +
.../service/GridServiceClientNodeTest.java | 102 +-
...rviceDeploymentExceptionPropagationTest.java | 80 +
...GridServiceProxyClientReconnectSelfTest.java | 124 +
.../GridServiceProxyNodeStopSelfTest.java | 2 +-
...gniteServiceConfigVariationsFullApiTest.java | 350 +
...yment2ClassLoadersDefaultMarshallerTest.java | 259 +
...eployment2ClassLoadersJdkMarshallerTest.java | 31 +
...ent2ClassLoadersOptimizedMarshallerTest.java | 31 +
...oymentClassLoadingDefaultMarshallerTest.java | 212 +
...DeploymentClassLoadingJdkMarshallerTest.java | 31 +
...mentClassLoadingOptimizedMarshallerTest.java | 31 +
.../service/IgniteServiceReassignmentTest.java | 250 +
.../ServicePredicateAccessCacheTest.java | 4 +-
.../internal/util/IgniteUtilsSelfTest.java | 15 +
...GridUnsafeDataOutputArraySizingSelfTest.java | 144 +-
.../unsafe/GridOffheapSnapTreeSelfTest.java | 2 +-
.../ignite/jvmtest/ConcurrentMapTest.java | 3 +-
.../cache/GridCacheDataStructuresLoadTest.java | 53 +
.../GridTcpCommunicationBenchmark.java | 26 +-
.../loadtests/hashmap/GridCacheTestContext.java | 4 +
.../marshaller/MarshallerContextSelfTest.java | 90 +
.../marshaller/MarshallerContextTestImpl.java | 35 +-
.../GridP2PMissedResourceCacheSizeSelfTest.java | 6 +-
.../platform/PlatformCacheEntryEventFilter.java | 193 +
.../PlatformCacheEntryEventFilterFactory.java | 59 +
...latformDefaultJavaObjectFactorySelfTest.java | 185 +
.../platform/PlatformDeployServiceTask.java | 360 +
.../PlatformJavaObjectFactoryProxySelfTest.java | 220 +
.../platform/PlatformStartIgniteTask.java | 1 +
.../ignite/platform/PlatformStopIgniteTask.java | 1 +
.../ignite/platform/PlatformStringTestTask.java | 67 +
.../platform/javaobject/TestJavaObject.java | 271 +
.../javaobject/TestJavaObjectNoDefaultCtor.java | 49 +
.../TestJavaObjectNoDefaultCtorFactory.java | 68 +
.../spi/GridTcpSpiForwardingSelfTest.java | 237 +-
.../GridTcpCommunicationSpiConfigSelfTest.java | 22 +
.../tcp/TcpClientDiscoverySpiMulticastTest.java | 2 +-
.../tcp/TcpClientDiscoverySpiSelfTest.java | 48 +-
.../tcp/TcpDiscoveryMultiThreadedTest.java | 222 +
.../spi/discovery/tcp/TcpDiscoverySelfTest.java | 278 +-
.../tcp/TcpDiscoverySpiConfigSelfTest.java | 22 +
.../TcpDiscoverySpiFailureTimeoutSelfTest.java | 23 +-
.../spi/discovery/tcp/TestTcpDiscoverySpi.java | 5 +-
.../jdbc/TcpDiscoveryJdbcIpFinderSelfTest.java | 2 +-
.../TcpDiscoveryMulticastIpFinderSelfTest.java | 6 +-
.../TcpDiscoverySharedFsIpFinderSelfTest.java | 25 +
.../vm/TcpDiscoveryVmIpFinderSelfTest.java | 75 +
.../spi/failover/GridFailoverTestContext.java | 6 +
.../GridInternalTasksLoadBalancingSelfTest.java | 201 +
.../file/GridFileSwapSpaceSpiSelfTest.java | 89 +
.../properties/NotStringSystemPropertyTest.java | 124 +
.../testframework/GridSpiTestContext.java | 115 +-
.../ignite/testframework/GridTestUtils.java | 7 +-
.../ignite/testframework/IgniteTestSuite.java | 419 +
.../assertions/AlwaysAssertion.java | 29 +
.../testframework/assertions/Assertion.java | 31 +
.../testframework/assertions/package-info.java | 22 +
.../configvariations/ConfigVariations.java | 8 +-
.../ConfigVariationsTestSuiteBuilder.java | 31 +-
.../configvariations/VariationsTestsConfig.java | 21 +-
.../testframework/junits/GridAbstractTest.java | 69 +-
.../junits/GridTestKernalContext.java | 1 +
...IgniteCacheConfigVariationsAbstractTest.java | 88 +-
.../IgniteConfigVariationsAbstractTest.java | 282 +-
.../ignite/testframework/junits/IgniteMock.java | 25 +
.../junits/common/GridCommonAbstractTest.java | 226 +-
.../common/GridRollingRestartAbstractTest.java | 324 +
.../multijvm/IgniteCacheProcessProxy.java | 160 +-
.../multijvm/IgniteClusterProcessProxy.java | 5 +
.../junits/multijvm/IgniteProcessProxy.java | 46 +-
...naryObjectsTxDeadlockDetectionTestSuite.java | 37 +
.../ignite/testsuites/IgniteBasicTestSuite.java | 19 +-
.../testsuites/IgniteBinaryCacheTestSuite.java | 2 +
.../IgniteBinaryObjectsTestSuite.java | 15 +-
.../IgniteCacheDataStructuresSelfTestSuite.java | 11 +
.../IgniteCacheFailoverTestSuite.java | 2 +
.../IgniteCacheFullApiSelfTestSuite.java | 10 +
.../IgniteCacheMetricsSelfTestSuite.java | 4 +-
.../ignite/testsuites/IgniteCacheTestSuite.java | 25 +
.../testsuites/IgniteCacheTestSuite2.java | 7 +
.../testsuites/IgniteCacheTestSuite3.java | 4 +
.../testsuites/IgniteCacheTestSuite4.java | 17 +
.../testsuites/IgniteCacheTestSuite5.java | 21 +-
...teBasicConfigVariationsFullApiTestSuite.java | 72 +
...iteContinuousQueryConfigVariationsSuite.java | 60 +
.../ignite/testsuites/IgniteIgfsTestSuite.java | 39 +-
.../apache/ignite/testsuites/IgniteIgnore.java | 40 +
.../testsuites/IgniteKernalSelfTestSuite.java | 23 +
.../IgniteMarshallerSelfTestSuite.java | 2 +-
...essagingConfigVariationFullApiTestSuite.java | 72 +
.../testsuites/IgnitePlatformsTestSuite.java | 41 +
.../testsuites/IgniteRestHandlerTestSuite.java | 4 +
...ServiceConfigVariationsFullApiTestSuite.java | 92 +
.../IgniteSpiLoadBalancingSelfTestSuite.java | 34 +-
.../ignite/testsuites/IgniteSpiTestSuite.java | 6 +-
...orCacheConfigVariationsFullApiTestSuite.java | 41 +
.../TxDeadlockDetectionTestSuite.java | 50 +
...ryCacheConfigVariationsFullApiTestSuite.java | 71 +
.../apache/ignite/util/GridLogThrottleTest.java | 27 +-
modules/docker/1.6.0/Dockerfile | 44 +
modules/docker/1.6.0/run.sh | 51 +
modules/docker/1.7.0/Dockerfile | 44 +
modules/docker/1.7.0/run.sh | 51 +
modules/docker/Dockerfile | 24 +-
modules/extdata/p2p/pom.xml | 2 +-
...CacheDeploymentCachePluginConfiguration.java | 7 +
.../apache/ignite/tests/p2p/NoopService.java | 41 +
.../apache/ignite/tests/p2p/NoopService2.java | 41 +
.../extdata/uri/modules/uri-dependency/pom.xml | 2 +-
modules/extdata/uri/pom.xml | 2 +-
modules/flink/README.txt | 33 +
modules/flink/licenses/apache-2.0.txt | 202 +
modules/flink/pom.xml | 167 +
.../apache/ignite/sink/flink/IgniteSink.java | 204 +
.../apache/ignite/sink/flink/package-info.java | 22 +
.../sink/flink/FlinkIgniteSinkSelfTest.java | 188 +
.../flink/FlinkIgniteSinkSelfTestSuite.java | 38 +
.../flink/src/test/resources/example-ignite.xml | 70 +
modules/flume/pom.xml | 2 +-
modules/gce/pom.xml | 2 +-
modules/geospatial/pom.xml | 2 +-
.../query/h2/opt/GridH2SpatialIndex.java | 74 +-
modules/hadoop/pom.xml | 2 +-
.../hadoop/fs/BasicHadoopFileSystemFactory.java | 152 +-
.../fs/CachingHadoopFileSystemFactory.java | 55 +-
.../hadoop/fs/HadoopFileSystemFactory.java | 11 +-
.../fs/IgniteHadoopFileSystemCounterWriter.java | 79 +-
.../fs/IgniteHadoopIgfsSecondaryFileSystem.java | 392 +-
.../fs/KerberosHadoopFileSystemFactory.java | 77 +-
.../hadoop/fs/v1/IgniteHadoopFileSystem.java | 54 +-
.../hadoop/fs/v2/IgniteHadoopFileSystem.java | 76 +-
.../IgniteHadoopClientProtocolProvider.java | 12 +-
.../mapreduce/IgniteHadoopMapReducePlanner.java | 138 +-
.../IgniteHadoopWeightedMapReducePlanner.java | 846 ++
.../ignite/hadoop/util/BasicUserNameMapper.java | 112 +
.../hadoop/util/ChainedUserNameMapper.java | 94 +
.../hadoop/util/KerberosUserNameMapper.java | 137 +
.../ignite/hadoop/util/UserNameMapper.java | 35 +
.../apache/ignite/hadoop/util/package-info.java | 22 +
.../processors/hadoop/HadoopAttributes.java | 168 +
.../processors/hadoop/HadoopClassLoader.java | 992 --
.../processors/hadoop/HadoopCommonUtils.java | 154 +
.../processors/hadoop/HadoopContext.java | 4 +-
.../processors/hadoop/HadoopDefaultJobInfo.java | 157 -
.../processors/hadoop/HadoopExternalSplit.java | 88 +
.../processors/hadoop/HadoopHelperImpl.java | 120 +
.../hadoop/HadoopMapReduceCounterGroup.java | 123 -
.../hadoop/HadoopMapReduceCounters.java | 228 -
.../processors/hadoop/HadoopProcessor.java | 150 +-
.../processors/hadoop/HadoopSplitWrapper.java | 119 +
.../internal/processors/hadoop/HadoopUtils.java | 355 -
.../hadoop/counter/HadoopCounterAdapter.java | 1 +
.../counter/HadoopPerformanceCounter.java | 12 +-
.../hadoop/delegate/HadoopDelegateUtils.java | 138 +
.../HadoopFileSystemCounterWriterDelegate.java | 36 +
.../HadoopFileSystemFactoryDelegate.java | 36 +
.../HadoopIgfsSecondaryFileSystemDelegate.java | 28 +
.../hadoop/fs/HadoopFileSystemCacheUtils.java | 242 -
.../hadoop/fs/HadoopFileSystemsUtils.java | 51 -
.../hadoop/fs/HadoopLazyConcurrentMap.java | 212 -
.../hadoop/fs/HadoopLocalFileSystemV1.java | 39 -
.../hadoop/fs/HadoopLocalFileSystemV2.java | 88 -
.../processors/hadoop/fs/HadoopParameters.java | 94 -
.../hadoop/fs/HadoopRawLocalFileSystem.java | 314 -
.../processors/hadoop/igfs/HadoopIgfs.java | 202 -
.../igfs/HadoopIgfsCommunicationException.java | 57 -
.../processors/hadoop/igfs/HadoopIgfsEx.java | 93 -
.../hadoop/igfs/HadoopIgfsFuture.java | 97 -
.../hadoop/igfs/HadoopIgfsInProc.java | 510 -
.../hadoop/igfs/HadoopIgfsInputStream.java | 629 -
.../processors/hadoop/igfs/HadoopIgfsIo.java | 76 -
.../processors/hadoop/igfs/HadoopIgfsIpcIo.java | 624 -
.../hadoop/igfs/HadoopIgfsIpcIoListener.java | 36 -
.../hadoop/igfs/HadoopIgfsJclLogger.java | 116 -
.../hadoop/igfs/HadoopIgfsOutProc.java | 524 -
.../hadoop/igfs/HadoopIgfsOutputStream.java | 201 -
.../hadoop/igfs/HadoopIgfsProperties.java | 86 -
.../hadoop/igfs/HadoopIgfsProxyInputStream.java | 337 -
.../igfs/HadoopIgfsProxyOutputStream.java | 165 -
...fsSecondaryFileSystemPositionedReadable.java | 105 -
.../hadoop/igfs/HadoopIgfsStreamDelegate.java | 96 -
.../igfs/HadoopIgfsStreamEventListener.java | 39 -
.../processors/hadoop/igfs/HadoopIgfsUtils.java | 174 -
.../hadoop/igfs/HadoopIgfsWrapper.java | 547 -
.../impl/HadoopMapReduceCounterGroup.java | 124 +
.../hadoop/impl/HadoopMapReduceCounters.java | 229 +
.../processors/hadoop/impl/HadoopUtils.java | 328 +
.../HadoopBasicFileSystemFactoryDelegate.java | 164 +
.../HadoopCachingFileSystemFactoryDelegate.java | 75 +
.../HadoopDefaultFileSystemFactoryDelegate.java | 62 +
...doopFileSystemCounterWriterDelegateImpl.java | 108 +
...doopIgfsSecondaryFileSystemDelegateImpl.java | 472 +
...HadoopKerberosFileSystemFactoryDelegate.java | 112 +
.../impl/fs/HadoopFileSystemCacheUtils.java | 243 +
.../hadoop/impl/fs/HadoopFileSystemsUtils.java | 51 +
.../hadoop/impl/fs/HadoopLazyConcurrentMap.java | 210 +
.../hadoop/impl/fs/HadoopLocalFileSystemV1.java | 40 +
.../hadoop/impl/fs/HadoopLocalFileSystemV2.java | 89 +
.../hadoop/impl/fs/HadoopParameters.java | 94 +
.../impl/fs/HadoopRawLocalFileSystem.java | 315 +
.../processors/hadoop/impl/igfs/HadoopIgfs.java | 203 +
.../igfs/HadoopIgfsCommunicationException.java | 57 +
.../hadoop/impl/igfs/HadoopIgfsEx.java | 94 +
.../hadoop/impl/igfs/HadoopIgfsFuture.java | 97 +
.../hadoop/impl/igfs/HadoopIgfsInProc.java | 511 +
.../hadoop/impl/igfs/HadoopIgfsInputStream.java | 630 +
.../hadoop/impl/igfs/HadoopIgfsIo.java | 76 +
.../hadoop/impl/igfs/HadoopIgfsIpcIo.java | 625 +
.../impl/igfs/HadoopIgfsIpcIoListener.java | 36 +
.../hadoop/impl/igfs/HadoopIgfsJclLogger.java | 116 +
.../hadoop/impl/igfs/HadoopIgfsOutProc.java | 525 +
.../impl/igfs/HadoopIgfsOutputStream.java | 202 +
.../hadoop/impl/igfs/HadoopIgfsProperties.java | 87 +
.../impl/igfs/HadoopIgfsProxyInputStream.java | 338 +
.../impl/igfs/HadoopIgfsProxyOutputStream.java | 166 +
...fsSecondaryFileSystemPositionedReadable.java | 106 +
.../impl/igfs/HadoopIgfsStreamDelegate.java | 96 +
.../igfs/HadoopIgfsStreamEventListener.java | 39 +
.../hadoop/impl/igfs/HadoopIgfsUtils.java | 175 +
.../hadoop/impl/igfs/HadoopIgfsWrapper.java | 554 +
.../hadoop/impl/proto/HadoopClientProtocol.java | 354 +
.../hadoop/impl/v1/HadoopV1CleanupTask.java | 65 +
.../hadoop/impl/v1/HadoopV1Counter.java | 107 +
.../hadoop/impl/v1/HadoopV1MapTask.java | 122 +
.../hadoop/impl/v1/HadoopV1OutputCollector.java | 138 +
.../hadoop/impl/v1/HadoopV1Partitioner.java | 44 +
.../hadoop/impl/v1/HadoopV1ReduceTask.java | 101 +
.../hadoop/impl/v1/HadoopV1Reporter.java | 81 +
.../hadoop/impl/v1/HadoopV1SetupTask.java | 57 +
.../hadoop/impl/v1/HadoopV1Splitter.java | 103 +
.../processors/hadoop/impl/v1/HadoopV1Task.java | 98 +
.../processors/hadoop/impl/v2/HadoopDaemon.java | 126 +
.../impl/v2/HadoopSerializationWrapper.java | 139 +
.../impl/v2/HadoopShutdownHookManager.java | 98 +
.../hadoop/impl/v2/HadoopV2CleanupTask.java | 73 +
.../hadoop/impl/v2/HadoopV2Context.java | 244 +
.../hadoop/impl/v2/HadoopV2Counter.java | 89 +
.../processors/hadoop/impl/v2/HadoopV2Job.java | 452 +
.../impl/v2/HadoopV2JobResourceManager.java | 324 +
.../hadoop/impl/v2/HadoopV2MapTask.java | 99 +
.../hadoop/impl/v2/HadoopV2Partitioner.java | 44 +
.../hadoop/impl/v2/HadoopV2ReduceTask.java | 91 +
.../hadoop/impl/v2/HadoopV2SetupTask.java | 66 +
.../hadoop/impl/v2/HadoopV2Splitter.java | 112 +
.../processors/hadoop/impl/v2/HadoopV2Task.java | 186 +
.../hadoop/impl/v2/HadoopV2TaskContext.java | 563 +
.../impl/v2/HadoopWritableSerialization.java | 76 +
.../hadoop/jobtracker/HadoopJobTracker.java | 31 +-
.../planner/HadoopAbstractMapReducePlanner.java | 116 +
.../planner/HadoopDefaultMapReducePlan.java | 7 +-
.../planner/HadoopMapReducePlanGroup.java | 150 +
.../planner/HadoopMapReducePlanTopology.java | 89 +
.../hadoop/proto/HadoopClientProtocol.java | 349 -
.../shuffle/collections/HadoopMultimapBase.java | 90 +-
.../child/HadoopChildProcessRunner.java | 18 +-
.../HadoopExternalCommunication.java | 6 +-
.../hadoop/v1/HadoopV1CleanupTask.java | 64 -
.../processors/hadoop/v1/HadoopV1Counter.java | 106 -
.../processors/hadoop/v1/HadoopV1MapTask.java | 122 -
.../hadoop/v1/HadoopV1OutputCollector.java | 137 -
.../hadoop/v1/HadoopV1Partitioner.java | 44 -
.../hadoop/v1/HadoopV1ReduceTask.java | 101 -
.../processors/hadoop/v1/HadoopV1Reporter.java | 81 -
.../processors/hadoop/v1/HadoopV1SetupTask.java | 56 -
.../processors/hadoop/v1/HadoopV1Splitter.java | 102 -
.../processors/hadoop/v1/HadoopV1Task.java | 97 -
.../processors/hadoop/v2/HadoopDaemon.java | 126 -
.../hadoop/v2/HadoopExternalSplit.java | 89 -
.../hadoop/v2/HadoopSerializationWrapper.java | 138 -
.../hadoop/v2/HadoopShutdownHookManager.java | 98 -
.../hadoop/v2/HadoopSplitWrapper.java | 119 -
.../hadoop/v2/HadoopV2CleanupTask.java | 72 -
.../processors/hadoop/v2/HadoopV2Context.java | 243 -
.../processors/hadoop/v2/HadoopV2Counter.java | 88 -
.../processors/hadoop/v2/HadoopV2Job.java | 435 -
.../hadoop/v2/HadoopV2JobResourceManager.java | 326 -
.../processors/hadoop/v2/HadoopV2MapTask.java | 99 -
.../hadoop/v2/HadoopV2Partitioner.java | 44 -
.../hadoop/v2/HadoopV2ReduceTask.java | 91 -
.../processors/hadoop/v2/HadoopV2SetupTask.java | 65 -
.../processors/hadoop/v2/HadoopV2Splitter.java | 111 -
.../processors/hadoop/v2/HadoopV2Task.java | 185 -
.../hadoop/v2/HadoopV2TaskContext.java | 559 -
.../hadoop/v2/HadoopWritableSerialization.java | 75 -
.../HadoopClientProtocolEmbeddedSelfTest.java | 35 -
.../hadoop/HadoopClientProtocolSelfTest.java | 654 -
.../hadoop/cache/HadoopTxConfigCacheTest.java | 42 -
...KerberosHadoopFileSystemFactorySelfTest.java | 121 -
.../ignite/igfs/Hadoop1DualAbstractTest.java | 113 -
.../igfs/Hadoop1OverIgfsDualAsyncTest.java | 30 -
.../igfs/Hadoop1OverIgfsDualSyncTest.java | 30 -
.../igfs/HadoopFIleSystemFactorySelfTest.java | 326 -
...oopFileSystemUniversalFileSystemAdapter.java | 131 -
.../HadoopIgfs20FileSystemAbstractSelfTest.java | 2038 ---
...Igfs20FileSystemLoopbackPrimarySelfTest.java | 74 -
...oopIgfs20FileSystemShmemPrimarySelfTest.java | 74 -
.../igfs/HadoopIgfsDualAbstractSelfTest.java | 321 -
.../igfs/HadoopIgfsDualAsyncSelfTest.java | 32 -
.../ignite/igfs/HadoopIgfsDualSyncSelfTest.java | 32 -
...oopSecondaryFileSystemConfigurationTest.java | 575 -
.../apache/ignite/igfs/IgfsEventsTestSuite.java | 279 -
.../igfs/IgfsNearOnlyMultiNodeSelfTest.java | 223 -
.../IgniteHadoopFileSystemAbstractSelfTest.java | 2431 ---
.../IgniteHadoopFileSystemClientSelfTest.java | 212 -
...IgniteHadoopFileSystemHandshakeSelfTest.java | 314 -
.../IgniteHadoopFileSystemIpcCacheSelfTest.java | 214 -
.../IgniteHadoopFileSystemLoggerSelfTest.java | 298 -
...niteHadoopFileSystemLoggerStateSelfTest.java | 329 -
...adoopFileSystemLoopbackAbstractSelfTest.java | 46 -
...SystemLoopbackEmbeddedDualAsyncSelfTest.java | 33 -
...eSystemLoopbackEmbeddedDualSyncSelfTest.java | 33 -
...leSystemLoopbackEmbeddedPrimarySelfTest.java | 33 -
...SystemLoopbackEmbeddedSecondarySelfTest.java | 34 -
...SystemLoopbackExternalDualAsyncSelfTest.java | 33 -
...eSystemLoopbackExternalDualSyncSelfTest.java | 33 -
...leSystemLoopbackExternalPrimarySelfTest.java | 33 -
...SystemLoopbackExternalSecondarySelfTest.java | 34 -
...condaryFileSystemInitializationSelfTest.java | 214 -
...teHadoopFileSystemSecondaryModeSelfTest.java | 327 -
...teHadoopFileSystemShmemAbstractSelfTest.java | 91 -
...ileSystemShmemEmbeddedDualAsyncSelfTest.java | 33 -
...FileSystemShmemEmbeddedDualSyncSelfTest.java | 33 -
...pFileSystemShmemEmbeddedPrimarySelfTest.java | 33 -
...ileSystemShmemEmbeddedSecondarySelfTest.java | 33 -
...ileSystemShmemExternalDualAsyncSelfTest.java | 33 -
...FileSystemShmemExternalDualSyncSelfTest.java | 33 -
...pFileSystemShmemExternalPrimarySelfTest.java | 33 -
...ileSystemShmemExternalSecondarySelfTest.java | 33 -
.../hadoop/HadoopAbstractSelfTest.java | 239 -
.../hadoop/HadoopAbstractWordCountTest.java | 175 -
.../hadoop/HadoopClassLoaderTest.java | 110 -
.../hadoop/HadoopCommandLineTest.java | 474 -
.../HadoopDefaultMapReducePlannerSelfTest.java | 1028 --
.../hadoop/HadoopFileSystemsTest.java | 155 -
.../processors/hadoop/HadoopGroupingTest.java | 307 -
.../hadoop/HadoopJobTrackerSelfTest.java | 345 -
.../hadoop/HadoopMapReduceEmbeddedSelfTest.java | 253 -
.../processors/hadoop/HadoopMapReduceTest.java | 410 -
.../hadoop/HadoopPopularWordsTest.java | 298 -
.../HadoopSerializationWrapperSelfTest.java | 79 -
.../processors/hadoop/HadoopSharedMap.java | 1 +
.../hadoop/HadoopSnappyFullMapReduceTest.java | 28 -
.../processors/hadoop/HadoopSnappyTest.java | 102 -
.../hadoop/HadoopSortingExternalTest.java | 46 -
.../processors/hadoop/HadoopSortingTest.java | 303 -
.../hadoop/HadoopSplitWrapperSelfTest.java | 72 -
.../processors/hadoop/HadoopStartup.java | 54 -
.../hadoop/HadoopTaskExecutionSelfTest.java | 567 -
.../hadoop/HadoopTasksAllVersionsTest.java | 260 -
.../processors/hadoop/HadoopTasksV1Test.java | 58 -
.../processors/hadoop/HadoopTasksV2Test.java | 77 -
.../hadoop/HadoopTestClassLoader.java | 106 +
.../hadoop/HadoopTestRoundRobinMrPlanner.java | 71 -
.../hadoop/HadoopTestTaskContext.java | 228 -
.../processors/hadoop/HadoopTestUtils.java | 107 -
.../processors/hadoop/HadoopV2JobSelfTest.java | 100 -
.../hadoop/HadoopValidationSelfTest.java | 53 -
.../hadoop/books/alice-in-wonderland.txt | 3735 -----
.../processors/hadoop/books/art-of-war.txt | 6982 ---------
.../hadoop/books/huckleberry-finn.txt | 11733 ---------------
.../processors/hadoop/books/sherlock-holmes.txt | 13052 -----------------
.../processors/hadoop/books/tom-sawyer.txt | 8858 -----------
.../hadoop/deps/CircularWIthHadoop.java | 32 -
.../hadoop/deps/CircularWithoutHadoop.java | 27 -
.../processors/hadoop/deps/WithCast.java | 41 -
.../hadoop/deps/WithClassAnnotation.java | 28 -
.../hadoop/deps/WithConstructorInvocation.java | 31 -
.../processors/hadoop/deps/WithExtends.java | 27 -
.../processors/hadoop/deps/WithField.java | 29 -
.../processors/hadoop/deps/WithImplements.java | 36 -
.../hadoop/deps/WithIndirectField.java | 27 -
.../processors/hadoop/deps/WithInitializer.java | 33 -
.../processors/hadoop/deps/WithInnerClass.java | 31 -
.../hadoop/deps/WithLocalVariable.java | 38 -
.../hadoop/deps/WithMethodAnnotation.java | 32 -
.../hadoop/deps/WithMethodArgument.java | 31 -
.../hadoop/deps/WithMethodCheckedException.java | 31 -
.../hadoop/deps/WithMethodInvocation.java | 31 -
.../hadoop/deps/WithMethodReturnType.java | 31 -
.../hadoop/deps/WithMethodRuntimeException.java | 31 -
.../processors/hadoop/deps/WithOuterClass.java | 38 -
.../hadoop/deps/WithParameterAnnotation.java | 31 -
.../processors/hadoop/deps/WithStaticField.java | 29 -
.../hadoop/deps/WithStaticInitializer.java | 34 -
.../processors/hadoop/deps/Without.java | 25 -
.../hadoop/examples/HadoopWordCount1.java | 94 -
.../hadoop/examples/HadoopWordCount1Map.java | 67 -
.../hadoop/examples/HadoopWordCount1Reduce.java | 56 -
.../hadoop/examples/HadoopWordCount2.java | 111 -
.../hadoop/examples/HadoopWordCount2Mapper.java | 73 -
.../examples/HadoopWordCount2Reducer.java | 72 -
.../impl/HadoopAbstractMapReduceTest.java | 430 +
.../hadoop/impl/HadoopAbstractSelfTest.java | 239 +
.../impl/HadoopAbstractWordCountTest.java | 175 +
.../hadoop/impl/HadoopCommandLineTest.java | 476 +
.../HadoopDefaultMapReducePlannerSelfTest.java | 619 +
.../hadoop/impl/HadoopErrorSimulator.java | 326 +
.../hadoop/impl/HadoopFileSystemsTest.java | 155 +
.../hadoop/impl/HadoopGroupingTest.java | 302 +
.../hadoop/impl/HadoopJobTrackerSelfTest.java | 334 +
.../impl/HadoopMapReduceEmbeddedSelfTest.java | 249 +
.../HadoopMapReduceErrorResilienceTest.java | 154 +
.../hadoop/impl/HadoopMapReduceTest.java | 66 +
.../impl/HadoopNoHadoopMapReduceTest.java | 47 +
.../hadoop/impl/HadoopPlannerMockJob.java | 175 +
.../hadoop/impl/HadoopPopularWordsTest.java | 298 +
.../HadoopSerializationWrapperSelfTest.java | 80 +
.../impl/HadoopSnappyFullMapReduceTest.java | 36 +
.../hadoop/impl/HadoopSnappyTest.java | 104 +
.../hadoop/impl/HadoopSortingExternalTest.java | 46 +
.../hadoop/impl/HadoopSortingTest.java | 304 +
.../hadoop/impl/HadoopSplitWrapperSelfTest.java | 72 +
.../processors/hadoop/impl/HadoopStartup.java | 54 +
.../impl/HadoopTaskExecutionSelfTest.java | 550 +
.../hadoop/impl/HadoopTasksAllVersionsTest.java | 264 +
.../hadoop/impl/HadoopTasksV1Test.java | 62 +
.../hadoop/impl/HadoopTasksV2Test.java | 81 +
.../impl/HadoopTestRoundRobinMrPlanner.java | 75 +
.../hadoop/impl/HadoopTestTaskContext.java | 233 +
.../processors/hadoop/impl/HadoopTestUtils.java | 178 +
.../hadoop/impl/HadoopTxConfigCacheTest.java | 42 +
.../hadoop/impl/HadoopUserLibsSelfTest.java | 261 +
.../hadoop/impl/HadoopV2JobSelfTest.java | 108 +
.../hadoop/impl/HadoopValidationSelfTest.java | 53 +
.../HadoopWeightedMapReducePlannerTest.java | 602 +
.../HadoopWeightedPlannerMapReduceTest.java | 38 +
.../hadoop/impl/books/alice-in-wonderland.txt | 3735 +++++
.../processors/hadoop/impl/books/art-of-war.txt | 6982 +++++++++
.../hadoop/impl/books/huckleberry-finn.txt | 11733 +++++++++++++++
.../hadoop/impl/books/sherlock-holmes.txt | 13052 +++++++++++++++++
.../processors/hadoop/impl/books/tom-sawyer.txt | 8858 +++++++++++
.../HadoopClientProtocolEmbeddedSelfTest.java | 35 +
.../client/HadoopClientProtocolSelfTest.java | 654 +
.../hadoop/impl/examples/HadoopWordCount1.java | 94 +
.../impl/examples/HadoopWordCount1Map.java | 79 +
.../impl/examples/HadoopWordCount1Reduce.java | 61 +
.../hadoop/impl/examples/HadoopWordCount2.java | 111 +
.../impl/examples/HadoopWordCount2Combiner.java | 45 +
.../impl/examples/HadoopWordCount2Mapper.java | 88 +
.../impl/examples/HadoopWordCount2Reducer.java | 113 +
...KerberosHadoopFileSystemFactorySelfTest.java | 126 +
.../impl/igfs/Hadoop1DualAbstractTest.java | 157 +
.../impl/igfs/Hadoop1OverIgfsDualAsyncTest.java | 32 +
.../impl/igfs/Hadoop1OverIgfsDualSyncTest.java | 32 +
.../igfs/HadoopFIleSystemFactorySelfTest.java | 345 +
.../HadoopIgfs20FileSystemAbstractSelfTest.java | 2047 +++
...Igfs20FileSystemLoopbackPrimarySelfTest.java | 77 +
...oopIgfs20FileSystemShmemPrimarySelfTest.java | 77 +
.../igfs/HadoopIgfsDualAbstractSelfTest.java | 328 +
.../impl/igfs/HadoopIgfsDualAsyncSelfTest.java | 32 +
.../impl/igfs/HadoopIgfsDualSyncSelfTest.java | 32 +
...adoopIgfsSecondaryFileSystemTestAdapter.java | 153 +
...oopSecondaryFileSystemConfigurationTest.java | 583 +
.../hadoop/impl/igfs/IgfsEventsTestSuite.java | 289 +
.../igfs/IgfsNearOnlyMultiNodeSelfTest.java | 226 +
.../IgniteHadoopFileSystemAbstractSelfTest.java | 2435 +++
.../IgniteHadoopFileSystemClientSelfTest.java | 216 +
...IgniteHadoopFileSystemHandshakeSelfTest.java | 393 +
.../IgniteHadoopFileSystemIpcCacheSelfTest.java | 215 +
.../IgniteHadoopFileSystemLoggerSelfTest.java | 299 +
...niteHadoopFileSystemLoggerStateSelfTest.java | 332 +
...adoopFileSystemLoopbackAbstractSelfTest.java | 50 +
...SystemLoopbackEmbeddedDualAsyncSelfTest.java | 33 +
...eSystemLoopbackEmbeddedDualSyncSelfTest.java | 33 +
...leSystemLoopbackEmbeddedPrimarySelfTest.java | 33 +
...SystemLoopbackEmbeddedSecondarySelfTest.java | 34 +
...SystemLoopbackExternalDualAsyncSelfTest.java | 33 +
...eSystemLoopbackExternalDualSyncSelfTest.java | 33 +
...leSystemLoopbackExternalPrimarySelfTest.java | 33 +
...SystemLoopbackExternalSecondarySelfTest.java | 34 +
...condaryFileSystemInitializationSelfTest.java | 217 +
...teHadoopFileSystemShmemAbstractSelfTest.java | 94 +
...ileSystemShmemEmbeddedDualAsyncSelfTest.java | 33 +
...FileSystemShmemEmbeddedDualSyncSelfTest.java | 33 +
...pFileSystemShmemEmbeddedPrimarySelfTest.java | 33 +
...ileSystemShmemEmbeddedSecondarySelfTest.java | 33 +
...ileSystemShmemExternalDualAsyncSelfTest.java | 33 +
...FileSystemShmemExternalDualSyncSelfTest.java | 33 +
...pFileSystemShmemExternalPrimarySelfTest.java | 33 +
...ileSystemShmemExternalSecondarySelfTest.java | 33 +
.../collections/HadoopAbstractMapTest.java | 175 +
.../HadoopConcurrentHashMultimapSelftest.java | 280 +
.../collections/HadoopHashMapSelfTest.java | 133 +
.../collections/HadoopSkipListSelfTest.java | 320 +
.../streams/HadoopDataStreamSelfTest.java | 153 +
.../taskexecutor/HadoopExecutorServiceTest.java | 119 +
.../HadoopExternalTaskExecutionSelfTest.java | 232 +
.../HadoopExternalCommunicationSelfTest.java | 222 +
.../impl/util/BasicUserNameMapperSelfTest.java | 134 +
.../util/ChainedUserNameMapperSelfTest.java | 111 +
.../util/KerberosUserNameMapperSelfTest.java | 100 +
.../collections/HadoopAbstractMapTest.java | 172 -
.../HadoopConcurrentHashMultimapSelftest.java | 278 -
.../collections/HadoopHashMapSelfTest.java | 177 -
.../collections/HadoopSkipListSelfTest.java | 318 -
.../streams/HadoopDataStreamSelfTest.java | 150 -
.../hadoop/state/HadoopGroupingTestState.java | 40 +
.../state/HadoopJobTrackerSelfTestState.java | 45 +
.../HadoopMapReduceEmbeddedSelfTestState.java | 32 +
.../HadoopTaskExecutionSelfTestValues.java | 51 +
.../taskexecutor/HadoopExecutorServiceTest.java | 118 -
.../HadoopExternalTaskExecutionSelfTest.java | 232 -
.../HadoopExternalCommunicationSelfTest.java | 220 -
.../testsuites/IgniteHadoopTestSuite.java | 131 +-
.../IgniteIgfsLinuxAndMacOSTestSuite.java | 25 +-
modules/hibernate/pom.xml | 2 +-
modules/ignored-tests/README.txt | 4 +
modules/ignored-tests/pom.xml | 233 +
.../testsuites/IgniteIgnoredTestSuite.java | 57 +
.../apache/ignite/testsuites/package-info.java | 22 +
modules/indexing/pom.xml | 9 +-
.../query/h2/GridH2ResultSetIterator.java | 62 +-
.../processors/query/h2/IgniteH2Indexing.java | 795 +-
.../query/h2/opt/GridH2AbstractKeyValueRow.java | 95 +-
.../query/h2/opt/GridH2CollocationModel.java | 783 +
.../processors/query/h2/opt/GridH2Cursor.java | 36 +-
.../query/h2/opt/GridH2DefaultTableEngine.java | 38 +
.../query/h2/opt/GridH2IndexBase.java | 1426 +-
.../query/h2/opt/GridH2KeyValueRowOffheap.java | 17 +-
.../query/h2/opt/GridH2MetaTable.java | 383 +
.../query/h2/opt/GridH2QueryContext.java | 612 +
.../query/h2/opt/GridH2QueryType.java | 49 +
.../query/h2/opt/GridH2RetryException.java | 32 +
.../processors/query/h2/opt/GridH2Row.java | 86 +-
.../query/h2/opt/GridH2RowDescriptor.java | 28 +-
.../query/h2/opt/GridH2RowFactory.java | 179 +
.../processors/query/h2/opt/GridH2Table.java | 371 +-
.../query/h2/opt/GridH2TreeIndex.java | 142 +-
.../processors/query/h2/opt/GridH2Utils.java | 133 -
.../query/h2/opt/GridH2ValueCacheObject.java | 22 +-
.../query/h2/opt/GridLuceneIndex.java | 7 +-
.../processors/query/h2/sql/GridSqlAlias.java | 12 +
.../processors/query/h2/sql/GridSqlColumn.java | 22 +-
.../processors/query/h2/sql/GridSqlConst.java | 5 +
.../processors/query/h2/sql/GridSqlElement.java | 11 +
.../processors/query/h2/sql/GridSqlJoin.java | 17 +-
.../query/h2/sql/GridSqlOperation.java | 2 +-
.../query/h2/sql/GridSqlOperationType.java | 8 +-
.../query/h2/sql/GridSqlQueryParser.java | 97 +-
.../query/h2/sql/GridSqlQuerySplitter.java | 299 +-
.../processors/query/h2/sql/GridSqlSelect.java | 11 +-
.../processors/query/h2/sql/GridSqlTable.java | 70 +
.../processors/query/h2/sql/GridSqlType.java | 5 +
.../query/h2/twostep/GridMapQueryExecutor.java | 451 +-
.../query/h2/twostep/GridMergeIndex.java | 75 +-
.../h2/twostep/GridMergeIndexUnsorted.java | 6 +-
.../query/h2/twostep/GridMergeTable.java | 4 +-
.../h2/twostep/GridReduceQueryExecutor.java | 343 +-
.../query/h2/twostep/GridThreadLocalTable.java | 68 +-
.../query/h2/twostep/msg/GridH2Array.java | 9 +-
.../query/h2/twostep/msg/GridH2Boolean.java | 10 +-
.../query/h2/twostep/msg/GridH2Byte.java | 9 +-
.../query/h2/twostep/msg/GridH2Bytes.java | 11 +-
.../query/h2/twostep/msg/GridH2CacheObject.java | 9 +-
.../query/h2/twostep/msg/GridH2Date.java | 9 +-
.../query/h2/twostep/msg/GridH2Decimal.java | 11 +-
.../query/h2/twostep/msg/GridH2Double.java | 9 +-
.../query/h2/twostep/msg/GridH2Float.java | 9 +-
.../query/h2/twostep/msg/GridH2Geometry.java | 11 +-
.../h2/twostep/msg/GridH2IndexRangeRequest.java | 208 +
.../twostep/msg/GridH2IndexRangeResponse.java | 279 +
.../query/h2/twostep/msg/GridH2Integer.java | 20 +-
.../query/h2/twostep/msg/GridH2JavaObject.java | 11 +-
.../query/h2/twostep/msg/GridH2Long.java | 9 +-
.../query/h2/twostep/msg/GridH2Null.java | 15 +-
.../h2/twostep/msg/GridH2QueryRequest.java | 401 +
.../query/h2/twostep/msg/GridH2RowMessage.java | 116 +
.../query/h2/twostep/msg/GridH2RowRange.java | 181 +
.../h2/twostep/msg/GridH2RowRangeBounds.java | 188 +
.../query/h2/twostep/msg/GridH2Short.java | 9 +-
.../query/h2/twostep/msg/GridH2String.java | 9 +-
.../query/h2/twostep/msg/GridH2Time.java | 9 +-
.../query/h2/twostep/msg/GridH2Timestamp.java | 11 +-
.../query/h2/twostep/msg/GridH2Uuid.java | 9 +-
.../h2/twostep/msg/GridH2ValueMessage.java | 2 +-
.../twostep/msg/GridH2ValueMessageFactory.java | 22 +-
.../CacheAbstractQueryMetricsSelfTest.java | 10 +-
.../CacheBinaryKeyConcurrentQueryTest.java | 298 +
.../cache/CacheIndexingOffheapCleanupTest.java | 178 +
.../CacheOffheapBatchIndexingBaseTest.java | 313 +
.../CacheOffheapBatchIndexingMultiTypeTest.java | 108 +
...CacheOffheapBatchIndexingSingleTypeTest.java | 161 +
.../CacheOperationsWithExpirationTest.java | 355 +
.../cache/CacheSqlQueryValueCopySelfTest.java | 226 +
.../ClientReconnectAfterClusterRestartTest.java | 225 +
.../cache/GridCacheOffheapIndexGetSelfTest.java | 48 +
...idCacheReduceQueryMultithreadedSelfTest.java | 168 -
...niteBinaryObjectLocalQueryArgumentsTest.java | 28 +
...aryObjectQueryArgumentsOffheapLocalTest.java | 28 +
...teBinaryObjectQueryArgumentsOffheapTest.java | 30 +
.../IgniteBinaryObjectQueryArgumentsTest.java | 472 +-
.../IgniteCacheAbstractFieldsQuerySelfTest.java | 2 +-
.../cache/IgniteCacheAbstractQuerySelfTest.java | 64 +-
.../IgniteCacheConfigVariationsQueryTest.java | 505 +
.../IgniteCacheCrossCacheJoinRandomTest.java | 442 +
...acheDistributedJoinCollocatedAndNotTest.java | 365 +
...acheDistributedJoinCustomAffinityMapper.java | 262 +
.../IgniteCacheDistributedJoinNoIndexTest.java | 299 +
...ributedJoinPartitionedAndReplicatedTest.java | 487 +
...CacheDistributedJoinQueryConditionsTest.java | 624 +
.../cache/IgniteCacheDistributedJoinTest.java | 316 +
...PartitionedAndReplicatedCollocationTest.java | 399 +
...teCacheJoinPartitionedAndReplicatedTest.java | 316 +
...IgniteCacheJoinQueryWithAffinityKeyTest.java | 646 +
...eLockPartitionOnAffinityRunAbstractTest.java | 430 +
...PartitionOnAffinityRunAtomicCacheOpTest.java | 329 +
...niteCacheLockPartitionOnAffinityRunTest.java | 852 ++
...LockPartitionOnAffinityRunTxCacheOpTest.java | 33 +
...titionOnAffinityRunWithCollisionSpiTest.java | 204 +
.../cache/IgniteCacheOffheapEvictQueryTest.java | 2 +-
.../cache/IgniteCacheOffheapIndexScanTest.java | 195 +
...IgniteCachePrimitiveFieldsQuerySelfTest.java | 134 +
.../cache/IgniteCacheQueriesLoadTest1.java | 604 +
.../IgniteCacheQueryH2IndexingLeakTest.java | 214 +
.../cache/IgniteCacheQueryIndexSelfTest.java | 2 +-
.../cache/IgniteCacheQueryLoadSelfTest.java | 12 +-
.../IgniteCacheStarvationOnRebalanceTest.java | 166 +
.../cache/IgniteCacheUnionDuplicatesTest.java | 151 +
.../cache/IgniteClientReconnectQueriesTest.java | 4 +-
.../cache/IgniteCrossCachesJoinsQueryTest.java | 1641 +++
.../IgniteCacheQueryNoRebalanceSelfTest.java | 82 +
...QueryNodeRestartDistributedJoinSelfTest.java | 476 +
.../IgniteCacheQueryNodeRestartSelfTest2.java | 3 +
...gniteCacheReplicatedFieldsQuerySelfTest.java | 6 +-
.../IgniteCacheReplicatedQuerySelfTest.java | 54 +-
.../IgniteCacheLocalFieldsQuerySelfTest.java | 16 +
...dCacheAbstractReduceFieldsQuerySelfTest.java | 420 -
...ridCacheReduceFieldsQueryAtomicSelfTest.java | 38 -
...GridCacheReduceFieldsQueryLocalSelfTest.java | 37 -
...cheReduceFieldsQueryPartitionedSelfTest.java | 59 -
...acheReduceFieldsQueryReplicatedSelfTest.java | 37 -
.../query/IgniteSqlSchemaIndexingTest.java | 5 +-
.../query/IgniteSqlSplitterSelfTest.java | 908 +-
.../h2/GridIndexingSpiAbstractSelfTest.java | 147 +-
.../query/h2/opt/GridH2TableSelfTest.java | 10 +-
.../h2/sql/AbstractH2CompareQueryTest.java | 165 +-
.../query/h2/sql/GridQueryParsingTest.java | 30 +-
.../H2CompareBigQueryDistributedJoinsTest.java | 28 +
.../query/h2/sql/H2CompareBigQueryTest.java | 119 +-
.../IgniteBinaryCacheQueryTestSuite.java | 3 -
.../IgniteBinaryCacheQueryTestSuite2.java | 3 +
.../IgniteCacheAffinityRunTestSuite.java | 45 +
...gniteCacheConfigVariationQueryTestSuite.java | 41 +
.../IgniteCacheQuerySelfTestSuite.java | 44 +-
.../IgniteCacheQuerySelfTestSuite2.java | 14 +-
.../IgniteCacheQuerySelfTestSuite3.java | 36 +-
.../IgniteCacheQuerySelfTestSuite4.java | 7 +
.../IgniteCacheWithIndexingTestSuite.java | 13 +-
modules/jcl/pom.xml | 2 +-
modules/jms11/pom.xml | 2 +-
.../stream/jms11/IgniteJmsStreamerTest.java | 206 +-
.../jms11/IgniteJmsStreamerTestSuite.java | 2 +-
modules/jta/pom.xml | 2 +-
.../websphere/WebSphereLibertyTmFactory.java | 77 +
.../cache/jta/websphere/WebSphereTmFactory.java | 244 +
.../cache/jta/websphere/package-info.java | 22 +
...titionedCacheJtaLookupClassNameSelfTest.java | 4 +-
.../ignite/testsuites/IgniteJtaTestSuite.java | 3 +-
modules/kafka/README.txt | 85 +-
modules/kafka/pom.xml | 5 +-
.../ignite/stream/kafka/KafkaStreamer.java | 4 +-
.../kafka/connect/IgniteSinkConnector.java | 9 +
.../kafka/connect/IgniteSourceConnector.java | 90 +
.../kafka/connect/IgniteSourceConstants.java | 44 +
.../stream/kafka/connect/IgniteSourceTask.java | 363 +
.../stream/kafka/connect/package-info.java | 21 +
.../serialization/CacheEventConverter.java | 66 +
.../serialization/CacheEventDeserializer.java | 54 +
.../serialization/CacheEventSerializer.java | 54 +
.../connect/serialization/package-info.java | 21 +
.../kafka/IgniteKafkaStreamerSelfTestSuite.java | 4 +-
.../kafka/KafkaIgniteStreamerSelfTest.java | 11 +-
.../ignite/stream/kafka/TestKafkaBroker.java | 27 +-
.../kafka/connect/IgniteSinkConnectorTest.java | 32 +-
.../connect/IgniteSourceConnectorMock.java | 30 +
.../connect/IgniteSourceConnectorTest.java | 355 +
.../kafka/connect/IgniteSourceTaskMock.java | 31 +
.../kafka/connect/TestCacheEventFilter.java | 31 +
.../kafka/src/test/resources/example-ignite.xml | 4 +-
modules/log4j/pom.xml | 2 +-
modules/log4j2/pom.xml | 2 +-
modules/mesos/pom.xml | 42 +-
.../apache/ignite/mesos/ClusterProperties.java | 133 +-
.../apache/ignite/mesos/IgniteFramework.java | 23 +-
.../ignite/mesos/resource/IgniteProvider.java | 198 +-
.../ignite/mesos/resource/JettyServer.java | 16 +-
.../ignite/mesos/resource/ResourceProvider.java | 78 +-
modules/mqtt/pom.xml | 2 +-
modules/osgi-karaf/pom.xml | 2 +-
.../osgi-karaf/src/main/resources/features.xml | 12 +-
modules/osgi-paxlogging/pom.xml | 2 +-
modules/osgi/pom.xml | 2 +-
modules/platforms/cpp/DEVNOTES.txt | 66 +-
modules/platforms/cpp/Makefile.am | 61 +
modules/platforms/cpp/Makefile.amrel | 49 +
modules/platforms/cpp/README.txt | 29 +-
modules/platforms/cpp/binary/Makefile.am | 69 +
.../platforms/cpp/binary/include/Makefile.am | 46 +
.../cpp/binary/include/ignite/binary/binary.h | 34 +
.../include/ignite/binary/binary_consts.h | 86 +
.../include/ignite/binary/binary_containers.h | 650 +
.../include/ignite/binary/binary_raw_reader.h | 408 +
.../include/ignite/binary/binary_raw_writer.h | 376 +
.../include/ignite/binary/binary_reader.h | 446 +
.../binary/include/ignite/binary/binary_type.h | 310 +
.../include/ignite/binary/binary_writer.h | 414 +
.../include/ignite/impl/binary/binary_common.h | 194 +
.../ignite/impl/binary/binary_id_resolver.h | 104 +
.../ignite/impl/binary/binary_reader_impl.h | 1426 ++
.../include/ignite/impl/binary/binary_schema.h | 136 +
.../ignite/impl/binary/binary_type_handler.h | 102 +
.../ignite/impl/binary/binary_type_manager.h | 120 +
.../ignite/impl/binary/binary_type_snapshot.h | 122 +
.../ignite/impl/binary/binary_type_updater.h | 53 +
.../include/ignite/impl/binary/binary_utils.h | 633 +
.../ignite/impl/binary/binary_writer_impl.h | 985 ++
.../include/ignite/impl/interop/interop.h | 25 +
.../ignite/impl/interop/interop_input_stream.h | 250 +
.../ignite/impl/interop/interop_memory.h | 269 +
.../ignite/impl/interop/interop_output_stream.h | 250 +
.../interop/interop_stream_position_guard.h | 79 +
.../cpp/binary/project/vs/binary.vcxproj | 233 +
.../binary/project/vs/binary.vcxproj.filters | 145 +
.../cpp/binary/src/binary/binary_containers.cpp | 76 +
.../cpp/binary/src/binary/binary_raw_reader.cpp | 166 +
.../cpp/binary/src/binary/binary_raw_writer.cpp | 167 +
.../cpp/binary/src/binary/binary_reader.cpp | 173 +
.../cpp/binary/src/binary/binary_type.cpp | 51 +
.../cpp/binary/src/binary/binary_writer.cpp | 174 +
.../src/impl/binary/binary_reader_impl.cpp | 921 ++
.../binary/src/impl/binary/binary_schema.cpp | 135 +
.../src/impl/binary/binary_type_handler.cpp | 78 +
.../src/impl/binary/binary_type_manager.cpp | 201 +
.../src/impl/binary/binary_type_snapshot.cpp | 70 +
.../src/impl/binary/binary_type_updater.cpp | 32 +
.../cpp/binary/src/impl/binary/binary_utils.cpp | 303 +
.../src/impl/binary/binary_writer_impl.cpp | 770 +
.../src/impl/interop/interop_input_stream.cpp | 238 +
.../binary/src/impl/interop/interop_memory.cpp | 171 +
.../src/impl/interop/interop_output_stream.cpp | 234 +
modules/platforms/cpp/common/Makefile.am | 53 +-
modules/platforms/cpp/common/configure.ac | 62 -
.../platforms/cpp/common/ignite-common.pc.in | 9 -
.../platforms/cpp/common/include/Makefile.am | 22 +-
.../common/include/ignite/common/big_integer.h | 523 +
.../cpp/common/include/ignite/common/bits.h | 218 +
.../common/include/ignite/common/concurrent.h | 196 +-
.../cpp/common/include/ignite/common/decimal.h | 527 +
.../include/ignite/common/default_allocator.h | 95 +
.../include/ignite/common/dynamic_size_array.h | 415 +
.../cpp/common/include/ignite/common/exports.h | 182 -
.../include/ignite/common/fixed_size_array.h | 288 +
.../cpp/common/include/ignite/common/java.h | 743 -
.../cpp/common/include/ignite/common/utils.h | 226 +-
.../platforms/cpp/common/include/ignite/date.h | 138 +
.../platforms/cpp/common/include/ignite/guid.h | 172 +
.../cpp/common/include/ignite/ignite_error.h | 294 +
.../cpp/common/include/ignite/timestamp.h | 166 +
.../cpp/common/os/linux/include/Makefile.am | 9 +-
.../os/linux/include/ignite/common/common.h | 57 +-
.../linux/include/ignite/common/concurrent_os.h | 2 +-
.../cpp/common/os/linux/src/common.cpp | 59 -
.../os/linux/src/common/concurrent_os.cpp | 175 +
.../cpp/common/os/linux/src/common/utils.cpp | 136 +
.../cpp/common/os/linux/src/concurrent_os.cpp | 175 -
.../os/win/include/ignite/common/common.h | 26 +-
.../win/include/ignite/common/concurrent_os.h | 4 +-
.../platforms/cpp/common/os/win/src/common.cpp | 65 -
.../common/os/win/src/common/concurrent_os.cpp | 175 +
.../cpp/common/os/win/src/common/utils.cpp | 142 +
.../cpp/common/os/win/src/concurrent_os.cpp | 175 -
.../cpp/common/project/vs/common.vcxproj | 78 +-
.../common/project/vs/common.vcxproj.filters | 75 +-
.../platforms/cpp/common/project/vs/module.def | 132 -
.../cpp/common/src/common/big_integer.cpp | 829 ++
.../platforms/cpp/common/src/common/bits.cpp | 233 +
.../cpp/common/src/common/concurrent.cpp | 105 +
.../platforms/cpp/common/src/common/decimal.cpp | 275 +
modules/platforms/cpp/common/src/concurrent.cpp | 94 -
modules/platforms/cpp/common/src/date.cpp | 83 +
modules/platforms/cpp/common/src/exports.cpp | 545 -
modules/platforms/cpp/common/src/guid.cpp | 65 +
.../platforms/cpp/common/src/ignite_error.cpp | 226 +
modules/platforms/cpp/common/src/java.cpp | 2779 ----
modules/platforms/cpp/common/src/timestamp.cpp | 117 +
modules/platforms/cpp/configure.ac | 108 +
modules/platforms/cpp/configure.acrel | 93 +
modules/platforms/cpp/core-test/Makefile.am | 67 +-
.../cpp/core-test/config/cache-query.xml | 44 +-
.../cpp/core-test/config/cache-test.xml | 6 +
modules/platforms/cpp/core-test/configure.ac | 62 -
.../platforms/cpp/core-test/include/Makefile.am | 10 +-
.../include/ignite/binary_test_utils.h | 96 +
.../cpp/core-test/project/vs/core-test.vcxproj | 25 +-
.../project/vs/core-test.vcxproj.filters | 23 +-
.../src/binary_reader_writer_raw_test.cpp | 124 +
.../core-test/src/binary_reader_writer_test.cpp | 192 +
.../cpp/core-test/src/binary_session_test.cpp | 36 +
.../platforms/cpp/core-test/src/bits_test.cpp | 124 +
.../cpp/core-test/src/cache_query_test.cpp | 1093 +-
.../platforms/cpp/core-test/src/cache_test.cpp | 24 +
.../cpp/core-test/src/concurrent_test.cpp | 93 +
.../cpp/core-test/src/decimal_test.cpp | 1101 ++
.../core-test/src/dynamic_size_array_test.cpp | 360 +
.../cpp/core-test/src/fixed_size_array_test.cpp | 208 +
.../cpp/core-test/src/ignite_error_test.cpp | 45 +
.../cpp/core-test/src/interop_test.cpp | 148 +
.../cpp/core-test/src/transactions_test.cpp | 639 +
modules/platforms/cpp/core/Makefile.am | 87 +-
modules/platforms/cpp/core/configure.ac | 62 -
modules/platforms/cpp/core/include/Makefile.am | 84 +-
.../cpp/core/include/ignite/binary/binary.h | 34 -
.../core/include/ignite/binary/binary_consts.h | 86 -
.../include/ignite/binary/binary_containers.h | 530 -
.../include/ignite/binary/binary_raw_reader.h | 355 -
.../include/ignite/binary/binary_raw_writer.h | 331 -
.../core/include/ignite/binary/binary_reader.h | 389 -
.../core/include/ignite/binary/binary_type.h | 310 -
.../core/include/ignite/binary/binary_writer.h | 367 -
.../cpp/core/include/ignite/cache/cache.h | 202 +-
.../cpp/core/include/ignite/cache/cache_entry.h | 45 +-
.../core/include/ignite/cache/cache_peek_mode.h | 6 +-
.../cpp/core/include/ignite/cache/query/query.h | 6 +-
.../include/ignite/cache/query/query_argument.h | 39 +-
.../include/ignite/cache/query/query_cursor.h | 76 +-
.../ignite/cache/query/query_fields_cursor.h | 56 +-
.../ignite/cache/query/query_fields_row.h | 59 +-
.../include/ignite/cache/query/query_scan.h | 18 +-
.../core/include/ignite/cache/query/query_sql.h | 76 +-
.../ignite/cache/query/query_sql_fields.h | 126 +-
.../include/ignite/cache/query/query_text.h | 6 +-
.../platforms/cpp/core/include/ignite/guid.h | 117 -
.../platforms/cpp/core/include/ignite/ignite.h | 49 +-
.../core/include/ignite/ignite_configuration.h | 12 +-
.../cpp/core/include/ignite/ignite_error.h | 265 -
.../cpp/core/include/ignite/ignition.h | 9 +-
.../include/ignite/impl/binary/binary_common.h | 188 -
.../ignite/impl/binary/binary_id_resolver.h | 106 -
.../ignite/impl/binary/binary_reader_impl.h | 1309 --
.../include/ignite/impl/binary/binary_schema.h | 136 -
.../ignite/impl/binary/binary_type_handler.h | 102 -
.../ignite/impl/binary/binary_type_manager.h | 120 -
.../ignite/impl/binary/binary_type_snapshot.h | 122 -
.../ignite/impl/binary/binary_type_updater.h | 53 -
.../impl/binary/binary_type_updater_impl.h | 8 +-
.../include/ignite/impl/binary/binary_utils.h | 344 -
.../ignite/impl/binary/binary_writer_impl.h | 913 --
.../core/include/ignite/impl/cache/cache_impl.h | 75 +-
.../ignite/impl/cache/query/query_batch.h | 148 +
.../impl/cache/query/query_fields_row_impl.h | 50 +-
.../ignite/impl/cache/query/query_impl.h | 39 +-
.../core/include/ignite/impl/handle_registry.h | 6 +-
.../include/ignite/impl/ignite_environment.h | 18 +-
.../cpp/core/include/ignite/impl/ignite_impl.h | 71 +-
.../core/include/ignite/impl/interop/interop.h | 25 -
.../impl/interop/interop_external_memory.h | 54 +
.../ignite/impl/interop/interop_input_stream.h | 250 -
.../ignite/impl/interop/interop_memory.h | 280 -
.../ignite/impl/interop/interop_output_stream.h | 250 -
.../interop/interop_stream_position_guard.h | 79 -
.../ignite/impl/interop/interop_target.h | 153 +
.../cpp/core/include/ignite/impl/operations.h | 134 +-
.../ignite/impl/transactions/transaction_impl.h | 220 +
.../impl/transactions/transactions_impl.h | 138 +
.../include/ignite/transactions/transaction.h | 278 +
.../ignite/transactions/transaction_consts.h | 144 +
.../ignite/transactions/transaction_metrics.h | 181 +
.../include/ignite/transactions/transactions.h | 180 +
modules/platforms/cpp/core/namespaces.dox | 10 +-
.../cpp/core/os/linux/include/Makefile.am | 23 -
.../core/os/linux/include/ignite/impl/utils.h | 155 -
.../cpp/core/os/linux/src/impl/utils.cpp | 439 -
.../cpp/core/os/win/include/ignite/impl/utils.h | 155 -
.../cpp/core/os/win/src/impl/utils.cpp | 453 -
.../platforms/cpp/core/project/vs/core.vcxproj | 92 +-
.../cpp/core/project/vs/core.vcxproj.filters | 181 +-
.../cpp/core/src/binary/binary_containers.cpp | 76 -
.../cpp/core/src/binary/binary_raw_reader.cpp | 145 -
.../cpp/core/src/binary/binary_raw_writer.cpp | 147 -
.../cpp/core/src/binary/binary_reader.cpp | 152 -
.../cpp/core/src/binary/binary_type.cpp | 51 -
.../cpp/core/src/binary/binary_writer.cpp | 154 -
modules/platforms/cpp/core/src/guid.cpp | 65 -
modules/platforms/cpp/core/src/ignite.cpp | 12 +-
modules/platforms/cpp/core/src/ignite_error.cpp | 222 -
modules/platforms/cpp/core/src/ignition.cpp | 24 +-
.../core/src/impl/binary/binary_reader_impl.cpp | 760 -
.../cpp/core/src/impl/binary/binary_schema.cpp | 135 -
.../src/impl/binary/binary_type_handler.cpp | 78 -
.../src/impl/binary/binary_type_manager.cpp | 201 -
.../src/impl/binary/binary_type_snapshot.cpp | 70 -
.../src/impl/binary/binary_type_updater.cpp | 32 -
.../impl/binary/binary_type_updater_impl.cpp | 3 +-
.../cpp/core/src/impl/binary/binary_utils.cpp | 211 -
.../core/src/impl/binary/binary_writer_impl.cpp | 623 -
.../cpp/core/src/impl/cache/cache_impl.cpp | 141 +-
.../core/src/impl/cache/query/query_batch.cpp | 52 +
.../core/src/impl/cache/query/query_impl.cpp | 183 +-
.../cpp/core/src/impl/ignite_environment.cpp | 3 +-
.../platforms/cpp/core/src/impl/ignite_impl.cpp | 30 +-
.../impl/interop/interop_external_memory.cpp | 45 +
.../src/impl/interop/interop_input_stream.cpp | 235 -
.../core/src/impl/interop/interop_memory.cpp | 182 -
.../src/impl/interop/interop_output_stream.cpp | 233 -
.../core/src/impl/interop/interop_target.cpp | 179 +
.../src/impl/transactions/transaction_impl.cpp | 196 +
.../src/impl/transactions/transactions_impl.cpp | 205 +
.../cpp/core/src/transactions/transaction.cpp | 204 +
.../cpp/core/src/transactions/transactions.cpp | 142 +
modules/platforms/cpp/cpp.dxg | 6 +-
modules/platforms/cpp/examples/Makefile.am | 26 +-
modules/platforms/cpp/examples/README.txt | 16 +-
.../cpp/examples/config/example-cache.xml | 77 -
modules/platforms/cpp/examples/configure.ac | 45 +-
.../platforms/cpp/examples/include/Makefile.am | 9 +-
.../examples/include/ignite/examples/address.h | 26 +-
.../include/ignite/examples/organization.h | 33 +-
.../examples/include/ignite/examples/person.h | 110 +
.../cpp/examples/odbc-example/Makefile.am | 57 +
.../odbc-example/config/example-odbc.xml | 113 +
.../project/vs/odbc-example.vcxproj | 108 +
.../project/vs/odbc-example.vcxproj.filters | 28 +
.../examples/odbc-example/src/odbc_example.cpp | 286 +
.../cpp/examples/project/vs/ignite-examples.sln | 17 +-
.../examples/project/vs/ignite-examples.vcxproj | 107 -
.../project/vs/ignite-examples.vcxproj.filters | 30 -
.../cpp/examples/putget-example/Makefile.am | 56 +
.../putget-example/config/example-cache.xml | 75 +
.../project/vs/putget-example.vcxproj | 107 +
.../project/vs/putget-example.vcxproj.filters | 30 +
.../putget-example/src/putget_example.cpp | 126 +
.../cpp/examples/query-example/Makefile.am | 56 +
.../query-example/config/query-example.xml | 121 +
.../project/vs/query-example.vcxproj | 108 +
.../project/vs/query-example.vcxproj.filters | 27 +
.../query-example/src/query_example.cpp | 459 +
.../cpp/examples/src/putgetexample.cpp | 126 -
modules/platforms/cpp/ignite/Makefile.am | 40 +-
modules/platforms/cpp/ignite/configure.ac | 62 -
.../cpp/ignite/project/vs/ignite.vcxproj | 47 +-
.../ignite/project/vs/ignite.vcxproj.filters | 8 -
modules/platforms/cpp/ignite/src/ignite.cpp | 10 +-
modules/platforms/cpp/jni/Makefile.am | 62 +
modules/platforms/cpp/jni/include/Makefile.am | 25 +
.../cpp/jni/include/ignite/jni/exports.h | 191 +
.../platforms/cpp/jni/include/ignite/jni/java.h | 787 +
.../cpp/jni/include/ignite/jni/utils.h | 101 +
.../platforms/cpp/jni/os/linux/src/utils.cpp | 417 +
modules/platforms/cpp/jni/os/win/src/utils.cpp | 428 +
modules/platforms/cpp/jni/project/README.TXT | 1 +
modules/platforms/cpp/jni/project/vs/README.TXT | 1 +
.../platforms/cpp/jni/project/vs/jni.vcxproj | 205 +
.../cpp/jni/project/vs/jni.vcxproj.filters | 42 +
modules/platforms/cpp/jni/project/vs/module.def | 140 +
.../platforms/cpp/jni/project/vs/targetver.h | 25 +
modules/platforms/cpp/jni/src/exports.cpp | 577 +
modules/platforms/cpp/jni/src/java.cpp | 3027 ++++
modules/platforms/cpp/odbc-test/Makefile.am | 93 +
modules/platforms/cpp/odbc-test/README.TXT | 1 +
.../odbc-test/config/queries-test-noodbc.xml | 103 +
.../cpp/odbc-test/config/queries-test.xml | 109 +
.../platforms/cpp/odbc-test/include/Makefile.am | 25 +
.../odbc-test/include/sql_test_suite_fixture.h | 197 +
.../include/teamcity/teamcity_messages.h | 55 +
.../platforms/cpp/odbc-test/include/test_type.h | 130 +
.../cpp/odbc-test/include/test_utils.h | 53 +
.../cpp/odbc-test/project/vs/odbc-test.vcxproj | 215 +
.../project/vs/odbc-test.vcxproj.filters | 141 +
.../cpp/odbc-test/src/api_robustness_test.cpp | 1006 ++
.../src/application_data_buffer_test.cpp | 997 ++
.../platforms/cpp/odbc-test/src/column_test.cpp | 290 +
.../cpp/odbc-test/src/configuration_test.cpp | 394 +
.../cpp/odbc-test/src/connection_info_test.cpp | 219 +
.../platforms/cpp/odbc-test/src/cursor_test.cpp | 205 +
.../platforms/cpp/odbc-test/src/parser_test.cpp | 87 +
.../cpp/odbc-test/src/queries_test.cpp | 823 ++
.../platforms/cpp/odbc-test/src/row_test.cpp | 209 +
.../src/sql_aggregate_functions_test.cpp | 249 +
.../src/sql_date_time_functions_test.cpp | 213 +
.../src/sql_numeric_functions_test.cpp | 309 +
.../cpp/odbc-test/src/sql_operators_test.cpp | 214 +
.../cpp/odbc-test/src/sql_outer_join_test.cpp | 498 +
.../odbc-test/src/sql_string_functions_test.cpp | 354 +
.../odbc-test/src/sql_system_functions_test.cpp | 47 +
.../odbc-test/src/sql_test_suite_fixture.cpp | 288 +
.../cpp/odbc-test/src/sql_types_test.cpp | 60 +
.../src/sql_value_expressions_test.cpp | 94 +
.../odbc-test/src/teamcity/teamcity_boost.cpp | 159 +
.../src/teamcity/teamcity_messages.cpp | 150 +
.../platforms/cpp/odbc-test/src/test_utils.cpp | 36 +
.../cpp/odbc-test/src/utility_test.cpp | 81 +
modules/platforms/cpp/odbc/Makefile.am | 86 +
modules/platforms/cpp/odbc/README.txt | 89 +
modules/platforms/cpp/odbc/include/Makefile.am | 59 +
.../platforms/cpp/odbc/include/ignite/odbc.h | 260 +
.../ignite/odbc/app/application_data_buffer.h | 422 +
.../odbc/include/ignite/odbc/app/parameter.h | 138 +
.../cpp/odbc/include/ignite/odbc/column.h | 155 +
.../cpp/odbc/include/ignite/odbc/common_types.h | 238 +
.../include/ignite/odbc/config/configuration.h | 418 +
.../ignite/odbc/config/connection_info.h | 98 +
.../cpp/odbc/include/ignite/odbc/connection.h | 276 +
.../cpp/odbc/include/ignite/odbc/cursor.h | 114 +
.../ignite/odbc/diagnostic/diagnosable.h | 82 +
.../odbc/diagnostic/diagnosable_adapter.h | 107 +
.../ignite/odbc/diagnostic/diagnostic_record.h | 165 +
.../odbc/diagnostic/diagnostic_record_storage.h | 198 +
.../cpp/odbc/include/ignite/odbc/dsn_config.h | 61 +
.../cpp/odbc/include/ignite/odbc/environment.h | 137 +
.../cpp/odbc/include/ignite/odbc/message.h | 766 +
.../odbc/include/ignite/odbc/meta/column_meta.h | 195 +
.../include/ignite/odbc/meta/primary_key_meta.h | 188 +
.../odbc/include/ignite/odbc/meta/table_meta.h | 166 +
.../cpp/odbc/include/ignite/odbc/parser.h | 134 +
.../odbc/include/ignite/odbc/protocol_version.h | 188 +
.../ignite/odbc/query/column_metadata_query.h | 146 +
.../odbc/include/ignite/odbc/query/data_query.h | 152 +
.../ignite/odbc/query/foreign_keys_query.h | 143 +
.../ignite/odbc/query/primary_keys_query.h | 137 +
.../cpp/odbc/include/ignite/odbc/query/query.h | 119 +
.../ignite/odbc/query/special_columns_query.h | 142 +
.../ignite/odbc/query/table_metadata_query.h | 150 +
.../include/ignite/odbc/query/type_info_query.h | 118 +
.../cpp/odbc/include/ignite/odbc/result_page.h | 98 +
.../cpp/odbc/include/ignite/odbc/row.h | 132 +
.../cpp/odbc/include/ignite/odbc/statement.h | 567 +
.../include/ignite/odbc/system/odbc_constants.h | 41 +
.../include/ignite/odbc/system/socket_client.h | 92 +
.../odbc/system/ui/dsn_configuration_window.h | 160 +
.../cpp/odbc/include/ignite/odbc/type_traits.h | 316 +
.../cpp/odbc/include/ignite/odbc/utility.h | 180 +
.../cpp/odbc/install/ignite-odbc-install.ini | 6 +
.../cpp/odbc/install/install_amd64.cmd | 42 +
.../platforms/cpp/odbc/install/install_x86.cmd | 22 +
.../odbc/os/linux/src/system/socket_client.cpp | 120 +
.../ignite/odbc/system/ui/custom_window.h | 189 +
.../win/include/ignite/odbc/system/ui/window.h | 201 +
.../odbc/os/win/src/system/socket_client.cpp | 133 +
.../odbc/os/win/src/system/ui/custom_window.cpp | 184 +
.../src/system/ui/dsn_configuration_window.cpp | 326 +
.../cpp/odbc/os/win/src/system/ui/window.cpp | 192 +
.../cpp/odbc/os/win/src/system_dsn.cpp | 218 +
modules/platforms/cpp/odbc/project/README.TXT | 1 +
.../platforms/cpp/odbc/project/vs/README.TXT | 1 +
.../platforms/cpp/odbc/project/vs/module.def | 68 +
.../platforms/cpp/odbc/project/vs/odbc.vcxproj | 247 +
.../cpp/odbc/project/vs/odbc.vcxproj.filters | 264 +
.../odbc/src/app/application_data_buffer.cpp | 1484 ++
.../platforms/cpp/odbc/src/app/parameter.cpp | 269 +
modules/platforms/cpp/odbc/src/column.cpp | 484 +
modules/platforms/cpp/odbc/src/common_types.cpp | 123 +
.../cpp/odbc/src/config/configuration.cpp | 328 +
.../cpp/odbc/src/config/connection_info.cpp | 454 +
modules/platforms/cpp/odbc/src/connection.cpp | 374 +
modules/platforms/cpp/odbc/src/cursor.cpp | 82 +
.../odbc/src/diagnostic/diagnosable_adapter.cpp | 51 +
.../odbc/src/diagnostic/diagnostic_record.cpp | 265 +
.../diagnostic/diagnostic_record_storage.cpp | 242 +
modules/platforms/cpp/odbc/src/dsn_config.cpp | 123 +
modules/platforms/cpp/odbc/src/entry_points.cpp | 697 +
modules/platforms/cpp/odbc/src/environment.cpp | 172 +
.../platforms/cpp/odbc/src/meta/column_meta.cpp | 274 +
.../platforms/cpp/odbc/src/meta/table_meta.cpp | 50 +
modules/platforms/cpp/odbc/src/odbc.cpp | 1368 ++
.../platforms/cpp/odbc/src/protocol_version.cpp | 145 +
.../odbc/src/query/column_metadata_query.cpp | 318 +
.../platforms/cpp/odbc/src/query/data_query.cpp | 274 +
.../cpp/odbc/src/query/foreign_keys_query.cpp | 131 +
.../cpp/odbc/src/query/primary_keys_query.cpp | 210 +
.../odbc/src/query/special_columns_query.cpp | 121 +
.../cpp/odbc/src/query/table_metadata_query.cpp | 244 +
.../cpp/odbc/src/query/type_info_query.cpp | 394 +
modules/platforms/cpp/odbc/src/result_page.cpp | 58 +
modules/platforms/cpp/odbc/src/row.cpp | 120 +
modules/platforms/cpp/odbc/src/statement.cpp | 660 +
modules/platforms/cpp/odbc/src/type_traits.cpp | 669 +
modules/platforms/cpp/odbc/src/utility.cpp | 141 +
modules/platforms/cpp/project/vs/ignite.sln | 69 +-
modules/platforms/cpp/project/vs/ignite.slnrel | 49 +-
.../platforms/cpp/project/vs/ignite_x86.slnrel | 49 +-
.../Apache.Ignite.AspNet.Tests.csproj | 77 +
.../Apache.Ignite.AspNet.Tests.snk | Bin 0 -> 596 bytes
.../Apache.Ignite.AspNet.Tests/App.config | 72 +
.../ExpiryCacheHolderTest.cs | 492 +
.../IgniteOutputCacheProviderTest.cs | 172 +
.../IgniteSessionStateItemCollectionTest.cs | 267 +
.../IgniteSessionStateStoreDataTest.cs | 117 +
.../IgniteSessionStateStoreProviderTest.cs | 438 +
.../Properties/AssemblyInfo.cs | 42 +
.../Apache.Ignite.AspNet.Tests/packages.config | 22 +
.../Apache.Ignite.AspNet.csproj | 79 +
.../Apache.Ignite.AspNet.nuspec | 54 +
.../Apache.Ignite.AspNet.ruleset | 12 +
.../Apache.Ignite.AspNet.snk | Bin 0 -> 596 bytes
.../IgniteOutputCacheProvider.cs | 124 +
.../IgniteSessionStateStoreProvider.cs | 500 +
.../Apache.Ignite.AspNet/IgniteWebUtils.cs | 44 +
.../Apache.Ignite.AspNet/Impl/ConfigUtil.cs | 110 +
.../Impl/ExpiryCacheHolder.cs | 113 +
.../Impl/IgniteSessionStateItemCollection.cs | 534 +
.../Impl/IgniteSessionStateStoreData.cs | 116 +
.../Impl/SessionStateLockResult.cs | 91 +
.../dotnet/Apache.Ignite.AspNet/Package-Info.cs | 26 +
.../Properties/AssemblyInfo.cs | 42 +
.../Apache.Ignite.Benchmarks.csproj | 36 +-
.../Apache.Ignite.Benchmarks/BenchmarkRunner.cs | 5 +-
.../Interop/PlatformBenchmarkBase.cs | 2 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests.NuGet.csproj | 86 +-
.../Apache.Ignite.Core.Tests.NuGet.sln | 6 +
.../AspNetTest.cs | 73 +
.../Apache.Ignite.Core.Tests.NuGet/CacheTest.cs | 37 +-
.../Log4NetTest.cs | 87 +
.../Apache.Ignite.Core.Tests.NuGet/NLogTest.cs | 82 +
.../Apache.Ignite.Core.Tests.NuGet/NuGet.config | 5 +-
.../Properties/AssemblyInfo.cs | 36 +-
.../SchemaTest.cs | 62 +
.../install-package.cmd | 10 -
.../install-package.ps1 | 34 +
.../packages.config | 29 +
.../Apache.Ignite.Core.Tests.TestDll.csproj | 37 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests.csproj | 189 +-
.../Binary/BinaryBuilderSelfTest.cs | 410 +-
.../Binary/BinaryCompactFooterInteropTest.cs | 1 -
.../Binary/BinaryReaderWriterTest.cs | 171 +
.../Binary/BinarySelfTest.cs | 167 +-
.../Binary/BinaryStringTest.cs | 100 +
.../Binary/IO/BinaryStreamsTest.cs | 151 +
.../Binary/JavaTypeMappingTest.cs | 158 +
.../Binary/TypeResolverTest.cs | 107 +
.../Cache/Affinity/AffinityFieldTest.cs | 199 +
.../Affinity/AffinityFunctionSpringTest.cs | 184 +
.../Cache/Affinity/AffinityFunctionTest.cs | 485 +
.../Cache/Affinity/AffinityKeyTest.cs | 66 +
.../Cache/Affinity/AffinityTest.cs | 138 +
.../Affinity/AffinityTopologyVersionTest.cs | 59 +
.../Cache/CacheAbstractTest.cs | 82 +-
.../Cache/CacheAffinityFieldTest.cs | 199 -
.../Cache/CacheAffinityTest.cs | 139 -
.../Cache/CacheConfigurationTest.cs | 190 +-
.../Cache/CacheNearTest.cs | 188 +
.../Cache/CacheResultTest.cs | 75 +
.../Cache/Query/CacheLinqTest.cs | 1543 ++
.../Query/CacheQueriesCodeConfigurationTest.cs | 12 +
.../Cache/Query/CacheQueriesTest.cs | 303 +-
.../Continuous/ContinuousQueryAbstractTest.cs | 85 +-
.../Continuous/ContinuousQueryJavaFilterTest.cs | 322 +
.../Cache/Store/CacheParallelLoadStoreTest.cs | 2 +-
.../Cache/Store/CacheStoreAdapterTest.cs | 90 +
.../Cache/Store/CacheStoreTest.cs | 51 +-
.../Cache/Store/CacheTestParallelLoadStore.cs | 9 +
.../Cache/Store/CacheTestStore.cs | 50 +-
.../Collections/MultiValueDictionaryTest.cs | 58 +
.../Collections/ReadOnlyCollectionTest.cs | 59 +
.../Collections/ReadOnlyDictionaryTest.cs | 70 +
.../Common/IgniteGuidTest.cs | 62 +
.../Compute/AbstractTaskTest.cs | 49 +-
.../Compute/BinarizableClosureTaskTest.cs | 18 +-
.../Compute/BinarizableTaskTest.cs | 31 +-
.../Compute/CancellationTest.cs | 10 +
.../Compute/ClosureTaskTest.cs | 192 +-
.../Compute/ComputeApiTest.cs | 221 +-
.../Compute/FailoverTaskSelfTest.cs | 7 +-
.../Compute/IgniteExceptionTaskSelfTest.cs | 55 +-
.../Compute/MixedClusterTest.cs | 123 +-
.../Compute/ResourceTaskTest.cs | 59 +-
.../Compute/SerializableClosureTaskTest.cs | 5 +
.../Compute/TaskAdapterTest.cs | 21 +-
.../Compute/TaskResultTest.cs | 24 +-
.../Config/Apache.Ignite.exe.config.test2 | 2 +-
.../Config/Cache/Affinity/affinity-function.xml | 127 +
.../Cache/Affinity/affinity-function2.xml | 49 +
.../Config/Cache/Store/cache-store-session.xml | 3 +-
.../Config/Compute/compute-grid1.xml | 3 +-
.../Config/Compute/compute-grid2.xml | 3 +-
.../Config/Compute/compute-grid3.xml | 5 +-
.../Config/Compute/compute-standalone.xml | 5 +-
.../Config/Dynamic/dynamic-client.xml | 3 +-
.../Config/Dynamic/dynamic-data-no-cfg.xml | 3 +-
.../Config/Dynamic/dynamic-data.xml | 3 +-
.../Config/Lifecycle/lifecycle-beans.xml | 3 +-
.../Config/Lifecycle/lifecycle-no-beans.xml | 3 +-
.../Config/Log/custom-log.xml | 50 +
.../Config/Log/dotnet-log4j.xml | 143 +
.../Config/cache-binarizables.xml | 3 +-
.../Config/cache-local-node.xml | 3 +-
.../Config/cache-query-continuous.xml | 4 +-
.../Config/cache-query.xml | 43 +-
.../Config/ignite-dotnet-cfg.xml | 2 +-
.../Config/marshaller-default.xml | 3 +-
.../Config/marshaller-explicit.xml | 3 +-
.../Config/marshaller-invalid.xml | 3 +-
.../native-client-test-cache-affinity.xml | 5 +-
.../native-client-test-cache-parallel-store.xml | 3 +-
.../Config/native-client-test-cache-store.xml | 3 +-
.../Config/native-client-test-cache.xml | 3 +-
.../Config/reconnect-test.xml | 43 +
.../Config/spring-test.xml | 46 +
.../Config/start-test-grid1.xml | 3 +-
.../Config/start-test-grid2.xml | 3 +-
.../Config/start-test-grid3.xml | 3 +-
.../ConsoleRedirectTest.cs | 177 +
.../Apache.Ignite.Core.Tests/DeploymentTest.cs | 3 +-
.../Apache.Ignite.Core.Tests/EventsTest.cs | 200 +-
.../Examples/Example.cs | 8 +-
.../Examples/ExamplesTest.cs | 48 +-
.../Examples/PathUtil.cs | 10 +-
.../Examples/ProjectFilesTest.cs | 4 +-
.../Apache.Ignite.Core.Tests/ExceptionsTest.cs | 132 +-
.../Apache.Ignite.Core.Tests/ExecutableTest.cs | 1 -
.../IgniteConfigurationSectionTest.cs | 32 +
.../IgniteConfigurationSerializerTest.cs | 398 +-
.../IgniteConfigurationTest.cs | 142 +-
.../IgniteStartStopTest.cs | 4 +-
.../Apache.Ignite.Core.Tests/LifecycleTest.cs | 9 +
.../Log/CustomLoggerTest.cs | 449 +
.../Log/DefaultLoggerTest.cs | 114 +
.../Log/Log4NetLoggerTest.cs | 188 +
.../Log/NLogLoggerTest.cs | 166 +
.../Apache.Ignite.Core.Tests/MessagingTest.cs | 16 +-
.../ProjectFilesTest.cs | 44 +-
.../Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite.Core.Tests/ReconnectTest.cs | 19 +-
.../Services/ServiceProxyTest.cs | 12 +-
.../Services/ServicesTest.cs | 272 +-
.../Apache.Ignite.Core.Tests/TestAppConfig.cs | 100 +
.../Apache.Ignite.Core.Tests/TestRunner.cs | 76 +-
.../Apache.Ignite.Core.Tests/TestUtils.cs | 56 +-
.../TypeResolverTest.cs | 107 -
.../WindowsServiceTest.cs | 124 +
.../dotnet/Apache.Ignite.Core.Tests/app.config | 10 +-
.../Apache.Ignite.Core.Tests/custom_app.config | 34 +
.../Apache.Ignite.Core.Tests/packages.config | 24 +
.../Apache.Ignite.Core.Schema.nuspec | 52 +
.../Apache.Ignite.Core.csproj | 128 +-
.../Apache.Ignite.Core.nuspec | 16 +-
.../Binary/BinaryReflectiveSerializer.cs | 193 +-
.../Binary/IBinaryObjectBuilder.cs | 2 +-
.../Cache/Affinity/AffinityFunctionContext.cs | 120 +
.../Cache/Affinity/AffinityKey.cs | 11 +
.../Cache/Affinity/AffinityTopologyVersion.cs | 138 +
.../Cache/Affinity/Fair/FairAffinityFunction.cs | 33 +
.../Cache/Affinity/Fair/Package-Info.cs | 26 +
.../Cache/Affinity/IAffinityFunction.cs | 82 +
.../Cache/Affinity/Package-Info.cs | 26 +
.../Cache/Affinity/Rendezvous/Package-Info.cs | 26 +
.../Rendezvous/RendezvousAffinityFunction.cs | 32 +
.../Cache/CachePartialUpdateException.cs | 6 +-
.../Cache/Configuration/CacheConfiguration.cs | 61 +-
.../Configuration/NearCacheConfiguration.cs | 75 +
.../Cache/Configuration/Package-Info.cs | 26 +
.../Cache/Configuration/QueryEntity.cs | 21 +
.../Cache/Configuration/QueryField.cs | 17 +-
.../Cache/Eviction/EvictionPolicyBase.cs | 126 +
.../Cache/Eviction/FifoEvictionPolicy.cs | 39 +
.../Cache/Eviction/IEvictionPolicy.cs | 32 +
.../Cache/Eviction/LruEvictionPolicy.cs | 39 +
.../Cache/Eviction/Package-Info.cs | 26 +
.../Apache.Ignite.Core/Cache/ICacheLock.cs | 2 +-
.../Apache.Ignite.Core/Cache/ICacheMetrics.cs | 8 +-
.../Continuous/ContinuousQueryExtensions.cs | 42 +
.../Cache/Query/SqlFieldsQuery.cs | 43 +-
.../Apache.Ignite.Core/Cache/Query/SqlQuery.cs | 13 +
.../Store/CacheParallelLoadStoreAdapter.cs | 7 +
.../Apache.Ignite.Core/Cluster/IClusterGroup.cs | 20 +
.../Apache.Ignite.Core/Common/JavaException.cs | 66 +
.../Communication/ICommunicationSpi.cs | 37 +
.../Communication/Package-Info.cs | 26 +
.../Communication/Tcp/Package-Info.cs | 26 +
.../Communication/Tcp/TcpCommunicationSpi.cs | 283 +
.../Apache.Ignite.Core/Compute/ICompute.cs | 6 +-
.../Configuration/AtomicConfiguration.cs | 67 +
.../Configuration/Package-Info.cs | 26 +
.../Discovery/Package-Info.cs | 26 +
.../Discovery/Tcp/Multicast/Package-Info.cs | 26 +
.../Multicast/TcpDiscoveryMulticastIpFinder.cs | 7 +
.../Discovery/Tcp/Package-Info.cs | 26 +
.../Discovery/Tcp/Static/Package-Info.cs | 26 +
.../Discovery/Tcp/TcpDiscoverySpi.cs | 161 +
.../Apache.Ignite.Core/Events/CacheEvent.cs | 9 +-
.../Apache.Ignite.Core/Events/DiscoveryEvent.cs | 4 +-
.../Apache.Ignite.Core/Events/EventBase.cs | 2 +-
.../Apache.Ignite.Core/Events/EventReader.cs | 12 +-
.../dotnet/Apache.Ignite.Core/IIgnite.cs | 83 +
.../Apache.Ignite.Core/IgniteConfiguration.cs | 429 +-
.../IgniteConfigurationSection.xsd | 1140 +-
.../dotnet/Apache.Ignite.Core/Ignition.cs | 157 +-
.../Impl/Binary/BinarizableSerializer.cs | 22 +-
.../Impl/Binary/BinaryFullTypeDescriptor.cs | 8 +-
.../Impl/Binary/BinaryObject.cs | 2 +
.../Impl/Binary/BinaryObjectBuilder.cs | 18 +-
.../Impl/Binary/BinaryObjectHandle.cs | 59 -
.../Impl/Binary/BinaryObjectHeader.cs | 5 +-
.../Impl/Binary/BinaryReader.cs | 56 +-
.../Impl/Binary/BinaryReaderExtensions.cs | 38 +
.../Impl/Binary/BinaryReflectiveActions.cs | 43 +
.../BinaryReflectiveSerializerInternal.cs | 169 +
.../Binary/BinarySurrogateTypeDescriptor.cs | 6 +-
.../Impl/Binary/BinarySystemHandlers.cs | 21 +-
.../Impl/Binary/BinarySystemTypeSerializer.cs | 20 +-
.../Impl/Binary/BinaryUtils.cs | 183 +-
.../Impl/Binary/BinaryWriter.cs | 155 +-
.../Impl/Binary/BinaryWriterExtensions.cs | 78 +
.../Impl/Binary/DateTimeHolder.cs | 4 +-
.../Impl/Binary/DateTimeSerializer.cs | 48 +
.../Impl/Binary/IBinarySerializerInternal.cs | 42 +
.../Impl/Binary/IBinarySystemTypeSerializer.cs | 34 -
.../Impl/Binary/IBinaryTypeDescriptor.cs | 2 +-
.../Impl/Binary/Io/BinaryHeapStream.cs | 2 +-
.../Impl/Binary/Io/BinaryStreamAdapter.cs | 5 +
.../Impl/Binary/Io/BinaryStreamBase.cs | 25 +-
.../Impl/Binary/Io/IBinaryStream.cs | 2 +-
.../Apache.Ignite.Core/Impl/Binary/JavaTypes.cs | 74 +-
.../Impl/Binary/Marshaller.cs | 152 +-
.../Impl/Binary/SerializableObjectHolder.cs | 6 +-
.../Impl/Binary/SerializableSerializer.cs | 48 +
.../Binary/Structure/BinaryStructureTracker.cs | 7 +-
.../Impl/Binary/UserSerializerProxy.cs | 68 +
.../Impl/Cache/Affinity/AffinityFunctionBase.cs | 140 +
.../Affinity/AffinityFunctionSerializer.cs | 277 +
.../Cache/Affinity/PlatformAffinityFunction.cs | 74 +
.../Apache.Ignite.Core/Impl/Cache/CacheEntry.cs | 2 +-
.../Impl/Cache/CacheEntryFilterHolder.cs | 10 +-
.../Impl/Cache/CacheEntryProcessorHolder.cs | 8 +-
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 295 +-
.../Apache.Ignite.Core/Impl/Cache/CacheOp.cs | 3 +-
.../Cache/Event/JavaCacheEntryEventFilter.cs | 51 +
.../Impl/Cache/ICacheInternal.cs | 54 +
.../Continuous/ContinuousQueryFilterHolder.cs | 8 +-
.../Continuous/ContinuousQueryHandleImpl.cs | 17 +-
.../Impl/Cache/Query/FieldsQueryCursor.cs | 29 +-
.../Impl/Cache/Store/CacheStore.cs | 4 +-
.../Impl/Cluster/ClusterGroupImpl.cs | 12 +
.../Impl/Cluster/ClusterNodeImpl.cs | 2 +-
.../Impl/Collections/MultiValueDictionary.cs | 26 -
.../Impl/Collections/ReadOnlyDictionary.cs | 2 +-
.../Apache.Ignite.Core/Impl/Common/Classpath.cs | 12 +-
.../Impl/Common/DelegateConverter.cs | 171 +-
.../Apache.Ignite.Core/Impl/Common/Fnv1Hash.cs | 2 +-
.../Common/IgniteConfigurationXmlSerializer.cs | 88 +-
.../Impl/Common/IgniteHome.cs | 30 +-
.../Impl/Common/ObjectInfoHolder.cs | 86 +
.../Impl/Common/ObjectStringConverter.cs | 104 +
.../Apache.Ignite.Core/Impl/Common/Platform.cs | 35 +
.../Common/PlatformJavaObjectFactoryProxy.cs | 106 +
.../Impl/Common/ResizeableArray.cs | 64 -
.../Impl/Common/TypeCaster.cs | 12 +
.../Impl/Compute/Closure/ComputeActionJob.cs | 6 +-
.../Impl/Compute/Closure/ComputeFuncJob.cs | 8 +-
.../Impl/Compute/Closure/ComputeOutFuncJob.cs | 9 +-
.../Impl/Compute/ComputeFunc.cs | 12 +-
.../Impl/Compute/ComputeJob.cs | 16 +-
.../Impl/Compute/ComputeJobHolder.cs | 8 +-
.../Impl/Compute/ComputeOutFunc.cs | 11 +-
.../Impl/Compute/ComputeTaskHolder.cs | 3 +-
.../Impl/Datastream/StreamReceiverHolder.cs | 2 +-
.../Impl/Events/EventTypeConverter.cs | 3 +
.../Apache.Ignite.Core/Impl/Events/Events.cs | 3 +
.../Apache.Ignite.Core/Impl/ExceptionUtils.cs | 38 +-
.../Apache.Ignite.Core/Impl/Handle/Handle.cs | 12 +-
.../Impl/Handle/HandleRegistry.cs | 19 +-
.../Apache.Ignite.Core/Impl/Handle/IHandle.cs | 5 -
.../dotnet/Apache.Ignite.Core/Impl/Ignite.cs | 154 +-
.../Apache.Ignite.Core/Impl/IgniteManager.cs | 12 +-
.../Apache.Ignite.Core/Impl/IgniteProxy.cs | 89 +-
.../Apache.Ignite.Core/Impl/IgniteUtils.cs | 77 +-
.../Impl/InteropExceptionHolder.cs | 88 -
.../Impl/LifecycleBeanHolder.cs | 2 +-
.../Apache.Ignite.Core/Impl/Log/JavaLogger.cs | 110 +
.../Memory/PlatformBigEndianMemoryStream.cs | 34 +-
.../Impl/Memory/PlatformMemoryStream.cs | 3 +-
.../Impl/Memory/PlatformMemoryUtils.cs | 30 -
.../Impl/Memory/PlatformRawMemory.cs | 5 +
.../Impl/Messaging/MessageListenerHolder.cs | 14 +-
.../Apache.Ignite.Core/Impl/NativeMethods.cs | 6 +
.../Apache.Ignite.Core/Impl/PlatformTarget.cs | 88 +-
.../Impl/Services/ServiceDescriptor.cs | 7 +-
.../Impl/Services/ServiceProxyInvoker.cs | 33 +-
.../Impl/Services/ServiceProxySerializer.cs | 63 +-
.../Impl/Services/Services.cs | 28 +-
.../Impl/Unmanaged/IgniteJniNativeMethods.cs | 25 +
.../Impl/Unmanaged/UnmanagedCallbackHandlers.cs | 9 +
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 338 +-
.../Impl/Unmanaged/UnmanagedUtils.cs | 93 +-
.../Apache.Ignite.Core/Interop/JavaObject.cs | 80 +
.../Apache.Ignite.Core/Interop/Package-Info.cs | 26 +
.../Lifecycle/ClientReconnectEventArgs.cs | 47 +
.../Apache.Ignite.Core/Log/CategoryLogger.cs | 82 +
.../dotnet/Apache.Ignite.Core/Log/ILogger.cs | 51 +
.../dotnet/Apache.Ignite.Core/Log/LogLevel.cs | 53 +
.../Apache.Ignite.Core/Log/LoggerExtensions.cs | 320 +
.../NuGet/LINQPad/BinaryModeExample.linq | 94 +
.../NuGet/LINQPad/ComputeExample.linq | 6 +-
.../NuGet/LINQPad/PutGetExample.linq | 8 +-
.../NuGet/LINQPad/QueryExample.linq | 12 +-
.../Properties/AssemblyInfo.cs | 43 +-
.../Transactions/ITransaction.cs | 3 +-
.../Transactions/TransactionConfiguration.cs | 88 +
.../dotnet/Apache.Ignite.Core/build-common.ps1 | 77 +
.../powershell.exe.activation_config | 29 +
modules/platforms/dotnet/Apache.Ignite.FxCop | 6 +-
.../Apache.Ignite.Linq.csproj | 90 +
.../Apache.Ignite.Linq.nuspec | 61 +
.../Apache.Ignite.Linq/Apache.Ignite.Linq.snk | Bin 0 -> 596 bytes
.../Apache.Ignite.Linq/CacheExtensions.cs | 120 +
.../dotnet/Apache.Ignite.Linq/CompiledQuery.cs | 209 +
.../dotnet/Apache.Ignite.Linq/CompiledQuery2.cs | 257 +
.../Apache.Ignite.Linq/ICacheQueryable.cs | 53 +
.../Apache.Ignite.Linq/Impl/AliasDictionary.cs | 148 +
.../Impl/CacheFieldsQueryExecutor.cs | 344 +
.../Impl/CacheFieldsQueryProvider.cs | 239 +
.../Impl/CacheFieldsQueryable.cs | 40 +
.../Impl/CacheQueryExpressionVisitor.cs | 521 +
.../Impl/CacheQueryModelVisitor.cs | 502 +
.../Apache.Ignite.Linq/Impl/CacheQueryParser.cs | 56 +
.../Apache.Ignite.Linq/Impl/CacheQueryable.cs | 43 +
.../Impl/CacheQueryableBase.cs | 145 +
.../Apache.Ignite.Linq/Impl/ExpressionWalker.cs | 174 +
.../Impl/ICacheQueryableInternal.cs | 66 +
.../Apache.Ignite.Linq/Impl/MethodVisitor.cs | 250 +
.../dotnet/Apache.Ignite.Linq/Impl/QueryData.cs | 92 +
.../dotnet/Apache.Ignite.Linq/Impl/SqlTypes.cs | 63 +
.../NuGet/LINQPad/QueryExample.linq | 111 +
.../dotnet/Apache.Ignite.Linq/Package-Info.cs | 26 +
.../Properties/AssemblyInfo.cs | 40 +
.../dotnet/Apache.Ignite.Linq/QueryOptions.cs | 91 +
.../dotnet/Apache.Ignite.Linq/packages.config | 22 +
.../Apache.Ignite.Log4Net.csproj | 76 +
.../Apache.Ignite.Log4Net.nuspec | 50 +
.../Apache.Ignite.Log4Net.snk | Bin 0 -> 596 bytes
.../IgniteLog4NetLogger.cs | 123 +
.../Properties/AssemblyInfo.cs | 40 +
.../Apache.Ignite.Log4Net/packages.config | 20 +
.../Apache.Ignite.NLog.csproj | 69 +
.../Apache.Ignite.NLog.nuspec | 50 +
.../Apache.Ignite.NLog/Apache.Ignite.NLog.snk | Bin 0 -> 596 bytes
.../Apache.Ignite.NLog/IgniteNLogLogger.cs | 125 +
.../Properties/AssemblyInfo.cs | 40 +
.../dotnet/Apache.Ignite.NLog/packages.config | 22 +
modules/platforms/dotnet/Apache.Ignite.dxg | 4 +-
modules/platforms/dotnet/Apache.Ignite.sln | 214 +-
.../dotnet/Apache.Ignite.sln.DotSettings | 11 +-
.../dotnet/Apache.Ignite/Apache.Ignite.csproj | 43 +-
.../dotnet/Apache.Ignite/Config/Configurator.cs | 16 +-
.../dotnet/Apache.Ignite/IgniteRunner.cs | 20 +-
.../Apache.Ignite/Properties/AssemblyInfo.cs | 40 +-
.../Apache.Ignite/Service/IgniteService.cs | 102 +-
.../Service/IgniteServiceInstaller.cs | 64 +
.../Apache.Ignite/Service/NativeMethods.cs | 57 -
modules/platforms/dotnet/DEVNOTES.txt | 7 +-
modules/platforms/dotnet/build.bat | 94 -
.../dotnet/examples/Apache.Ignite.Examples.sln | 32 +-
.../Apache.Ignite.Examples.csproj | 50 +-
.../examples/Apache.Ignite.Examples/App.config | 33 +-
.../Compute/ClosureExample.cs | 22 +-
.../Compute/TaskExample.cs | 21 +-
.../Datagrid/BinaryModeExample.cs | 272 +
.../Datagrid/ContinuousQueryExample.cs | 26 +-
.../Datagrid/DataStreamerExample.cs | 20 +-
.../Datagrid/LinqExample.cs | 339 +
.../Datagrid/PutGetExample.cs | 19 +-
.../Datagrid/QueryExample.cs | 212 +-
.../Datagrid/StoreExample.cs | 25 +-
.../Datagrid/TransactionExample.cs | 20 +-
.../Events/EventsExample.cs | 26 +-
.../Messaging/MessagingExample.cs | 21 +-
.../Misc/LifecycleExample.cs | 27 +-
.../Properties/AssemblyInfo.cs | 44 +-
.../Services/IMapService.cs | 4 +-
.../Services/ServicesExample.cs | 21 +-
.../Apache.Ignite.ExamplesDll.csproj | 43 +-
.../Apache.Ignite.ExamplesDll/Binary/Account.cs | 6 +-
.../Apache.Ignite.ExamplesDll/Binary/Address.cs | 2 +-
.../Binary/Employee.cs | 18 +-
.../Binary/EmployeeKey.cs | 88 -
.../Binary/Organization.cs | 2 +-
.../Compute/AverageSalaryJob.cs | 11 +-
.../Compute/AverageSalaryTask.cs | 9 +-
.../Compute/CharacterCountClosure.cs | 6 +-
.../Compute/CharacterCountReducer.cs | 4 +-
.../Datagrid/ContinuousQueryFilter.cs | 6 +-
.../Datagrid/EmployeeStore.cs | 13 +-
.../Datagrid/EmployeeStorePredicate.cs | 5 +-
.../Events/LocalListener.cs | 10 +-
.../Messaging/LocalListener.cs | 8 +-
.../Messaging/RemoteOrderedListener.cs | 10 +-
.../Messaging/RemoteUnorderedListener.cs | 10 +-
.../Properties/AssemblyInfo.cs | 42 +-
.../Services/MapService.cs | 12 +-
.../dotnet/examples/Config/examples-config.xml | 98 -
modules/rest-http/pom.xml | 27 +-
.../http/jetty/GridJettyJsonConfig.java | 195 -
.../http/jetty/GridJettyObjectMapper.java | 274 +
.../http/jetty/GridJettyRestHandler.java | 132 +-
.../http/jetty/GridJettyRestProtocol.java | 6 +-
modules/scalar-2.10/pom.xml | 2 +-
modules/scalar/pom.xml | 2 +-
.../scalar/pimps/ScalarProjectionPimp.scala | 4 +-
.../scalar/pimps/ScalarTaskThreadContext.scala | 4 +-
modules/schedule/pom.xml | 2 +-
.../processors/schedule/ScheduleFutureImpl.java | 7 +-
.../schedule/GridScheduleSelfTest.java | 33 +-
modules/schema-import-db/README.txt | 4 +
modules/schema-import-db/pom.xml | 55 +
.../apache/ignite/schema/parser/DbColumn.java | 88 +
.../ignite/schema/parser/DbMetadataReader.java | 147 +
.../apache/ignite/schema/parser/DbTable.java | 82 +
.../parser/dialect/DB2MetadataDialect.java | 33 +
.../parser/dialect/DatabaseMetadataDialect.java | 102 +
.../parser/dialect/JdbcMetadataDialect.java | 199 +
.../parser/dialect/MySQLMetadataDialect.java | 82 +
.../parser/dialect/OracleMetadataDialect.java | 360 +
modules/schema-import/README.txt | 12 +-
modules/schema-import/pom.xml | 16 +-
.../ignite/schema/generator/CodeGenerator.java | 157 +-
.../ignite/schema/generator/GeneratorUtils.java | 70 +
.../ignite/schema/generator/XmlGenerator.java | 107 +-
.../ignite/schema/model/PojoDescriptor.java | 24 +-
.../schema/parser/DatabaseMetadataParser.java | 54 +-
.../apache/ignite/schema/parser/DbColumn.java | 76 -
.../apache/ignite/schema/parser/DbTable.java | 82 -
.../parser/dialect/DB2MetadataDialect.java | 33 -
.../parser/dialect/DatabaseMetadataDialect.java | 75 -
.../parser/dialect/JdbcMetadataDialect.java | 197 -
.../parser/dialect/MySQLMetadataDialect.java | 61 -
.../parser/dialect/OracleMetadataDialect.java | 364 -
.../ignite/schema/ui/SchemaImportApp.java | 551 +-
.../schema/test/AbstractSchemaImportTest.java | 37 +-
.../test/generator/CodeGeneratorTest.java | 28 +-
.../schema/test/generator/XmlGeneratorTest.java | 24 +-
.../ignite/schema/test/model/CacheConfig.txt | 409 +
.../apache/ignite/schema/test/model/Objects.txt | 31 +-
.../ignite/schema/test/model/Primitives.txt | 31 +-
.../org/apache/ignite/schema/test/model/Tst.txt | 31 +-
.../schema/test/model/ignite-type-metadata.xml | 136 +-
.../test/parser/DbMetadataParserTest.java | 8 +-
modules/slf4j/pom.xml | 2 +-
.../apache/ignite/logger/slf4j/Slf4jLogger.java | 2 +-
modules/spark-2.10/pom.xml | 2 +-
modules/spark/pom.xml | 2 +-
.../org/apache/ignite/spark/IgniteContext.scala | 85 +-
.../org/apache/ignite/spark/IgniteRDD.scala | 127 +-
.../apache/ignite/spark/JavaIgniteContext.scala | 18 +-
.../org/apache/ignite/spark/JavaIgniteRDD.scala | 17 +-
.../ignite/spark/impl/IgniteAbstractRDD.scala | 17 +-
.../apache/ignite/spark/impl/IgniteSqlRDD.scala | 7 +-
.../spark/impl/JavaIgniteAbstractRDD.scala | 34 -
.../spark/JavaEmbeddedIgniteRDDSelfTest.java | 344 +
.../ignite/spark/JavaIgniteRDDSelfTest.java | 302 -
.../spark/JavaStandaloneIgniteRDDSelfTest.java | 365 +
.../ignite/testsuites/IgniteRDDTestSuite.java | 40 +
.../ignite/spark/EntityTestAllTypeFields.scala | 60 +
.../org/apache/ignite/spark/IgniteRDDSpec.scala | 179 +-
modules/spring/pom.xml | 9 +-
.../org/apache/ignite/IgniteSpringBean.java | 173 +-
.../apache/ignite/cache/spring/SpringCache.java | 44 +-
.../ignite/cache/spring/SpringCacheManager.java | 22 +-
.../GridResourceSpringBeanInjector.java | 39 +-
.../spring/SpringTransactionManager.java | 59 +-
.../src/test/config/jdbc-pojo-store-builtin.xml | 194 +
.../src/test/config/jdbc-pojo-store-obj.xml | 194 +
.../test/java/config/spring-transactions.xml | 4 +-
.../ignite/TestInjectionLifecycleBean.java | 42 +
.../spring/GridSpringCacheManagerSelfTest.java | 438 +
.../cache/spring/GridSpringCacheTestKey.java | 61 +
.../spring/GridSpringCacheTestKeyGenerator.java | 40 +
.../spring/GridSpringCacheTestService.java | 181 +
.../GridSpringDynamicCacheTestService.java | 85 +
.../SpringCacheManagerContextInjectionTest.java | 125 +
.../ignite/cache/spring/spring-caching.xml | 57 +
.../jdbc/CacheJdbcBlobStoreFactorySelfTest.java | 12 +-
.../jdbc/CacheJdbcPojoStoreFactorySelfTest.java | 25 +-
.../store/jdbc/CachePojoStoreXmlSelfTest.java | 58 +
.../CachePojoStoreXmlWithSqlEscapeSelfTest.java | 28 +
.../ignite/internal/GridFactorySelfTest.java | 112 +-
.../ignite/internal/IgniteSpringBeanTest.java | 55 +
.../GridSpringResourceInjectionSelfTest.java | 311 +-
.../GridTransformSpringInjectionSelfTest.java | 186 +
.../spring-resource-with-duplicate-beans.xml | 30 +
.../processors/resource/spring-resource.xml | 2 +-
.../p2p/GridP2PUserVersionChangeSelfTest.java | 7 +-
.../org/apache/ignite/spring-injection-test.xml | 43 +
.../spring/GridSpringCacheManagerSelfTest.java | 342 -
.../ignite/spring/GridSpringCacheTestKey.java | 61 -
.../spring/GridSpringCacheTestKeyGenerator.java | 40 -
.../spring/GridSpringCacheTestService.java | 125 -
.../GridSpringDynamicCacheTestService.java | 85 -
.../GridServiceInjectionSpringResourceTest.java | 245 +
.../spring/injection/spring-resource.tmpl.xml | 66 +
.../org/apache/ignite/spring/spring-caching.xml | 57 -
.../testsuites/IgniteResourceSelfTestSuite.java | 11 +-
.../testsuites/IgniteSpringTestSuite.java | 35 +-
...gTransactionManagerContextInjectionTest.java | 125 +
modules/ssh/pom.xml | 2 +-
modules/storm/README.txt | 2 +-
modules/storm/pom.xml | 4 +-
.../ignite/stream/storm/StormStreamer.java | 10 +-
.../storm/StormIgniteStreamerSelfTest.java | 20 +-
.../ignite/stream/storm/TestStormSpout.java | 10 +-
modules/tools/pom.xml | 2 +-
modules/twitter/pom.xml | 2 +-
modules/urideploy/pom.xml | 2 +-
.../uri/GridUriDeploymentFileProcessor.java | 2 +-
.../scanners/http/UriDeploymentHttpScanner.java | 8 +-
modules/visor-console-2.10/pom.xml | 2 +-
modules/visor-console/pom.xml | 2 +-
.../ignite/visor/commands/VisorConsole.scala | 6 +-
.../commands/alert/VisorAlertCommand.scala | 378 +-
.../commands/cache/VisorCacheCommand.scala | 99 +-
.../commands/cache/VisorCacheResetCommand.scala | 129 +
.../commands/cache/VisorCacheStopCommand.scala | 7 +-
.../config/VisorConfigurationCommand.scala | 23 +-
.../commands/disco/VisorDiscoveryCommand.scala | 7 +-
.../commands/events/VisorEventsCommand.scala | 36 +-
.../visor/commands/gc/VisorGcCommand.scala | 11 +-
.../visor/commands/kill/VisorKillCommand.scala | 184 +-
.../visor/commands/node/VisorNodeCommand.scala | 13 +-
.../commands/tasks/VisorTasksCommand.scala | 7 +-
.../commands/top/VisorTopologyCommand.scala | 2 +-
.../visor/commands/vvm/VisorVvmCommand.scala | 11 +-
.../scala/org/apache/ignite/visor/visor.scala | 110 +-
.../commands/alert/VisorAlertCommandSpec.scala | 2 +-
.../cache/VisorCacheResetCommandSpec.scala | 114 +
modules/visor-plugins/pom.xml | 2 +-
modules/web-console/.gitignore | 6 +
modules/web-console/DEVNOTES.txt | 29 +
modules/web-console/README.txt | 36 +
modules/web-console/backend/.eslintrc | 186 +
modules/web-console/backend/.gitignore | 6 +
.../web-console/backend/agent_dists/README.txt | 7 +
modules/web-console/backend/app/agent.js | 791 +
modules/web-console/backend/app/app.js | 63 +
modules/web-console/backend/app/browser.js | 443 +
modules/web-console/backend/app/configure.js | 86 +
modules/web-console/backend/app/mongo.js | 678 +
modules/web-console/backend/app/mongoose.js | 29 +
modules/web-console/backend/app/nconf.js | 48 +
modules/web-console/backend/app/routes.js | 64 +
modules/web-console/backend/app/settings.js | 78 +
.../backend/config/settings.json.sample | 30 +
.../backend/errors/AppErrorException.js | 36 +
.../backend/errors/AuthFailedException.js | 30 +
.../backend/errors/DuplicateKeyException.js | 28 +
.../backend/errors/IllegalAccessError.js | 29 +
.../backend/errors/IllegalArgumentException.js | 29 +
.../backend/errors/MissingResourceException.js | 30 +
.../backend/errors/ServerErrorException.js | 36 +
modules/web-console/backend/errors/index.js | 41 +
modules/web-console/backend/index.js | 104 +
modules/web-console/backend/injector.js | 30 +
modules/web-console/backend/middlewares/api.js | 44 +
modules/web-console/backend/middlewares/host.js | 39 +
modules/web-console/backend/middlewares/user.js | 36 +
modules/web-console/backend/package.json | 62 +
modules/web-console/backend/routes/admin.js | 84 +
modules/web-console/backend/routes/agent.js | 53 +
modules/web-console/backend/routes/caches.js | 65 +
modules/web-console/backend/routes/clusters.js | 64 +
.../web-console/backend/routes/configuration.js | 41 +
modules/web-console/backend/routes/demo.js | 133 +
.../web-console/backend/routes/demo/caches.json | 87 +
.../backend/routes/demo/clusters.json | 50 +
.../backend/routes/demo/domains.json | 307 +
.../web-console/backend/routes/demo/igfss.json | 10 +
modules/web-console/backend/routes/domains.js | 76 +
modules/web-console/backend/routes/igfss.js | 65 +
modules/web-console/backend/routes/notebooks.js | 80 +
modules/web-console/backend/routes/profile.js | 73 +
modules/web-console/backend/routes/public.js | 129 +
modules/web-console/backend/services/agents.js | 82 +
modules/web-console/backend/services/auth.js | 114 +
modules/web-console/backend/services/caches.js | 144 +
.../web-console/backend/services/clusters.js | 141 +
.../backend/services/configurations.js | 59 +
modules/web-console/backend/services/domains.js | 189 +
modules/web-console/backend/services/igfss.js | 136 +
modules/web-console/backend/services/mails.js | 131 +
.../web-console/backend/services/notebooks.js | 104 +
.../web-console/backend/services/sessions.js | 65 +
modules/web-console/backend/services/spaces.js | 75 +
modules/web-console/backend/services/users.js | 229 +
modules/web-console/backend/test/app/db.js | 66 +
.../web-console/backend/test/app/httpAgent.js | 50 +
.../web-console/backend/test/app/mockgoose.js | 30 +
.../backend/test/config/settings.json | 20 +
.../web-console/backend/test/data/accounts.json | 19 +
.../web-console/backend/test/data/caches.json | 97 +
.../web-console/backend/test/data/clusters.json | 54 +
.../web-console/backend/test/data/domains.json | 317 +
.../web-console/backend/test/data/igfss.json | 12 +
.../web-console/backend/test/data/spaces.json | 14 +
modules/web-console/backend/test/index.js | 35 +
modules/web-console/backend/test/injector.js | 48 +
.../web-console/backend/test/routes/clusters.js | 83 +
.../web-console/backend/test/routes/public.js | 68 +
.../backend/test/unit/AuthService.test.js | 107 +
.../backend/test/unit/CacheService.test.js | 192 +
.../backend/test/unit/ClusterService.test.js | 191 +
.../backend/test/unit/DomainService.test.js | 199 +
.../backend/test/unit/IgfsService.test.js | 191 +
.../docker/compose/backend/.dockerignore | 1 +
.../docker/compose/backend/Dockerfile | 30 +
.../web-console/docker/compose/backend/build.sh | 57 +
.../docker/compose/docker-compose.yml | 59 +
.../docker/compose/frontend/.dockerignore | 3 +
.../docker/compose/frontend/Dockerfile | 32 +
.../docker/compose/frontend/DockerfileBuild | 30 +
.../docker/compose/frontend/build.sh | 59 +
.../docker/compose/frontend/nginx/nginx.conf | 57 +
.../compose/frontend/nginx/web-console.conf | 59 +
.../web-console/docker/standalone/.dockerignore | 2 +
.../web-console/docker/standalone/Dockerfile | 87 +
modules/web-console/docker/standalone/build.sh | 59 +
.../docker/standalone/docker-compose.yml | 41 +
.../web-console/docker/standalone/entrypoint.sh | 23 +
.../docker/standalone/nginx/nginx.conf | 55 +
.../docker/standalone/nginx/web-console.conf | 54 +
modules/web-console/frontend/.babelrc | 9 +
modules/web-console/frontend/.eslintrc | 202 +
modules/web-console/frontend/.gitignore | 7 +
modules/web-console/frontend/app/app.config.js | 86 +
modules/web-console/frontend/app/app.js | 271 +
.../frontend/app/controllers/auth.controller.js | 30 +
.../controllers/reset-password.controller.js | 50 +
.../web-console/frontend/app/data/colors.json | 22 +
.../frontend/app/data/countries.json | 94 +
.../frontend/app/data/demo-info.json | 14 +
.../frontend/app/data/event-types.json | 169 +
.../frontend/app/data/getting-started.json | 109 +
.../frontend/app/data/java-classes.json | 19 +
.../frontend/app/data/java-keywords.json | 55 +
.../frontend/app/data/java-primitives.json | 9 +
.../frontend/app/data/jdbc-types.json | 44 +
.../frontend/app/data/pom-dependencies.json | 20 +
.../frontend/app/data/sql-keywords.json | 41 +
.../frontend/app/decorator/select.js | 77 +
.../frontend/app/decorator/tooltip.js | 70 +
.../app/directives/auto-focus.directive.js | 26 +
.../app/directives/bs-affix-update.directive.js | 34 +
.../app/directives/centered/centered.css | 37 +
.../directives/centered/centered.directive.js | 26 +
.../directives/copy-to-clipboard.directive.js | 29 +
.../hide-on-state-change.directive.js | 31 +
.../information/information.directive.js | 30 +
.../app/directives/information/information.jade | 20 +
.../app/directives/information/information.scss | 56 +
.../frontend/app/directives/match.directive.js | 27 +
.../app/directives/on-click-focus.directive.js | 26 +
.../directives/on-enter-focus-move.directive.js | 29 +
.../app/directives/on-enter.directive.js | 32 +
.../app/directives/on-escape.directive.js | 32 +
.../directives/retain-selection.directive.js | 67 +
.../ui-ace-docker/ui-ace-docker.controller.js | 33 +
.../ui-ace-docker/ui-ace-docker.directive.js | 46 +
.../directives/ui-ace-docker/ui-ace-docker.jade | 31 +
.../ui-ace-java/ui-ace-java.controller.js | 32 +
.../ui-ace-java/ui-ace-java.directive.js | 147 +
.../app/directives/ui-ace-java/ui-ace-java.jade | 22 +
.../ui-ace-pojos/ui-ace-pojos.controller.js | 95 +
.../ui-ace-pojos/ui-ace-pojos.directive.js | 46 +
.../directives/ui-ace-pojos/ui-ace-pojos.jade | 40 +
.../ui-ace-pom/ui-ace-pom.controller.js | 33 +
.../ui-ace-pom/ui-ace-pom.directive.js | 41 +
.../app/directives/ui-ace-pom/ui-ace-pom.jade | 17 +
.../app/directives/ui-ace-tabs.directive.js | 24 +
.../ui-ace-xml/ui-ace-xml.controller.js | 27 +
.../ui-ace-xml/ui-ace-xml.directive.js | 147 +
.../app/directives/ui-ace-xml/ui-ace-xml.jade | 17 +
.../frontend/app/filters/byName.filter.js | 23 +
.../app/filters/domainsValidation.filter.js | 33 +
.../frontend/app/filters/duration.filter.js | 38 +
.../frontend/app/filters/hasPojo.filter.js | 18 +
.../frontend/app/helpers/jade/form.jade | 28 +
.../helpers/jade/form/form-field-checkbox.jade | 38 +
.../helpers/jade/form/form-field-datalist.jade | 51 +
.../app/helpers/jade/form/form-field-down.jade | 18 +
.../helpers/jade/form/form-field-dropdown.jade | 50 +
.../helpers/jade/form/form-field-feedback.jade | 29 +
.../app/helpers/jade/form/form-field-label.jade | 23 +
.../helpers/jade/form/form-field-number.jade | 52 +
.../helpers/jade/form/form-field-password.jade | 47 +
.../app/helpers/jade/form/form-field-text.jade | 47 +
.../app/helpers/jade/form/form-field-up.jade | 18 +
.../app/helpers/jade/form/form-group.jade | 23 +
.../frontend/app/helpers/jade/mixins.jade | 524 +
.../frontend/app/modules/Demo/Demo.module.js | 166 +
.../frontend/app/modules/ace.module.js | 269 +
.../frontend/app/modules/agent/agent.module.js | 341 +
.../app/modules/branding/branding.module.js | 45 +
.../app/modules/branding/branding.provider.js | 111 +
.../app/modules/branding/features.directive.js | 35 +
.../app/modules/branding/footer.directive.js | 34 +
.../modules/branding/header-logo.directive.js | 34 +
.../app/modules/branding/header-logo.jade | 18 +
.../modules/branding/header-title.directive.js | 35 +
.../branding/powered-by-apache.directive.js | 35 +
.../app/modules/branding/powered-by-apache.jade | 18 +
.../app/modules/branding/terms.directive.js | 30 +
.../configuration/EventGroups.provider.js | 30 +
.../modules/configuration/Sidebar.provider.js | 39 +
.../modules/configuration/Version.service.js | 25 +
.../configuration/configuration.module.js | 43 +
.../configuration/generator/Docker.service.js | 78 +
.../configuration/generator/Java.service.js | 21 +
.../configuration/generator/Pom.service.js | 226 +
.../configuration/generator/Xml.service.js | 21 +
.../modules/configuration/sidebar.directive.js | 30 +
.../modules/dialog/dialog-content.directive.js | 31 +
.../modules/dialog/dialog-title.directive.js | 31 +
.../app/modules/dialog/dialog.controller.js | 40 +
.../app/modules/dialog/dialog.directive.js | 32 +
.../app/modules/dialog/dialog.factory.js | 32 +
.../frontend/app/modules/dialog/dialog.jade | 26 +
.../app/modules/dialog/dialog.module.js | 32 +
.../field/bs-select-placeholder.directive.js | 47 +
.../app/modules/form/field/down.directive.js | 39 +
.../app/modules/form/field/feedback.scss | 37 +
.../frontend/app/modules/form/field/field.scss | 43 +
.../field/form-control-feedback.directive.js | 40 +
.../form/field/input/autofocus.directive.js | 30 +
.../app/modules/form/field/input/select.scss | 21 +
.../app/modules/form/field/input/text.scss | 41 +
.../app/modules/form/field/label.directive.js | 47 +
.../app/modules/form/field/tooltip.directive.js | 49 +
.../app/modules/form/field/up.directive.js | 39 +
.../frontend/app/modules/form/form.module.js | 96 +
.../app/modules/form/group/add.directive.js | 40 +
.../app/modules/form/group/tooltip.directive.js | 40 +
.../app/modules/form/panel/chevron.directive.js | 53 +
.../app/modules/form/panel/field.directive.js | 69 +
.../app/modules/form/panel/panel.directive.js | 37 +
.../app/modules/form/panel/revert.directive.js | 54 +
.../form/validator/ipaddress.directive.js | 86 +
.../validator/java-built-in-class.directive.js | 31 +
.../form/validator/java-identifier.directive.js | 31 +
.../form/validator/java-keywords.directive.js | 42 +
.../validator/java-package-name.directive.js | 31 +
.../java-package-specified.directive.js | 35 +
.../form/validator/property-unique.directive.js | 47 +
.../property-value-specified.directive.js | 31 +
.../modules/form/validator/unique.directive.js | 49 +
.../modules/form/validator/uuid.directive.js | 31 +
.../getting-started/GettingStarted.provider.js | 112 +
.../frontend/app/modules/loading/loading.css | 73 +
.../app/modules/loading/loading.directive.js | 51 +
.../frontend/app/modules/loading/loading.jade | 23 +
.../app/modules/loading/loading.module.js | 26 +
.../app/modules/loading/loading.service.js | 48 +
.../app/modules/navbar/Navbar.provider.js | 28 +
.../app/modules/navbar/Userbar.provider.js | 28 +
.../app/modules/navbar/navbar.directive.js | 30 +
.../app/modules/navbar/navbar.module.js | 33 +
.../app/modules/navbar/userbar.directive.js | 48 +
.../frontend/app/modules/socket.module.js | 41 +
.../frontend/app/modules/sql/Notebook.data.js | 165 +
.../app/modules/sql/Notebook.service.js | 74 +
.../app/modules/sql/notebook.controller.js | 60 +
.../app/modules/sql/scan-filter-input.jade | 39 +
.../modules/sql/scan-filter-input.service.js | 51 +
.../frontend/app/modules/sql/sql.controller.js | 1632 +++
.../frontend/app/modules/sql/sql.module.js | 60 +
.../frontend/app/modules/states/admin.state.js | 35 +
.../app/modules/states/configuration.state.js | 97 +
.../configuration/Configuration.resource.js | 42 +
.../configuration/caches/concurrency.jade | 65 +
.../states/configuration/caches/general.jade | 66 +
.../states/configuration/caches/memory.jade | 101 +
.../configuration/caches/node-filter.jade | 108 +
.../states/configuration/caches/query.jade | 103 +
.../states/configuration/caches/rebalance.jade | 65 +
.../configuration/caches/server-near-cache.jade | 51 +
.../states/configuration/caches/statistics.jade | 39 +
.../states/configuration/caches/store.jade | 244 +
.../states/configuration/clusters/atomic.jade | 53 +
.../configuration/clusters/attributes.jade | 57 +
.../states/configuration/clusters/binary.jade | 77 +
.../configuration/clusters/cache-key-cfg.jade | 53 +
.../configuration/clusters/collision.jade | 62 +
.../clusters/collision/custom.jade | 24 +
.../clusters/collision/fifo-queue.jade | 27 +
.../clusters/collision/job-stealing.jade | 63 +
.../clusters/collision/priority-queue.jade | 42 +
.../configuration/clusters/communication.jade | 99 +
.../configuration/clusters/connector.jade | 103 +
.../configuration/clusters/deployment.jade | 113 +
.../configuration/clusters/discovery.jade | 87 +
.../states/configuration/clusters/events.jade | 37 +
.../states/configuration/clusters/failover.jade | 72 +
.../states/configuration/clusters/general.jade | 73 +
.../clusters/general/discovery/cloud.jade | 134 +
.../clusters/general/discovery/google.jade | 38 +
.../clusters/general/discovery/jdbc.jade | 32 +
.../clusters/general/discovery/multicast.jade | 99 +
.../clusters/general/discovery/s3.jade | 27 +
.../clusters/general/discovery/shared.jade | 23 +
.../clusters/general/discovery/vm.jade | 79 +
.../clusters/general/discovery/zookeeper.jade | 83 +
.../bounded-exponential-backoff.jade | 27 +
.../discovery/zookeeper/retrypolicy/custom.jade | 24 +
.../retrypolicy/exponential-backoff.jade | 27 +
.../zookeeper/retrypolicy/forever.jade | 22 +
.../zookeeper/retrypolicy/n-times.jade | 25 +
.../zookeeper/retrypolicy/one-time.jade | 23 +
.../zookeeper/retrypolicy/until-elapsed.jade | 25 +
.../states/configuration/clusters/igfs.jade | 37 +
.../states/configuration/clusters/logger.jade | 66 +
.../configuration/clusters/logger/custom.jade | 25 +
.../configuration/clusters/logger/log4j.jade | 50 +
.../configuration/clusters/logger/log4j2.jade | 39 +
.../configuration/clusters/marshaller.jade | 75 +
.../states/configuration/clusters/metrics.jade | 51 +
.../states/configuration/clusters/odbc.jade | 47 +
.../states/configuration/clusters/ssl.jade | 109 +
.../states/configuration/clusters/swap.jade | 71 +
.../states/configuration/clusters/thread.jade | 48 +
.../states/configuration/clusters/time.jade | 47 +
.../configuration/clusters/transactions.jade | 69 +
.../states/configuration/domains/general.jade | 46 +
.../states/configuration/domains/query.jade | 170 +
.../states/configuration/domains/store.jade | 126 +
.../modules/states/configuration/igfs/dual.jade | 42 +
.../states/configuration/igfs/fragmentizer.jade | 43 +
.../states/configuration/igfs/general.jade | 54 +
.../modules/states/configuration/igfs/ipc.jade | 60 +
.../modules/states/configuration/igfs/misc.jade | 108 +
.../states/configuration/igfs/secondary.jade | 44 +
.../configuration/preview-panel.directive.js | 239 +
.../summary/summary-tabs.directive.js | 50 +
.../configuration/summary/summary.controller.js | 383 +
.../frontend/app/modules/states/errors.state.js | 43 +
.../frontend/app/modules/states/logout.state.js | 35 +
.../app/modules/states/password.state.js | 46 +
.../app/modules/states/profile.state.js | 35 +
.../frontend/app/modules/states/signin.state.js | 43 +
.../app/modules/user/AclRoute.provider.js | 47 +
.../frontend/app/modules/user/Auth.service.js | 56 +
.../frontend/app/modules/user/User.service.js | 51 +
.../frontend/app/modules/user/permissions.js | 28 +
.../frontend/app/modules/user/user.module.js | 73 +
.../app/services/ChartColors.service.js | 22 +
.../frontend/app/services/Clone.service.js | 64 +
.../frontend/app/services/Confirm.service.js | 68 +
.../app/services/ConfirmBatch.service.js | 92 +
.../app/services/CopyToClipboard.service.js | 50 +
.../frontend/app/services/Countries.service.js | 31 +
.../app/services/ErrorPopover.service.js | 129 +
.../frontend/app/services/Focus.service.js | 33 +
.../frontend/app/services/FormUtils.service.js | 435 +
.../app/services/InetAddress.service.js | 53 +
.../frontend/app/services/JavaTypes.service.js | 118 +
.../app/services/LegacyTable.service.js | 209 +
.../app/services/LegacyUtils.service.js | 528 +
.../frontend/app/services/Messages.service.js | 63 +
.../app/services/ModelNormalizer.service.js | 59 +
.../frontend/app/services/SqlTypes.service.js | 67 +
.../app/services/UnsavedChangesGuard.service.js | 38 +
modules/web-console/frontend/app/vendor.js | 55 +
.../frontend/controllers/admin-controller.js | 93 +
.../frontend/controllers/caches-controller.js | 538 +
.../frontend/controllers/clusters-controller.js | 689 +
.../frontend/controllers/domains-controller.js | 1804 +++
.../frontend/controllers/igfs-controller.js | 416 +
.../frontend/controllers/profile-controller.js | 95 +
.../frontend/generator/generator-common.js | 625 +
.../frontend/generator/generator-java.js | 3611 +++++
.../frontend/generator/generator-optional.js | 25 +
.../frontend/generator/generator-properties.js | 175 +
.../frontend/generator/generator-readme.js | 85 +
.../frontend/generator/generator-xml.js | 2108 +++
.../frontend/gulpfile.babel.js/index.js | 26 +
.../frontend/gulpfile.babel.js/paths.js | 74 +
.../frontend/gulpfile.babel.js/tasks/build.js | 21 +
.../frontend/gulpfile.babel.js/tasks/bundle.js | 32 +
.../frontend/gulpfile.babel.js/tasks/clean.js | 32 +
.../frontend/gulpfile.babel.js/tasks/copy.js | 33 +
.../gulpfile.babel.js/tasks/ignite-modules.js | 55 +
.../frontend/gulpfile.babel.js/tasks/jade.js | 40 +
.../frontend/gulpfile.babel.js/tasks/test.js | 92 +
.../frontend/gulpfile.babel.js/tasks/watch.js | 31 +
.../gulpfile.babel.js/webpack/common.js | 189 +
.../webpack/environments/development.js | 69 +
.../webpack/environments/production.js | 45 +
.../frontend/gulpfile.babel.js/webpack/index.js | 32 +
.../webpack/plugins/progress.js | 82 +
.../frontend/ignite_modules/README.txt | 6 +
.../frontend/ignite_modules/index.js | 27 +
modules/web-console/frontend/package.json | 125 +
modules/web-console/frontend/public/favicon.ico | Bin 0 -> 1150 bytes
.../frontend/public/images/cache.png | Bin 0 -> 23700 bytes
.../frontend/public/images/cluster.png | Bin 0 -> 29376 bytes
.../frontend/public/images/docker.png | Bin 0 -> 521 bytes
.../frontend/public/images/domains.png | Bin 0 -> 23828 bytes
.../web-console/frontend/public/images/igfs.png | Bin 0 -> 14307 bytes
.../frontend/public/images/ignite-logo.png | Bin 0 -> 1982 bytes
.../frontend/public/images/ignite-logo@2x.png | Bin 0 -> 3325 bytes
.../frontend/public/images/ignite-puzzle.png | Bin 0 -> 71974 bytes
.../web-console/frontend/public/images/java.png | Bin 0 -> 170 bytes
.../frontend/public/images/pb-ignite.png | Bin 0 -> 3493 bytes
.../frontend/public/images/pb-ignite@2x.png | Bin 0 -> 8558 bytes
.../frontend/public/images/query-chart.png | Bin 0 -> 16637 bytes
.../frontend/public/images/query-metadata.png | Bin 0 -> 32298 bytes
.../frontend/public/images/query-table.png | Bin 0 -> 29189 bytes
.../frontend/public/images/summary.png | Bin 0 -> 31997 bytes
.../web-console/frontend/public/images/xml.png | Bin 0 -> 232 bytes
.../public/stylesheets/_bootstrap-custom.scss | 65 +
.../stylesheets/_bootstrap-variables.scss | 891 ++
.../stylesheets/_font-awesome-custom.scss | 32 +
.../public/stylesheets/blocks/error.scss | 31 +
.../frontend/public/stylesheets/form-field.scss | 108 +
.../frontend/public/stylesheets/style.scss | 2172 +++
.../frontend/public/stylesheets/variables.scss | 28 +
.../frontend/test/e2e/exampe.test.js | 40 +
modules/web-console/frontend/test/karma.conf.js | 113 +
.../frontend/test/protractor.conf.js | 50 +
.../frontend/test/unit/JavaTypes.test.js | 107 +
.../frontend/test/unit/SqlTypes.test.js | 68 +
.../frontend/test/unit/UserAuth.test.js | 35 +
modules/web-console/frontend/views/403.jade | 22 +
modules/web-console/frontend/views/404.jade | 22 +
modules/web-console/frontend/views/base.jade | 22 +
.../frontend/views/configuration/caches.jade | 53 +
.../frontend/views/configuration/clusters.jade | 67 +
.../views/configuration/domains-import.jade | 163 +
.../frontend/views/configuration/domains.jade | 66 +
.../frontend/views/configuration/igfs.jade | 51 +
.../frontend/views/configuration/sidebar.jade | 29 +
.../summary-project-structure.jade | 27 +
.../views/configuration/summary-tabs.jade | 25 +
.../frontend/views/configuration/summary.jade | 122 +
.../frontend/views/includes/footer.jade | 23 +
.../frontend/views/includes/header.jade | 51 +
modules/web-console/frontend/views/index.jade | 47 +
modules/web-console/frontend/views/reset.jade | 48 +
.../frontend/views/settings/admin.jade | 76 +
.../frontend/views/settings/profile.jade | 76 +
modules/web-console/frontend/views/signin.jade | 163 +
.../frontend/views/sql/cache-metadata.jade | 40 +
.../frontend/views/sql/chart-settings.jade | 40 +
.../frontend/views/sql/notebook-new.jade | 31 +
.../frontend/views/sql/paragraph-rate.jade | 31 +
modules/web-console/frontend/views/sql/sql.jade | 193 +
.../views/templates/agent-download.jade | 48 +
.../frontend/views/templates/alert.jade | 21 +
.../frontend/views/templates/batch-confirm.jade | 32 +
.../frontend/views/templates/clone.jade | 37 +
.../frontend/views/templates/confirm.jade | 31 +
.../frontend/views/templates/demo-info.jade | 45 +
.../frontend/views/templates/dropdown.jade | 24 +
.../views/templates/getting-started.jade | 32 +
.../frontend/views/templates/message.jade | 26 +
.../frontend/views/templates/pagination.jade | 32 +
.../frontend/views/templates/select.jade | 26 +
.../views/templates/validation-error.jade | 25 +
modules/web-console/licenses/apache-2.0.txt | 202 +
modules/web-console/pom.xml | 94 +
modules/web-console/web-agent/.gitignore | 2 +
modules/web-console/web-agent/README.txt | 88 +
.../web-agent/assembly/release-web-agent.xml | 66 +
.../web-agent/bin/ignite-web-agent.bat | 70 +
.../web-agent/bin/ignite-web-agent.sh | 87 +
modules/web-console/web-agent/demo/README.txt | 4 +
modules/web-console/web-agent/demo/db-init.sql | 102 +
.../web-agent/jdbc-drivers/README.txt | 10 +
modules/web-console/web-agent/logs/README.txt | 5 +
modules/web-console/web-agent/pom.xml | 199 +
.../console/agent/AgentConfiguration.java | 268 +
.../ignite/console/agent/AgentLauncher.java | 344 +
.../apache/ignite/console/agent/AgentUtils.java | 111 +
.../console/agent/handlers/AbstractHandler.java | 110 +
.../console/agent/handlers/DatabaseHandler.java | 298 +
.../console/agent/handlers/RestHandler.java | 276 +
.../ignite/console/demo/AgentClusterDemo.java | 641 +
.../ignite/console/demo/AgentMetadataDemo.java | 92 +
.../apache/ignite/console/demo/model/Car.java | 152 +
.../ignite/console/demo/model/Country.java | 152 +
.../ignite/console/demo/model/Department.java | 152 +
.../ignite/console/demo/model/Employee.java | 356 +
.../ignite/console/demo/model/Parking.java | 152 +
.../src/main/resources/log4j.properties | 53 +
modules/web/ignite-appserver-test/pom.xml | 75 +
.../webapp/META-INF/config/default-config.xml | 37 +
.../src/main/webapp/WEB-INF/web.xml | 52 +
.../src/main/webapp/index.jsp | 36 +
modules/web/ignite-weblogic-test/pom.xml | 76 -
.../webapp/META-INF/config/default-config.xml | 37 -
.../src/main/webapp/WEB-INF/web.xml | 52 -
.../src/main/webapp/index.jsp | 36 -
modules/web/ignite-websphere-test/pom.xml | 69 +
.../apache/ignite/webtest/TestJtaTxServlet.java | 106 +
.../webapp/META-INF/config/default-config.xml | 70 +
.../src/main/webapp/WEB-INF/web.xml | 62 +
.../src/main/webapp/index.jsp | 36 +
modules/web/pom.xml | 2 +-
.../ignite/cache/websession/WebSession.java | 21 +-
.../cache/websession/WebSessionFilter.java | 548 +-
.../cache/websession/WebSessionListener.java | 117 +-
.../ignite/cache/websession/WebSessionV2.java | 409 +
.../IgniteWebSessionSelfTestSuite.java | 43 +-
.../WebSessionReplicatedSelfTest.java | 28 +
.../WebSessionReplicatedV1SelfTest.java | 28 +
.../internal/websession/WebSessionSelfTest.java | 660 +-
.../WebSessionTransactionalSelfTest.java | 48 +
.../WebSessionTransactionalV1SelfTest.java | 28 +
.../websession/WebSessionV1SelfTest.java | 28 +
.../webapp2/META-INF/ignite-webapp-config.xml | 279 +
modules/web/src/test/webapp2/WEB-INF/web.xml | 45 +
.../config/benchmark-cache-load-win.properties | 60 +
.../config/benchmark-cache-load.properties | 92 +
.../config/benchmark-client-mode.properties | 2 +
.../yardstick/config/benchmark-full.properties | 116 +
.../config/benchmark-tx-win.properties | 2 +
.../yardstick/config/benchmark-tx.properties | 2 +
.../yardstick/config/benchmark-win.properties | 2 +
modules/yardstick/config/benchmark.properties | 2 +
.../config/ignite-base-load-config.xml | 255 +
.../config/ignite-cache-load-config.xml | 71 +
modules/yardstick/config/queries.sql | 3 +
modules/yardstick/pom.xml | 48 +-
.../yardstick/IgniteBenchmarkArguments.java | 39 +-
.../ignite/yardstick/IgniteBenchmarkUtils.java | 71 +-
.../org/apache/ignite/yardstick/IgniteNode.java | 74 +-
.../cache/CacheEntryEventAsyncProbe.java | 61 +
.../yardstick/cache/CacheEntryEventProbe.java | 33 +-
.../cache/IgniteAtomicSequenceBenchmark.java | 47 +
.../cache/IgniteCacheAbstractBenchmark.java | 5 +
.../cache/IgniteGetAndPutBenchmark.java | 41 +
.../cache/IgniteGetAndPutTxBenchmark.java | 70 +
.../cache/IgniteInvokeTxBenchmark.java | 40 +
.../IgniteInvokeWithInjectionBenchmark.java | 74 +
.../IgniteInvokeWithInjectionTxBenchmark.java | 30 +
.../IgniteSqlQueryDistributedJoinBenchmark.java | 166 +
...lQueryDistributedJoinBroadcastBenchmark.java | 28 +
.../IgniteCacheRandomOperationBenchmark.java | 1246 ++
.../yardstick/cache/load/model/ModelUtil.java | 185 +
.../cache/load/model/key/Identifier.java | 113 +
.../yardstick/cache/load/model/key/Mark.java | 115 +
.../yardstick/cache/load/model/value/Car.java | 126 +
.../yardstick/cache/load/model/value/Color.java | 50 +
.../yardstick/cache/load/model/value/Truck.java | 69 +
.../ignite/yardstick/cache/model/Account.java | 6 +
.../ignite/yardstick/cache/model/Person1.java | 2 +-
.../ignite/yardstick/cache/model/Person2.java | 2 +-
.../ignite/yardstick/cache/model/SampleKey.java | 2 +-
.../yardstick/cache/model/SampleValue.java | 2 +-
modules/yarn/pom.xml | 2 +-
modules/zookeeper/pom.xml | 5 +-
.../zk/TcpDiscoveryZookeeperIpFinder.java | 84 +-
.../tcp/ipfinder/zk/ZookeeperIpFinderTest.java | 16 +-
parent/pom.xml | 56 +-
pom.xml | 58 +-
3374 files changed, 383167 insertions(+), 128892 deletions(-)
----------------------------------------------------------------------
[16/50] [abbrv] ignite git commit: IGNITE-3609 Utilize Cassandra
logged batches for transactions. - Fixes #1111.
Posted by sh...@apache.org.
IGNITE-3609 Utilize Cassandra logged batches for transactions. - Fixes #1111.
Signed-off-by: Alexey Kuznetsov <ak...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3b8aca64
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3b8aca64
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3b8aca64
Branch: refs/heads/ignite-2788
Commit: 3b8aca64b8ebe6ba21f5d02f50cf69ad46dbbc95
Parents: 00576d8
Author: Igor <ir...@gmail.com>
Authored: Fri Sep 30 14:39:30 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Sep 30 14:39:30 2016 +0700
----------------------------------------------------------------------
.../store/cassandra/CassandraCacheStore.java | 112 ++++--
.../store/cassandra/common/CassandraHelper.java | 29 +-
.../store/cassandra/persistence/PojoField.java | 9 +-
.../cassandra/persistence/PojoValueField.java | 2 -
.../cassandra/session/CassandraSession.java | 10 +
.../cassandra/session/CassandraSessionImpl.java | 113 +++++-
.../session/transaction/BaseMutation.java | 68 ++++
.../session/transaction/DeleteMutation.java | 57 +++
.../cassandra/session/transaction/Mutation.java | 64 +++
.../session/transaction/WriteMutation.java | 60 +++
.../session/transaction/package-info.java | 21 +
.../tests/CassandraDirectPersistenceTest.java | 396 ++++++++++++++++---
.../ignite/tests/CassandraLocalServer.java | 58 +++
.../apache/ignite/tests/DDLGeneratorTest.java | 35 +-
.../ignite/tests/IgnitePersistentStoreTest.java | 265 +++++++++++++
.../org/apache/ignite/tests/pojos/Product.java | 123 ++++++
.../apache/ignite/tests/pojos/ProductOrder.java | 148 +++++++
.../ignite/tests/utils/CacheStoreHelper.java | 19 +-
.../ignite/tests/utils/TestCacheSession.java | 12 +-
.../ignite/tests/utils/TestTransaction.java | 133 +++++++
.../apache/ignite/tests/utils/TestsHelper.java | 299 +++++++++++++-
.../tests/persistence/pojo/ignite-config.xml | 41 +-
.../ignite/tests/persistence/pojo/order.xml | 21 +
.../ignite/tests/persistence/pojo/product.xml | 21 +
.../store/src/test/resources/tests.properties | 15 +
25 files changed, 2005 insertions(+), 126 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
index 6aef0c4..aead39a 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/CassandraCacheStore.java
@@ -22,8 +22,10 @@ import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.Row;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Map;
+import java.util.HashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@@ -41,6 +43,9 @@ import org.apache.ignite.cache.store.cassandra.session.CassandraSession;
import org.apache.ignite.cache.store.cassandra.session.ExecutionAssistant;
import org.apache.ignite.cache.store.cassandra.session.GenericBatchExecutionAssistant;
import org.apache.ignite.cache.store.cassandra.session.LoadCacheCustomQueryWorker;
+import org.apache.ignite.cache.store.cassandra.session.transaction.DeleteMutation;
+import org.apache.ignite.cache.store.cassandra.session.transaction.Mutation;
+import org.apache.ignite.cache.store.cassandra.session.transaction.WriteMutation;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiInClosure;
import org.apache.ignite.logger.NullLogger;
@@ -54,14 +59,16 @@ import org.apache.ignite.resources.LoggerResource;
* @param <V> Ignite cache value type.
*/
public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
- /** Connection attribute property name. */
- private static final String ATTR_CONN_PROP = "CASSANDRA_STORE_CONNECTION";
+ /** Buffer to store mutations performed withing transaction. */
+ private static final String TRANSACTION_BUFFER = "CASSANDRA_TRANSACTION_BUFFER";
/** Auto-injected store session. */
+ @SuppressWarnings("unused")
@CacheStoreSessionResource
private CacheStoreSession storeSes;
/** Auto-injected logger instance. */
+ @SuppressWarnings("unused")
@LoggerResource
private IgniteLogger log;
@@ -127,12 +134,22 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
/** {@inheritDoc} */
@Override public void sessionEnd(boolean commit) throws CacheWriterException {
- if (storeSes == null || storeSes.transaction() == null)
+ if (!storeSes.isWithinTransaction())
return;
- CassandraSession cassandraSes = (CassandraSession) storeSes.properties().remove(ATTR_CONN_PROP);
+ List<Mutation> mutations = mutations();
+ if (mutations == null || mutations.isEmpty())
+ return;
- U.closeQuiet(cassandraSes);
+ CassandraSession ses = getCassandraSession();
+
+ try {
+ ses.execute(mutations);
+ }
+ finally {
+ mutations.clear();
+ U.closeQuiet(ses);
+ }
}
/** {@inheritDoc} */
@@ -182,7 +199,7 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
});
}
finally {
- closeCassandraSession(ses);
+ U.closeQuiet(ses);
}
}
@@ -235,7 +252,7 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
}, keys);
}
finally {
- closeCassandraSession(ses);
+ U.closeQuiet(ses);
}
}
@@ -244,6 +261,11 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
if (entry == null || entry.getKey() == null)
return;
+ if (storeSes.isWithinTransaction()) {
+ accumulate(new WriteMutation(entry, cassandraTable(), controller));
+ return;
+ }
+
CassandraSession ses = getCassandraSession();
try {
@@ -285,7 +307,7 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
});
}
finally {
- closeCassandraSession(ses);
+ U.closeQuiet(ses);
}
}
@@ -294,6 +316,13 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
if (entries == null || entries.isEmpty())
return;
+ if (storeSes.isWithinTransaction()) {
+ for (Cache.Entry<?, ?> entry : entries)
+ accumulate(new WriteMutation(entry, cassandraTable(), controller));
+
+ return;
+ }
+
CassandraSession ses = getCassandraSession();
try {
@@ -331,7 +360,7 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
}, entries);
}
finally {
- closeCassandraSession(ses);
+ U.closeQuiet(ses);
}
}
@@ -340,6 +369,11 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
if (key == null)
return;
+ if (storeSes.isWithinTransaction()) {
+ accumulate(new DeleteMutation(key, cassandraTable(), controller));
+ return;
+ }
+
CassandraSession ses = getCassandraSession();
try {
@@ -382,7 +416,7 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
});
}
finally {
- closeCassandraSession(ses);
+ U.closeQuiet(ses);
}
}
@@ -391,6 +425,13 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
if (keys == null || keys.isEmpty())
return;
+ if (storeSes.isWithinTransaction()) {
+ for (Object key : keys)
+ accumulate(new DeleteMutation(key, cassandraTable(), controller));
+
+ return;
+ }
+
CassandraSession ses = getCassandraSession();
try {
@@ -422,7 +463,7 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
}, keys);
}
finally {
- closeCassandraSession(ses);
+ U.closeQuiet(ses);
}
}
@@ -433,36 +474,43 @@ public class CassandraCacheStore<K, V> implements CacheStore<K, V> {
* @return Cassandra session wrapper.
*/
private CassandraSession getCassandraSession() {
- if (storeSes == null || storeSes.transaction() == null)
- return dataSrc.session(log != null ? log : new NullLogger());
-
- CassandraSession ses = (CassandraSession) storeSes.properties().get(ATTR_CONN_PROP);
-
- if (ses == null) {
- ses = dataSrc.session(log != null ? log : new NullLogger());
- storeSes.properties().put(ATTR_CONN_PROP, ses);
- }
+ return dataSrc.session(log != null ? log : new NullLogger());
+ }
- return ses;
+ /**
+ * Returns table name to use for all Cassandra based operations (READ/WRITE/DELETE).
+ *
+ * @return Table name.
+ */
+ private String cassandraTable() {
+ return controller.getPersistenceSettings().getTable() != null ?
+ controller.getPersistenceSettings().getTable() : storeSes.cacheName().trim().toLowerCase();
}
/**
- * Releases Cassandra related resources.
+ * Accumulates mutation in the transaction buffer.
*
- * @param ses Cassandra session wrapper.
+ * @param mutation Mutation operation.
*/
- private void closeCassandraSession(CassandraSession ses) {
- if (ses != null && (storeSes == null || storeSes.transaction() == null))
- U.closeQuiet(ses);
+ private void accumulate(Mutation mutation) {
+ //noinspection unchecked
+ List<Mutation> mutations = (List<Mutation>)storeSes.properties().get(TRANSACTION_BUFFER);
+
+ if (mutations == null) {
+ mutations = new LinkedList<>();
+ storeSes.properties().put(TRANSACTION_BUFFER, mutations);
+ }
+
+ mutations.add(mutation);
}
/**
- * Returns table name to use for all Cassandra based operations (READ/WRITE/DELETE).
+ * Returns all the mutations performed withing transaction.
*
- * @return Table name.
+ * @return Mutations
*/
- private String cassandraTable() {
- return controller.getPersistenceSettings().getTable() != null ?
- controller.getPersistenceSettings().getTable() : storeSes.cacheName().toLowerCase();
+ private List<Mutation> mutations() {
+ //noinspection unchecked
+ return (List<Mutation>)storeSes.properties().get(TRANSACTION_BUFFER);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/CassandraHelper.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/CassandraHelper.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/CassandraHelper.java
index 9066112..badd5df 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/CassandraHelper.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/CassandraHelper.java
@@ -20,9 +20,13 @@ package org.apache.ignite.cache.store.cassandra.common;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.DataType;
import com.datastax.driver.core.Session;
+import com.datastax.driver.core.exceptions.DriverException;
import com.datastax.driver.core.exceptions.InvalidQueryException;
import com.datastax.driver.core.exceptions.NoHostAvailableException;
import com.datastax.driver.core.exceptions.ReadTimeoutException;
+
+import java.net.InetSocketAddress;
+import java.util.Map;
import java.util.regex.Pattern;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -36,8 +40,15 @@ public class CassandraHelper {
/** Cassandra error message if trying to create table inside nonexistent keyspace. */
private static final Pattern KEYSPACE_EXIST_ERROR2 = Pattern.compile("Cannot add table '[0-9a-zA-Z_]+' to non existing keyspace.*");
+ /** Cassandra error message if trying to create table inside nonexistent keyspace. */
+ private static final Pattern KEYSPACE_EXIST_ERROR3 = Pattern.compile("Error preparing query, got ERROR INVALID: " +
+ "Keyspace [0-9a-zA-Z_]+ does not exist");
+
+ /** Cassandra error message if specified table doesn't exist. */
+ private static final Pattern TABLE_EXIST_ERROR1 = Pattern.compile("unconfigured table [0-9a-zA-Z_]+");
+
/** Cassandra error message if specified table doesn't exist. */
- private static final Pattern TABLE_EXIST_ERROR = Pattern.compile("unconfigured table [0-9a-zA-Z_]+");
+ private static final String TABLE_EXIST_ERROR2 = "Error preparing query, got ERROR INVALID: unconfigured table";
/** Cassandra error message if trying to use prepared statement created from another session. */
private static final String PREP_STATEMENT_CLUSTER_INSTANCE_ERROR = "You may have used a PreparedStatement that " +
@@ -85,11 +96,25 @@ public class CassandraHelper {
public static boolean isTableAbsenceError(Throwable e) {
while (e != null) {
if (e instanceof InvalidQueryException &&
- (TABLE_EXIST_ERROR.matcher(e.getMessage()).matches() ||
+ (TABLE_EXIST_ERROR1.matcher(e.getMessage()).matches() ||
KEYSPACE_EXIST_ERROR1.matcher(e.getMessage()).matches() ||
KEYSPACE_EXIST_ERROR2.matcher(e.getMessage()).matches()))
return true;
+ if (e instanceof NoHostAvailableException && ((NoHostAvailableException) e).getErrors() != null) {
+ NoHostAvailableException ex = (NoHostAvailableException)e;
+
+ for (Map.Entry<InetSocketAddress, Throwable> entry : ex.getErrors().entrySet()) {
+ //noinspection ThrowableResultOfMethodCallIgnored
+ Throwable error = entry.getValue();
+
+ if (error instanceof DriverException &&
+ (error.getMessage().contains(TABLE_EXIST_ERROR2) ||
+ KEYSPACE_EXIST_ERROR3.matcher(error.getMessage()).matches()))
+ return true;
+ }
+ }
+
e = e.getCause();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
index d708a34..78e75a9 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
@@ -85,11 +85,10 @@ public abstract class PojoField implements Serializable {
public PojoField(PropertyDescriptor desc) {
this.name = desc.getName();
- QuerySqlField sqlField = desc.getReadMethod() != null ?
- desc.getReadMethod().getAnnotation(QuerySqlField.class) :
- desc.getWriteMethod() == null ?
- null :
- desc.getWriteMethod().getAnnotation(QuerySqlField.class);
+ QuerySqlField sqlField = desc.getReadMethod() != null &&
+ desc.getReadMethod().getAnnotation(QuerySqlField.class) != null ?
+ desc.getReadMethod().getAnnotation(QuerySqlField.class) :
+ desc.getWriteMethod() == null ? null : desc.getWriteMethod().getAnnotation(QuerySqlField.class);
col = sqlField != null && sqlField.name() != null &&
!sqlField.name().trim().isEmpty() ? sqlField.name() : name.toLowerCase();
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
index c3512c3..3e636c0 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
@@ -146,7 +146,5 @@ public class PojoValueField extends PojoField {
* @param sqlField {@link QuerySqlField} annotation.
*/
protected void init(QuerySqlField sqlField) {
- if (sqlField.index())
- isIndexed = true;
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSession.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSession.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSession.java
index 506982f..b0e50ec 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSession.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSession.java
@@ -17,7 +17,10 @@
package org.apache.ignite.cache.store.cassandra.session;
+import org.apache.ignite.cache.store.cassandra.session.transaction.Mutation;
+
import java.io.Closeable;
+import java.util.List;
/**
* Wrapper around Cassandra driver session, to automatically handle:
@@ -57,4 +60,11 @@ public interface CassandraSession extends Closeable {
* @param assistant execution assistance to perform the main operation logic.
*/
public void execute(BatchLoaderAssistant assistant);
+
+ /**
+ * Executes all the mutations performed withing Ignite transaction against Cassandra database.
+ *
+ * @param mutations Mutations.
+ */
+ public void execute(List<Mutation> mutations);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
index d2c9e97..4857fa4 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
@@ -43,6 +43,7 @@ import org.apache.ignite.cache.store.cassandra.common.CassandraHelper;
import org.apache.ignite.cache.store.cassandra.common.RandomSleeper;
import org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings;
import org.apache.ignite.cache.store.cassandra.session.pool.SessionPool;
+import org.apache.ignite.cache.store.cassandra.session.transaction.Mutation;
import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
/**
@@ -162,7 +163,8 @@ public class CassandraSessionImpl implements CassandraSession {
throw new IgniteException(errorMsg, e);
}
- sleeper.sleep();
+ if (!CassandraHelper.isTableAbsenceError(error))
+ sleeper.sleep();
attempt++;
}
@@ -320,7 +322,8 @@ public class CassandraSessionImpl implements CassandraSession {
handlePreparedStatementClusterError(prepStatEx);
}
- sleeper.sleep();
+ if (!CassandraHelper.isTableAbsenceError(error))
+ sleeper.sleep();
attempt++;
}
@@ -402,6 +405,103 @@ public class CassandraSessionImpl implements CassandraSession {
}
/** {@inheritDoc} */
+ @Override public void execute(List<Mutation> mutations) {
+ if (mutations == null || mutations.isEmpty())
+ return;
+
+ Throwable error = null;
+ String errorMsg = "Failed to apply " + mutations.size() + " mutations performed withing Ignite " +
+ "transaction into Cassandra";
+
+ int attempt = 0;
+ boolean tableExistenceRequired = false;
+ Map<String, PreparedStatement> statements = new HashMap<>();
+ Map<String, KeyValuePersistenceSettings> tableSettings = new HashMap<>();
+ RandomSleeper sleeper = newSleeper();
+
+ incrementSessionRefs();
+
+ try {
+ while (attempt < CQL_EXECUTION_ATTEMPTS_COUNT) {
+ error = null;
+
+ if (attempt != 0) {
+ log.warning("Trying " + (attempt + 1) + " attempt to apply " + mutations.size() + " mutations " +
+ "performed withing Ignite transaction into Cassandra");
+ }
+
+ try {
+ BatchStatement batch = new BatchStatement();
+
+ // accumulating all the mutations into one Cassandra logged batch
+ for (Mutation mutation : mutations) {
+ String key = mutation.getTable() + mutation.getClass().getName();
+ PreparedStatement st = statements.get(key);
+
+ if (st == null) {
+ st = prepareStatement(mutation.getTable(), mutation.getStatement(),
+ mutation.getPersistenceSettings(), mutation.tableExistenceRequired());
+
+ if (st != null)
+ statements.put(key, st);
+ }
+
+ if (st != null)
+ batch.add(mutation.bindStatement(st));
+
+ if (attempt == 0) {
+ if (mutation.tableExistenceRequired()) {
+ tableExistenceRequired = true;
+
+ if (!tableSettings.containsKey(mutation.getTable()))
+ tableSettings.put(mutation.getTable(), mutation.getPersistenceSettings());
+ }
+ }
+ }
+
+ // committing logged batch into Cassandra
+ if (batch.size() > 0)
+ session().execute(tuneStatementExecutionOptions(batch));
+
+ return;
+ } catch (Throwable e) {
+ error = e;
+
+ if (CassandraHelper.isTableAbsenceError(e)) {
+ if (tableExistenceRequired) {
+ for (Map.Entry<String, KeyValuePersistenceSettings> entry : tableSettings.entrySet())
+ handleTableAbsenceError(entry.getKey(), entry.getValue());
+ }
+ else
+ return;
+ } else if (CassandraHelper.isHostsAvailabilityError(e)) {
+ if (handleHostsAvailabilityError(e, attempt, errorMsg))
+ statements.clear();
+ } else if (CassandraHelper.isPreparedStatementClusterError(e)) {
+ handlePreparedStatementClusterError(e);
+ statements.clear();
+ } else {
+ // For an error which we don't know how to handle, we will not try next attempts and terminate.
+ throw new IgniteException(errorMsg, e);
+ }
+ }
+
+ if (!CassandraHelper.isTableAbsenceError(error))
+ sleeper.sleep();
+
+ attempt++;
+ }
+ } catch (Throwable e) {
+ error = e;
+ } finally {
+ decrementSessionRefs();
+ }
+
+ log.error(errorMsg, error);
+ throw new IgniteException(errorMsg, error);
+ }
+
+ /** {@inheritDoc} */
@Override public synchronized void close() throws IOException {
if (decrementSessionRefs() == 0 && ses != null) {
SessionPool.put(this, ses);
@@ -517,7 +617,8 @@ public class CassandraSessionImpl implements CassandraSession {
error = e;
}
- sleeper.sleep();
+ if (!CassandraHelper.isTableAbsenceError(error))
+ sleeper.sleep();
attempt++;
}
@@ -585,7 +686,7 @@ public class CassandraSessionImpl implements CassandraSession {
log.info("-----------------------------------------------------------------------");
log.info("Creating Cassandra table '" + tableFullName + "'");
log.info("-----------------------------------------------------------------------\n\n" +
- tableFullName + "\n");
+ settings.getTableDDLStatement(table) + "\n");
log.info("-----------------------------------------------------------------------");
session().execute(settings.getTableDDLStatement(table));
log.info("Cassandra table '" + tableFullName + "' was successfully created");
@@ -634,10 +735,14 @@ public class CassandraSessionImpl implements CassandraSession {
while (attempt < CQL_EXECUTION_ATTEMPTS_COUNT) {
try {
+ log.info("-----------------------------------------------------------------------");
log.info("Creating indexes for Cassandra table '" + tableFullName + "'");
+ log.info("-----------------------------------------------------------------------");
for (String statement : indexDDLStatements) {
try {
+ log.info(statement);
+ log.info("-----------------------------------------------------------------------");
session().execute(statement);
}
catch (AlreadyExistsException ignored) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/BaseMutation.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/BaseMutation.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/BaseMutation.java
new file mode 100644
index 0000000..2625e87
--- /dev/null
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/BaseMutation.java
@@ -0,0 +1,68 @@
+/*
+ * 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.cache.store.cassandra.session.transaction;
+
+import org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings;
+import org.apache.ignite.cache.store.cassandra.persistence.PersistenceController;
+
+/**
+ * Base class to inherit from to implement specific mutations operation.
+ */
+public abstract class BaseMutation implements Mutation {
+ /** Cassandra table to use. */
+ private final String table;
+
+ /** Persistence controller to be utilized for mutation. */
+ private final PersistenceController ctrl;
+
+ /**
+ * Creates instance of mutation operation.
+ *
+ * @param table Cassandra table which should be used for the mutation.
+ * @param ctrl Persistence controller to use.
+ */
+ public BaseMutation(String table, PersistenceController ctrl) {
+ if (table == null || table.trim().isEmpty())
+ throw new IllegalArgumentException("Table name should be specified");
+
+ if (ctrl == null)
+ throw new IllegalArgumentException("Persistence controller should be specified");
+
+ this.table = table;
+ this.ctrl = ctrl;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String getTable() {
+ return table;
+ }
+
+ /** {@inheritDoc} */
+ @Override public KeyValuePersistenceSettings getPersistenceSettings() {
+ return ctrl.getPersistenceSettings();
+ }
+
+ /**
+ * Service method to get persistence controller instance
+ *
+ * @return Persistence controller to use for the mutation
+ */
+ protected PersistenceController controller() {
+ return ctrl;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/DeleteMutation.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/DeleteMutation.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/DeleteMutation.java
new file mode 100644
index 0000000..79c0bfe
--- /dev/null
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/DeleteMutation.java
@@ -0,0 +1,57 @@
+/*
+ * 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.cache.store.cassandra.session.transaction;
+
+import com.datastax.driver.core.BoundStatement;
+import com.datastax.driver.core.PreparedStatement;
+import org.apache.ignite.cache.store.cassandra.persistence.PersistenceController;
+
+/**
+ * Mutation which deletes object from Cassandra.
+ */
+public class DeleteMutation extends BaseMutation {
+ /** Ignite cache key of the object which should be deleted. */
+ private final Object key;
+
+ /**
+ * Creates instance of delete mutation operation.
+ *
+ * @param key Ignite cache key of the object which should be deleted.
+ * @param table Cassandra table which should be used for the mutation.
+ * @param ctrl Persistence controller to use.
+ */
+ public DeleteMutation(Object key, String table, PersistenceController ctrl) {
+ super(table, ctrl);
+ this.key = key;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean tableExistenceRequired() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String getStatement() {
+ return controller().getDeleteStatement(getTable());
+ }
+
+ /** {@inheritDoc} */
+ @Override public BoundStatement bindStatement(PreparedStatement statement) {
+ return controller().bindKey(statement, key);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
new file mode 100644
index 0000000..cb014f8
--- /dev/null
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
@@ -0,0 +1,64 @@
+/*
+ * 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.cache.store.cassandra.session.transaction;
+
+import com.datastax.driver.core.BoundStatement;
+import com.datastax.driver.core.PreparedStatement;
+import org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings;
+
+/**
+ * Provides information about particular mutation operation performed withing transaction.
+ */
+public interface Mutation {
+ /**
+ * Cassandra table to use for an operation.
+ *
+ * @return Table name.
+ */
+ public String getTable();
+
+ /**
+ * Indicates if Cassandra tables existence is required for this operation.
+ *
+ * @return {@code true} true if table existence required.
+ */
+ public boolean tableExistenceRequired();
+
+ /**
+ * Returns Ignite cache key/value persistence settings.
+ *
+ * @return persistence settings.
+ */
+ public KeyValuePersistenceSettings getPersistenceSettings();
+
+ /**
+ * Returns unbind CLQ statement for to be executed.
+ *
+ * @return Unbind CQL statement.
+ */
+ public String getStatement();
+
+ /**
+ * Binds prepared statement to current Cassandra session.
+ *
+ * @param statement Statement.
+ * @param obj Parameters for statement binding.
+ * @return Bounded statement.
+ */
+ public BoundStatement bindStatement(PreparedStatement statement);
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/WriteMutation.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/WriteMutation.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/WriteMutation.java
new file mode 100644
index 0000000..3c74378
--- /dev/null
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/WriteMutation.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.cache.store.cassandra.session.transaction;
+
+import javax.cache.Cache;
+
+import com.datastax.driver.core.BoundStatement;
+import com.datastax.driver.core.PreparedStatement;
+
+import org.apache.ignite.cache.store.cassandra.persistence.PersistenceController;
+
+/**
+ * Mutation which writes(inserts) object into Cassandra.
+ */
+public class WriteMutation extends BaseMutation {
+ /** Ignite cache entry to be inserted into Cassandra. */
+ private final Cache.Entry entry;
+
+ /**
+ * Creates instance of delete mutation operation.
+ *
+ * @param entry Ignite cache entry to be inserted into Cassandra.
+ * @param table Cassandra table which should be used for the mutation.
+ * @param ctrl Persistence controller to use.
+ */
+ public WriteMutation(Cache.Entry entry, String table, PersistenceController ctrl) {
+ super(table, ctrl);
+ this.entry = entry;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean tableExistenceRequired() {
+ return true;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String getStatement() {
+ return controller().getWriteStatement(getTable());
+ }
+
+ /** {@inheritDoc} */
+ @Override public BoundStatement bindStatement(PreparedStatement statement) {
+ return controller().bindKeyValue(statement, entry.getKey(), entry.getValue());
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/package-info.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/package-info.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/package-info.java
new file mode 100644
index 0000000..7141845
--- /dev/null
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/package-info.java
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+
+/**
+ * Contains mutations implementation, to store changes made inside Ignite transaction
+ */
+package org.apache.ignite.cache.store.cassandra.session.transaction;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraDirectPersistenceTest.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraDirectPersistenceTest.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraDirectPersistenceTest.java
index 9974898..f9e9649 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraDirectPersistenceTest.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraDirectPersistenceTest.java
@@ -18,14 +18,21 @@
package org.apache.ignite.tests;
import java.util.Collection;
+import java.util.List;
import java.util.Map;
import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
+import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.tests.pojos.Person;
import org.apache.ignite.tests.pojos.PersonId;
+import org.apache.ignite.tests.pojos.Product;
+import org.apache.ignite.tests.pojos.ProductOrder;
import org.apache.ignite.tests.utils.CacheStoreHelper;
import org.apache.ignite.tests.utils.CassandraHelper;
+import org.apache.ignite.tests.utils.TestCacheSession;
+import org.apache.ignite.tests.utils.TestTransaction;
import org.apache.ignite.tests.utils.TestsHelper;
+import org.apache.ignite.transactions.Transaction;
import org.apache.log4j.Logger;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -113,31 +120,31 @@ public class CassandraDirectPersistenceTest {
LOGGER.info("Running PRIMITIVE strategy write tests");
- LOGGER.info("Running single operation write tests");
+ LOGGER.info("Running single write operation tests");
store1.write(longEntries.iterator().next());
store2.write(strEntries.iterator().next());
- LOGGER.info("Single operation write tests passed");
+ LOGGER.info("Single write operation tests passed");
- LOGGER.info("Running bulk operation write tests");
+ LOGGER.info("Running bulk write operation tests");
store1.writeAll(longEntries);
store2.writeAll(strEntries);
- LOGGER.info("Bulk operation write tests passed");
+ LOGGER.info("Bulk write operation tests passed");
LOGGER.info("PRIMITIVE strategy write tests passed");
LOGGER.info("Running PRIMITIVE strategy read tests");
- LOGGER.info("Running single operation read tests");
+ LOGGER.info("Running single read operation tests");
LOGGER.info("Running real keys read tests");
Long longVal = (Long)store1.load(longEntries.iterator().next().getKey());
if (!longEntries.iterator().next().getValue().equals(longVal))
- throw new RuntimeException("Long values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Long values were incorrectly deserialized from Cassandra");
String strVal = (String)store2.load(strEntries.iterator().next().getKey());
if (!strEntries.iterator().next().getValue().equals(strVal))
- throw new RuntimeException("String values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("String values were incorrectly deserialized from Cassandra");
LOGGER.info("Running fake keys read tests");
@@ -149,31 +156,31 @@ public class CassandraDirectPersistenceTest {
if (strVal != null)
throw new RuntimeException("String value with fake key '-1' was found in Cassandra");
- LOGGER.info("Single operation read tests passed");
+ LOGGER.info("Single read operation tests passed");
- LOGGER.info("Running bulk operation read tests");
+ LOGGER.info("Running bulk read operation tests");
LOGGER.info("Running real keys read tests");
Map longValues = store1.loadAll(TestsHelper.getKeys(longEntries));
if (!TestsHelper.checkCollectionsEqual(longValues, longEntries))
- throw new RuntimeException("Long values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Long values were incorrectly deserialized from Cassandra");
Map strValues = store2.loadAll(TestsHelper.getKeys(strEntries));
if (!TestsHelper.checkCollectionsEqual(strValues, strEntries))
- throw new RuntimeException("String values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("String values were incorrectly deserialized from Cassandra");
LOGGER.info("Running fake keys read tests");
longValues = store1.loadAll(fakeLongKeys);
if (!TestsHelper.checkCollectionsEqual(longValues, longEntries))
- throw new RuntimeException("Long values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Long values were incorrectly deserialized from Cassandra");
strValues = store2.loadAll(fakeStrKeys);
if (!TestsHelper.checkCollectionsEqual(strValues, strEntries))
- throw new RuntimeException("String values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("String values were incorrectly deserialized from Cassandra");
- LOGGER.info("Bulk operation read tests passed");
+ LOGGER.info("Bulk read operation tests passed");
LOGGER.info("PRIMITIVE strategy read tests passed");
@@ -219,53 +226,53 @@ public class CassandraDirectPersistenceTest {
LOGGER.info("Running BLOB strategy write tests");
- LOGGER.info("Running single operation write tests");
+ LOGGER.info("Running single write operation tests");
store1.write(longEntries.iterator().next());
store2.write(personEntries.iterator().next());
store3.write(personEntries.iterator().next());
- LOGGER.info("Single operation write tests passed");
+ LOGGER.info("Single write operation tests passed");
- LOGGER.info("Running bulk operation write tests");
+ LOGGER.info("Running bulk write operation tests");
store1.writeAll(longEntries);
store2.writeAll(personEntries);
store3.writeAll(personEntries);
- LOGGER.info("Bulk operation write tests passed");
+ LOGGER.info("Bulk write operation tests passed");
LOGGER.info("BLOB strategy write tests passed");
LOGGER.info("Running BLOB strategy read tests");
- LOGGER.info("Running single operation read tests");
+ LOGGER.info("Running single read operation tests");
Long longVal = (Long)store1.load(longEntries.iterator().next().getKey());
if (!longEntries.iterator().next().getValue().equals(longVal))
- throw new RuntimeException("Long values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Long values were incorrectly deserialized from Cassandra");
Person personVal = (Person)store2.load(personEntries.iterator().next().getKey());
if (!personEntries.iterator().next().getValue().equals(personVal))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
personVal = (Person)store3.load(personEntries.iterator().next().getKey());
if (!personEntries.iterator().next().getValue().equals(personVal))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
- LOGGER.info("Single operation read tests passed");
+ LOGGER.info("Single read operation tests passed");
- LOGGER.info("Running bulk operation read tests");
+ LOGGER.info("Running bulk read operation tests");
Map longValues = store1.loadAll(TestsHelper.getKeys(longEntries));
if (!TestsHelper.checkCollectionsEqual(longValues, longEntries))
- throw new RuntimeException("Long values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Long values were incorrectly deserialized from Cassandra");
Map personValues = store2.loadAll(TestsHelper.getKeys(personEntries));
if (!TestsHelper.checkPersonCollectionsEqual(personValues, personEntries, false))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
personValues = store3.loadAll(TestsHelper.getKeys(personEntries));
if (!TestsHelper.checkPersonCollectionsEqual(personValues, personEntries, false))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
- LOGGER.info("Bulk operation read tests passed");
+ LOGGER.info("Bulk read operation tests passed");
LOGGER.info("BLOB strategy read tests passed");
@@ -303,69 +310,99 @@ public class CassandraDirectPersistenceTest {
new ClassPathResource("org/apache/ignite/tests/persistence/pojo/persistence-settings-4.xml"),
CassandraHelper.getAdminDataSrc());
+ CacheStore productStore = CacheStoreHelper.createCacheStore("product",
+ new ClassPathResource("org/apache/ignite/tests/persistence/pojo/product.xml"),
+ CassandraHelper.getAdminDataSrc());
+
+ CacheStore orderStore = CacheStoreHelper.createCacheStore("order",
+ new ClassPathResource("org/apache/ignite/tests/persistence/pojo/order.xml"),
+ CassandraHelper.getAdminDataSrc());
+
Collection<CacheEntryImpl<Long, Person>> entries1 = TestsHelper.generateLongsPersonsEntries();
Collection<CacheEntryImpl<PersonId, Person>> entries2 = TestsHelper.generatePersonIdsPersonsEntries();
Collection<CacheEntryImpl<PersonId, Person>> entries3 = TestsHelper.generatePersonIdsPersonsEntries();
+ Collection<CacheEntryImpl<Long, Product>> productEntries = TestsHelper.generateProductEntries();
+ Collection<CacheEntryImpl<Long, ProductOrder>> orderEntries = TestsHelper.generateOrderEntries();
LOGGER.info("Running POJO strategy write tests");
- LOGGER.info("Running single operation write tests");
+ LOGGER.info("Running single write operation tests");
store1.write(entries1.iterator().next());
store2.write(entries2.iterator().next());
store3.write(entries3.iterator().next());
store4.write(entries3.iterator().next());
- LOGGER.info("Single operation write tests passed");
+ productStore.write(productEntries.iterator().next());
+ orderStore.write(orderEntries.iterator().next());
+ LOGGER.info("Single write operation tests passed");
- LOGGER.info("Running bulk operation write tests");
+ LOGGER.info("Running bulk write operation tests");
store1.writeAll(entries1);
store2.writeAll(entries2);
store3.writeAll(entries3);
store4.writeAll(entries3);
- LOGGER.info("Bulk operation write tests passed");
+ productStore.writeAll(productEntries);
+ orderStore.writeAll(orderEntries);
+ LOGGER.info("Bulk write operation tests passed");
LOGGER.info("POJO strategy write tests passed");
LOGGER.info("Running POJO strategy read tests");
- LOGGER.info("Running single operation read tests");
+ LOGGER.info("Running single read operation tests");
Person person = (Person)store1.load(entries1.iterator().next().getKey());
if (!entries1.iterator().next().getValue().equalsPrimitiveFields(person))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
person = (Person)store2.load(entries2.iterator().next().getKey());
if (!entries2.iterator().next().getValue().equalsPrimitiveFields(person))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
person = (Person)store3.load(entries3.iterator().next().getKey());
if (!entries3.iterator().next().getValue().equals(person))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
person = (Person)store4.load(entries3.iterator().next().getKey());
if (!entries3.iterator().next().getValue().equals(person))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
- LOGGER.info("Single operation read tests passed");
+ Product product = (Product)productStore.load(productEntries.iterator().next().getKey());
+ if (!productEntries.iterator().next().getValue().equals(product))
+ throw new RuntimeException("Product values were incorrectly deserialized from Cassandra");
- LOGGER.info("Running bulk operation read tests");
+ ProductOrder order = (ProductOrder)orderStore.load(orderEntries.iterator().next().getKey());
+ if (!orderEntries.iterator().next().getValue().equals(order))
+ throw new RuntimeException("Order values were incorrectly deserialized from Cassandra");
+
+ LOGGER.info("Single read operation tests passed");
+
+ LOGGER.info("Running bulk read operation tests");
Map persons = store1.loadAll(TestsHelper.getKeys(entries1));
if (!TestsHelper.checkPersonCollectionsEqual(persons, entries1, true))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
persons = store2.loadAll(TestsHelper.getKeys(entries2));
if (!TestsHelper.checkPersonCollectionsEqual(persons, entries2, true))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
persons = store3.loadAll(TestsHelper.getKeys(entries3));
if (!TestsHelper.checkPersonCollectionsEqual(persons, entries3, false))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
persons = store4.loadAll(TestsHelper.getKeys(entries3));
if (!TestsHelper.checkPersonCollectionsEqual(persons, entries3, false))
- throw new RuntimeException("Person values was incorrectly deserialized from Cassandra");
+ throw new RuntimeException("Person values were incorrectly deserialized from Cassandra");
+
+ Map products = productStore.loadAll(TestsHelper.getKeys(productEntries));
+ if (!TestsHelper.checkProductCollectionsEqual(products, productEntries))
+ throw new RuntimeException("Product values were incorrectly deserialized from Cassandra");
+
+ Map orders = orderStore.loadAll(TestsHelper.getKeys(orderEntries));
+ if (!TestsHelper.checkOrderCollectionsEqual(orders, orderEntries))
+ throw new RuntimeException("Order values were incorrectly deserialized from Cassandra");
- LOGGER.info("Bulk operation read tests passed");
+ LOGGER.info("Bulk read operation tests passed");
LOGGER.info("POJO strategy read tests passed");
@@ -383,6 +420,277 @@ public class CassandraDirectPersistenceTest {
store4.delete(entries3.iterator().next().getKey());
store4.deleteAll(TestsHelper.getKeys(entries3));
+ productStore.delete(productEntries.iterator().next().getKey());
+ productStore.deleteAll(TestsHelper.getKeys(productEntries));
+
+ orderStore.delete(orderEntries.iterator().next().getKey());
+ orderStore.deleteAll(TestsHelper.getKeys(orderEntries));
+
LOGGER.info("POJO strategy delete tests passed");
}
+
+ /** */
+ @Test
+ @SuppressWarnings("unchecked")
+ public void pojoStrategyTransactionTest() {
+ Map<Object, Object> sessionProps = U.newHashMap(1);
+ Transaction sessionTx = new TestTransaction();
+
+ CacheStore productStore = CacheStoreHelper.createCacheStore("product",
+ new ClassPathResource("org/apache/ignite/tests/persistence/pojo/product.xml"),
+ CassandraHelper.getAdminDataSrc(), new TestCacheSession("product", sessionTx, sessionProps));
+
+ CacheStore orderStore = CacheStoreHelper.createCacheStore("order",
+ new ClassPathResource("org/apache/ignite/tests/persistence/pojo/order.xml"),
+ CassandraHelper.getAdminDataSrc(), new TestCacheSession("order", sessionTx, sessionProps));
+
+ List<CacheEntryImpl<Long, Product>> productEntries = TestsHelper.generateProductEntries();
+ Map<Long, List<CacheEntryImpl<Long, ProductOrder>>> ordersPerProduct =
+ TestsHelper.generateOrdersPerProductEntries(productEntries, 2);
+
+ Collection<Long> productIds = TestsHelper.getProductIds(productEntries);
+ Collection<Long> orderIds = TestsHelper.getOrderIds(ordersPerProduct);
+
+ LOGGER.info("Running POJO strategy transaction write tests");
+
+ LOGGER.info("Running single write operation tests");
+
+ CassandraHelper.dropTestKeyspaces();
+
+ Product product = productEntries.iterator().next().getValue();
+ ProductOrder order = ordersPerProduct.get(product.getId()).iterator().next().getValue();
+
+ productStore.write(productEntries.iterator().next());
+ orderStore.write(ordersPerProduct.get(product.getId()).iterator().next());
+
+ if (productStore.load(product.getId()) != null || orderStore.load(order.getId()) != null) {
+ throw new RuntimeException("Single write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+
+ Map<Long, Product> products = (Map<Long, Product>)productStore.loadAll(productIds);
+ Map<Long, ProductOrder> orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if ((products != null && !products.isEmpty()) || (orders != null && !orders.isEmpty())) {
+ throw new RuntimeException("Single write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+
+ //noinspection deprecation
+ orderStore.sessionEnd(true);
+ //noinspection deprecation
+ productStore.sessionEnd(true);
+
+ Product product1 = (Product)productStore.load(product.getId());
+ ProductOrder order1 = (ProductOrder)orderStore.load(order.getId());
+
+ if (product1 == null || order1 == null) {
+ throw new RuntimeException("Single write operation test failed. Transaction was committed, but " +
+ "no objects were persisted into Cassandra");
+ }
+
+ if (!product.equals(product1) || !order.equals(order1)) {
+ throw new RuntimeException("Single write operation test failed. Transaction was committed, but " +
+ "objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if (products == null || products.isEmpty() || orders == null || orders.isEmpty()) {
+ throw new RuntimeException("Single write operation test failed. Transaction was committed, but " +
+ "no objects were persisted into Cassandra");
+ }
+
+ if (products.size() > 1 || orders.size() > 1) {
+ throw new RuntimeException("Single write operation test failed. There were committed more objects " +
+ "into Cassandra than expected");
+ }
+
+ product1 = products.entrySet().iterator().next().getValue();
+ order1 = orders.entrySet().iterator().next().getValue();
+
+ if (!product.equals(product1) || !order.equals(order1)) {
+ throw new RuntimeException("Single write operation test failed. Transaction was committed, but " +
+ "objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+
+ LOGGER.info("Single write operation tests passed");
+
+ LOGGER.info("Running bulk write operation tests");
+
+ CassandraHelper.dropTestKeyspaces();
+ sessionProps.clear();
+
+ productStore.writeAll(productEntries);
+
+ for (Long productId : ordersPerProduct.keySet())
+ orderStore.writeAll(ordersPerProduct.get(productId));
+
+ for (Long productId : productIds) {
+ if (productStore.load(productId) != null) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+ }
+
+ for (Long orderId : orderIds) {
+ if (orderStore.load(orderId) != null) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+ }
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if ((products != null && !products.isEmpty()) || (orders != null && !orders.isEmpty())) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+
+ //noinspection deprecation
+ productStore.sessionEnd(true);
+ //noinspection deprecation
+ orderStore.sessionEnd(true);
+
+ for (CacheEntryImpl<Long, Product> entry : productEntries) {
+ product = (Product)productStore.load(entry.getKey());
+
+ if (!entry.getValue().equals(product)) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "not all objects were persisted into Cassandra");
+ }
+ }
+
+ for (Long productId : ordersPerProduct.keySet()) {
+ for (CacheEntryImpl<Long, ProductOrder> entry : ordersPerProduct.get(productId)) {
+ order = (ProductOrder)orderStore.load(entry.getKey());
+
+ if (!entry.getValue().equals(order)) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "not all objects were persisted into Cassandra");
+ }
+ }
+ }
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if (products == null || products.isEmpty() || orders == null || orders.isEmpty()) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "no objects were persisted into Cassandra");
+ }
+
+ if (products.size() < productIds.size() || orders.size() < orderIds.size()) {
+ throw new RuntimeException("Bulk write operation test failed. There were committed less objects " +
+ "into Cassandra than expected");
+ }
+
+ if (products.size() > productIds.size() || orders.size() > orderIds.size()) {
+ throw new RuntimeException("Bulk write operation test failed. There were committed more objects " +
+ "into Cassandra than expected");
+ }
+
+ for (CacheEntryImpl<Long, Product> entry : productEntries) {
+ product = products.get(entry.getKey());
+
+ if (!entry.getValue().equals(product)) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "some objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+ }
+
+ for (Long productId : ordersPerProduct.keySet()) {
+ for (CacheEntryImpl<Long, ProductOrder> entry : ordersPerProduct.get(productId)) {
+ order = orders.get(entry.getKey());
+
+ if (!entry.getValue().equals(order)) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "some objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+ }
+ }
+
+ LOGGER.info("Bulk write operation tests passed");
+
+ LOGGER.info("POJO strategy transaction write tests passed");
+
+ LOGGER.info("Running POJO strategy transaction delete tests");
+
+ LOGGER.info("Running single delete tests");
+
+ sessionProps.clear();
+
+ Product deletedProduct = productEntries.remove(0).getValue();
+ ProductOrder deletedOrder = ordersPerProduct.get(deletedProduct.getId()).remove(0).getValue();
+
+ productStore.delete(deletedProduct.getId());
+ orderStore.delete(deletedOrder.getId());
+
+ if (productStore.load(deletedProduct.getId()) == null || orderStore.load(deletedOrder.getId()) == null) {
+ throw new RuntimeException("Single delete operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already deleted from Cassandra");
+ }
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if (products.size() != productIds.size() || orders.size() != orderIds.size()) {
+ throw new RuntimeException("Single delete operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already deleted from Cassandra");
+ }
+
+ //noinspection deprecation
+ productStore.sessionEnd(true);
+ //noinspection deprecation
+ orderStore.sessionEnd(true);
+
+ if (productStore.load(deletedProduct.getId()) != null || orderStore.load(deletedOrder.getId()) != null) {
+ throw new RuntimeException("Single delete operation test failed. Transaction was committed, but " +
+ "objects were not deleted from Cassandra");
+ }
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if (products.get(deletedProduct.getId()) != null || orders.get(deletedOrder.getId()) != null) {
+ throw new RuntimeException("Single delete operation test failed. Transaction was committed, but " +
+ "objects were not deleted from Cassandra");
+ }
+
+ LOGGER.info("Single delete tests passed");
+
+ LOGGER.info("Running bulk delete tests");
+
+ sessionProps.clear();
+
+ productStore.deleteAll(productIds);
+ orderStore.deleteAll(orderIds);
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if (products == null || products.isEmpty() || orders == null || orders.isEmpty()) {
+ throw new RuntimeException("Bulk delete operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already deleted from Cassandra");
+ }
+
+ //noinspection deprecation
+ orderStore.sessionEnd(true);
+ //noinspection deprecation
+ productStore.sessionEnd(true);
+
+ products = (Map<Long, Product>)productStore.loadAll(productIds);
+ orders = (Map<Long, ProductOrder>)orderStore.loadAll(orderIds);
+
+ if ((products != null && !products.isEmpty()) || (orders != null && !orders.isEmpty())) {
+ throw new RuntimeException("Bulk delete operation test failed. Transaction was committed, but " +
+ "objects were not deleted from Cassandra");
+ }
+
+ LOGGER.info("Bulk delete tests passed");
+
+ LOGGER.info("POJO strategy transaction delete tests passed");
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
new file mode 100644
index 0000000..fc54e5b
--- /dev/null
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
@@ -0,0 +1,58 @@
+/*
+ * 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.tests;
+
+import org.apache.ignite.tests.utils.CassandraHelper;
+import org.apache.log4j.Logger;
+
+/**
+ * Simple helper class to run Cassandra on localhost
+ */
+public class CassandraLocalServer {
+ /** */
+ private static final Logger LOGGER = Logger.getLogger(CassandraLocalServer.class.getName());
+
+ /** */
+ public static void main(String[] args) {
+ try {
+ CassandraHelper.startEmbeddedCassandra(LOGGER);
+ }
+ catch (Throwable e) {
+ throw new RuntimeException("Failed to start embedded Cassandra instance", e);
+ }
+
+ LOGGER.info("Testing admin connection to Cassandra");
+ CassandraHelper.testAdminConnection();
+
+ LOGGER.info("Testing regular connection to Cassandra");
+ CassandraHelper.testRegularConnection();
+
+ LOGGER.info("Dropping all artifacts from previous tests execution session");
+ CassandraHelper.dropTestKeyspaces();
+
+ while (true) {
+ try {
+ System.out.println("Cassandra server running");
+ Thread.sleep(10000);
+ }
+ catch (Throwable e) {
+ throw new RuntimeException("Cassandra server terminated", e);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
index 43b6d3c..6465580 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
@@ -25,33 +25,30 @@ import org.junit.Test;
* DDLGenerator test.
*/
public class DDLGeneratorTest {
- private static final String URL1 = "org/apache/ignite/tests/persistence/primitive/persistence-settings-1.xml";
- private static final String URL2 = "org/apache/ignite/tests/persistence/pojo/persistence-settings-3.xml";
- private static final String URL3 = "org/apache/ignite/tests/persistence/pojo/persistence-settings-4.xml";
+ private static final String[] RESOURCES = new String[] {
+ "org/apache/ignite/tests/persistence/primitive/persistence-settings-1.xml",
+ "org/apache/ignite/tests/persistence/pojo/persistence-settings-3.xml",
+ "org/apache/ignite/tests/persistence/pojo/persistence-settings-4.xml",
+ "org/apache/ignite/tests/persistence/pojo/product.xml",
+ "org/apache/ignite/tests/persistence/pojo/order.xml"
+ };
@Test
@SuppressWarnings("unchecked")
/** */
public void generatorTest() {
- ClassLoader clsLdr = DDLGeneratorTest.class.getClassLoader();
-
- URL url1 = clsLdr.getResource(URL1);
- if (url1 == null)
- throw new IllegalStateException("Failed to find resource: " + URL1);
+ String[] files = new String[RESOURCES.length];
- URL url2 = clsLdr.getResource(URL2);
- if (url2 == null)
- throw new IllegalStateException("Failed to find resource: " + URL2);
+ ClassLoader clsLdr = DDLGeneratorTest.class.getClassLoader();
- URL url3 = clsLdr.getResource(URL3);
- if (url3 == null)
- throw new IllegalStateException("Failed to find resource: " + URL3);
+ for (int i = 0; i < RESOURCES.length; i++) {
+ URL url = clsLdr.getResource(RESOURCES[i]);
+ if (url == null)
+ throw new IllegalStateException("Failed to find resource: " + RESOURCES[i]);
- String file1 = url1.getFile();
- String file2 = url2.getFile();
- String file3 = url3.getFile();
+ files[i] = url.getFile();
+ }
- DDLGenerator.main(new String[]{file1, file2, file3});
+ DDLGenerator.main(files);
}
-
}
[44/50] [abbrv] ignite git commit: added toString()
Posted by sh...@apache.org.
added toString()
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3d9f8926
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3d9f8926
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3d9f8926
Branch: refs/heads/ignite-2788
Commit: 3d9f892613d7d0b5474ad0916968872d47ca87c1
Parents: f600750
Author: yzhdanov <yz...@apache.org>
Authored: Mon Oct 10 20:09:46 2016 +0300
Committer: yzhdanov <yz...@apache.org>
Committed: Mon Oct 10 20:09:46 2016 +0300
----------------------------------------------------------------------
.../cache/version/GridCacheLazyPlainVersionedEntry.java | 6 ++++++
.../processors/cache/version/GridCachePlainVersionedEntry.java | 5 ++++-
2 files changed, 10 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3d9f8926/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheLazyPlainVersionedEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheLazyPlainVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheLazyPlainVersionedEntry.java
index 50de328..dae50bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheLazyPlainVersionedEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheLazyPlainVersionedEntry.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache.version;
import org.apache.ignite.internal.processors.cache.CacheObject;
import org.apache.ignite.internal.processors.cache.GridCacheContext;
import org.apache.ignite.internal.processors.cache.KeyCacheObject;
+import org.apache.ignite.internal.util.typedef.internal.S;
/**
* Lazy plain versioned entry.
@@ -104,4 +105,9 @@ public class GridCacheLazyPlainVersionedEntry<K, V> extends GridCachePlainVersio
return val;
}
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(GridCacheLazyPlainVersionedEntry.class, this,
+ "super", super.toString(), "key", key(), "val", value());
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3d9f8926/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java
index dd682e9..c175e5a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCachePlainVersionedEntry.java
@@ -17,6 +17,7 @@
package org.apache.ignite.internal.processors.cache.version;
+import org.apache.ignite.internal.util.tostring.GridToStringInclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.jetbrains.annotations.Nullable;
@@ -25,9 +26,11 @@ import org.jetbrains.annotations.Nullable;
*/
public class GridCachePlainVersionedEntry<K, V> implements GridCacheVersionedEntryEx<K, V> {
/** Key. */
+ @GridToStringInclude
protected K key;
/** Value. */
+ @GridToStringInclude
protected V val;
/** TTL. */
@@ -125,4 +128,4 @@ public class GridCachePlainVersionedEntry<K, V> implements GridCacheVersionedEnt
@Override public String toString() {
return S.toString(GridCachePlainVersionedEntry.class, this);
}
-}
\ No newline at end of file
+}
[02/50] [abbrv] ignite git commit: Fixed incorrect test count
calculation leading to afterTestsStopped() not being called.
Posted by sh...@apache.org.
Fixed incorrect test count calculation leading to afterTestsStopped() not being called.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/78144c4c
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/78144c4c
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/78144c4c
Branch: refs/heads/ignite-2788
Commit: 78144c4c9d6200ceef8b666a186039685f053381
Parents: 33d3494
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Sep 28 16:52:13 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Sep 28 16:52:13 2016 +0300
----------------------------------------------------------------------
.../ignite/testframework/IgniteTestSuite.java | 79 +++++++++++++++++---
.../testframework/junits/GridAbstractTest.java | 31 +++++++-
2 files changed, 94 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/78144c4c/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
index 7db9664..1cf69ae 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/IgniteTestSuite.java
@@ -29,6 +29,7 @@ import org.junit.internal.MethodSorter;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
+import java.util.LinkedList;
import java.util.List;
/**
@@ -134,7 +135,9 @@ public class IgniteTestSuite extends TestSuite {
Class superCls = theClass;
int testAdded = 0;
- int testIgnored = 0;
+ int testSkipped = 0;
+
+ LinkedList<Test> addedTests = new LinkedList<>();
for(List<String> names = new ArrayList<>(); Test.class.isAssignableFrom(superCls);
superCls = superCls.getSuperclass()) {
@@ -142,15 +145,29 @@ public class IgniteTestSuite extends TestSuite {
Method[] methods = MethodSorter.getDeclaredMethods(superCls);
for (Method each : methods) {
- if (addTestMethod(each, names, theClass, clsIgnore))
+ AddResult res = addTestMethod(each, names, theClass, clsIgnore);
+
+ if (res.added()) {
testAdded++;
+
+ addedTests.add(res.test());
+ }
else
- testIgnored++;
+ testSkipped++;
}
}
- if(testAdded == 0 && testIgnored == 0)
+ if(testAdded == 0 && testSkipped == 0)
addTest(warning("No tests found in " + theClass.getName()));
+
+ // Populate tests count.
+ for (Test test : addedTests) {
+ if (test instanceof GridAbstractTest) {
+ GridAbstractTest test0 = (GridAbstractTest)test;
+
+ test0.forceTestCount(addedTests.size());
+ }
+ }
}
}
@@ -161,20 +178,20 @@ public class IgniteTestSuite extends TestSuite {
* @param names Test name list.
* @param theClass Test class.
* @param clsIgnore Class ignore descriptor (if any).
- * @return Whether test method was added.
+ * @return Result.
*/
- private boolean addTestMethod(Method m, List<String> names, Class<?> theClass,
+ private AddResult addTestMethod(Method m, List<String> names, Class<?> theClass,
@Nullable IgnoreDescriptor clsIgnore) {
String name = m.getName();
if (names.contains(name))
- return false;
+ return new AddResult(false, null);
if (!isPublicTestMethod(m)) {
if (isTestMethod(m))
addTest(warning("Test method isn't public: " + m.getName() + "(" + theClass.getCanonicalName() + ")"));
- return false;
+ return new AddResult(false, null);
}
names.add(name);
@@ -197,18 +214,20 @@ public class IgniteTestSuite extends TestSuite {
addTest(test);
- return true;
+ return new AddResult(true, test);
}
}
else {
if (ignore == null) {
- addTest(createTest(theClass, name));
+ Test test = createTest(theClass, name);
+
+ addTest(test);
- return true;
+ return new AddResult(true, test);
}
}
- return false;
+ return new AddResult(false, null);
}
/**
@@ -337,6 +356,42 @@ public class IgniteTestSuite extends TestSuite {
}
/**
+ * Test add result.
+ */
+ private static class AddResult {
+ /** Result. */
+ private final boolean added;
+
+ /** Test */
+ private final Test test;
+
+ /**
+ * Constructor.
+ *
+ * @param added Result.
+ * @param test Test.
+ */
+ public AddResult(boolean added, Test test) {
+ this.added = added;
+ this.test = test;
+ }
+
+ /**
+ * @return Result.
+ */
+ public boolean added() {
+ return added;
+ }
+
+ /**
+ * @return Test.
+ */
+ public Test test() {
+ return test;
+ }
+ }
+
+ /**
* Test case simulating failure.
*/
private static class ForcedFailure extends TestCase {
http://git-wip-us.apache.org/repos/asf/ignite/blob/78144c4c/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 8d6fd07..aa90af0 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -161,6 +161,12 @@ public abstract class GridAbstractTest extends TestCase {
/** Force failure message. */
private String forceFailureMsg;
+ /** Whether test count is known is advance. */
+ private boolean forceTestCnt;
+
+ /** Number of tests. */
+ private int testCnt;
+
/**
*
*/
@@ -1770,6 +1776,15 @@ public abstract class GridAbstractTest extends TestCase {
}
/**
+ * Set test count.
+ */
+ public void forceTestCount(int cnt) {
+ testCnt = cnt;
+
+ forceTestCnt = true;
+ }
+
+ /**
* @throws Throwable If failed.
*/
@SuppressWarnings({"ProhibitedExceptionDeclared"})
@@ -2076,11 +2091,19 @@ public abstract class GridAbstractTest extends TestCase {
*/
public int getNumberOfTests() {
if (numOfTests == -1) {
- int cnt = 0;
+ GridAbstractTest this0 = GridAbstractTest.this;
+
+ int cnt;
- for (Method m : GridAbstractTest.this.getClass().getMethods())
- if (m.getName().startsWith("test") && Modifier.isPublic(m.getModifiers()))
- cnt++;
+ if (this0.forceTestCnt)
+ cnt = this0.testCnt;
+ else {
+ cnt = 0;
+
+ for (Method m : this0.getClass().getMethods())
+ if (m.getName().startsWith("test") && Modifier.isPublic(m.getModifiers()))
+ cnt++;
+ }
numOfTests = cnt;
}
[36/50] [abbrv] ignite git commit: Merge ignite-1.7.3 to master.
Posted by sh...@apache.org.
Merge ignite-1.7.3 to master.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a01927a9
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a01927a9
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a01927a9
Branch: refs/heads/ignite-2788
Commit: a01927a91ba7bf0544e1afa61459b452e4c785d8
Parents: 04f72c1 bfdb5c3
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Tue Oct 4 16:50:36 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Tue Oct 4 16:50:36 2016 +0700
----------------------------------------------------------------------
.../Apache.Ignite.Core.Tests.NuGet.csproj | 10 +
.../Log4NetTest.cs | 87 +++++++++
.../packages.config | 2 +
.../Apache.Ignite.Core.Tests.csproj | 9 +
.../Log/Log4NetLoggerTest.cs | 188 +++++++++++++++++++
.../Apache.Ignite.Core.Tests/packages.config | 4 +-
.../Apache.Ignite.Log4Net.csproj | 76 ++++++++
.../Apache.Ignite.Log4Net.nuspec | 50 +++++
.../Apache.Ignite.Log4Net.snk | Bin 0 -> 596 bytes
.../IgniteLog4NetLogger.cs | 123 ++++++++++++
.../Properties/AssemblyInfo.cs | 40 ++++
.../Apache.Ignite.Log4Net/packages.config | 20 ++
.../Properties/AssemblyInfo.cs | 2 +-
modules/platforms/dotnet/Apache.Ignite.sln | 14 ++
.../frontend/controllers/caches-controller.js | 14 ++
15 files changed, 637 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a01927a9/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a01927a9/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index c1c4953,008229a..840d970
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@@ -55,22 -59,10 +59,23 @@@
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.XML" />
+ <Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="Binary\BinaryReaderWriterTest.cs" />
+ <Compile Include="Binary\IO\BinaryStreamsTest.cs" />
+ <Compile Include="Binary\JavaTypeMappingTest.cs" />
+ <Compile Include="Binary\TypeResolverTest.cs" />
+ <Compile Include="Cache\Affinity\AffinityKeyTest.cs" />
+ <Compile Include="Cache\Affinity\AffinityTopologyVersionTest.cs" />
+ <Compile Include="Cache\CacheResultTest.cs" />
+ <Compile Include="Cache\Store\CacheStoreAdapterTest.cs" />
+ <Compile Include="Collections\MultiValueDictionaryTest.cs" />
+ <Compile Include="Collections\ReadOnlyCollectionTest.cs" />
+ <Compile Include="Collections\ReadOnlyDictionaryTest.cs" />
+ <Compile Include="Common\IgniteGuidTest.cs" />
<Compile Include="Log\DefaultLoggerTest.cs" />
+ <Compile Include="Log\Log4NetLoggerTest.cs" />
<Compile Include="Log\NLogLoggerTest.cs" />
<Compile Include="TestAppConfig.cs" />
<Compile Include="Binary\BinaryBuilderSelfTestFullFooter.cs" />
http://git-wip-us.apache.org/repos/asf/ignite/blob/a01927a9/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
index c1198cb,d369a35..ccf079c
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
@@@ -19,4 -19,6 +19,6 @@@
<packages>
<package id="NUnit.Runners" version="2.6.3" targetFramework="net40" />
- </packages>
+ <package id="log4net" version="2.0.5" targetFramework="net40" />
+ <package id="NLog" version="4.3.7" targetFramework="net40" />
-</packages>
++</packages>
http://git-wip-us.apache.org/repos/asf/ignite/blob/a01927a9/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
[42/50] [abbrv] ignite git commit: Fixed javadoc
Posted by sh...@apache.org.
Fixed javadoc
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3e4042b6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3e4042b6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3e4042b6
Branch: refs/heads/ignite-2788
Commit: 3e4042b6d49b7000ec5c6a919d50b2c076ec193d
Parents: c478d03
Author: yzhdanov <yz...@apache.org>
Authored: Fri Oct 7 12:33:54 2016 +0300
Committer: yzhdanov <yz...@apache.org>
Committed: Fri Oct 7 12:33:54 2016 +0300
----------------------------------------------------------------------
.../java/org/apache/ignite/IgniteServices.java | 48 ++++++++++----------
.../ignite/internal/IgniteServicesImpl.java | 4 +-
2 files changed, 26 insertions(+), 26 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3e4042b6/modules/core/src/main/java/org/apache/ignite/IgniteServices.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteServices.java b/modules/core/src/main/java/org/apache/ignite/IgniteServices.java
index 08577c5..5430e4d 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteServices.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteServices.java
@@ -62,9 +62,9 @@ import org.jetbrains.annotations.Nullable;
* you can also automatically deploy services on startup by specifying them in {@link IgniteConfiguration}
* like so:
* <pre name="code" class="java">
- * IgniteConfiguration gridCfg = new IgniteConfiguration();
+ * IgniteConfiguration cfg = new IgniteConfiguration();
*
- * GridServiceConfiguration svcCfg1 = new GridServiceConfiguration();
+ * ServiceConfiguration svcCfg1 = new ServiceConfiguration();
*
* // Cluster-wide singleton configuration.
* svcCfg1.setName("myClusterSingletonService");
@@ -72,16 +72,16 @@ import org.jetbrains.annotations.Nullable;
* svcCfg1.setTotalCount(1);
* svcCfg1.setService(new MyClusterSingletonService());
*
- * GridServiceConfiguration svcCfg2 = new GridServiceConfiguration();
+ * ServiceConfiguration svcCfg2 = new ServiceConfiguration();
*
* // Per-node singleton configuration.
* svcCfg2.setName("myNodeSingletonService");
* svcCfg2.setMaxPerNodeCount(1);
* svcCfg2.setService(new MyNodeSingletonService());
*
- * gridCfg.setServiceConfiguration(svcCfg1, svcCfg2);
+ * cfg.setServiceConfiguration(svcCfg1, svcCfg2);
* ...
- * Ignition.start(gridCfg);
+ * Ignition.start(cfg);
* </pre>
* <h1 class="header">Load Balancing</h1>
* In all cases, other than singleton service deployment, Ignite will automatically make sure that
@@ -106,18 +106,18 @@ import org.jetbrains.annotations.Nullable;
* Here is an example of how an distributed service may be implemented and deployed:
* <pre name="code" class="java">
* // Simple service implementation.
- * public class MyGridService implements GridService {
+ * public class MyIgniteService implements Service {
* ...
* // Example of ignite resource injection. All resources are optional.
* // You should inject resources only as needed.
* @IgniteInstanceResource
- * private Grid grid;
+ * private Ignite ignite;
* ...
- * @Override public void cancel(GridServiceContext ctx) {
+ * @Override public void cancel(ServiceContext ctx) {
* // No-op.
* }
*
- * @Override public void execute(GridServiceContext ctx) {
+ * @Override public void execute(ServiceContext ctx) {
* // Loop until service is cancelled.
* while (!ctx.isCancelled()) {
* // Do something.
@@ -126,16 +126,16 @@ import org.jetbrains.annotations.Nullable;
* }
* }
* ...
- * GridServices svcs = grid.services();
+ * IgniteServices svcs = ignite.services();
*
- * svcs.deployClusterSingleton("mySingleton", new MyGridService());
+ * svcs.deployClusterSingleton("mySingleton", new MyIgniteService());
* </pre>
*/
public interface IgniteServices extends IgniteAsyncSupport {
/**
- * Gets the cluster group to which this {@code GridServices} instance belongs.
+ * Gets the cluster group to which this {@code IgniteServices} instance belongs.
*
- * @return Cluster group to which this {@code GridServices} instance belongs.
+ * @return Cluster group to which this {@code IgniteServices} instance belongs.
*/
public ClusterGroup clusterGroup();
@@ -187,7 +187,7 @@ public interface IgniteServices extends IgniteAsyncSupport {
* This method is analogous to the invocation of {@link #deploy(org.apache.ignite.services.ServiceConfiguration)} method
* as follows:
* <pre name="code" class="java">
- * GridServiceConfiguration cfg = new GridServiceConfiguration();
+ * ServiceConfiguration cfg = new ServiceConfiguration();
*
* cfg.setName(name);
* cfg.setService(svc);
@@ -196,7 +196,7 @@ public interface IgniteServices extends IgniteAsyncSupport {
* cfg.setTotalCount(1);
* cfg.setMaxPerNodeCount(1);
*
- * grid.services().deploy(cfg);
+ * ignite.services().deploy(cfg);
* </pre>
*
* @param name Service name.
@@ -224,14 +224,14 @@ public interface IgniteServices extends IgniteAsyncSupport {
* This method is analogous to the invocation of {@link #deploy(org.apache.ignite.services.ServiceConfiguration)} method
* as follows:
* <pre name="code" class="java">
- * GridServiceConfiguration cfg = new GridServiceConfiguration();
+ * ServiceConfiguration cfg = new ServiceConfiguration();
*
* cfg.setName(name);
* cfg.setService(svc);
* cfg.setTotalCount(totalCnt);
* cfg.setMaxPerNodeCount(maxPerNodeCnt);
*
- * grid.services().deploy(cfg);
+ * ignite.services().deploy(cfg);
* </pre>
*
* @param name Service name.
@@ -266,14 +266,14 @@ public interface IgniteServices extends IgniteAsyncSupport {
* <p>
* Here is an example of creating service deployment configuration:
* <pre name="code" class="java">
- * GridServiceConfiguration cfg = new GridServiceConfiguration();
+ * ServiceConfiguration cfg = new ServiceConfiguration();
*
* cfg.setName(name);
* cfg.setService(svc);
* cfg.setTotalCount(0); // Unlimited.
* cfg.setMaxPerNodeCount(2); // Deploy 2 instances of service on each node.
*
- * grid.services().deploy(cfg);
+ * ignite.services().deploy(cfg);
* </pre>
*
* @param cfg Service configuration.
@@ -312,14 +312,14 @@ public interface IgniteServices extends IgniteAsyncSupport {
public void cancelAll() throws IgniteException;
/**
- * Gets metadata about all deployed services.
+ * Gets metadata about all deployed services in the grid.
*
- * @return Metadata about all deployed services.
+ * @return Metadata about all deployed services in the grid.
*/
public Collection<ServiceDescriptor> serviceDescriptors();
/**
- * Gets deployed service with specified name.
+ * Gets locally deployed service with specified name.
*
* @param name Service name.
* @param <T> Service type
@@ -328,7 +328,7 @@ public interface IgniteServices extends IgniteAsyncSupport {
public <T> T service(String name);
/**
- * Gets all deployed services with specified name.
+ * Gets all locally deployed services with specified name.
*
* @param name Service name.
* @param <T> Service type.
@@ -352,4 +352,4 @@ public interface IgniteServices extends IgniteAsyncSupport {
/** {@inheritDoc} */
@Override public IgniteServices withAsync();
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3e4042b6/modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
index b8042c3..c9d205b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteServicesImpl.java
@@ -36,7 +36,7 @@ import org.apache.ignite.services.ServiceDescriptor;
import org.jetbrains.annotations.Nullable;
/**
- * {@link org.apache.ignite.IgniteCompute} implementation.
+ * {@link org.apache.ignite.IgniteServices} implementation.
*/
public class IgniteServicesImpl extends AsyncSupportAdapter implements IgniteServices, Externalizable {
/** */
@@ -289,4 +289,4 @@ public class IgniteServicesImpl extends AsyncSupportAdapter implements IgniteSer
protected Object readResolve() throws ObjectStreamException {
return prj.services();
}
-}
\ No newline at end of file
+}
[06/50] [abbrv] ignite git commit: Fixed missing Apache header.
Posted by sh...@apache.org.
Fixed missing Apache header.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b280c3ef
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b280c3ef
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b280c3ef
Branch: refs/heads/ignite-2788
Commit: b280c3efa1eb84c6bc8abbe31ba669b0c24323d8
Parents: d1e3a78
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Sep 29 10:23:54 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Sep 29 10:23:54 2016 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryFieldOrderSelfTest.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b280c3ef/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
index 6bb1e13..e470948 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
@@ -1,3 +1,20 @@
+/*
+ * 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.binary;
import org.apache.ignite.binary.BinaryObject;
[32/50] [abbrv] ignite git commit: Merge remote-tracking branch
'remotes/community/ignite-1.7.3' into UPSTREAM_master
Posted by sh...@apache.org.
Merge remote-tracking branch 'remotes/community/ignite-1.7.3' into UPSTREAM_master
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/909f0466
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/909f0466
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/909f0466
Branch: refs/heads/ignite-2788
Commit: 909f0466e1c600063dd7b5b3e1b69a26e2243364
Parents: 2137740 48b293d
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 14:16:06 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 14:16:06 2016 +0300
----------------------------------------------------------------------
.../Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj | 4 ++++
modules/platforms/dotnet/Apache.Ignite.sln | 2 ++
2 files changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/909f0466/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index c1c4953,ef62498..d956972
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@@ -196,6 -184,6 +196,10 @@@
<Project>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</Project>
<Name>Apache.Ignite.NLog</Name>
</ProjectReference>
++ <ProjectReference Include="..\Apache.Ignite.NLog\Apache.Ignite.NLog.csproj">
++ <Project>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</Project>
++ <Name>Apache.Ignite.NLog</Name>
++ </ProjectReference>
<ProjectReference Include="..\Apache.Ignite\Apache.Ignite.csproj">
<Project>{27F7F3C6-BDDE-43A9-B565-856F8395A04B}</Project>
<Name>Apache.Ignite</Name>
http://git-wip-us.apache.org/repos/asf/ignite/blob/909f0466/modules/platforms/dotnet/Apache.Ignite.sln
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.sln
index 1f5163d,2978780..df25510
--- a/modules/platforms/dotnet/Apache.Ignite.sln
+++ b/modules/platforms/dotnet/Apache.Ignite.sln
@@@ -36,10 -36,10 +36,12 @@@ Project("{FAE04EC0-301F-11D3-BF4B-00C04
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet", "Apache.Ignite.AspNet\Apache.Ignite.AspNet.csproj", "{13EA96FC-CC83-4164-A7C0-4F30ED797460}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apache.Ignite.NLog\Apache.Ignite.NLog.csproj", "{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet.Tests", "Apache.Ignite.AspNet.Tests\Apache.Ignite.AspNet.Tests.csproj", "{18EA4C71-A11D-4AB1-8042-418F7559D84F}"
EndProject
+ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apache.Ignite.NLog\Apache.Ignite.NLog.csproj", "{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}"
+ EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
[15/50] [abbrv] ignite git commit: IGNITE-3609 Utilize Cassandra
logged batches for transactions. - Fixes #1111.
Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
index 8fdcf4c..d0a787a 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/IgnitePersistentStoreTest.java
@@ -18,19 +18,27 @@
package org.apache.ignite.tests;
import java.util.Collection;
+import java.util.Date;
import java.util.Map;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
+import org.apache.ignite.IgniteTransactions;
import org.apache.ignite.Ignition;
import org.apache.ignite.cache.CachePeekMode;
import org.apache.ignite.cache.store.CacheStore;
import org.apache.ignite.configuration.CacheConfiguration;
import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
+import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.tests.pojos.Person;
import org.apache.ignite.tests.pojos.PersonId;
+import org.apache.ignite.tests.pojos.Product;
+import org.apache.ignite.tests.pojos.ProductOrder;
import org.apache.ignite.tests.utils.CacheStoreHelper;
import org.apache.ignite.tests.utils.CassandraHelper;
import org.apache.ignite.tests.utils.TestsHelper;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
import org.apache.log4j.Logger;
import org.junit.AfterClass;
import org.junit.BeforeClass;
@@ -244,12 +252,19 @@ public class IgnitePersistentStoreTest {
Map<Long, Person> personMap1 = TestsHelper.generateLongsPersonsMap();
Map<PersonId, Person> personMap2 = TestsHelper.generatePersonIdsPersonsMap();
+ Map<Long, Product> productsMap = TestsHelper.generateProductsMap();
+ Map<Long, ProductOrder> ordersMap = TestsHelper.generateOrdersMap();
+
+ Product product = TestsHelper.generateRandomProduct(-1L);
+ ProductOrder order = TestsHelper.generateRandomOrder(-1L);
try (Ignite ignite = Ignition.start("org/apache/ignite/tests/persistence/pojo/ignite-config.xml")) {
IgniteCache<Long, Person> personCache1 = ignite.getOrCreateCache(new CacheConfiguration<Long, Person>("cache1"));
IgniteCache<PersonId, Person> personCache2 = ignite.getOrCreateCache(new CacheConfiguration<PersonId, Person>("cache2"));
IgniteCache<PersonId, Person> personCache3 = ignite.getOrCreateCache(new CacheConfiguration<PersonId, Person>("cache3"));
IgniteCache<PersonId, Person> personCache4 = ignite.getOrCreateCache(new CacheConfiguration<PersonId, Person>("cache4"));
+ IgniteCache<Long, Product> productCache = ignite.getOrCreateCache(new CacheConfiguration<Long, Product>("product"));
+ IgniteCache<Long, ProductOrder> orderCache = ignite.getOrCreateCache(new CacheConfiguration<Long, ProductOrder>("order"));
LOGGER.info("Running single operation write tests");
@@ -262,6 +277,9 @@ public class IgnitePersistentStoreTest {
personCache3.put(id, TestsHelper.generateRandomPerson(id.getPersonNumber()));
personCache4.put(id, TestsHelper.generateRandomPerson(id.getPersonNumber()));
+ productCache.put(product.getId(), product);
+ orderCache.put(order.getId(), order);
+
LOGGER.info("Single operation write tests passed");
LOGGER.info("Running bulk operation write tests");
@@ -269,6 +287,8 @@ public class IgnitePersistentStoreTest {
personCache2.putAll(personMap2);
personCache3.putAll(personMap2);
personCache4.putAll(personMap2);
+ productCache.putAll(productsMap);
+ orderCache.putAll(ordersMap);
LOGGER.info("Bulk operation write tests passed");
}
@@ -283,6 +303,8 @@ public class IgnitePersistentStoreTest {
IgniteCache<PersonId, Person> personCache2 = ignite.getOrCreateCache(new CacheConfiguration<PersonId, Person>("cache2"));
IgniteCache<PersonId, Person> personCache3 = ignite.getOrCreateCache(new CacheConfiguration<PersonId, Person>("cache3"));
IgniteCache<PersonId, Person> personCache4 = ignite.getOrCreateCache(new CacheConfiguration<PersonId, Person>("cache4"));
+ IgniteCache<Long, Product> productCache = ignite.getOrCreateCache(new CacheConfiguration<Long, Product>("product"));
+ IgniteCache<Long, ProductOrder> orderCache = ignite.getOrCreateCache(new CacheConfiguration<Long, ProductOrder>("order"));
LOGGER.info("Running single operation read tests");
Person person = personCache1.get(1L);
@@ -303,6 +325,14 @@ public class IgnitePersistentStoreTest {
if (!person.equals(personMap2.get(id)))
throw new RuntimeException("Person value was incorrectly deserialized from Cassandra");
+ Product product1 = productCache.get(product.getId());
+ if (!product.equals(product1))
+ throw new RuntimeException("Product value was incorrectly deserialized from Cassandra");
+
+ ProductOrder order1 = orderCache.get(order.getId());
+ if (!order.equals(order1))
+ throw new RuntimeException("Order value was incorrectly deserialized from Cassandra");
+
LOGGER.info("Single operation read tests passed");
LOGGER.info("Running bulk operation read tests");
@@ -323,6 +353,14 @@ public class IgnitePersistentStoreTest {
if (!TestsHelper.checkPersonMapsEqual(persons4, personMap2, false))
throw new RuntimeException("Person values batch was incorrectly deserialized from Cassandra");
+ Map<Long, Product> productsMap1 = productCache.getAll(productsMap.keySet());
+ if (!TestsHelper.checkProductMapsEqual(productsMap, productsMap1))
+ throw new RuntimeException("Product values batch was incorrectly deserialized from Cassandra");
+
+ Map<Long, ProductOrder> ordersMap1 = orderCache.getAll(ordersMap.keySet());
+ if (!TestsHelper.checkOrderMapsEqual(ordersMap, ordersMap1))
+ throw new RuntimeException("Order values batch was incorrectly deserialized from Cassandra");
+
LOGGER.info("Bulk operation read tests passed");
LOGGER.info("POJO strategy read tests passed");
@@ -341,12 +379,35 @@ public class IgnitePersistentStoreTest {
personCache4.remove(id);
personCache4.removeAll(personMap2.keySet());
+ productCache.remove(product.getId());
+ productCache.removeAll(productsMap.keySet());
+
+ orderCache.remove(order.getId());
+ orderCache.removeAll(ordersMap.keySet());
+
LOGGER.info("POJO strategy delete tests passed");
}
}
/** */
@Test
+ public void pojoStrategyTransactionTest() {
+ CassandraHelper.dropTestKeyspaces();
+
+ Ignition.stopAll(true);
+
+ try (Ignite ignite = Ignition.start("org/apache/ignite/tests/persistence/pojo/ignite-config.xml")) {
+ pojoStrategyTransactionTest(ignite, TransactionConcurrency.OPTIMISTIC, TransactionIsolation.READ_COMMITTED);
+ pojoStrategyTransactionTest(ignite, TransactionConcurrency.OPTIMISTIC, TransactionIsolation.REPEATABLE_READ);
+ pojoStrategyTransactionTest(ignite, TransactionConcurrency.OPTIMISTIC, TransactionIsolation.SERIALIZABLE);
+ pojoStrategyTransactionTest(ignite, TransactionConcurrency.PESSIMISTIC, TransactionIsolation.READ_COMMITTED);
+ pojoStrategyTransactionTest(ignite, TransactionConcurrency.PESSIMISTIC, TransactionIsolation.REPEATABLE_READ);
+ pojoStrategyTransactionTest(ignite, TransactionConcurrency.PESSIMISTIC, TransactionIsolation.SERIALIZABLE);
+ }
+ }
+
+ /** */
+ @Test
public void loadCacheTest() {
Ignition.stopAll(true);
@@ -360,6 +421,7 @@ public class IgnitePersistentStoreTest {
Collection<CacheEntryImpl<PersonId, Person>> entries = TestsHelper.generatePersonIdsPersonsEntries();
+ //noinspection unchecked
store.writeAll(entries);
LOGGER.info("Cassandra table filled with test data");
@@ -387,4 +449,207 @@ public class IgnitePersistentStoreTest {
LOGGER.info("loadCache test passed");
}
+
+ /** */
+ @SuppressWarnings("unchecked")
+ private void pojoStrategyTransactionTest(Ignite ignite, TransactionConcurrency concurrency,
+ TransactionIsolation isolation) {
+ LOGGER.info("-----------------------------------------------------------------------------------");
+ LOGGER.info("Running POJO transaction tests using " + concurrency +
+ " concurrency and " + isolation + " isolation level");
+ LOGGER.info("-----------------------------------------------------------------------------------");
+
+ CacheStore productStore = CacheStoreHelper.createCacheStore("product",
+ new ClassPathResource("org/apache/ignite/tests/persistence/pojo/product.xml"),
+ CassandraHelper.getAdminDataSrc());
+
+ CacheStore orderStore = CacheStoreHelper.createCacheStore("order",
+ new ClassPathResource("org/apache/ignite/tests/persistence/pojo/order.xml"),
+ CassandraHelper.getAdminDataSrc());
+
+ Map<Long, Product> productsMap = TestsHelper.generateProductsMap(5);
+ Map<Long, Product> productsMap1;
+ Map<Long, ProductOrder> ordersMap = TestsHelper.generateOrdersMap(5);
+ Map<Long, ProductOrder> ordersMap1;
+ Product product = TestsHelper.generateRandomProduct(-1L);
+ ProductOrder order = TestsHelper.generateRandomOrder(-1L, -1L, new Date());
+
+ IgniteTransactions txs = ignite.transactions();
+
+ IgniteCache<Long, Product> productCache = ignite.getOrCreateCache(new CacheConfiguration<Long, Product>("product"));
+ IgniteCache<Long, ProductOrder> orderCache = ignite.getOrCreateCache(new CacheConfiguration<Long, ProductOrder>("order"));
+
+ LOGGER.info("Running POJO strategy write tests");
+
+ LOGGER.info("Running single operation write tests");
+
+ Transaction tx = txs.txStart(concurrency, isolation);
+
+ try {
+ productCache.put(product.getId(), product);
+ orderCache.put(order.getId(), order);
+
+ if (productStore.load(product.getId()) != null || orderStore.load(order.getId()) != null) {
+ throw new RuntimeException("Single write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+
+ Map<Long, Product> products = (Map<Long, Product>)productStore.loadAll(productsMap.keySet());
+ Map<Long, ProductOrder> orders = (Map<Long, ProductOrder>)orderStore.loadAll(ordersMap.keySet());
+
+ if ((products != null && !products.isEmpty()) || (orders != null && !orders.isEmpty())) {
+ throw new RuntimeException("Single write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+
+ tx.commit();
+ }
+ finally {
+ U.closeQuiet(tx);
+ }
+
+ Product product1 = (Product)productStore.load(product.getId());
+ ProductOrder order1 = (ProductOrder)orderStore.load(order.getId());
+
+ if (product1 == null || order1 == null) {
+ throw new RuntimeException("Single write operation test failed. Transaction was committed, but " +
+ "no objects were persisted into Cassandra");
+ }
+
+ if (!product.equals(product1) || !order.equals(order1)) {
+ throw new RuntimeException("Single write operation test failed. Transaction was committed, but " +
+ "objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+
+ LOGGER.info("Single operation write tests passed");
+
+ LOGGER.info("Running bulk operation write tests");
+
+ tx = txs.txStart(concurrency, isolation);
+
+ try {
+ productCache.putAll(productsMap);
+ orderCache.putAll(ordersMap);
+
+ productsMap1 = (Map<Long, Product>)productStore.loadAll(productsMap.keySet());
+ ordersMap1 = (Map<Long, ProductOrder>)orderStore.loadAll(ordersMap.keySet());
+
+ if ((productsMap1 != null && !productsMap1.isEmpty()) || (ordersMap1 != null && !ordersMap1.isEmpty())) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already persisted into Cassandra");
+ }
+
+ tx.commit();
+ }
+ finally {
+ U.closeQuiet(tx);
+ }
+
+ productsMap1 = (Map<Long, Product>)productStore.loadAll(productsMap.keySet());
+ ordersMap1 = (Map<Long, ProductOrder>)orderStore.loadAll(ordersMap.keySet());
+
+ if (productsMap1 == null || productsMap1.isEmpty() || ordersMap1 == null || ordersMap1.isEmpty()) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "no objects were persisted into Cassandra");
+ }
+
+ if (productsMap1.size() < productsMap.size() || ordersMap1.size() < ordersMap.size()) {
+ throw new RuntimeException("Bulk write operation test failed. There were committed less objects " +
+ "into Cassandra than expected");
+ }
+
+ if (productsMap1.size() > productsMap.size() || ordersMap1.size() > ordersMap.size()) {
+ throw new RuntimeException("Bulk write operation test failed. There were committed more objects " +
+ "into Cassandra than expected");
+ }
+
+ for (Map.Entry<Long, Product> entry : productsMap.entrySet()) {
+ product = productsMap1.get(entry.getKey());
+
+ if (!entry.getValue().equals(product)) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "some objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+ }
+
+ for (Map.Entry<Long, ProductOrder> entry : ordersMap.entrySet()) {
+ order = ordersMap1.get(entry.getKey());
+
+ if (!entry.getValue().equals(order)) {
+ throw new RuntimeException("Bulk write operation test failed. Transaction was committed, but " +
+ "some objects were incorrectly persisted/loaded to/from Cassandra");
+ }
+ }
+
+ LOGGER.info("Bulk operation write tests passed");
+
+ LOGGER.info("POJO strategy write tests passed");
+
+ LOGGER.info("Running POJO strategy delete tests");
+
+ LOGGER.info("Running single delete tests");
+
+ tx = txs.txStart(concurrency, isolation);
+
+ try {
+ productCache.remove(-1L);
+ orderCache.remove(-1L);
+
+ if (productStore.load(-1L) == null || orderStore.load(-1L) == null) {
+ throw new RuntimeException("Single delete operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already deleted from Cassandra");
+ }
+
+ tx.commit();
+ }
+ finally {
+ U.closeQuiet(tx);
+ }
+
+ if (productStore.load(-1L) != null || orderStore.load(-1L) != null) {
+ throw new RuntimeException("Single delete operation test failed. Transaction was committed, but " +
+ "objects were not deleted from Cassandra");
+ }
+
+ LOGGER.info("Single delete tests passed");
+
+ LOGGER.info("Running bulk delete tests");
+
+ tx = txs.txStart(concurrency, isolation);
+
+ try {
+ productCache.removeAll(productsMap.keySet());
+ orderCache.removeAll(ordersMap.keySet());
+
+ productsMap1 = (Map<Long, Product>)productStore.loadAll(productsMap.keySet());
+ ordersMap1 = (Map<Long, ProductOrder>)orderStore.loadAll(ordersMap.keySet());
+
+ if (productsMap1.size() != productsMap.size() || ordersMap1.size() != ordersMap.size()) {
+ throw new RuntimeException("Bulk delete operation test failed. Transaction wasn't committed yet, but " +
+ "objects were already deleted from Cassandra");
+ }
+
+ tx.commit();
+ }
+ finally {
+ U.closeQuiet(tx);
+ }
+
+ productsMap1 = (Map<Long, Product>)productStore.loadAll(productsMap.keySet());
+ ordersMap1 = (Map<Long, ProductOrder>)orderStore.loadAll(ordersMap.keySet());
+
+ if ((productsMap1 != null && !productsMap1.isEmpty()) || (ordersMap1 != null && !ordersMap1.isEmpty())) {
+ throw new RuntimeException("Bulk delete operation test failed. Transaction was committed, but " +
+ "objects were not deleted from Cassandra");
+ }
+
+ LOGGER.info("Bulk delete tests passed");
+
+ LOGGER.info("POJO strategy delete tests passed");
+
+ LOGGER.info("-----------------------------------------------------------------------------------");
+ LOGGER.info("Passed POJO transaction tests for " + concurrency +
+ " concurrency and " + isolation + " isolation level");
+ LOGGER.info("-----------------------------------------------------------------------------------");
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/Product.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/Product.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/Product.java
new file mode 100644
index 0000000..f8eadf4
--- /dev/null
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/Product.java
@@ -0,0 +1,123 @@
+/*
+ * 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.tests.pojos;
+
+import org.apache.ignite.cache.query.annotations.QuerySqlField;
+
+/**
+ * Simple POJO to store information about product
+ */
+public class Product {
+ /** */
+ private long id;
+
+ /** */
+ private String type;
+
+ /** */
+ private String title;
+
+ /** */
+ private String description;
+
+ /** */
+ private float price;
+
+ /** */
+ public Product() {
+ }
+
+ /** */
+ public Product(long id, String type, String title, String description, float price) {
+ this.id = id;
+ this.type = type;
+ this.title = title;
+ this.description = description;
+ this.price = price;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int hashCode() {
+ return ((Long)id).hashCode();
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean equals(Object obj) {
+ return obj instanceof Product && id == ((Product) obj).id;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return id + ", " + price + ", " + type + ", " + title + ", " + description;
+ }
+
+ /** */
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ /** */
+ @QuerySqlField(index = true)
+ public long getId() {
+ return id;
+ }
+
+ /** */
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ /** */
+ @QuerySqlField
+ public String getType() {
+ return type;
+ }
+
+ /** */
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ /** */
+ @QuerySqlField(index = true)
+ public String getTitle() {
+ return title;
+ }
+
+ /** */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ /** */
+ @QuerySqlField
+ public String getDescription() {
+ return description;
+ }
+
+ /** */
+ public void setPrice(float price) {
+ this.price = price;
+ }
+
+ /** */
+ @QuerySqlField
+ public float getPrice() {
+ return price;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
new file mode 100644
index 0000000..4baee83
--- /dev/null
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
@@ -0,0 +1,148 @@
+/*
+ * 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.tests.pojos;
+
+import org.apache.ignite.cache.query.annotations.QuerySqlField;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * Simple POJO to store information about product order
+ */
+public class ProductOrder {
+ /** */
+ private static final DateFormat FORMAT = new SimpleDateFormat("MM/dd/yyyy/S");
+
+ /** */
+ private static final DateFormat FULL_FORMAT = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss:S");
+
+ /** */
+ private long id;
+
+ /** */
+ private long productId;
+
+ /** */
+ private Date date;
+
+ /** */
+ private int amount;
+
+ /** */
+ private float price;
+
+ /** */
+ public ProductOrder() {
+ }
+
+ /** */
+ public ProductOrder(long id, Product product, Date date, int amount) {
+ this(id, product.getId(), product.getPrice(), date, amount);
+ }
+
+ /** */
+ public ProductOrder(long id, long productId, float productPrice, Date date, int amount) {
+ this.id = id;
+ this.productId = productId;
+ this.date = date;
+ this.amount = amount;
+ this.price = productPrice * amount;
+
+ // if user ordered more than 10 items provide 5% discount
+ if (amount > 10)
+ this.price = this.price * 0.95F;
+ }
+
+ /** {@inheritDoc} */
+ @Override public int hashCode() {
+ return ((Long)id).hashCode();
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean equals(Object obj) {
+ return obj instanceof ProductOrder && id == ((ProductOrder) obj).id;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return id + ", " + productId + ", " + FULL_FORMAT.format(date) + ", " + getDayMillisecond() + ", " + amount + ", " + price;
+ }
+
+ /** */
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ /** */
+ @QuerySqlField(index = true)
+ public long getId() {
+ return id;
+ }
+
+ /** */
+ public void setProductId(long productId) {
+ this.productId = productId;
+ }
+
+ /** */
+ @QuerySqlField(index = true)
+ public long getProductId() {
+ return productId;
+ }
+
+ /** */
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+ /** */
+ @QuerySqlField
+ public Date getDate() {
+ return date;
+ }
+
+ /** */
+ public void setAmount(int amount) {
+ this.amount = amount;
+ }
+
+ /** */
+ @QuerySqlField
+ public int getAmount() {
+ return amount;
+ }
+
+ /** */
+ public void setPrice(float price) {
+ this.price = price;
+ }
+
+ /** */
+ @QuerySqlField
+ public float getPrice() {
+ return price;
+ }
+
+ /** */
+ @QuerySqlField
+ public String getDayMillisecond() {
+ return FORMAT.format(date);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
index b5ff5ad..9bcda6e 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
@@ -19,6 +19,7 @@ package org.apache.ignite.tests.utils;
import java.lang.reflect.Field;
import org.apache.ignite.cache.store.CacheStore;
+import org.apache.ignite.cache.store.CacheStoreSession;
import org.apache.ignite.cache.store.cassandra.CassandraCacheStore;
import org.apache.ignite.cache.store.cassandra.datasource.DataSource;
import org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings;
@@ -35,12 +36,24 @@ public class CacheStoreHelper {
/** */
public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn) {
- return createCacheStore(cacheName, persistenceSettings, conn, LOGGER);
+ return createCacheStore(cacheName, persistenceSettings, conn, null, LOGGER);
}
/** */
public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn,
- Logger log) {
+ CacheStoreSession session) {
+ return createCacheStore(cacheName, persistenceSettings, conn, session, LOGGER);
+ }
+
+ /** */
+ public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn,
+ Logger log) {
+ return createCacheStore(cacheName, persistenceSettings, conn, null, log);
+ }
+
+ /** */
+ public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn,
+ CacheStoreSession session, Logger log) {
CassandraCacheStore<Integer, Integer> cacheStore =
new CassandraCacheStore<>(conn, new KeyValuePersistenceSettings(persistenceSettings),
Runtime.getRuntime().availableProcessors());
@@ -52,7 +65,7 @@ public class CacheStoreHelper {
sesField.setAccessible(true);
logField.setAccessible(true);
- sesField.set(cacheStore, new TestCacheSession(cacheName));
+ sesField.set(cacheStore, session != null ? session : new TestCacheSession(cacheName));
logField.set(cacheStore, new Log4JLogger(log));
}
catch (Throwable e) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestCacheSession.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestCacheSession.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestCacheSession.java
index 1cedb7a..3cb47e9 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestCacheSession.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestCacheSession.java
@@ -34,7 +34,7 @@ public class TestCacheSession implements CacheStoreSession {
private Transaction tx;
/** */
- private Map<Object, Object> props;
+ private Map<Object, Object> props = U.newHashMap(1);
/** */
private Object attach;
@@ -45,6 +45,13 @@ public class TestCacheSession implements CacheStoreSession {
}
/** */
+ public TestCacheSession(String cacheName, Transaction tx, Map<Object, Object> props) {
+ this.cacheName = cacheName;
+ this.tx = tx;
+ this.props = props;
+ }
+
+ /** */
@SuppressWarnings("UnusedDeclaration")
public void newSession(@Nullable Transaction tx) {
this.tx = tx;
@@ -78,9 +85,6 @@ public class TestCacheSession implements CacheStoreSession {
/** {@inheritDoc} */
@SuppressWarnings("unchecked")
@Override public <K, V> Map<K, V> properties() {
- if (props == null)
- props = U.newHashMap(1);
-
return (Map<K, V>)props;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
new file mode 100644
index 0000000..cda6715
--- /dev/null
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
@@ -0,0 +1,133 @@
+/*
+ * 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.tests.utils;
+
+import org.apache.ignite.lang.IgniteAsyncSupport;
+import org.apache.ignite.lang.IgniteFuture;
+import org.apache.ignite.lang.IgniteUuid;
+import org.apache.ignite.transactions.Transaction;
+import org.apache.ignite.transactions.TransactionConcurrency;
+import org.apache.ignite.transactions.TransactionIsolation;
+import org.apache.ignite.transactions.TransactionState;
+import org.jetbrains.annotations.Nullable;
+
+import java.util.UUID;
+
+/**
+ * Dummy transaction for test purposes.
+ */
+public class TestTransaction implements Transaction {
+ /** */
+ private final IgniteUuid xid = IgniteUuid.randomUuid();
+
+ /** {@inheritDoc} */
+ @Nullable
+ @Override public IgniteUuid xid() {
+ return xid;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public UUID nodeId() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long threadId() {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long startTime() {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public TransactionIsolation isolation() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public TransactionConcurrency concurrency() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean implicit() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isInvalidate() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Nullable @Override public TransactionState state() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long timeout() {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public long timeout(long timeout) {
+ return 0;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean setRollbackOnly() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isRollbackOnly() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void commit() {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void close() {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public IgniteAsyncSupport withAsync() {
+ throw new UnsupportedOperationException();
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean isAsync() {
+ return false;
+ }
+
+ /** {@inheritDoc} */
+ @Override public <R> IgniteFuture<R> future() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void rollback() {
+ // No-op.
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
index 2e266f6..24d64c9 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestsHelper.java
@@ -17,19 +17,27 @@
package org.apache.ignite.tests.utils;
+
+import org.apache.ignite.cache.store.cassandra.common.SystemHelper;
+import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
+import org.apache.ignite.tests.load.Generator;
+import org.apache.ignite.tests.pojos.Person;
+import org.apache.ignite.tests.pojos.PersonId;
+import org.apache.ignite.tests.pojos.Product;
+import org.apache.ignite.tests.pojos.ProductOrder;
+import org.springframework.core.io.ClassPathResource;
+
import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.HashMap;
+import java.util.Set;
+import java.util.HashSet;
import java.util.Random;
import java.util.ResourceBundle;
-import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
-import org.apache.ignite.tests.load.Generator;
-import org.apache.ignite.tests.pojos.Person;
-import org.apache.ignite.tests.pojos.PersonId;
-import org.springframework.core.io.ClassPathResource;
+import java.util.Calendar;
+import java.util.Date;
/**
* Helper class for all tests
@@ -66,6 +74,21 @@ public class TestsHelper {
private static final int LOAD_TESTS_REQUESTS_LATENCY = parseTestSettings("load.tests.requests.latency");
/** */
+ private static final int TRANSACTION_PRODUCTS_COUNT = parseTestSettings("transaction.products.count");
+
+ /** */
+ private static final int TRANSACTION_ORDERS_COUNT = parseTestSettings("transaction.orders.count");
+
+ /** */
+ private static final int ORDERS_YEAR;
+
+ /** */
+ private static final int ORDERS_MONTH;
+
+ /** */
+ private static final int ORDERS_DAY;
+
+ /** */
private static final String LOAD_TESTS_PERSISTENCE_SETTINGS = TESTS_SETTINGS.getString("load.tests.persistence.settings");
/** */
@@ -78,14 +101,30 @@ public class TestsHelper {
private static final Generator LOAD_TESTS_VALUE_GENERATOR;
/** */
- private static int parseTestSettings(String name) {
- return Integer.parseInt(TESTS_SETTINGS.getString(name));
- }
+ private static final String HOST_PREFIX;
static {
try {
LOAD_TESTS_KEY_GENERATOR = (Generator)Class.forName(TESTS_SETTINGS.getString("load.tests.key.generator")).newInstance();
LOAD_TESTS_VALUE_GENERATOR = (Generator)Class.forName(TESTS_SETTINGS.getString("load.tests.value.generator")).newInstance();
+
+ String[] parts = SystemHelper.HOST_IP.split("\\.");
+
+ String prefix = parts[3];
+ prefix = prefix.length() > 2 ? prefix.substring(prefix.length() - 2) : prefix;
+
+ HOST_PREFIX = prefix;
+
+ Calendar cl = Calendar.getInstance();
+
+ String year = TESTS_SETTINGS.getString("orders.year");
+ ORDERS_YEAR = !year.trim().isEmpty() ? Integer.parseInt(year) : cl.get(Calendar.YEAR);
+
+ String month = TESTS_SETTINGS.getString("orders.month");
+ ORDERS_MONTH = !month.trim().isEmpty() ? Integer.parseInt(month) : cl.get(Calendar.MONTH);
+
+ String day = TESTS_SETTINGS.getString("orders.day");
+ ORDERS_DAY = !day.trim().isEmpty() ? Integer.parseInt(day) : cl.get(Calendar.DAY_OF_MONTH);
}
catch (Throwable e) {
throw new RuntimeException("Failed to initialize TestsHelper", e);
@@ -93,6 +132,11 @@ public class TestsHelper {
}
/** */
+ private static int parseTestSettings(String name) {
+ return Integer.parseInt(TESTS_SETTINGS.getString(name));
+ }
+
+ /** */
public static int getLoadTestsThreadsCount() {
return LOAD_TESTS_THREADS_COUNT;
}
@@ -275,6 +319,130 @@ public class TestsHelper {
}
/** */
+ public static List<CacheEntryImpl<Long, Product>> generateProductEntries() {
+ List<CacheEntryImpl<Long, Product>> entries = new LinkedList<>();
+
+ for (long i = 0; i < BULK_OPERATION_SIZE; i++)
+ entries.add(new CacheEntryImpl<>(i, generateRandomProduct(i)));
+
+ return entries;
+ }
+
+ /** */
+ public static Collection<Long> getProductIds(Collection<CacheEntryImpl<Long, Product>> entries) {
+ List<Long> ids = new LinkedList<>();
+
+ for (CacheEntryImpl<Long, Product> entry : entries)
+ ids.add(entry.getKey());
+
+ return ids;
+ }
+
+ /** */
+ public static Map<Long, Product> generateProductsMap() {
+ return generateProductsMap(BULK_OPERATION_SIZE);
+ }
+
+ /** */
+ public static Map<Long, Product> generateProductsMap(int count) {
+ Map<Long, Product> map = new HashMap<>();
+
+ for (long i = 0; i < count; i++)
+ map.put(i, generateRandomProduct(i));
+
+ return map;
+ }
+
+ /** */
+ public static Collection<CacheEntryImpl<Long, ProductOrder>> generateOrderEntries() {
+ Collection<CacheEntryImpl<Long, ProductOrder>> entries = new LinkedList<>();
+
+ for (long i = 0; i < BULK_OPERATION_SIZE; i++) {
+ ProductOrder order = generateRandomOrder(i);
+ entries.add(new CacheEntryImpl<>(order.getId(), order));
+ }
+
+ return entries;
+ }
+
+ /** */
+ public static Map<Long, ProductOrder> generateOrdersMap() {
+ return generateOrdersMap(BULK_OPERATION_SIZE);
+ }
+
+ /** */
+ public static Map<Long, ProductOrder> generateOrdersMap(int count) {
+ Map<Long, ProductOrder> map = new HashMap<>();
+
+ for (long i = 0; i < count; i++) {
+ ProductOrder order = generateRandomOrder(i);
+ map.put(order.getId(), order);
+ }
+
+ return map;
+ }
+
+ /** */
+ public static Map<Long, List<CacheEntryImpl<Long, ProductOrder>>> generateOrdersPerProductEntries(
+ Collection<CacheEntryImpl<Long, Product>> products) {
+ return generateOrdersPerProductEntries(products, TRANSACTION_ORDERS_COUNT);
+ }
+
+ /** */
+ public static Map<Long, List<CacheEntryImpl<Long, ProductOrder>>> generateOrdersPerProductEntries(
+ Collection<CacheEntryImpl<Long, Product>> products, int ordersPerProductCount) {
+ Map<Long, List<CacheEntryImpl<Long, ProductOrder>>> map = new HashMap<>();
+
+ for (CacheEntryImpl<Long, Product> entry : products) {
+ List<CacheEntryImpl<Long, ProductOrder>> orders = new LinkedList<>();
+
+ for (long i = 0; i < ordersPerProductCount; i++) {
+ ProductOrder order = generateRandomOrder(entry.getKey());
+ orders.add(new CacheEntryImpl<>(order.getId(), order));
+ }
+
+ map.put(entry.getKey(), orders);
+ }
+
+ return map;
+ }
+
+ /** */
+ public static Map<Long, Map<Long, ProductOrder>> generateOrdersPerProductMap(Map<Long, Product> products) {
+ return generateOrdersPerProductMap(products, TRANSACTION_ORDERS_COUNT);
+ }
+
+ /** */
+ public static Map<Long, Map<Long, ProductOrder>> generateOrdersPerProductMap(Map<Long, Product> products,
+ int ordersPerProductCount) {
+ Map<Long, Map<Long, ProductOrder>> map = new HashMap<>();
+
+ for (Map.Entry<Long, Product> entry : products.entrySet()) {
+ Map<Long, ProductOrder> orders = new HashMap<>();
+
+ for (long i = 0; i < ordersPerProductCount; i++) {
+ ProductOrder order = generateRandomOrder(entry.getKey());
+ orders.put(order.getId(), order);
+ }
+
+ map.put(entry.getKey(), orders);
+ }
+
+ return map;
+ }
+
+ public static Collection<Long> getOrderIds(Map<Long, List<CacheEntryImpl<Long, ProductOrder>>> orders) {
+ Set<Long> ids = new HashSet<>();
+
+ for (Long key : orders.keySet()) {
+ for (CacheEntryImpl<Long, ProductOrder> entry : orders.get(key))
+ ids.add(entry.getKey());
+ }
+
+ return ids;
+ }
+
+ /** */
public static Person generateRandomPerson(long personNum) {
int phonesCnt = RANDOM.nextInt(4);
@@ -293,6 +461,33 @@ public class TestsHelper {
}
/** */
+ public static Product generateRandomProduct(long id) {
+ return new Product(id, randomString(2), randomString(6), randomString(20), generateProductPrice(id));
+ }
+
+ /** */
+ public static ProductOrder generateRandomOrder(long productId) {
+ return generateRandomOrder(productId, RANDOM.nextInt(10000));
+ }
+
+ /** */
+ private static ProductOrder generateRandomOrder(long productId, int saltedNumber) {
+ Calendar cl = Calendar.getInstance();
+ cl.set(Calendar.YEAR, ORDERS_YEAR);
+ cl.set(Calendar.MONTH, ORDERS_MONTH);
+ cl.set(Calendar.DAY_OF_MONTH, ORDERS_DAY);
+
+ long id = Long.parseLong(productId + System.currentTimeMillis() + HOST_PREFIX + saltedNumber);
+
+ return generateRandomOrder(id, productId, cl.getTime());
+ }
+
+ /** */
+ public static ProductOrder generateRandomOrder(long id, long productId, Date date) {
+ return new ProductOrder(id, productId, generateProductPrice(productId), date, 1 + RANDOM.nextInt(20));
+ }
+
+ /** */
public static boolean checkMapsEqual(Map map1, Map map2) {
if (map1 == null || map2 == null || map1.size() != map2.size())
return false;
@@ -360,6 +555,66 @@ public class TestsHelper {
}
/** */
+ public static <K> boolean checkProductCollectionsEqual(Map<K, Product> map, Collection<CacheEntryImpl<K, Product>> col) {
+ if (map == null || col == null || map.size() != col.size())
+ return false;
+
+ for (CacheEntryImpl<K, Product> entry : col)
+ if (!entry.getValue().equals(map.get(entry.getKey())))
+ return false;
+
+ return true;
+ }
+
+ /** */
+ public static <K> boolean checkProductMapsEqual(Map<K, Product> map1, Map<K, Product> map2) {
+ if (map1 == null || map2 == null || map1.size() != map2.size())
+ return false;
+
+ for (K key : map1.keySet()) {
+ Product product1 = map1.get(key);
+ Product product2 = map2.get(key);
+
+ boolean equals = product1 != null && product2 != null && product1.equals(product2);
+
+ if (!equals)
+ return false;
+ }
+
+ return true;
+ }
+
+ /** */
+ public static <K> boolean checkOrderCollectionsEqual(Map<K, ProductOrder> map, Collection<CacheEntryImpl<K, ProductOrder>> col) {
+ if (map == null || col == null || map.size() != col.size())
+ return false;
+
+ for (CacheEntryImpl<K, ProductOrder> entry : col)
+ if (!entry.getValue().equals(map.get(entry.getKey())))
+ return false;
+
+ return true;
+ }
+
+ /** */
+ public static <K> boolean checkOrderMapsEqual(Map<K, ProductOrder> map1, Map<K, ProductOrder> map2) {
+ if (map1 == null || map2 == null || map1.size() != map2.size())
+ return false;
+
+ for (K key : map1.keySet()) {
+ ProductOrder order1 = map1.get(key);
+ ProductOrder order2 = map2.get(key);
+
+ boolean equals = order1 != null && order2 != null && order1.equals(order2);
+
+ if (!equals)
+ return false;
+ }
+
+ return true;
+ }
+
+ /** */
public static String randomString(int len) {
StringBuilder builder = new StringBuilder(len);
@@ -378,4 +633,28 @@ public class TestsHelper {
return builder.toString();
}
+
+ /** */
+ private static float generateProductPrice(long productId) {
+ long id = productId < 1000 ?
+ (((productId + 1) * (productId + 1) * 1000) / 2) * 10 :
+ (productId / 20) * (productId / 20);
+
+ id = id == 0 ? 24 : id;
+
+ float price = Long.parseLong(Long.toString(id).replace("0", ""));
+
+ int i = 0;
+
+ while (price > 100) {
+ if (i % 2 != 0)
+ price = price / 2;
+ else
+ price = (float) Math.sqrt(price);
+
+ i++;
+ }
+
+ return ((float)((int)(price * 100))) / 100.0F;
+ }
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/ignite-config.xml
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/ignite-config.xml b/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/ignite-config.xml
index cd23a2a..c9b45c8 100644
--- a/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/ignite-config.xml
+++ b/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/ignite-config.xml
@@ -46,6 +46,16 @@
<constructor-arg type="org.springframework.core.io.Resource" value="classpath:org/apache/ignite/tests/persistence/pojo/persistence-settings-4.xml" />
</bean>
+ <!-- Persistence settings for 'product' -->
+ <bean id="product_persistence_settings" class="org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings">
+ <constructor-arg type="org.springframework.core.io.Resource" value="classpath:org/apache/ignite/tests/persistence/pojo/product.xml" />
+ </bean>
+
+ <!-- Persistence settings for 'order' -->
+ <bean id="order_persistence_settings" class="org.apache.ignite.cache.store.cassandra.persistence.KeyValuePersistenceSettings">
+ <constructor-arg type="org.springframework.core.io.Resource" value="classpath:org/apache/ignite/tests/persistence/pojo/order.xml" />
+ </bean>
+
<!-- Ignite configuration -->
<bean id="ignite.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="cacheConfiguration">
@@ -89,7 +99,7 @@
</property>
</bean>
- <!-- Configuring persistence for "cache3" cache -->
+ <!-- Configuring persistence for "cache4" cache -->
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="cache4"/>
<property name="readThrough" value="true"/>
@@ -101,6 +111,35 @@
</bean>
</property>
</bean>
+
+ <!-- Configuring persistence for "product" cache -->
+ <bean class="org.apache.ignite.configuration.CacheConfiguration">
+ <property name="name" value="product"/>
+ <property name="readThrough" value="true"/>
+ <property name="writeThrough" value="true"/>
+ <property name="atomicityMode" value="TRANSACTIONAL"/>
+ <property name="cacheStoreFactory">
+ <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
+ <property name="dataSourceBean" value="cassandraAdminDataSource"/>
+ <property name="persistenceSettingsBean" value="product_persistence_settings"/>
+ </bean>
+ </property>
+ </bean>
+
+ <!-- Configuring persistence for "order" cache -->
+ <bean class="org.apache.ignite.configuration.CacheConfiguration">
+ <property name="name" value="order"/>
+ <property name="readThrough" value="true"/>
+ <property name="writeThrough" value="true"/>
+ <property name="atomicityMode" value="TRANSACTIONAL"/>
+ <property name="cacheStoreFactory">
+ <bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
+ <property name="dataSourceBean" value="cassandraAdminDataSource"/>
+ <property name="persistenceSettingsBean" value="order_persistence_settings"/>
+ </bean>
+ </property>
+ </bean>
+
</list>
</property>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/order.xml
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/order.xml b/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/order.xml
new file mode 100644
index 0000000..d616364
--- /dev/null
+++ b/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/order.xml
@@ -0,0 +1,21 @@
+<!--
+ 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.
+-->
+
+<persistence keyspace="test1" table="order">
+ <keyPersistence class="java.lang.Long" column="id" strategy="PRIMITIVE" />
+ <valuePersistence class="org.apache.ignite.tests.pojos.ProductOrder" strategy="POJO" />
+</persistence>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/product.xml
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/product.xml b/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/product.xml
new file mode 100644
index 0000000..c761e1c
--- /dev/null
+++ b/modules/cassandra/store/src/test/resources/org/apache/ignite/tests/persistence/pojo/product.xml
@@ -0,0 +1,21 @@
+<!--
+ 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.
+-->
+
+<persistence keyspace="test1" table="product">
+ <keyPersistence class="java.lang.Long" column="id" strategy="PRIMITIVE" />
+ <valuePersistence class="org.apache.ignite.tests.pojos.Product" strategy="POJO" />
+</persistence>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3b8aca64/modules/cassandra/store/src/test/resources/tests.properties
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/resources/tests.properties b/modules/cassandra/store/src/test/resources/tests.properties
index 2c91e57..b11f2c8 100644
--- a/modules/cassandra/store/src/test/resources/tests.properties
+++ b/modules/cassandra/store/src/test/resources/tests.properties
@@ -16,6 +16,21 @@
# Number of elements for CacheStore bulk operations: loadAll, writeAll, deleteAll
bulk.operation.size=100
+# Number of product per transaction
+transaction.products.count=2
+
+# Number of orders per transaction
+transaction.orders.count=10
+
+# Year to use for generating new orders
+orders.year=
+
+# Month to use for generating new orders
+orders.month=
+
+# Day of month to use for generating new orders
+orders.day=
+
# ----- Load tests settings -----
# Ignite cache to be used by load tests
[17/50] [abbrv] ignite git commit: IGNITE-3609 Review.
Posted by sh...@apache.org.
IGNITE-3609 Review.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e7f35328
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e7f35328
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e7f35328
Branch: refs/heads/ignite-2788
Commit: e7f353283af2792a2ff0fe8c744b5d2308ece366
Parents: 3b8aca6
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Sep 30 14:51:54 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Sep 30 14:51:54 2016 +0700
----------------------------------------------------------------------
.../store/cassandra/common/RandomSleeper.java | 2 +-
.../persistence/PersistenceController.java | 8 +++++++-
.../store/cassandra/persistence/PojoField.java | 10 ++++++----
.../cassandra/persistence/PojoKeyField.java | 10 +++-------
.../cassandra/persistence/PojoValueField.java | 19 ++++++-------------
.../cassandra/session/CassandraSessionImpl.java | 4 ++--
.../cassandra/session/pool/SessionPool.java | 2 +-
.../cassandra/session/transaction/Mutation.java | 1 -
.../ignite/tests/CassandraLocalServer.java | 1 +
.../apache/ignite/tests/DDLGeneratorTest.java | 5 ++++-
.../apache/ignite/tests/load/IntGenerator.java | 2 +-
.../apache/ignite/tests/load/LoadTestDriver.java | 14 +++++++-------
.../org/apache/ignite/tests/load/Worker.java | 18 +++++++++---------
.../apache/ignite/tests/pojos/ProductOrder.java | 2 +-
.../ignite/tests/utils/CacheStoreHelper.java | 6 +++---
.../ignite/tests/utils/TestTransaction.java | 3 +--
16 files changed, 53 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/RandomSleeper.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/RandomSleeper.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/RandomSleeper.java
index 6745a16..f2e57a9 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/RandomSleeper.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/RandomSleeper.java
@@ -43,7 +43,7 @@ public class RandomSleeper {
private Random random = new Random(System.currentTimeMillis());
/** */
- private int summary = 0;
+ private int summary;
/**
* Creates sleeper instance.
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PersistenceController.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PersistenceController.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PersistenceController.java
index 122f0c8..e287a4e 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PersistenceController.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PersistenceController.java
@@ -166,7 +166,7 @@ public class PersistenceController {
}
/**
- * Binds Ignite cache key object to {@link com.datastax.driver.core.PreparedStatement}.
+ * Binds Ignite cache key object to {@link PreparedStatement}.
*
* @param statement statement to which key object should be bind.
* @param key key object.
@@ -347,6 +347,12 @@ public class PersistenceController {
return new String[] {hdrWithKeyFields + statement.toString(), hdr + statement.toString()};
}
+ /**
+ * @param table Table.
+ * @param template Template.
+ * @param statements Statements.
+ * @return Statement.
+ */
private String getStatement(final String table, final String template, final Map<String, String> statements) {
//noinspection SynchronizationOnLocalVariableOrMethodParameter
synchronized (statements) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
index 78e75a9..99b96d5 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoField.java
@@ -21,6 +21,7 @@ import com.datastax.driver.core.DataType;
import com.datastax.driver.core.Row;
import java.beans.PropertyDescriptor;
import java.io.Serializable;
+import java.lang.reflect.Method;
import org.apache.ignite.IgniteException;
import org.apache.ignite.cache.query.annotations.QuerySqlField;
import org.apache.ignite.cache.store.cassandra.common.PropertyMappingHelper;
@@ -85,10 +86,11 @@ public abstract class PojoField implements Serializable {
public PojoField(PropertyDescriptor desc) {
this.name = desc.getName();
- QuerySqlField sqlField = desc.getReadMethod() != null &&
- desc.getReadMethod().getAnnotation(QuerySqlField.class) != null ?
- desc.getReadMethod().getAnnotation(QuerySqlField.class) :
- desc.getWriteMethod() == null ? null : desc.getWriteMethod().getAnnotation(QuerySqlField.class);
+ Method rdMthd = desc.getReadMethod();
+
+ QuerySqlField sqlField = rdMthd != null && rdMthd.getAnnotation(QuerySqlField.class) != null
+ ? rdMthd.getAnnotation(QuerySqlField.class)
+ : desc.getWriteMethod() == null ? null : desc.getWriteMethod().getAnnotation(QuerySqlField.class);
col = sqlField != null && sqlField.name() != null &&
!sqlField.name().trim().isEmpty() ? sqlField.name() : name.toLowerCase();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoKeyField.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoKeyField.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoKeyField.java
index 4e86d74..6f42db2 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoKeyField.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoKeyField.java
@@ -40,7 +40,7 @@ public class PojoKeyField extends PojoField {
private static final String SORT_ATTR = "sort";
/** Sort order. */
- private SortOrder sortOrder = null;
+ private SortOrder sortOrder;
/**
* Constructs Ignite cache key POJO object descriptor.
@@ -79,12 +79,8 @@ public class PojoKeyField extends PojoField {
return sortOrder;
}
- /**
- * Initializes descriptor from {@link QuerySqlField} annotation.
- *
- * @param sqlField {@link QuerySqlField} annotation.
- */
- protected void init(QuerySqlField sqlField) {
+ /** {@inheritDoc} */
+ @Override protected void init(QuerySqlField sqlField) {
if (sqlField.descending())
sortOrder = SortOrder.DESC;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
index 3e636c0..fcdd408 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/persistence/PojoValueField.java
@@ -87,16 +87,12 @@ public class PojoValueField extends PojoField {
super(desc);
}
- /**
- * Returns DDL for Cassandra columns corresponding to POJO field.
- *
- * @return columns DDL.
- */
- public String getColumnDDL() {
+ /** {@inheritDoc} */
+ @Override public String getColumnDDL() {
String colDDL = super.getColumnDDL();
if (isStatic != null && isStatic)
- colDDL = colDDL + " static";
+ colDDL += " static";
return colDDL;
}
@@ -140,11 +136,8 @@ public class PojoValueField extends PojoField {
return builder.append(";").toString();
}
- /**
- * Initializes descriptor from {@link QuerySqlField} annotation.
- *
- * @param sqlField {@link QuerySqlField} annotation.
- */
- protected void init(QuerySqlField sqlField) {
+ /** {@inheritDoc} */
+ @Override protected void init(QuerySqlField sqlField) {
+ // No-op.
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
index 4857fa4..ac11686 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/CassandraSessionImpl.java
@@ -69,7 +69,7 @@ public class CassandraSessionImpl implements CassandraSession {
private volatile Session ses;
/** Number of references to Cassandra driver session (for multithreaded environment). */
- private volatile int refCnt = 0;
+ private volatile int refCnt;
/** Storage for the session prepared statements */
private static final Map<String, PreparedStatement> sesStatements = new HashMap<>();
@@ -748,7 +748,7 @@ public class CassandraSessionImpl implements CassandraSession {
catch (AlreadyExistsException ignored) {
}
catch (Throwable e) {
- if (!(e instanceof InvalidQueryException) || !e.getMessage().equals("Index already exists"))
+ if (!(e instanceof InvalidQueryException) || !"Index already exists".equals(e.getMessage()))
throw new IgniteException(errorMsg, e);
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
index fc4a907..95938bd 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/pool/SessionPool.java
@@ -146,7 +146,7 @@ public class SessionPool {
synchronized (sessions) {
try {
- if (sessions.size() == 0)
+ if (sessions.isEmpty())
return;
wrappers = new LinkedList<>();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
index cb014f8..f3fb354 100644
--- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
+++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/session/transaction/Mutation.java
@@ -57,7 +57,6 @@ public interface Mutation {
* Binds prepared statement to current Cassandra session.
*
* @param statement Statement.
- * @param obj Parameters for statement binding.
* @return Bounded statement.
*/
public BoundStatement bindStatement(PreparedStatement statement);
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
index fc54e5b..eea4e9e 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/CassandraLocalServer.java
@@ -48,6 +48,7 @@ public class CassandraLocalServer {
while (true) {
try {
System.out.println("Cassandra server running");
+
Thread.sleep(10000);
}
catch (Throwable e) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
index 6465580..e982e16 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/DDLGeneratorTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
* DDLGenerator test.
*/
public class DDLGeneratorTest {
+ /** */
private static final String[] RESOURCES = new String[] {
"org/apache/ignite/tests/persistence/primitive/persistence-settings-1.xml",
"org/apache/ignite/tests/persistence/pojo/persistence-settings-3.xml",
@@ -33,9 +34,11 @@ public class DDLGeneratorTest {
"org/apache/ignite/tests/persistence/pojo/order.xml"
};
+ /**
+ * Test DDL generator.
+ */
@Test
@SuppressWarnings("unchecked")
- /** */
public void generatorTest() {
String[] files = new String[RESOURCES.length];
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/IntGenerator.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/IntGenerator.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/IntGenerator.java
index a31abee..21490f6 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/IntGenerator.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/IntGenerator.java
@@ -26,7 +26,7 @@ public class IntGenerator implements Generator {
long val = i / 10000;
while (val > Integer.MAX_VALUE)
- val = val / 2;
+ val /= 2;
return (int)val;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/LoadTestDriver.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/LoadTestDriver.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/LoadTestDriver.java
index 296839d..2582007 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/LoadTestDriver.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/LoadTestDriver.java
@@ -74,7 +74,7 @@ public abstract class LoadTestDriver {
}
// calculates host unique prefix based on its subnet IP address
- long hostUniqePrefix = getHostUniquePrefix();
+ long hostUniquePrefix = getHostUniquePrefix();
logger().info("Load tests driver setup successfully completed");
@@ -87,8 +87,8 @@ public abstract class LoadTestDriver {
for (int i = 0; i < TestsHelper.getLoadTestsThreadsCount(); i++) {
Worker worker = createWorker(clazz, cfg,
- hostUniqePrefix + startPosition,
- hostUniqePrefix + startPosition + 100000000);
+ hostUniquePrefix + startPosition,
+ hostUniquePrefix + startPosition + 100000000);
workers.add(worker);
worker.setName(testName + "-worker-" + i);
worker.start();
@@ -224,14 +224,14 @@ public abstract class LoadTestDriver {
long part4 = Long.parseLong(parts[3]);
if (part3 < 10)
- part3 = part3 * 100;
+ part3 *= 100;
else if (part4 < 100)
- part3 = part3 * 10;
+ part3 *= 10;
if (part4 < 10)
- part4 = part4 * 100;
+ part4 *= 100;
else if (part4 < 100)
- part4 = part4 * 10;
+ part4 *= 10;
return (part4 * 100000000000000L) + (part3 * 100000000000L) + Thread.currentThread().getId();
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
index f4bffc7..5f3c393 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/load/Worker.java
@@ -46,31 +46,31 @@ public abstract class Worker extends Thread {
boolean warmup = TestsHelper.getLoadTestsWarmupPeriod() != 0;
/** */
- private volatile long warmupStartTime = 0;
+ private volatile long warmupStartTime;
/** */
- private volatile long warmupFinishTime = 0;
+ private volatile long warmupFinishTime;
/** */
- private volatile long startTime = 0;
+ private volatile long startTime;
/** */
- private volatile long finishTime = 0;
+ private volatile long finishTime;
/** */
- private volatile long warmupMsgProcessed = 0;
+ private volatile long warmupMsgProcessed;
/** */
- private volatile long warmupSleepCnt = 0;
+ private volatile long warmupSleepCnt;
/** */
- private volatile long msgProcessed = 0;
+ private volatile long msgProcessed;
/** */
- private volatile long msgFailed = 0;
+ private volatile long msgFailed;
/** */
- private volatile long sleepCnt = 0;
+ private volatile long sleepCnt;
/** */
private Throwable executionError;
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
index 4baee83..bafc8f3 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/pojos/ProductOrder.java
@@ -67,7 +67,7 @@ public class ProductOrder {
// if user ordered more than 10 items provide 5% discount
if (amount > 10)
- this.price = this.price * 0.95F;
+ price *= 0.95F;
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
index 9bcda6e..ddfa111 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/CacheStoreHelper.java
@@ -41,19 +41,19 @@ public class CacheStoreHelper {
/** */
public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn,
- CacheStoreSession session) {
+ CacheStoreSession session) {
return createCacheStore(cacheName, persistenceSettings, conn, session, LOGGER);
}
/** */
public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn,
- Logger log) {
+ Logger log) {
return createCacheStore(cacheName, persistenceSettings, conn, null, log);
}
/** */
public static CacheStore createCacheStore(String cacheName, Resource persistenceSettings, DataSource conn,
- CacheStoreSession session, Logger log) {
+ CacheStoreSession session, Logger log) {
CassandraCacheStore<Integer, Integer> cacheStore =
new CassandraCacheStore<>(conn, new KeyValuePersistenceSettings(persistenceSettings),
Runtime.getRuntime().availableProcessors());
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7f35328/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
----------------------------------------------------------------------
diff --git a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
index cda6715..5f3ec69 100644
--- a/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
+++ b/modules/cassandra/store/src/test/java/org/apache/ignite/tests/utils/TestTransaction.java
@@ -36,8 +36,7 @@ public class TestTransaction implements Transaction {
private final IgniteUuid xid = IgniteUuid.randomUuid();
/** {@inheritDoc} */
- @Nullable
- @Override public IgniteUuid xid() {
+ @Nullable @Override public IgniteUuid xid() {
return xid;
}
[22/50] [abbrv] ignite git commit: Merge branch 'ignite-1.6.9' into
ignite-1.7.3
Posted by sh...@apache.org.
Merge branch 'ignite-1.6.9' into ignite-1.7.3
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/36087cfa
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/36087cfa
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/36087cfa
Branch: refs/heads/ignite-2788
Commit: 36087cfa6867d29e7db56cf47e7a87b5aa9b63dc
Parents: b590233 de50287
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Oct 3 10:48:50 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Oct 3 10:48:50 2016 +0300
----------------------------------------------------------------------
.../client/ClientReconnectionSelfTest.java | 4 +-
.../client/router/TcpSslRouterSelfTest.java | 7 +-
.../client/suite/IgniteClientTestSuite.java | 71 +++----
.../internal/binary/BinaryClassDescriptor.java | 16 +-
.../internal/binary/BinaryEnumObjectImpl.java | 5 +
.../ignite/internal/binary/BinaryObjectEx.java | 8 +
.../internal/binary/BinaryObjectImpl.java | 7 +
.../binary/BinaryObjectOffheapImpl.java | 7 +
.../ignite/internal/binary/BinaryUtils.java | 5 +-
.../internal/binary/BinaryWriterExImpl.java | 6 +-
.../binary/builder/BinaryObjectBuilderImpl.java | 11 +-
.../processors/cache/GridCacheAdapter.java | 7 +
.../processors/cache/GridCacheUtils.java | 5 +
.../distributed/near/GridNearCacheAdapter.java | 7 +
.../query/GridCacheQueryMetricsAdapter.java | 12 +-
.../ignite/internal/util/IgniteUtils.java | 23 ++-
.../cache/VisorCacheResetQueryMetricsTask.java | 69 +++++++
...ridCacheStoreManagerDeserializationTest.java | 1 +
.../cache/GridCacheUtilsSelfTest.java | 64 +++++-
...calCacheStoreManagerDeserializationTest.java | 2 +-
...niteCacheExpireAndUpdateConsistencyTest.java | 7 +
.../GridCacheBinaryObjectsAbstractSelfTest.java | 37 ++++
.../ignite/testframework/IgniteTestSuite.java | 203 ++++++++++++++++---
.../testframework/junits/GridAbstractTest.java | 31 ++-
.../apache/ignite/testsuites/IgniteIgnore.java | 2 +-
modules/ignored-tests/pom.xml | 128 +++++++++++-
.../testsuites/IgniteIgnoredTestSuite.java | 9 +
.../CacheAbstractQueryMetricsSelfTest.java | 6 +-
...titionedCacheJtaLookupClassNameSelfTest.java | 4 +-
.../ignite/testsuites/IgniteJtaTestSuite.java | 3 +-
.../p2p/GridP2PUserVersionChangeSelfTest.java | 7 +-
.../testsuites/IgniteResourceSelfTestSuite.java | 11 +-
.../testsuites/IgniteSpringTestSuite.java | 15 +-
33 files changed, 676 insertions(+), 124 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/36087cfa/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/36087cfa/modules/spring/src/test/java/org/apache/ignite/testsuites/IgniteSpringTestSuite.java
----------------------------------------------------------------------
diff --cc modules/spring/src/test/java/org/apache/ignite/testsuites/IgniteSpringTestSuite.java
index 135714f,fff8108..671d339
--- a/modules/spring/src/test/java/org/apache/ignite/testsuites/IgniteSpringTestSuite.java
+++ b/modules/spring/src/test/java/org/apache/ignite/testsuites/IgniteSpringTestSuite.java
@@@ -46,10 -46,9 +47,10 @@@ public class IgniteSpringTestSuite exte
* @throws Exception Thrown in case of the failure.
*/
public static TestSuite suite() throws Exception {
- TestSuite suite = new TestSuite("Spring Test Suite");
+ TestSuite suite = new IgniteTestSuite("Spring Test Suite");
suite.addTestSuite(GridSpringBeanSerializationSelfTest.class);
+ suite.addTestSuite(IgniteSpringBeanTest.class);
suite.addTestSuite(GridFactorySelfTest.class);
suite.addTest(IgniteResourceSelfTestSuite.suite());
[34/50] [abbrv] ignite git commit: IGNITE-3820: .NET: Added log4net
integration. This closes #1138.
Posted by sh...@apache.org.
IGNITE-3820: .NET: Added log4net integration. This closes #1138.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/02f48d72
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/02f48d72
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/02f48d72
Branch: refs/heads/ignite-2788
Commit: 02f48d72364fb0c52e95aef8ed383a14ee531bf6
Parents: 48b293d
Author: ptupitsyn <pt...@gridgain.com>
Authored: Tue Oct 4 11:17:54 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Tue Oct 4 11:17:54 2016 +0300
----------------------------------------------------------------------
.../Apache.Ignite.Core.Tests.NuGet.csproj | 10 +
.../Log4NetTest.cs | 87 +++++++++
.../packages.config | 2 +
.../Apache.Ignite.Core.Tests.csproj | 9 +
.../Log/Log4NetLoggerTest.cs | 188 +++++++++++++++++++
.../Apache.Ignite.Core.Tests/packages.config | 24 +++
.../Apache.Ignite.Log4Net.csproj | 76 ++++++++
.../Apache.Ignite.Log4Net.nuspec | 50 +++++
.../Apache.Ignite.Log4Net.snk | Bin 0 -> 596 bytes
.../IgniteLog4NetLogger.cs | 123 ++++++++++++
.../Properties/AssemblyInfo.cs | 40 ++++
.../Apache.Ignite.Log4Net/packages.config | 20 ++
.../Properties/AssemblyInfo.cs | 2 +-
modules/platforms/dotnet/Apache.Ignite.sln | 16 +-
14 files changed, 645 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
index f3f917e..335d711 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
@@ -90,6 +90,11 @@
<HintPath>packages\Apache.Ignite.NLog.1.8.0\lib\net40\Apache.Ignite.NLog.dll</HintPath>
<Private>True</Private>
</Reference>
+ <Reference Include="Apache.Ignite.Log4Net">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>packages\Apache.Ignite.Log4Net.1.8.0\lib\net40\Apache.Ignite.Log4Net.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>packages\NLog.4.3.7\lib\net40\NLog.dll</HintPath>
<Private>True</Private>
@@ -105,6 +110,10 @@
<HintPath>packages\Remotion.Linq.2.0.1\lib\net40\Remotion.Linq.dll</HintPath>
<Private>True</Private>
</Reference>
+ <Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>packages\log4net.2.0.5\lib\net40-full\log4net.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
@@ -112,6 +121,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="Log4NetTest.cs" />
<Compile Include="NLogTest.cs" />
<Compile Include="AspNetTest.cs" />
<Compile Include="ComputeTest.cs" />
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Log4NetTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Log4NetTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Log4NetTest.cs
new file mode 100644
index 0000000..c53ea28
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Log4NetTest.cs
@@ -0,0 +1,87 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.NuGet
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using Apache.Ignite.Core.Log;
+ using Apache.Ignite.Log4Net;
+ using global::log4net;
+ using global::log4net.Appender;
+ using global::log4net.Core;
+ using global::log4net.Repository.Hierarchy;
+ using NUnit.Framework;
+
+ /// <summary>
+ /// log4net tests.
+ /// </summary>
+ public class Log4NetTest
+ {
+ /// <summary>
+ /// Tests the logger with Ignite.
+ /// </summary>
+ [Test]
+ public void TestIgniteStartup()
+ {
+ var memoryLog = CreateMemoryLogger();
+ var logger = new IgniteLog4NetLogger();
+
+ var cfg = new IgniteConfiguration
+ {
+ DiscoverySpi = TestUtil.GetLocalDiscoverySpi(),
+ Logger = logger
+ };
+
+ Func<IEnumerable<string>> getLogs = () => memoryLog.GetEvents().Select(x => x.MessageObject.ToString());
+
+ using (var ignite = Ignition.Start(cfg))
+ {
+ Assert.IsTrue(getLogs().Contains(
+ string.Format("Starting Ignite.NET {0}", typeof(Ignition).Assembly.GetName().Version)));
+
+ Assert.IsTrue(getLogs().Any(x => x.Contains(">>> Topology snapshot.")));
+
+ Assert.IsInstanceOf<IgniteLog4NetLogger>(ignite.Logger);
+
+ ignite.Logger.Info("Log from user code.");
+
+ Assert.IsTrue(getLogs().Contains("Log from user code."));
+ }
+
+ Assert.IsTrue(getLogs().Contains("Grid is stopping."));
+ }
+
+ /// <summary>
+ /// Creates the memory logger.
+ /// </summary>
+ private static MemoryAppender CreateMemoryLogger()
+ {
+ var hierarchy = (Hierarchy) LogManager.GetRepository();
+
+ var memory = new MemoryAppender();
+ memory.ActivateOptions();
+ hierarchy.Root.AddAppender(memory);
+
+ hierarchy.Root.Level = Level.All;
+ hierarchy.Configured = true;
+
+ return memory;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
index 30e71a1..80454e0 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
@@ -20,8 +20,10 @@
<package id="Apache.Ignite.AspNet" version="1.8.0" targetFramework="net40" />
<package id="Apache.Ignite.Linq" version="1.8.0" targetFramework="net40" />
<package id="Apache.Ignite.NLog" version="1.8.0" targetFramework="net40" />
+ <package id="Apache.Ignite.Log4Net" version="1.8.0" targetFramework="net40" />
<package id="Apache.Ignite.Schema" version="1.8.0" targetFramework="net40" />
<package id="NLog" version="4.3.7" targetFramework="net40" />
<package id="NUnit.Runners" version="2.6.3" targetFramework="net40" />
<package id="Remotion.Linq" version="2.0.1" targetFramework="net40" />
+ <package id="log4net" version="2.0.5" targetFramework="net40" />
</packages>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index ef62498..008229a 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@ -37,6 +37,10 @@
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
+ <Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\packages\log4net.2.0.5\lib\net40-full\log4net.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="NLog">
<HintPath>..\packages\NLog.4.3.7\lib\net40\NLog.dll</HintPath>
@@ -58,6 +62,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Log\DefaultLoggerTest.cs" />
+ <Compile Include="Log\Log4NetLoggerTest.cs" />
<Compile Include="Log\NLogLoggerTest.cs" />
<Compile Include="TestAppConfig.cs" />
<Compile Include="Binary\BinaryBuilderSelfTestFullFooter.cs" />
@@ -180,6 +185,10 @@
<Project>{5b571661-17f4-4f29-8c7d-0edb38ca9b55}</Project>
<Name>Apache.Ignite.Linq</Name>
</ProjectReference>
+ <ProjectReference Include="..\Apache.Ignite.log4net\Apache.Ignite.Log4Net.csproj">
+ <Project>{6F82D669-382E-4435-8092-68C4440146D8}</Project>
+ <Name>Apache.Ignite.Log4Net</Name>
+ </ProjectReference>
<ProjectReference Include="..\Apache.Ignite.NLog\Apache.Ignite.NLog.csproj">
<Project>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</Project>
<Name>Apache.Ignite.NLog</Name>
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/Log4NetLoggerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/Log4NetLoggerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/Log4NetLoggerTest.cs
new file mode 100644
index 0000000..2b28439
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/Log4NetLoggerTest.cs
@@ -0,0 +1,188 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.Log
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Globalization;
+ using System.Linq;
+ using Apache.Ignite.Core.Log;
+ using Apache.Ignite.Log4Net;
+ using global::log4net;
+ using global::log4net.Appender;
+ using global::log4net.Core;
+ using global::log4net.Repository.Hierarchy;
+ using NUnit.Framework;
+
+ /// <summary>
+ /// Tests for <see cref="IgniteLog4NetLogger"/>.
+ /// </summary>
+ public class Log4NetLoggerTest
+ {
+ /// <summary>
+ /// Tests the log level conversion.
+ /// </summary>
+ [Test]
+ public void TestLogLevelConversion()
+ {
+ var levels = new[] { LogLevel.Trace, LogLevel.Info, LogLevel.Debug, LogLevel.Warn, LogLevel.Error };
+
+ foreach (var igniteLevel in levels)
+ {
+ var log4NetLevel = IgniteLog4NetLogger.ConvertLogLevel(igniteLevel);
+
+ Assert.AreEqual(igniteLevel.ToString().ToUpperInvariant(), log4NetLevel.ToString());
+ }
+ }
+
+ /// <summary>
+ /// Tests the logger in isolated environment.
+ /// </summary>
+ [Test]
+ public void TestLogging()
+ {
+ var memoryLog = CreateMemoryLogger();
+ var logger = new IgniteLog4NetLogger();
+
+ Func<LoggingEvent> getLastLog = () => memoryLog.PopAllEvents().Single();
+
+ // All parameters.
+ logger.Log(LogLevel.Trace, "msg{0}", new object[] { 1 }, CultureInfo.InvariantCulture, "category",
+ "java-err", new Exception("myException"));
+
+ var log = getLastLog();
+ Assert.AreEqual("msg1", log.MessageObject.ToString());
+ Assert.AreEqual("category", log.LoggerName);
+ Assert.AreEqual("java-err", log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual("myException", log.ExceptionObject.Message);
+ Assert.AreEqual(Level.Trace, log.Level);
+
+ // No Java error.
+ logger.Log(LogLevel.Info, "msg{0}", new object[] { 1 }, CultureInfo.InvariantCulture, "category",
+ null, new Exception("myException"));
+
+ log = getLastLog();
+ Assert.AreEqual("msg1", log.MessageObject.ToString());
+ Assert.AreEqual("category", log.LoggerName);
+ Assert.AreEqual(null, log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual("myException", log.ExceptionObject.Message);
+ Assert.AreEqual(Level.Info, log.Level);
+
+ // No exception.
+ logger.Log(LogLevel.Debug, "msg{0}", new object[] { 1 }, CultureInfo.InvariantCulture, "category",
+ null, null);
+
+ log = getLastLog();
+ Assert.AreEqual("msg1", log.MessageObject.ToString());
+ Assert.AreEqual("category", log.LoggerName);
+ Assert.AreEqual(null, log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual(null, log.ExceptionObject);
+ Assert.AreEqual(Level.Debug, log.Level);
+
+ // No params.
+ logger.Log(LogLevel.Warn, "msg{0}", null, CultureInfo.InvariantCulture, "category", null, null);
+
+ log = getLastLog();
+ Assert.AreEqual("msg{0}", log.MessageObject.ToString());
+ Assert.AreEqual("category", log.LoggerName);
+ Assert.AreEqual(null, log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual(null, log.ExceptionObject);
+ Assert.AreEqual(Level.Warn, log.Level);
+
+ // No formatter.
+ logger.Log(LogLevel.Error, "msg{0}", null, null, "category", null, null);
+
+ log = getLastLog();
+ Assert.AreEqual("msg{0}", log.MessageObject.ToString());
+ Assert.AreEqual("category", log.LoggerName);
+ Assert.AreEqual(null, log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual(null, log.ExceptionObject);
+ Assert.AreEqual(Level.Error, log.Level);
+
+ // No category.
+ logger.Log(LogLevel.Error, "msg{0}", null, null, null, null, null);
+
+ log = getLastLog();
+ Assert.AreEqual("msg{0}", log.MessageObject.ToString());
+ Assert.AreEqual(null, log.LoggerName);
+ Assert.AreEqual(null, log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual(null, log.ExceptionObject);
+ Assert.AreEqual(Level.Error, log.Level);
+
+ // No message.
+ logger.Log(LogLevel.Error, null, null, null, null, null, null);
+
+ log = getLastLog();
+ Assert.AreEqual(null, log.MessageObject);
+ Assert.AreEqual(null, log.LoggerName);
+ Assert.AreEqual(null, log.Properties["nativeErrorInfo"]);
+ Assert.AreEqual(null, log.ExceptionObject);
+ Assert.AreEqual(Level.Error, log.Level);
+ }
+
+ /// <summary>
+ /// Tests the logger with Ignite.
+ /// </summary>
+ [Test]
+ public void TestIgniteStartup()
+ {
+ var memoryLog = CreateMemoryLogger();
+ var logger = new IgniteLog4NetLogger();
+
+ var cfg = new IgniteConfiguration(TestUtils.GetTestConfiguration())
+ {
+ Logger = logger
+ };
+
+ Func<IEnumerable<string>> getLogs = () => memoryLog.GetEvents().Select(x => x.MessageObject.ToString());
+
+ using (var ignite = Ignition.Start(cfg))
+ {
+ Assert.IsTrue(getLogs().Contains(
+ string.Format("Starting Ignite.NET {0}", typeof(Ignition).Assembly.GetName().Version)));
+
+ Assert.IsTrue(getLogs().Any(x => x.Contains(">>> Topology snapshot.")));
+
+ Assert.IsInstanceOf<IgniteLog4NetLogger>(ignite.Logger);
+
+ ignite.Logger.Info("Log from user code.");
+
+ Assert.IsTrue(getLogs().Contains("Log from user code."));
+ }
+
+ Assert.IsTrue(getLogs().Contains("Grid is stopping."));
+ }
+
+ /// <summary>
+ /// Creates the memory logger.
+ /// </summary>
+ private static MemoryAppender CreateMemoryLogger()
+ {
+ var hierarchy = (Hierarchy) LogManager.GetRepository();
+
+ var memory = new MemoryAppender();
+ memory.ActivateOptions();
+ hierarchy.Root.AddAppender(memory);
+
+ hierarchy.Root.Level = Level.All;
+ hierarchy.Configured = true;
+
+ return memory;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
new file mode 100644
index 0000000..d369a35
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/packages.config
@@ -0,0 +1,24 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+
+<!--
+ 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.
+-->
+
+<packages>
+ <package id="NUnit.Runners" version="2.6.3" targetFramework="net40" />
+ <package id="log4net" version="2.0.5" targetFramework="net40" />
+ <package id="NLog" version="4.3.7" targetFramework="net40" />
+</packages>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.csproj b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.csproj
new file mode 100644
index 0000000..0fdd611
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.csproj
@@ -0,0 +1,76 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{6F82D669-382E-4435-8092-68C4440146D8}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Apache.Ignite.Log4Net</RootNamespace>
+ <AssemblyName>Apache.Ignite.Log4Net</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <RunCodeAnalysis>true</RunCodeAnalysis>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup>
+ <SignAssembly>true</SignAssembly>
+ </PropertyGroup>
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>Apache.Ignite.Log4Net.snk</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="log4net, Version=1.2.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
+ <HintPath>..\packages\log4net.2.0.5\lib\net40-full\log4net.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="IgniteLog4NetLogger.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Apache.Ignite.Core\Apache.Ignite.Core.csproj">
+ <Project>{4CD2F726-7E2B-46C4-A5BA-057BB82EECB6}</Project>
+ <Name>Apache.Ignite.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Apache.Ignite.Log4Net.snk" />
+ <None Include="Apache.Ignite.Log4Net.nuspec" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.nuspec
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.nuspec b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.nuspec
new file mode 100644
index 0000000..fa5c39a
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.nuspec
@@ -0,0 +1,50 @@
+<?xml version="1.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.
+-->
+
+<!--
+
+Creating NuGet package:
+1) Build Apache.Ignite.sln (AnyCPU configuration)
+2) Create package (use csproj instead of nuspec so that template substitution works):
+ nuget pack Apache.Ignite.Log4Net.csproj -Prop Configuration=Release -Prop Platform=AnyCPU
+
+-->
+
+<package >
+ <metadata>
+ <id>Apache.Ignite.Log4Net</id>
+ <title>Apache Ignite log4net Logger</title>
+ <!-- -->
+ <version>$version$</version>
+ <authors>Apache Ignite</authors>
+ <owners>Apache Software Foundation</owners>
+ <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
+ <projectUrl>https://ignite.apache.org/</projectUrl>
+ <iconUrl>https://ignite.apache.org/images/logo_ignite_32_32.png</iconUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <description>log4net Logger for Apache Ignite</description>
+ <releaseNotes></releaseNotes>
+ <copyright>Copyright 2016</copyright>
+ <tags>Apache Ignite In-Memory Distributed Computing SQL NoSQL LINQ Grid Map Reduce Cache log4net logger</tags>
+ <dependencies>
+ <dependency id="Apache.Ignite" version="[$version$]" />
+ <dependency id="log4net" version="[2.0.0, 3.0.0)" />
+ </dependencies>
+ </metadata>
+</package>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.snk
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.snk b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.snk
new file mode 100644
index 0000000..a4d1622
Binary files /dev/null and b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Apache.Ignite.Log4Net.snk differ
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Log4Net/IgniteLog4NetLogger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Log4Net/IgniteLog4NetLogger.cs b/modules/platforms/dotnet/Apache.Ignite.Log4Net/IgniteLog4NetLogger.cs
new file mode 100644
index 0000000..058176f
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Log4Net/IgniteLog4NetLogger.cs
@@ -0,0 +1,123 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Log4Net
+{
+ using System;
+ using Apache.Ignite.Core.Impl.Common;
+ using Apache.Ignite.Core.Log;
+ using global::log4net;
+ using global::log4net.Core;
+ using global::log4net.Util;
+ using ILogger = Apache.Ignite.Core.Log.ILogger;
+
+ /// <summary>
+ /// Ignite log4net integration.
+ /// </summary>
+ public class IgniteLog4NetLogger : ILogger
+ {
+ /** Wrapped log4net log. */
+ private readonly ILog _log;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="IgniteLog4NetLogger"/> class.
+ /// </summary>
+ public IgniteLog4NetLogger() : this (LogManager.GetLogger(typeof(IgniteLog4NetLogger)))
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="IgniteLog4NetLogger"/> class.
+ /// </summary>
+ /// <param name="log">The log.</param>
+ public IgniteLog4NetLogger(ILog log)
+ {
+ IgniteArgumentCheck.NotNull(log, "log");
+
+ _log = log;
+ }
+
+ /// <summary>
+ /// Logs the specified message.
+ /// </summary>
+ /// <param name="logLevel">The level.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments to format <paramref name="message" />.
+ /// Can be null (formatting will not occur).</param>
+ /// <param name="formatProvider">The format provider. Can be null if <paramref name="args" /> is null.</param>
+ /// <param name="category">The logging category name.</param>
+ /// <param name="nativeErrorInfo">The native error information.</param>
+ /// <param name="ex">The exception. Can be null.</param>
+ public void Log(LogLevel logLevel, string message, object[] args, IFormatProvider formatProvider,
+ string category, string nativeErrorInfo, Exception ex)
+ {
+ var level = ConvertLogLevel(logLevel);
+
+ var repo = _log.Logger.Repository;
+
+ var messageObject = args == null
+ ? (object) message
+ : new SystemStringFormat(formatProvider, message, args);
+
+ var evt = new LoggingEvent(GetType(), repo, category, level, messageObject, ex);
+
+ if (nativeErrorInfo != null)
+ evt.Properties["nativeErrorInfo"] = nativeErrorInfo;
+
+ _log.Logger.Log(evt);
+ }
+
+ /// <summary>
+ /// Determines whether the specified log level is enabled.
+ /// </summary>
+ /// <param name="logLevel">The level.</param>
+ /// <returns>
+ /// Value indicating whether the specified log level is enabled
+ /// </returns>
+ public bool IsEnabled(LogLevel logLevel)
+ {
+ var level = ConvertLogLevel(logLevel);
+
+ return _log.Logger.IsEnabledFor(level);
+ }
+
+ /// <summary>
+ /// Converts the Ignite LogLevel to the log4net log level.
+ /// </summary>
+ /// <param name="level">The Ignite log level.</param>
+ /// <returns>Corresponding log4net log level.</returns>
+ public static Level ConvertLogLevel(LogLevel level)
+ {
+ switch (level)
+ {
+ case LogLevel.Trace:
+ return Level.Trace;
+ case LogLevel.Debug:
+ return Level.Debug;
+ case LogLevel.Info:
+ return Level.Info;
+ case LogLevel.Warn:
+ return Level.Warn;
+ case LogLevel.Error:
+ return Level.Error;
+ default:
+ throw new ArgumentOutOfRangeException("level", level, null);
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Log4Net/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Log4Net/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..bb8e830
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Log4Net/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+\ufeff/*
+* 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.
+*/
+
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Apache.Ignite.Log4Net")]
+[assembly: AssemblyDescription("Apache Ignite.NET log4net integration.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("Apache Ignite.NET")]
+[assembly: AssemblyCopyright("Copyright � 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("6f82d669-382e-4435-8092-68c4440146d8")]
+
+[assembly: AssemblyVersion("1.8.0.14218")]
+[assembly: AssemblyFileVersion("1.8.0.14218")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
+
+[assembly: CLSCompliant(true)]
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.Log4Net/packages.config
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Log4Net/packages.config b/modules/platforms/dotnet/Apache.Ignite.Log4Net/packages.config
new file mode 100644
index 0000000..e1e44b8
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Log4Net/packages.config
@@ -0,0 +1,20 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<!--
+ 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.
+-->
+<packages>
+ <package id="log4net" version="2.0.5" targetFramework="net40" />
+</packages>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
index baaa60d..50220d2 100644
--- a/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
@@ -24,7 +24,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Apache Software Foundation")]
[assembly: AssemblyProduct("Apache Ignite.NET")]
-[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyCopyright("Copyright � 2016")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
http://git-wip-us.apache.org/repos/asf/ignite/blob/02f48d72/modules/platforms/dotnet/Apache.Ignite.sln
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.sln b/modules/platforms/dotnet/Apache.Ignite.sln
index 2978780..de7cf19 100644
--- a/modules/platforms/dotnet/Apache.Ignite.sln
+++ b/modules/platforms/dotnet/Apache.Ignite.sln
@@ -36,9 +36,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.Linq", "Apach
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet", "Apache.Ignite.AspNet\Apache.Ignite.AspNet.csproj", "{13EA96FC-CC83-4164-A7C0-4F30ED797460}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apache.Ignite.NLog\Apache.Ignite.NLog.csproj", "{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet.Tests", "Apache.Ignite.AspNet.Tests\Apache.Ignite.AspNet.Tests.csproj", "{18EA4C71-A11D-4AB1-8042-418F7559D84F}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apache.Ignite.NLog\Apache.Ignite.NLog.csproj", "{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.Log4Net", "Apache.Ignite.log4net\Apache.Ignite.Log4Net.csproj", "{6F82D669-382E-4435-8092-68C4440146D8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -202,6 +204,18 @@ Global
{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x64.Build.0 = Release|Any CPU
{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x86.ActiveCfg = Release|Any CPU
{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x86.Build.0 = Release|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Debug|x64.Build.0 = Debug|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Debug|x86.Build.0 = Debug|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Release|x64.ActiveCfg = Release|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Release|x64.Build.0 = Release|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Release|x86.ActiveCfg = Release|Any CPU
+ {6F82D669-382E-4435-8092-68C4440146D8}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
[35/50] [abbrv] ignite git commit: IGNITE-3841 Web console added
check for eviction policy max mem and max size consistency. Fixes #1136.
Posted by sh...@apache.org.
IGNITE-3841 Web console added check for eviction policy max mem and max size consistency. Fixes #1136.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bfdb5c3b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bfdb5c3b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bfdb5c3b
Branch: refs/heads/ignite-2788
Commit: bfdb5c3b374fd3512481cf16779d227d7f96e569
Parents: 02f48d7
Author: Saikat Maitra <sa...@gmail.com>
Authored: Tue Oct 4 16:40:35 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Tue Oct 4 16:40:35 2016 +0700
----------------------------------------------------------------------
.../frontend/controllers/caches-controller.js | 14 ++++++++++++++
1 file changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/bfdb5c3b/modules/web-console/frontend/controllers/caches-controller.js
----------------------------------------------------------------------
diff --git a/modules/web-console/frontend/controllers/caches-controller.js b/modules/web-console/frontend/controllers/caches-controller.js
index 9873051..8c32906 100644
--- a/modules/web-console/frontend/controllers/caches-controller.js
+++ b/modules/web-console/frontend/controllers/caches-controller.js
@@ -292,6 +292,17 @@ export default ['cachesController', [
return true;
}
+ function checkEvictionPolicy(evictionPlc) {
+ if (evictionPlc && evictionPlc.kind) {
+ const plc = evictionPlc[evictionPlc.kind];
+
+ if (plc.maxMemorySize === 0 && plc.maxSize === 0)
+ return ErrorPopover.show('evictionPolicymaxMemorySizeInput', 'Either maximum memory size or maximum size should be great than 0!', $scope.ui, 'memory');
+ }
+
+ return true;
+ }
+
function checkSQLSchemas() {
const clusters = cacheClusters();
@@ -367,6 +378,9 @@ export default ['cachesController', [
if (item.memoryMode === 'OFFHEAP_TIERED' && item.offHeapMaxMemory === -1)
return ErrorPopover.show('offHeapModeInput', 'Invalid value!', $scope.ui, 'memory');
+ if (!checkEvictionPolicy(item.evictionPolicy))
+ return false;
+
if (!checkSQLSchemas())
return false;
[18/50] [abbrv] ignite git commit: IGNITE-4007 Fixed update of
QueryMetrics.minimumTime() metric. Tests added. Added Visor reset metrics
task.
Posted by sh...@apache.org.
IGNITE-4007 Fixed update of QueryMetrics.minimumTime() metric. Tests added. Added Visor reset metrics task.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c32082fe
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c32082fe
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c32082fe
Branch: refs/heads/ignite-2788
Commit: c32082fe8b1e02758179c1b7bb61a75be53534fe
Parents: f447559
Author: Alexey Kuznetsov <ak...@apache.org>
Authored: Fri Sep 30 15:20:11 2016 +0700
Committer: Alexey Kuznetsov <ak...@apache.org>
Committed: Fri Sep 30 15:20:11 2016 +0700
----------------------------------------------------------------------
.../query/GridCacheQueryMetricsAdapter.java | 12 ++--
.../cache/VisorCacheResetQueryMetricsTask.java | 69 ++++++++++++++++++++
.../CacheAbstractQueryMetricsSelfTest.java | 6 +-
3 files changed, 80 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c32082fe/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
index 1928ea5..e70ea9f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryMetricsAdapter.java
@@ -34,7 +34,7 @@ public class GridCacheQueryMetricsAdapter implements QueryMetrics, Externalizabl
private static final long serialVersionUID = 0L;
/** Minimum time of execution. */
- private final GridAtomicLong minTime = new GridAtomicLong();
+ private final GridAtomicLong minTime = new GridAtomicLong(Long.MAX_VALUE);
/** Maximum time of execution. */
private final GridAtomicLong maxTime = new GridAtomicLong();
@@ -58,7 +58,9 @@ public class GridCacheQueryMetricsAdapter implements QueryMetrics, Externalizabl
/** {@inheritDoc} */
@Override public long minimumTime() {
- return minTime.get();
+ long min = minTime.get();
+
+ return min == Long.MAX_VALUE ? 0 : min;
}
/** {@inheritDoc} */
@@ -71,9 +73,9 @@ public class GridCacheQueryMetricsAdapter implements QueryMetrics, Externalizabl
if (avgTime > 0)
return avgTime;
else {
- long val = completed.sum();
+ double val = completed.sum();
- return val > 0 ? sumTime.sum() / val : 0;
+ return val > 0 ? sumTime.sum() / val : 0.0;
}
}
@@ -170,4 +172,4 @@ public class GridCacheQueryMetricsAdapter implements QueryMetrics, Externalizabl
@Override public String toString() {
return S.toString(GridCacheQueryMetricsAdapter.class, this);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/c32082fe/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java
new file mode 100644
index 0000000..96d9857
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheResetQueryMetricsTask.java
@@ -0,0 +1,69 @@
+/*
+ * 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.visor.cache;
+
+import org.apache.ignite.internal.processors.cache.IgniteInternalCache;
+import org.apache.ignite.internal.processors.task.GridInternal;
+import org.apache.ignite.internal.util.typedef.internal.S;
+import org.apache.ignite.internal.visor.VisorJob;
+import org.apache.ignite.internal.visor.VisorOneNodeTask;
+
+/**
+ * Reset compute grid query metrics.
+ */
+@GridInternal
+public class VisorCacheResetQueryMetricsTask extends VisorOneNodeTask<String, Void> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /** {@inheritDoc} */
+ @Override protected VisorCacheResetQueryMetricsJob job(String arg) {
+ return new VisorCacheResetQueryMetricsJob(arg, debug);
+ }
+
+ /**
+ * Job that reset cache query metrics.
+ */
+ private static class VisorCacheResetQueryMetricsJob extends VisorJob<String, Void> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
+ /**
+ * @param arg Cache name to reset query metrics for.
+ * @param debug Debug flag.
+ */
+ private VisorCacheResetQueryMetricsJob(String arg, boolean debug) {
+ super(arg, debug);
+ }
+
+ /** {@inheritDoc} */
+ @Override protected Void run(String cacheName) {
+ IgniteInternalCache cache = ignite.cachex(cacheName);
+
+ if (cache != null)
+ cache.context().queries().resetMetrics();
+
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public String toString() {
+ return S.toString(VisorCacheResetQueryMetricsJob.class, this);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/c32082fe/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheAbstractQueryMetricsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheAbstractQueryMetricsSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheAbstractQueryMetricsSelfTest.java
index d2d8c4d..10f7612 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheAbstractQueryMetricsSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/CacheAbstractQueryMetricsSelfTest.java
@@ -236,6 +236,7 @@ public abstract class CacheAbstractQueryMetricsSelfTest extends GridCommonAbstra
assertTrue(m.averageTime() >= 0);
assertTrue(m.maximumTime() >= 0);
assertTrue(m.minimumTime() >= 0);
+ assertTrue("On first execution minTime == maxTime", m.minimumTime() == m.maximumTime());
// Execute again with the same parameters.
cache.query(qry).getAll();
@@ -274,6 +275,7 @@ public abstract class CacheAbstractQueryMetricsSelfTest extends GridCommonAbstra
assertTrue(m.averageTime() >= 0);
assertTrue(m.maximumTime() >= 0);
assertTrue(m.minimumTime() >= 0);
+ assertTrue("On first execution minTime == maxTime", m.minimumTime() == m.maximumTime());
// Execute again with the same parameters.
cache.query(qry).iterator().next();
@@ -301,7 +303,7 @@ public abstract class CacheAbstractQueryMetricsSelfTest extends GridCommonAbstra
try {
cache.query(qry).getAll();
}
- catch (Exception e) {
+ catch (Exception ignored) {
// No-op.
}
@@ -320,7 +322,7 @@ public abstract class CacheAbstractQueryMetricsSelfTest extends GridCommonAbstra
try {
cache.query(qry).getAll();
}
- catch (Exception e) {
+ catch (Exception ignored) {
// No-op.
}
[11/50] [abbrv] ignite git commit: GridNearCacheAdapter,
GridDhtCacheAdapter - test fix
Posted by sh...@apache.org.
GridNearCacheAdapter, GridDhtCacheAdapter - test fix
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/22dc2c9e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/22dc2c9e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/22dc2c9e
Branch: refs/heads/ignite-2788
Commit: 22dc2c9e05e5183f838865023c9cb7a8291ac67f
Parents: ad613af
Author: Alexander Paschenko <al...@gmail.com>
Authored: Thu Sep 29 15:43:20 2016 +0300
Committer: Alexander Paschenko <al...@gmail.com>
Committed: Thu Sep 29 15:43:59 2016 +0300
----------------------------------------------------------------------
.../cache/distributed/dht/GridDhtCacheAdapter.java | 12 ++++++++++++
.../cache/distributed/near/GridNearCacheAdapter.java | 12 ++++++++++++
2 files changed, 24 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/22dc2c9e/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 35e6267..8ced02f 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
@@ -261,6 +261,18 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
*/
public abstract GridNearCacheAdapter<K, V> near();
+ /** {@inheritDoc} */
+ @Override public void forceKeyCheck() {
+ if (!keyCheck) {
+ super.forceKeyCheck();
+
+ GridNearCacheAdapter near = near();
+
+ if (near != null)
+ near.forceKeyCheck();
+ }
+ }
+
/**
* @return Partition topology.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/22dc2c9e/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 dd66a33..6acf48e 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
@@ -115,6 +115,18 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda
public abstract GridDhtCacheAdapter<K, V> dht();
/** {@inheritDoc} */
+ @Override public void forceKeyCheck() {
+ if (!keyCheck) {
+ super.forceKeyCheck();
+
+ GridDhtCacheAdapter dht = dht();
+
+ if (dht != null)
+ dht.forceKeyCheck();
+ }
+ }
+
+ /** {@inheritDoc} */
@Override public void onReconnected() {
map = new GridCacheConcurrentMapImpl(
ctx,
[07/50] [abbrv] ignite git commit: Added node stop to
IgniteCacheExpireAndUpdateConsistencyTest.
Posted by sh...@apache.org.
Added node stop to IgniteCacheExpireAndUpdateConsistencyTest.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3e8a1c6b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3e8a1c6b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3e8a1c6b
Branch: refs/heads/ignite-2788
Commit: 3e8a1c6b045c231dbb3c972463000f824386aee9
Parents: b280c3e
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Thu Sep 29 11:08:23 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Thu Sep 29 11:08:23 2016 +0300
----------------------------------------------------------------------
.../cache/IgniteCacheExpireAndUpdateConsistencyTest.java | 7 +++++++
1 file changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3e8a1c6b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
index 7f54a83..882ed22 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheExpireAndUpdateConsistencyTest.java
@@ -97,6 +97,13 @@ public class IgniteCacheExpireAndUpdateConsistencyTest extends GridCommonAbstrac
assertTrue(client.configuration().isClientMode());
}
+ /** {@inheritDoc} */
+ @Override protected void afterTestsStopped() throws Exception {
+ stopAllGrids();
+
+ super.afterTestsStopped();
+ }
+
/**
* @throws Exception If failed.
*/
[40/50] [abbrv] ignite git commit: ignite-3722 Cached in a file text
must be written with UTF-8 charset, not default. This closes #1144.
Posted by sh...@apache.org.
ignite-3722 Cached in a file text must be written with UTF-8 charset, not default. This closes #1144.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/5afd6546
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/5afd6546
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/5afd6546
Branch: refs/heads/ignite-2788
Commit: 5afd6546f6ed650ad0db8d7ce83944188902b805
Parents: 3271d75
Author: Saikat Maitra <sa...@gmail.com>
Authored: Thu Oct 6 08:42:45 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Oct 6 08:42:45 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/MarshallerContextImpl.java | 7 +-
.../marshaller/MarshallerContextSelfTest.java | 90 ++++++++++++++++++++
.../ignite/testsuites/IgniteBasicTestSuite.java | 2 +
3 files changed, 96 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/5afd6546/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java
index 0420e18..5f1622d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/MarshallerContextImpl.java
@@ -28,6 +28,7 @@ import java.io.Writer;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;
import java.nio.channels.OverlappingFileLockException;
+import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadLocalRandom;
@@ -179,7 +180,7 @@ public class MarshallerContextImpl extends MarshallerContextAdapter {
}
/** {@inheritDoc} */
- @Override protected String className(int id) throws IgniteCheckedException {
+ @Override public String className(int id) throws IgniteCheckedException {
GridCacheAdapter<Integer, String> cache0 = cache;
if (cache0 == null) {
@@ -208,7 +209,7 @@ public class MarshallerContextImpl extends MarshallerContextAdapter {
assert fileLock != null : fileName;
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(in))) {
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))) {
clsName = reader.readLine();
}
}
@@ -297,7 +298,7 @@ public class MarshallerContextImpl extends MarshallerContextAdapter {
assert fileLock != null : fileName;
- try (Writer writer = new OutputStreamWriter(out)) {
+ try (Writer writer = new OutputStreamWriter(out, StandardCharsets.UTF_8)) {
writer.write(evt.getValue());
writer.flush();
http://git-wip-us.apache.org/repos/asf/ignite/blob/5afd6546/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextSelfTest.java b/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextSelfTest.java
new file mode 100644
index 0000000..f61a2aa
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/marshaller/MarshallerContextSelfTest.java
@@ -0,0 +1,90 @@
+/*
+ * 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.marshaller;
+
+import java.io.File;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import javax.cache.event.EventType;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.internal.IgniteKernal;
+import org.apache.ignite.internal.MarshallerContextImpl;
+import org.apache.ignite.internal.processors.cache.IgniteCacheProxy;
+import org.apache.ignite.internal.processors.cache.query.continuous.CacheContinuousQueryManager;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import static java.nio.file.Files.readAllBytes;
+
+/**
+ * Test marshaller context.
+ */
+public class MarshallerContextSelfTest extends GridCommonAbstractTest {
+ /**
+ * @throws Exception If failed.
+ */
+ public void testClassName() throws Exception {
+ File workDir = U.resolveWorkDirectory("marshaller", false);
+
+ final MarshallerContextImpl.ContinuousQueryListener queryListener =
+ new MarshallerContextImpl.ContinuousQueryListener(log, workDir);
+
+ final ArrayList evts = new ArrayList<>();
+
+ IgniteCacheProxy cache = new IgniteCacheProxy();
+
+ evts.add(new CacheContinuousQueryManager.CacheEntryEventImpl(cache,
+ EventType.CREATED,
+ 1,
+ String.class.getName()));
+
+ queryListener.onUpdated(evts);
+
+ try (Ignite g1 = startGrid(1)) {
+ MarshallerContextImpl marshCtx = ((IgniteKernal)g1).context().marshallerContext();
+ String clsName = marshCtx.className(1);
+
+ assertEquals("java.lang.String", clsName);
+ }
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testOnUpdated() throws Exception {
+ File workDir = U.resolveWorkDirectory("marshaller", false);
+
+ final MarshallerContextImpl.ContinuousQueryListener queryListener =
+ new MarshallerContextImpl.ContinuousQueryListener(log, workDir);
+
+ final ArrayList evts = new ArrayList<>();
+
+ IgniteCacheProxy cache = new IgniteCacheProxy();
+
+ evts.add(new CacheContinuousQueryManager.CacheEntryEventImpl(cache,
+ EventType.CREATED,
+ 1,
+ String.class.getName()));
+
+ queryListener.onUpdated(evts);
+
+ String fileName = "1.classname";
+
+ assertEquals("java.lang.String", new String(readAllBytes(Paths.get(workDir + "/" + fileName))));
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/5afd6546/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
index 2717b06..3dca5e1 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBasicTestSuite.java
@@ -51,6 +51,7 @@ import org.apache.ignite.internal.product.GridProductVersionSelfTest;
import org.apache.ignite.internal.util.nio.IgniteExceptionInNioWorkerSelfTest;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.marshaller.DynamicProxySerializationMultiJvmSelfTest;
+import org.apache.ignite.marshaller.MarshallerContextSelfTest;
import org.apache.ignite.messaging.GridMessagingNoPeerClassLoadingSelfTest;
import org.apache.ignite.messaging.GridMessagingSelfTest;
import org.apache.ignite.messaging.IgniteMessagingWithClientTest;
@@ -143,6 +144,7 @@ public class IgniteBasicTestSuite extends TestSuite {
suite.addTestSuite(NotStringSystemPropertyTest.class);
suite.addTestSuite(MarshallerContextLockingSelfTest.class);
+ suite.addTestSuite(MarshallerContextSelfTest.class);
return suite;
}
[05/50] [abbrv] ignite git commit: IGNITE-3191 - Fixed ordering of
fields in binary objects
Posted by sh...@apache.org.
IGNITE-3191 - Fixed ordering of fields in binary objects
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d1e3a78a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d1e3a78a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d1e3a78a
Branch: refs/heads/ignite-2788
Commit: d1e3a78ae569fa5d5692816db44f2c677e1b8283
Parents: e3dfdec
Author: Valentin Kulichenko <va...@gmail.com>
Authored: Wed Sep 28 17:53:42 2016 -0700
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Wed Sep 28 17:53:42 2016 -0700
----------------------------------------------------------------------
.../internal/binary/BinaryClassDescriptor.java | 16 ++--
.../binary/builder/BinaryObjectBuilderImpl.java | 24 ++---
.../binary/BinaryFieldOrderSelfTest.java | 98 ++++++++++++++++++++
.../IgniteBinaryObjectsTestSuite.java | 2 +
4 files changed, 121 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d1e3a78a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
index 4c824d4..276dfe5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
@@ -25,7 +25,6 @@ import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy;
import java.math.BigDecimal;
import java.sql.Timestamp;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -33,6 +32,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+import java.util.TreeMap;
import java.util.UUID;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.binary.BinaryObjectException;
@@ -269,10 +269,9 @@ public class BinaryClassDescriptor {
case OBJECT:
// Must not use constructor to honor transient fields semantics.
ctor = null;
- ArrayList<BinaryFieldAccessor> fields0 = new ArrayList<>();
stableFieldsMeta = metaDataEnabled ? new HashMap<String, Integer>() : null;
- BinarySchema.Builder schemaBuilder = BinarySchema.Builder.newBuilder();
+ Map<String, BinaryFieldAccessor> fields0 = new TreeMap<>();
Set<String> duplicates = duplicateFields(cls);
@@ -300,9 +299,7 @@ public class BinaryClassDescriptor {
BinaryFieldAccessor fieldInfo = BinaryFieldAccessor.create(f, fieldId);
- fields0.add(fieldInfo);
-
- schemaBuilder.addField(fieldId);
+ fields0.put(name, fieldInfo);
if (metaDataEnabled)
stableFieldsMeta.put(name, fieldInfo.mode().typeId());
@@ -310,7 +307,12 @@ public class BinaryClassDescriptor {
}
}
- fields = fields0.toArray(new BinaryFieldAccessor[fields0.size()]);
+ fields = fields0.values().toArray(new BinaryFieldAccessor[fields0.size()]);
+
+ BinarySchema.Builder schemaBuilder = BinarySchema.Builder.newBuilder();
+
+ for (BinaryFieldAccessor field : fields)
+ schemaBuilder.addField(field.id);
stableSchema = schemaBuilder.build();
http://git-wip-us.apache.org/repos/asf/ignite/blob/d1e3a78a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
index 2c76192..d166051 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
@@ -17,32 +17,32 @@
package org.apache.ignite.internal.binary.builder;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
import org.apache.ignite.binary.BinaryInvalidTypeException;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectBuilder;
import org.apache.ignite.binary.BinaryObjectException;
import org.apache.ignite.binary.BinaryType;
+import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryMetadata;
import org.apache.ignite.internal.binary.BinaryObjectImpl;
-import org.apache.ignite.internal.binary.BinaryWriterExImpl;
-import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.binary.BinaryContext;
+import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
import org.apache.ignite.internal.binary.BinarySchema;
import org.apache.ignite.internal.binary.BinarySchemaRegistry;
-import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
import org.apache.ignite.internal.binary.BinaryUtils;
+import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import org.apache.ignite.internal.binary.GridBinaryMarshaller;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
import org.jetbrains.annotations.Nullable;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-
/**
*
*/
@@ -522,7 +522,7 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
Object val = val0 == null ? new BinaryValueWithType(BinaryUtils.typeByClass(Object.class), null) : val0;
if (assignedVals == null)
- assignedVals = new LinkedHashMap<>();
+ assignedVals = new TreeMap<>();
Object oldVal = assignedVals.put(name, val);
http://git-wip-us.apache.org/repos/asf/ignite/blob/d1e3a78a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
new file mode 100644
index 0000000..6bb1e13
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
@@ -0,0 +1,98 @@
+package org.apache.ignite.internal.binary;
+
+import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ * Test that field ordering doesn't change the schema.
+ */
+public class BinaryFieldOrderSelfTest extends GridCommonAbstractTest {
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setMarshaller(new BinaryMarshaller());
+ cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(new TcpDiscoveryVmIpFinder(true)));
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void beforeTest() throws Exception {
+ startGrid();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected void afterTest() throws Exception {
+ stopAllGrids();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testEquals() throws Exception {
+ IgniteEx ignite = grid();
+
+ BinaryObject bo0 = ignite.binary().toBinary(new MyType(222, 333, 111));
+
+ BinaryObject bo1 = ignite.binary().builder(bo0.type().typeName()).
+ setField("b", 222).
+ setField("c", 333).
+ setField("a", 111).
+ hashCode(12345).
+ build();
+
+ BinaryObject bo2 = ignite.binary().builder(bo0.type().typeName()).
+ setField("a", 111).
+ setField("b", 222).
+ setField("c", 333).
+ hashCode(12345).
+ build();
+
+ assertEquals(12345, bo0.hashCode());
+ assertEquals(12345, bo1.hashCode());
+ assertEquals(12345, bo2.hashCode());
+
+ assertTrue(bo0.equals(bo1));
+ assertTrue(bo0.equals(bo2));
+ assertTrue(bo1.equals(bo2));
+ }
+
+ /**
+ */
+ private static class MyType {
+ /** B. */
+ private int b;
+
+ /** C. */
+ private int c;
+
+ /** A. */
+ private int a;
+
+ /**
+ * @param b B.
+ * @param c C.
+ * @param a A.
+ */
+ MyType(int b, int c, int a) {
+ this.b = b;
+ this.c = c;
+ this.a = a;
+ }
+
+ /** {@inheritDoc} */
+ @Override public boolean equals(Object obj) {
+ return super.equals(obj);
+ }
+
+ /** {@inheritDoc} */
+ @Override public int hashCode() {
+ return 12345;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/d1e3a78a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
index c1d9974..50c6f0b 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
@@ -22,6 +22,7 @@ import org.apache.ignite.internal.binary.BinaryBasicIdMapperSelfTest;
import org.apache.ignite.internal.binary.BinaryBasicNameMapperSelfTest;
import org.apache.ignite.internal.binary.BinaryConfigurationConsistencySelfTest;
import org.apache.ignite.internal.binary.BinaryEnumsSelfTest;
+import org.apache.ignite.internal.binary.BinaryFieldOrderSelfTest;
import org.apache.ignite.internal.binary.BinaryFieldsHeapSelfTest;
import org.apache.ignite.internal.binary.BinaryFieldsOffheapSelfTest;
import org.apache.ignite.internal.binary.BinaryFooterOffsetsHeapSelfTest;
@@ -104,6 +105,7 @@ public class IgniteBinaryObjectsTestSuite extends TestSuite {
suite.addTestSuite(GridBinaryAffinityKeySelfTest.class);
suite.addTestSuite(GridBinaryWildcardsSelfTest.class);
suite.addTestSuite(BinaryObjectToStringSelfTest.class);
+ suite.addTestSuite(BinaryFieldOrderSelfTest.class);
// Tests for objects with non-compact footers.
suite.addTestSuite(BinaryMarshallerNonCompactSelfTest.class);
[30/50] [abbrv] ignite git commit: IGNITE-3279 .NET: NLog logger
Posted by sh...@apache.org.
IGNITE-3279 .NET: NLog logger
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1c82cd04
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1c82cd04
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1c82cd04
Branch: refs/heads/ignite-2788
Commit: 1c82cd04fadc61ab5da02e1d395aedfb28a039da
Parents: ae4ae71
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Tue Aug 23 13:28:40 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 14:08:01 2016 +0300
----------------------------------------------------------------------
.../Apache.Ignite.Core.Tests.NuGet.csproj | 18 +-
.../Apache.Ignite.Core.Tests.NuGet/NLogTest.cs | 82 +++++++++
.../packages.config | 13 +-
.../Apache.Ignite.Core.Tests.csproj | 13 +-
.../IgniteConfigurationSerializerTest.cs | 3 +-
.../Log/NLogLoggerTest.cs | 166 +++++++++++++++++++
.../Apache.Ignite.NLog.csproj | 74 +++++++++
.../Apache.Ignite.NLog.nuspec | 50 ++++++
.../Apache.Ignite.NLog/Apache.Ignite.NLog.snk | Bin 0 -> 596 bytes
.../Apache.Ignite.NLog/IgniteNLogLogger.cs | 125 ++++++++++++++
.../Properties/AssemblyInfo.cs | 40 +++++
.../dotnet/Apache.Ignite.NLog/packages.config | 4 +
modules/platforms/dotnet/Apache.Ignite.sln | 14 ++
13 files changed, 589 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
index 8c4c46b..f3f917e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/Apache.Ignite.Core.Tests.NuGet.csproj
@@ -72,17 +72,26 @@
<ItemGroup>
<Reference Include="Apache.Ignite.Core">
<SpecificVersion>False</SpecificVersion>
- <HintPath>packages\Apache.Ignite.1.6.0\lib\net40\Apache.Ignite.Core.dll</HintPath>
+ <HintPath>packages\Apache.Ignite.1.8.0\lib\net40\Apache.Ignite.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Apache.Ignite.Linq">
<SpecificVersion>False</SpecificVersion>
- <HintPath>packages\Apache.Ignite.Linq.1.6.0\lib\net40\Apache.Ignite.Linq.dll</HintPath>
+ <HintPath>packages\Apache.Ignite.Linq.1.8.0\lib\net40\Apache.Ignite.Linq.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="Apache.Ignite.AspNet">
<SpecificVersion>False</SpecificVersion>
- <HintPath>packages\Apache.Ignite.AspNet.1.6.0\lib\net40\Apache.Ignite.AspNet.dll</HintPath>
+ <HintPath>packages\Apache.Ignite.AspNet.1.8.0\lib\net40\Apache.Ignite.AspNet.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="Apache.Ignite.NLog">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>packages\Apache.Ignite.NLog.1.8.0\lib\net40\Apache.Ignite.NLog.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
+ <HintPath>packages\NLog.4.3.7\lib\net40\NLog.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="nunit-console-runner">
@@ -103,6 +112,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="NLogTest.cs" />
<Compile Include="AspNetTest.cs" />
<Compile Include="ComputeTest.cs" />
<Compile Include="SchemaTest.cs" />
@@ -132,7 +142,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if not exist "$(TargetDir)Libs" md "$(TargetDir)Libs"
-xcopy /s /y "$(SolutionDir)packages\Apache.Ignite.1.6.0\Libs\*.*" "$(TargetDir)Libs"</PostBuildEvent>
+xcopy /s /y "$(SolutionDir)packages\Apache.Ignite.1.8.0\Libs\*.*" "$(TargetDir)Libs"</PostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PreBuildEvent>
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/NLogTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/NLogTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/NLogTest.cs
new file mode 100644
index 0000000..d3c58e1
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/NLogTest.cs
@@ -0,0 +1,82 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.NuGet
+{
+ using System.Linq;
+ using Apache.Ignite.NLog;
+ using global::NLog;
+ using global::NLog.Config;
+ using global::NLog.Layouts;
+ using global::NLog.Targets;
+ using NUnit.Framework;
+
+ /// <summary>
+ /// NLog test.
+ /// </summary>
+ public class NLogTest
+ {
+ /// <summary>
+ /// The log target.
+ /// </summary>
+ private MemoryTarget _logTarget;
+
+ /// <summary>
+ /// Test set up.
+ /// </summary>
+ [SetUp]
+ public void SetUp()
+ {
+ var cfg = new LoggingConfiguration();
+
+ _logTarget = new MemoryTarget("mem")
+ {
+ Layout = new SimpleLayout("${Logger}|${Level}|${Message}|${exception}|${all-event-properties}")
+ };
+
+ cfg.AddTarget(_logTarget);
+
+ cfg.AddRule(LogLevel.Trace, LogLevel.Error, _logTarget);
+
+ LogManager.Configuration = cfg;
+ }
+
+ /// <summary>
+ /// Tests the logger with Ignite.
+ /// </summary>
+ [Test]
+ public void TestIgniteStartup()
+ {
+ var cfg = new IgniteConfiguration
+ {
+ DiscoverySpi = TestUtil.GetLocalDiscoverySpi(),
+ Logger = new IgniteNLogLogger(LogManager.GetCurrentClassLogger())
+ };
+
+ using (Ignition.Start(cfg))
+ {
+ Assert.IsTrue(_logTarget.Logs.Contains(
+ string.Format("|Debug|Starting Ignite.NET {0}||", typeof(Ignition).Assembly.GetName().Version)));
+
+ Assert.IsTrue(_logTarget.Logs.Any(x => x.Contains(">>> Topology snapshot.")));
+ }
+
+ Assert.IsTrue(_logTarget.Logs.Contains(
+ "org.apache.ignite.internal.IgniteKernal|Debug|Grid is stopping.||"));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
index 88d9cc2..30e71a1 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests.NuGet/packages.config
@@ -1,5 +1,4 @@
\ufeff<?xml version="1.0" encoding="utf-8"?>
-
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
@@ -16,11 +15,13 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<packages>
- <package id="Apache.Ignite" version="1.6.0" targetFramework="net40" />
- <package id="Apache.Ignite.Linq" version="1.6.0" targetFramework="net40" />
- <package id="Apache.Ignite.AspNet" version="1.6.0" targetFramework="net40" />
- <package id="Apache.Ignite.Schema" version="1.6.0" targetFramework="net40" />
+ <package id="Apache.Ignite" version="1.8.0" targetFramework="net40" />
+ <package id="Apache.Ignite.AspNet" version="1.8.0" targetFramework="net40" />
+ <package id="Apache.Ignite.Linq" version="1.8.0" targetFramework="net40" />
+ <package id="Apache.Ignite.NLog" version="1.8.0" targetFramework="net40" />
+ <package id="Apache.Ignite.Schema" version="1.8.0" targetFramework="net40" />
+ <package id="NLog" version="4.3.7" targetFramework="net40" />
+ <package id="NUnit.Runners" version="2.6.3" targetFramework="net40" />
<package id="Remotion.Linq" version="2.0.1" targetFramework="net40" />
</packages>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index 2c6150c..ef62498 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@ -38,8 +38,12 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
- <Reference Include="nunit-console-runner">
- <HintPath>..\libs\nunit-console-runner.dll</HintPath>
+ <Reference Include="NLog">
+ <HintPath>..\packages\NLog.4.3.7\lib\net40\NLog.dll</HintPath>
+ </Reference>
+ <Reference Include="nunit-console-runner, Version=2.6.3.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\packages\NUnit.Runners.2.6.3\tools\lib\nunit-console-runner.dll</HintPath>
</Reference>
<Reference Include="nunit.framework, Version=2.6.4.14350, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
@@ -54,6 +58,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Log\DefaultLoggerTest.cs" />
+ <Compile Include="Log\NLogLoggerTest.cs" />
<Compile Include="TestAppConfig.cs" />
<Compile Include="Binary\BinaryBuilderSelfTestFullFooter.cs" />
<Compile Include="Binary\BinaryCompactFooterInteropTest.cs" />
@@ -175,6 +180,10 @@
<Project>{5b571661-17f4-4f29-8c7d-0edb38ca9b55}</Project>
<Name>Apache.Ignite.Linq</Name>
</ProjectReference>
+ <ProjectReference Include="..\Apache.Ignite.NLog\Apache.Ignite.NLog.csproj">
+ <Project>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</Project>
+ <Name>Apache.Ignite.NLog</Name>
+ </ProjectReference>
<ProjectReference Include="..\Apache.Ignite\Apache.Ignite.csproj">
<Project>{27F7F3C6-BDDE-43A9-B565-856F8395A04B}</Project>
<Name>Apache.Ignite</Name>
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
index beb1e8d..bb703f5 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/IgniteConfigurationSerializerTest.cs
@@ -46,6 +46,7 @@ namespace Apache.Ignite.Core.Tests
using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Tests.Binary;
using Apache.Ignite.Core.Transactions;
+ using Apache.Ignite.NLog;
using NUnit.Framework;
/// <summary>
@@ -549,7 +550,7 @@ namespace Apache.Ignite.Core.Tests
},
IsLateAffinityAssignment = false,
SpringConfigUrl = "test",
- Logger = new TestLogger()
+ Logger = new IgniteNLogLogger()
};
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/NLogLoggerTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/NLogLoggerTest.cs b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/NLogLoggerTest.cs
new file mode 100644
index 0000000..7806ecd
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Log/NLogLoggerTest.cs
@@ -0,0 +1,166 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Tests.Log
+{
+ using System;
+ using System.Globalization;
+ using System.Linq;
+ using Apache.Ignite.Core.Log;
+ using Apache.Ignite.NLog;
+ using global::NLog;
+ using global::NLog.Config;
+ using global::NLog.Layouts;
+ using global::NLog.Targets;
+ using NUnit.Framework;
+ using LogLevel = Apache.Ignite.Core.Log.LogLevel;
+
+ /// <summary>
+ /// Tests the NLog integration.
+ /// </summary>
+ public class NLogLoggerTest
+ {
+ /** */
+ private MemoryTarget _logTarget;
+
+ /// <summary>
+ /// Test set up.
+ /// </summary>
+ [SetUp]
+ public void SetUp()
+ {
+ var cfg = new LoggingConfiguration();
+
+ _logTarget = new MemoryTarget("mem")
+ {
+ Layout = new SimpleLayout("${Logger}|${Level}|${Message}|${exception}|${all-event-properties}")
+ };
+
+ cfg.AddTarget(_logTarget);
+
+ cfg.AddRule(global::NLog.LogLevel.Trace, global::NLog.LogLevel.Error, _logTarget);
+
+ LogManager.Configuration = cfg;
+ }
+
+ /// <summary>
+ /// Tests the log level conversion.
+ /// </summary>
+ [Test]
+ public void TestLogLevelConversion()
+ {
+ var levels = new[] { LogLevel.Trace, LogLevel.Info, LogLevel.Debug, LogLevel.Warn, LogLevel.Error };
+
+ var nLogger = new IgniteNLogLogger(LogManager.GetCurrentClassLogger());
+
+ foreach (var igniteLevel in levels)
+ {
+ var nlogLevel = IgniteNLogLogger.ConvertLogLevel(igniteLevel);
+
+ Assert.AreEqual(igniteLevel.ToString(), nlogLevel.ToString());
+
+
+ Assert.IsTrue(nLogger.IsEnabled(igniteLevel));
+ }
+ }
+
+ /// <summary>
+ /// Tests the logger in isolated environment.
+ /// </summary>
+ [Test]
+ public void TestLogging()
+ {
+ var nLogger = new IgniteNLogLogger();
+
+ // All parameters.
+ nLogger.Log(LogLevel.Trace, "msg{0}", new object[] {1}, CultureInfo.InvariantCulture, "category",
+ "java-err", new Exception("myException"));
+
+ Assert.AreEqual("category|Trace|msg1|myException|nativeErrorInfo=java-err", GetLastLog());
+
+ // No Java error.
+ nLogger.Log(LogLevel.Info, "msg{0}", new object[] { 1 }, CultureInfo.InvariantCulture, "category",
+ null, new Exception("myException"));
+
+ Assert.AreEqual("category|Info|msg1|myException|", GetLastLog());
+
+ // No exception.
+ nLogger.Log(LogLevel.Debug, "msg{0}", new object[] { 1 }, CultureInfo.InvariantCulture, "category",
+ null, null);
+
+ Assert.AreEqual("category|Debug|msg1||", GetLastLog());
+
+ // No params.
+ nLogger.Log(LogLevel.Warn, "msg{0}", null, CultureInfo.InvariantCulture, "category", null, null);
+
+ Assert.AreEqual("category|Warn|msg{0}||", GetLastLog());
+
+ // No formatter.
+ nLogger.Log(LogLevel.Error, "msg{0}", null, null, "category", null, null);
+
+ Assert.AreEqual("category|Error|msg{0}||", GetLastLog());
+
+ // No category.
+ nLogger.Log(LogLevel.Error, "msg{0}", null, null, null, null, null);
+
+ Assert.AreEqual("|Error|msg{0}||", GetLastLog());
+
+ // No message.
+ nLogger.Log(LogLevel.Error, null, null, null, null, null, null);
+
+ Assert.AreEqual("|Error|||", GetLastLog());
+ }
+
+ /// <summary>
+ /// Tests the logger with Ignite.
+ /// </summary>
+ [Test]
+ public void TestIgniteStartup()
+ {
+ var cfg = new IgniteConfiguration(TestUtils.GetTestConfiguration())
+ {
+ Logger = new IgniteNLogLogger(LogManager.GetLogger("foo"))
+ };
+
+ using (var ignite = Ignition.Start(cfg))
+ {
+ Assert.IsTrue(_logTarget.Logs.Contains(
+ string.Format("|Debug|Starting Ignite.NET {0}||", typeof(Ignition).Assembly.GetName().Version)));
+
+ Assert.IsTrue(_logTarget.Logs.Any(x => x.Contains(">>> Topology snapshot.")));
+
+ Assert.IsInstanceOf<IgniteNLogLogger>(ignite.Logger);
+
+ ignite.Logger.Info("Log from user code.");
+
+ Assert.IsTrue(_logTarget.Logs.Contains("|Info|Log from user code.||"));
+ }
+
+ Assert.IsTrue(_logTarget.Logs.Contains(
+ "org.apache.ignite.internal.IgniteKernal|Debug|Grid is stopping.||"));
+ }
+
+ /// <summary>
+ /// Gets the last log.
+ /// </summary>
+ private string GetLastLog()
+ {
+ return _logTarget.Logs.Last();
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.csproj b/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.csproj
new file mode 100644
index 0000000..c8d8705
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.csproj
@@ -0,0 +1,74 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProjectGuid>{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Apache.Ignite.NLog</RootNamespace>
+ <AssemblyName>Apache.Ignite.NLog</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup>
+ <SignAssembly>true</SignAssembly>
+ </PropertyGroup>
+ <PropertyGroup>
+ <AssemblyOriginatorKeyFile>Apache.Ignite.NLog.snk</AssemblyOriginatorKeyFile>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
+ <HintPath>..\packages\NLog.4.3.7\lib\net40\NLog.dll</HintPath>
+ <Private>True</Private>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Xml.Linq" />
+ <Reference Include="System.Data.DataSetExtensions" />
+ <Reference Include="Microsoft.CSharp" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="IgniteNLogLogger.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\Apache.Ignite.Core\Apache.Ignite.Core.csproj">
+ <Project>{4CD2F726-7E2B-46C4-A5BA-057BB82EECB6}</Project>
+ <Name>Apache.Ignite.Core</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Apache.Ignite.NLog.snk" />
+ <None Include="Apache.Ignite.NLog.nuspec" />
+ <None Include="packages.config" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.nuspec
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.nuspec b/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.nuspec
new file mode 100644
index 0000000..765e26f
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.nuspec
@@ -0,0 +1,50 @@
+<?xml version="1.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.
+-->
+
+<!--
+
+Creating NuGet package:
+1) Build Apache.Ignite.sln (AnyCPU configuration)
+2) Create package (use csproj instead of nuspec so that template substitution works):
+ nuget pack Apache.Ignite.NLog.csproj -Prop Configuration=Release -Prop Platform=AnyCPU
+
+-->
+
+<package >
+ <metadata>
+ <id>Apache.Ignite.NLog</id>
+ <title>Apache Ignite NLog Logger</title>
+ <!-- -->
+ <version>$version$</version>
+ <authors>Apache Ignite</authors>
+ <owners>Apache Software Foundation</owners>
+ <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
+ <projectUrl>https://ignite.apache.org/</projectUrl>
+ <iconUrl>https://ignite.apache.org/images/logo_ignite_32_32.png</iconUrl>
+ <requireLicenseAcceptance>false</requireLicenseAcceptance>
+ <description>NLog Logger for Apache Ignite</description>
+ <releaseNotes></releaseNotes>
+ <copyright>Copyright 2016</copyright>
+ <tags>Apache Ignite In-Memory Distributed Computing SQL NoSQL LINQ Grid Map Reduce Cache NLog logger</tags>
+ <dependencies>
+ <dependency id="Apache.Ignite" version="[$version$]" />
+ <dependency id="NLog" version="[4.0.0, 5.0.0)" />
+ </dependencies>
+ </metadata>
+</package>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.snk
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.snk b/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.snk
new file mode 100644
index 0000000..799e742
Binary files /dev/null and b/modules/platforms/dotnet/Apache.Ignite.NLog/Apache.Ignite.NLog.snk differ
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.NLog/IgniteNLogLogger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/IgniteNLogLogger.cs b/modules/platforms/dotnet/Apache.Ignite.NLog/IgniteNLogLogger.cs
new file mode 100644
index 0000000..2730e37
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/IgniteNLogLogger.cs
@@ -0,0 +1,125 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.NLog
+{
+ using System;
+ using Apache.Ignite.Core.Impl.Common;
+ using global::NLog;
+ using ILogger = Apache.Ignite.Core.Log.ILogger;
+ using IgniteLogLevel = Apache.Ignite.Core.Log.LogLevel;
+ using NLogLogLevel = global::NLog.LogLevel;
+
+ /// <summary>
+ /// Ignite NLog integration.
+ /// </summary>
+ public class IgniteNLogLogger : ILogger
+ {
+ /// <summary>
+ /// The NLog logger.
+ /// </summary>
+ private readonly Logger _logger;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="IgniteNLogLogger"/> class using the
+ /// <see cref="LogManager.GetCurrentClassLogger()"/> to retrieve the NLog logger.
+ /// </summary>
+ public IgniteNLogLogger() : this(LogManager.GetCurrentClassLogger())
+ {
+ // No-op.
+ }
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="IgniteNLogLogger"/> class.
+ /// </summary>
+ /// <param name="logger">The NLog logger instance.</param>
+ public IgniteNLogLogger(Logger logger)
+ {
+ IgniteArgumentCheck.NotNull(logger, "logger");
+
+ _logger = logger;
+ }
+
+ /// <summary>
+ /// Logs the specified message.
+ /// </summary>
+ /// <param name="level">The level.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments to format <paramref name="message" />.
+ /// Can be null (formatting will not occur).</param>
+ /// <param name="formatProvider">The format provider. Can be null if <paramref name="args" /> is null.</param>
+ /// <param name="category">The logging category name.</param>
+ /// <param name="nativeErrorInfo">The native error information.</param>
+ /// <param name="ex">The exception. Can be null.</param>
+ /// <exception cref="System.NotImplementedException"></exception>
+ public void Log(IgniteLogLevel level, string message, object[] args, IFormatProvider formatProvider,
+ string category, string nativeErrorInfo, Exception ex)
+ {
+ var logEvent = new LogEventInfo
+ {
+ Level = ConvertLogLevel(level),
+ Message = message,
+ FormatProvider = formatProvider,
+ Parameters = args,
+ Exception = ex,
+ LoggerName = category
+ };
+
+ if (nativeErrorInfo != null)
+ logEvent.Properties.Add("nativeErrorInfo", nativeErrorInfo);
+
+ _logger.Log(logEvent);
+ }
+
+ /// <summary>
+ /// Determines whether the specified log level is enabled.
+ /// </summary>
+ /// <param name="level">The level.</param>
+ /// <returns>
+ /// Value indicating whether the specified log level is enabled
+ /// </returns>
+ /// <exception cref="System.NotImplementedException"></exception>
+ public bool IsEnabled(IgniteLogLevel level)
+ {
+ return _logger.IsEnabled(ConvertLogLevel(level));
+ }
+
+ /// <summary>
+ /// Converts the Ignite LogLevel to the NLog log level.
+ /// </summary>
+ /// <param name="level">The Ignite log level.</param>
+ /// <returns>Corresponding NLog log level.</returns>
+ public static NLogLogLevel ConvertLogLevel(IgniteLogLevel level)
+ {
+ switch (level)
+ {
+ case IgniteLogLevel.Trace:
+ return NLogLogLevel.Trace;
+ case IgniteLogLevel.Debug:
+ return NLogLogLevel.Debug;
+ case IgniteLogLevel.Info:
+ return NLogLogLevel.Info;
+ case IgniteLogLevel.Warn:
+ return NLogLogLevel.Warn;
+ case IgniteLogLevel.Error:
+ return NLogLogLevel.Error;
+ default:
+ throw new ArgumentOutOfRangeException("level", level, "Invalid Ignite LogLevel.");
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..6603836
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
@@ -0,0 +1,40 @@
+\ufeff/*
+* 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.
+*/
+
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+[assembly: AssemblyTitle("Apache.Ignite.NLog")]
+[assembly: AssemblyDescription("Apache Ignite.NET NLog integration.")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Apache Software Foundation")]
+[assembly: AssemblyProduct("Apache Ignite.NET")]
+[assembly: AssemblyCopyright("Copyright � 2015")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("c6b58e4a-a2e9-4554-ad02-68ce6da5cfb7")]
+
+[assembly: AssemblyVersion("1.8.0.13244")]
+[assembly: AssemblyFileVersion("1.8.0.13244")]
+[assembly: AssemblyInformationalVersion("1.8.0")]
+
+[assembly: CLSCompliant(true)]
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.NLog/packages.config
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/packages.config b/modules/platforms/dotnet/Apache.Ignite.NLog/packages.config
new file mode 100644
index 0000000..50aeb52
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/packages.config
@@ -0,0 +1,4 @@
+\ufeff<?xml version="1.0" encoding="utf-8"?>
+<packages>
+ <package id="NLog" version="4.3.7" targetFramework="net40" />
+</packages>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/1c82cd04/modules/platforms/dotnet/Apache.Ignite.sln
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.sln b/modules/platforms/dotnet/Apache.Ignite.sln
index 8a3bf04..2978780 100644
--- a/modules/platforms/dotnet/Apache.Ignite.sln
+++ b/modules/platforms/dotnet/Apache.Ignite.sln
@@ -38,6 +38,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet", "Apa
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.AspNet.Tests", "Apache.Ignite.AspNet.Tests\Apache.Ignite.AspNet.Tests.csproj", "{18EA4C71-A11D-4AB1-8042-418F7559D84F}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Apache.Ignite.NLog", "Apache.Ignite.NLog\Apache.Ignite.NLog.csproj", "{C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -188,6 +190,18 @@ Global
{18EA4C71-A11D-4AB1-8042-418F7559D84F}.Release|x64.Build.0 = Release|Any CPU
{18EA4C71-A11D-4AB1-8042-418F7559D84F}.Release|x86.ActiveCfg = Release|Any CPU
{18EA4C71-A11D-4AB1-8042-418F7559D84F}.Release|x86.Build.0 = Release|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Debug|x64.Build.0 = Debug|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Debug|x86.Build.0 = Debug|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x64.ActiveCfg = Release|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x64.Build.0 = Release|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x86.ActiveCfg = Release|Any CPU
+ {C6B58E4A-A2E9-4554-AD02-68CE6DA5CFB7}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
[39/50] [abbrv] ignite git commit: IGNITE-3770: GridLogThrottle.warn
ignores the exception. Fixes #1095.
Posted by sh...@apache.org.
IGNITE-3770: GridLogThrottle.warn ignores the exception. Fixes #1095.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/3271d75f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/3271d75f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/3271d75f
Branch: refs/heads/ignite-2788
Commit: 3271d75fca41db9ae186047c08f422f6b6f66498
Parents: a370bad
Author: Roman Shtykh <ap...@gmail.com>
Authored: Tue Oct 4 15:16:40 2016 -0700
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Tue Oct 4 15:16:40 2016 -0700
----------------------------------------------------------------------
.../affinity/fair/FairAffinityFunction.java | 2 +-
.../rendezvous/RendezvousAffinityFunction.java | 2 +-
.../apache/ignite/internal/IgniteKernal.java | 2 +-
.../GridDeploymentPerVersionStore.java | 2 +-
.../discovery/GridDiscoveryManager.java | 2 +-
.../eventstorage/GridEventStorageManager.java | 2 +-
.../cache/GridCacheDeploymentManager.java | 4 +-
.../processors/cache/GridCacheEventManager.java | 10 ++---
.../store/GridCacheStoreManagerAdapter.java | 2 +-
.../cache/store/GridCacheWriteBehindStore.java | 2 +-
.../clock/GridClockSyncProcessor.java | 2 +-
.../igfs/IgfsFragmentizerManager.java | 29 +++++++--------
.../internal/processors/igfs/IgfsImpl.java | 35 +++++++++---------
.../OsDiscoveryNodeValidationProcessor.java | 2 +-
.../processors/task/GridTaskWorker.java | 2 +-
.../ignite/internal/util/GridLogThrottle.java | 35 +++++++++---------
.../ignite/internal/util/IgniteUtils.java | 6 +--
.../ipc/shmem/IpcSharedMemoryNativeLoader.java | 2 +-
.../shmem/IpcSharedMemoryServerEndpoint.java | 4 +-
.../nio/GridConnectionBytesVerifyFilter.java | 2 +-
.../internal/util/nio/GridNioCodecFilter.java | 2 +-
.../internal/util/nio/GridNioFilterChain.java | 2 +-
.../ignite/internal/util/nio/GridNioServer.java | 2 +-
.../util/nio/GridSelectorNioSessionImpl.java | 2 +-
.../communication/tcp/TcpCommunicationSpi.java | 12 +++---
.../ignite/spi/discovery/tcp/ClientImpl.java | 7 ++--
.../ignite/spi/discovery/tcp/ServerImpl.java | 39 +++++++++-----------
.../spi/discovery/tcp/TcpDiscoveryImpl.java | 2 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 8 ++--
.../TcpDiscoveryMulticastIpFinder.java | 4 +-
.../ignite/testframework/GridTestUtils.java | 2 +-
.../junits/common/GridCommonAbstractTest.java | 6 +--
.../apache/ignite/util/GridLogThrottleTest.java | 27 +++++---------
.../HadoopExternalCommunication.java | 6 +--
.../processors/query/h2/IgniteH2Indexing.java | 2 +-
.../cache/IgniteCacheOffheapEvictQueryTest.java | 2 +-
.../scanners/http/UriDeploymentHttpScanner.java | 8 ++--
37 files changed, 133 insertions(+), 149 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
index c624df4..cf1cb02 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/fair/FairAffinityFunction.java
@@ -331,7 +331,7 @@ public class FairAffinityFunction implements AffinityFunction {
balance(tier, pendingParts, fullMap, topSnapshot, true);
if (!exclNeighborsWarn) {
- LT.warn(log, null, "Affinity function excludeNeighbors property is ignored " +
+ LT.warn(log, "Affinity function excludeNeighbors property is ignored " +
"because topology has no enough nodes to assign backups.");
exclNeighborsWarn = true;
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
index e876fb5..8f2d2f8 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.java
@@ -440,7 +440,7 @@ public class RendezvousAffinityFunction implements AffinityFunction, Externaliza
}
if (!exclNeighborsWarn) {
- LT.warn(log, null, "Affinity function excludeNeighbors property is ignored " +
+ LT.warn(log, "Affinity function excludeNeighbors property is ignored " +
"because topology has no enough nodes to assign backups.");
exclNeighborsWarn = true;
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/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 e0a36a7..c521718 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
@@ -991,7 +991,7 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
// at least one waiting request, then it is possible starvation.
if (exec.getPoolSize() == exec.getActiveCount() && completedCnt == lastCompletedCnt &&
!exec.getQueue().isEmpty())
- LT.warn(log, null, "Possible thread pool starvation detected (no task completed in last " +
+ LT.warn(log, "Possible thread pool starvation detected (no task completed in last " +
interval + "ms, is executorService pool size large enough?)");
lastCompletedCnt = completedCnt;
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java
index 5e30bf6..0bf8328 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/deployment/GridDeploymentPerVersionStore.java
@@ -317,7 +317,7 @@ public class GridDeploymentPerVersionStore extends GridDeploymentStoreAdapter {
if (ctx.localNodeId().equals(e.getKey())) {
// Warn only if mode is not CONTINUOUS.
if (meta.deploymentMode() != CONTINUOUS)
- LT.warn(log, null, "Local node is in participants (most probably, " +
+ LT.warn(log, "Local node is in participants (most probably, " +
"IgniteConfiguration.getPeerClassLoadingLocalClassPathExclude() " +
"is not used properly " +
"[locNodeId=" + ctx.localNodeId() + ", meta=" + meta + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/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 d24f900..931d99a 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
@@ -995,7 +995,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
break;
if (ctx.config().isWaitForSegmentOnStart()) {
- LT.warn(log, null, "Failed to check network segment (retrying every 2000 ms).");
+ LT.warn(log, "Failed to check network segment (retrying every 2000 ms).");
// Wait and check again.
U.sleep(2000);
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
index 0095707..a4cee9a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/eventstorage/GridEventStorageManager.java
@@ -278,7 +278,7 @@ public class GridEventStorageManager extends GridManagerAdapter<EventStorageSpi>
int type = evt.type();
if (!isRecordable(type)) {
- LT.warn(log, null, "Trying to record event without checking if it is recordable: " +
+ LT.warn(log, "Trying to record event without checking if it is recordable: " +
U.gridEventName(type));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java
index 8e66233..ad4892b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java
@@ -399,7 +399,7 @@ public class GridCacheDeploymentManager<K, V> extends GridCacheSharedManagerAdap
", daemon=" + daemon + ']');
if (!daemon) {
- LT.warn(log, null, "Ignoring deployment in PRIVATE or ISOLATED mode " +
+ LT.warn(log, "Ignoring deployment in PRIVATE or ISOLATED mode " +
"[sndId=" + sndId + ", ldrId=" + ldrId + ", userVer=" + userVer + ", mode=" + mode +
", participants=" + participants + ", daemon=" + daemon + ']');
}
@@ -408,7 +408,7 @@ public class GridCacheDeploymentManager<K, V> extends GridCacheSharedManagerAdap
}
if (mode != cctx.gridConfig().getDeploymentMode()) {
- LT.warn(log, null, "Local and remote deployment mode mismatch (please fix configuration and restart) " +
+ LT.warn(log, "Local and remote deployment mode mismatch (please fix configuration and restart) " +
"[locDepMode=" + cctx.gridConfig().getDeploymentMode() + ", rmtDepMode=" + mode + ", rmtNodeId=" +
sndId + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
index ec8b8cc..1c18738 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEventManager.java
@@ -251,7 +251,7 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
assert key != null || type == EVT_CACHE_STARTED || type == EVT_CACHE_STOPPED;
if (!cctx.events().isRecordable(type))
- LT.warn(log, null, "Added event without checking if event is recordable: " + U.gridEventName(type));
+ LT.warn(log, "Added event without checking if event is recordable: " + U.gridEventName(type));
// Events are not fired for internal entry.
if (key == null || !key.internal()) {
@@ -261,7 +261,7 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
evtNode = findNodeInHistory(evtNodeId);
if (evtNode == null)
- LT.warn(log, null, "Failed to find event node in grid topology history " +
+ LT.warn(log, "Failed to find event node in grid topology history " +
"(try to increase topology history size configuration property of configured " +
"discovery SPI): " + evtNodeId);
@@ -284,7 +284,7 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
log.debug("Failed to unmarshall cache object value for the event notification: " + e);
if (!forceKeepBinary)
- LT.warn(log, null, "Failed to unmarshall cache object value for the event notification " +
+ LT.warn(log, "Failed to unmarshall cache object value for the event notification " +
"(all further notifications will keep binary object format).");
forceKeepBinary = true;
@@ -351,7 +351,7 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
assert discoTs > 0;
if (!cctx.events().isRecordable(type))
- LT.warn(log, null, "Added event without checking if event is recordable: " + U.gridEventName(type));
+ LT.warn(log, "Added event without checking if event is recordable: " + U.gridEventName(type));
cctx.gridEvents().record(new CacheRebalancingEvent(cctx.name(), cctx.localNode(),
"Cache rebalancing event.", type, part, discoNode, discoType, discoTs));
@@ -364,7 +364,7 @@ public class GridCacheEventManager extends GridCacheManagerAdapter {
*/
public void addUnloadEvent(int part) {
if (!cctx.events().isRecordable(EVT_CACHE_REBALANCE_PART_UNLOADED))
- LT.warn(log, null, "Added event without checking if event is recordable: " +
+ LT.warn(log, "Added event without checking if event is recordable: " +
U.gridEventName(EVT_CACHE_REBALANCE_PART_UNLOADED));
cctx.gridEvents().record(new CacheRebalancingEvent(cctx.name(), cctx.localNode(),
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
index cd0c50f..024375e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheStoreManagerAdapter.java
@@ -547,7 +547,7 @@ public abstract class GridCacheStoreManagerAdapter extends GridCacheManagerAdapt
return true;
}
- LT.warn(log, null, "Calling Cache.loadCache() method will have no effect, " +
+ LT.warn(log, "Calling Cache.loadCache() method will have no effect, " +
"CacheConfiguration.getStore() is not defined for cache: " + cctx.namexx());
return false;
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheWriteBehindStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheWriteBehindStore.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheWriteBehindStore.java
index 468945b..858d9a7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheWriteBehindStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/store/GridCacheWriteBehindStore.java
@@ -705,7 +705,7 @@ public class GridCacheWriteBehindStore<K, V> implements CacheStore<K, V>, Lifecy
}
}
catch (Exception e) {
- LT.warn(log, e, "Unable to update underlying store: " + store);
+ LT.error(log, e, "Unable to update underlying store: " + store);
if (writeCache.sizex() > cacheCriticalSize || stopping.get()) {
for (Map.Entry<K, Entry<? extends K, ? extends V>> entry : vals.entrySet()) {
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java
index b5c89cf..0764316 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/clock/GridClockSyncProcessor.java
@@ -458,7 +458,7 @@ public class GridClockSyncProcessor extends GridProcessorAdapter {
srv.sendPacket(req, addr, port);
}
catch (IgniteCheckedException e) {
- LT.warn(log, e, "Failed to send time request to remote node [rmtNodeId=" + rmtNodeId +
+ LT.error(log, e, "Failed to send time request to remote node [rmtNodeId=" + rmtNodeId +
", addr=" + addr + ", port=" + port + ']');
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerManager.java
index d64c64a..2e82f33 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsFragmentizerManager.java
@@ -17,6 +17,19 @@
package org.apache.ignite.internal.processors.igfs;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.LinkedBlockingDeque;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.locks.Condition;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
import org.apache.ignite.cluster.ClusterNode;
@@ -41,20 +54,6 @@ import org.apache.ignite.lang.IgniteUuid;
import org.apache.ignite.thread.IgniteThread;
import org.jetbrains.annotations.Nullable;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
-import java.util.concurrent.LinkedBlockingDeque;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.locks.Condition;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-
import static java.util.concurrent.TimeUnit.MILLISECONDS;
import static org.apache.ignite.events.EventType.EVT_NODE_FAILED;
import static org.apache.ignite.events.EventType.EVT_NODE_LEFT;
@@ -383,7 +382,7 @@ public class IgfsFragmentizerManager extends IgfsManager {
}
catch (IgniteCheckedException | IgniteException e) {
if (!X.hasCause(e, InterruptedException.class) && !X.hasCause(e, IgniteInterruptedCheckedException.class))
- LT.warn(log, e, "Failed to get fragmentizer file info (will retry).");
+ LT.error(log, e, "Failed to get fragmentizer file info (will retry).");
else {
if (log.isDebugEnabled())
log.debug("Got interrupted exception in fragmentizer coordinator (grid is stopping).");
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
index 1dd12d9..9dc5e78 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/igfs/IgfsImpl.java
@@ -17,6 +17,21 @@
package org.apache.ignite.internal.processors.igfs;
+import java.io.OutputStream;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.Callable;
+import java.util.concurrent.SynchronousQueue;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteException;
@@ -81,22 +96,6 @@ import org.apache.ignite.thread.IgniteThreadPoolExecutor;
import org.jetbrains.annotations.Nullable;
import org.jsr166.ConcurrentHashMap8;
-import java.io.OutputStream;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import java.util.concurrent.SynchronousQueue;
-import java.util.concurrent.ThreadFactory;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.AtomicLong;
-
import static org.apache.ignite.events.EventType.EVT_IGFS_DIR_DELETED;
import static org.apache.ignite.events.EventType.EVT_IGFS_FILE_DELETED;
import static org.apache.ignite.events.EventType.EVT_IGFS_FILE_OPENED_READ;
@@ -1313,7 +1312,7 @@ public final class IgfsImpl implements IgfsEx {
secondarySpaceSize = secondaryFs.usedSpaceSize();
}
catch (IgniteException e) {
- LT.warn(log, e, "Failed to get secondary file system consumed space size.");
+ LT.error(log, e, "Failed to get secondary file system consumed space size.");
secondarySpaceSize = -1;
}
@@ -1846,4 +1845,4 @@ public final class IgfsImpl implements IgfsEx {
}
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/nodevalidation/OsDiscoveryNodeValidationProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/nodevalidation/OsDiscoveryNodeValidationProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/nodevalidation/OsDiscoveryNodeValidationProcessor.java
index a7e06e9..37e59bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/nodevalidation/OsDiscoveryNodeValidationProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/nodevalidation/OsDiscoveryNodeValidationProcessor.java
@@ -58,7 +58,7 @@ public class OsDiscoveryNodeValidationProcessor extends GridProcessorAdapter imp
", rmtNodeAddrs=" + U.addressesAsString(node) +
", locNodeId=" + locNode.id() + ", rmtNodeId=" + node.id() + ']';
- LT.warn(log, null, errMsg);
+ LT.warn(log, errMsg);
// Always output in debug.
if (log.isDebugEnabled())
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
index 452e48c..84edb14 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
@@ -626,7 +626,7 @@ class GridTaskWorker<T, R> extends GridWorker implements GridTimeoutObject {
res.setOccupied(true);
if (resCache && jobRes.size() > ctx.discovery().size() && jobRes.size() % SPLIT_WARN_THRESHOLD == 0)
- LT.warn(log, null, "Number of jobs in task is too large for task: " + ses.getTaskName() +
+ LT.warn(log, "Number of jobs in task is too large for task: " + ses.getTaskName() +
". Consider reducing number of jobs or disabling job result cache with " +
"@ComputeTaskNoResultCache annotation.");
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/GridLogThrottle.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridLogThrottle.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridLogThrottle.java
index 745619a..c4a107a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridLogThrottle.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridLogThrottle.java
@@ -79,41 +79,38 @@ public class GridLogThrottle {
* Logs warning if needed.
*
* @param log Logger.
- * @param e Error (optional).
* @param msg Message.
*/
- public static void warn(@Nullable IgniteLogger log, @Nullable Throwable e, String msg) {
+ public static void warn(@Nullable IgniteLogger log, String msg) {
assert !F.isEmpty(msg);
- log(log, e, msg, null, LogLevel.WARN, false);
+ log(log, null, msg, null, LogLevel.WARN, false);
}
/**
* Logs warning if needed.
*
* @param log Logger.
- * @param e Error (optional).
* @param msg Message.
- * @param quite Print warning anyway.
+ * @param quiet Print warning anyway.
*/
- public static void warn(@Nullable IgniteLogger log, @Nullable Throwable e, String msg, boolean quite) {
+ public static void warn(@Nullable IgniteLogger log, String msg, boolean quiet) {
assert !F.isEmpty(msg);
- log(log, e, msg, null, LogLevel.WARN, quite);
+ log(log, null, msg, null, LogLevel.WARN, quiet);
}
/**
* Logs warning if needed.
*
* @param log Logger.
- * @param e Error (optional).
* @param longMsg Long message (or just message).
- * @param shortMsg Short message for quite logging.
+ * @param shortMsg Short message for quiet logging.
*/
- public static void warn(@Nullable IgniteLogger log, @Nullable Throwable e, String longMsg, @Nullable String shortMsg) {
+ public static void warn(@Nullable IgniteLogger log, String longMsg, @Nullable String shortMsg) {
assert !F.isEmpty(longMsg);
- log(log, e, longMsg, shortMsg, LogLevel.WARN, false);
+ log(log, null, longMsg, shortMsg, LogLevel.WARN, false);
}
/**
@@ -121,12 +118,12 @@ public class GridLogThrottle {
*
* @param log Logger.
* @param msg Message.
- * @param quite Print info anyway.
+ * @param quiet Print info anyway.
*/
- public static void info(@Nullable IgniteLogger log, String msg, boolean quite) {
+ public static void info(@Nullable IgniteLogger log, String msg, boolean quiet) {
assert !F.isEmpty(msg);
- log(log, null, msg, null, LogLevel.INFO, quite);
+ log(log, null, msg, null, LogLevel.INFO, quiet);
}
/**
@@ -136,6 +133,8 @@ public class GridLogThrottle {
* @param msg Message.
*/
public static void info(@Nullable IgniteLogger log, String msg) {
+ assert !F.isEmpty(msg);
+
info(log, msg, false);
}
@@ -152,12 +151,12 @@ public class GridLogThrottle {
* @param log Logger.
* @param e Error (optional).
* @param longMsg Long message (or just message).
- * @param shortMsg Short message for quite logging.
+ * @param shortMsg Short message for quiet logging.
* @param level Level where messages should appear.
*/
@SuppressWarnings({"RedundantTypeArguments"})
- private static void log(@Nullable IgniteLogger log, @Nullable Throwable e, String longMsg, @Nullable String shortMsg,
- LogLevel level, boolean quiet) {
+ private static void log(@Nullable IgniteLogger log, @Nullable Throwable e, String longMsg,
+ @Nullable String shortMsg, LogLevel level, boolean quiet) {
assert !F.isEmpty(longMsg);
IgniteBiTuple<Class<? extends Throwable>, String> tup =
@@ -252,4 +251,4 @@ public class GridLogThrottle {
*/
public abstract void doLog(IgniteLogger log, String longMsg, String shortMsg, Throwable e, boolean quiet);
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/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 569a25f..1c6da49 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
@@ -4075,7 +4075,7 @@ public abstract class IgniteUtils {
}
/**
- * Logs warning message in both verbose and quite modes.
+ * Logs warning message in both verbose and quiet modes.
*
* @param log Logger to use.
* @param msg Message to log.
@@ -4085,7 +4085,7 @@ public abstract class IgniteUtils {
}
/**
- * Logs warning message in both verbose and quite modes.
+ * Logs warning message in both verbose and quiet modes.
*
* @param log Logger to use.
* @param shortMsg Short message.
@@ -4255,7 +4255,7 @@ public abstract class IgniteUtils {
}
/**
- * Prints out the message in quite and info modes.
+ * Prints out the message in quiet and info modes.
*
* @param log Logger.
* @param msg Message to print.
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoader.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoader.java b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoader.java
index 2771d28..02c4de5 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoader.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoader.java
@@ -150,7 +150,7 @@ public class IpcSharedMemoryNativeLoader {
try {
if (log != null)
- LT.warn(log, null, "Failed to load 'igniteshmem' library from classpath. Will try to load it from IGNITE_HOME.");
+ LT.warn(log, "Failed to load 'igniteshmem' library from classpath. Will try to load it from IGNITE_HOME.");
String igniteHome = X.resolveIgniteHome();
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
index 6fd6482..3cc673e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryServerEndpoint.java
@@ -297,13 +297,13 @@ public class IpcSharedMemoryServerEndpoint implements IpcServerEndpoint {
String msg = "Failed to process incoming connection (most probably, shared memory " +
"rest endpoint has been configured by mistake).";
- LT.warn(log, null, msg);
+ LT.warn(log, msg);
sendErrorResponse(out, e);
}
catch (IpcOutOfSystemResourcesException e) {
if (!omitOutOfResourcesWarn)
- LT.warn(log, null, OUT_OF_RESOURCES_MSG);
+ LT.warn(log, OUT_OF_RESOURCES_MSG);
sendErrorResponse(out, e);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
index 13d7ca7..213fd8d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridConnectionBytesVerifyFilter.java
@@ -115,7 +115,7 @@ public class GridConnectionBytesVerifyFilter extends GridNioFilterAdapter {
else {
ses.close();
- LT.warn(log, null, "Unknown connection detected (is some other software connecting to this " +
+ LT.warn(log, "Unknown connection detected (is some other software connecting to this " +
"Ignite port?) [rmtAddr=" + ses.remoteAddress() + ", locAddr=" + ses.localAddress() + ']');
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
index a2f543d..7083ccf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioCodecFilter.java
@@ -110,7 +110,7 @@ public class GridNioCodecFilter extends GridNioFilterAdapter {
if (directMode)
return;
- LT.warn(log, null, "Parser returned null but there are still unread data in input buffer (bug in " +
+ LT.warn(log, "Parser returned null but there are still unread data in input buffer (bug in " +
"parser code?) [parser=" + parser + ", ses=" + ses + ']');
input.position(input.limit());
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
index 8a43e29..a3a74e3 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioFilterChain.java
@@ -158,7 +158,7 @@ public class GridNioFilterChain<T> extends GridNioFilterAdapter {
head.onExceptionCaught(ses, e);
}
catch (Exception ex) {
- LT.warn(log, ex, "Failed to forward GridNioException to filter chain [ses=" + ses + ", e=" + e + ']');
+ LT.error(log, ex, "Failed to forward GridNioException to filter chain [ses=" + ses + ", e=" + e + ']');
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 24b8fad..c8e2e0b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -768,7 +768,7 @@ public class GridNioServer<T> {
filterChain.onMessageReceived(ses, readBuf);
if (readBuf.remaining() > 0) {
- LT.warn(log, null, "Read buffer contains data after filter chain processing (will discard " +
+ LT.warn(log, "Read buffer contains data after filter chain processing (will discard " +
"remaining bytes) [ses=" + ses + ", remainingCnt=" + readBuf.remaining() + ']');
readBuf.clear();
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
index 0ba6af2..63c9845 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
@@ -227,7 +227,7 @@ class GridSelectorNioSessionImpl extends GridNioSessionImpl {
if (recovery != null) {
if (!recovery.add(last)) {
- LT.warn(log, null, "Unacknowledged messages queue size overflow, will attempt to reconnect " +
+ LT.warn(log, "Unacknowledged messages queue size overflow, will attempt to reconnect " +
"[remoteAddr=" + remoteAddress() +
", queueLimit=" + recovery.queueLimit() + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 74ecc45..ac347bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -329,7 +329,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
private final GridNioServerListener<Message> srvLsnr =
new GridNioServerListenerAdapter<Message>() {
@Override public void onSessionWriteTimeout(GridNioSession ses) {
- LT.warn(log, null, "Communication SPI Session write timed out (consider increasing " +
+ LT.warn(log, "Communication SPI Session write timed out (consider increasing " +
"'socketWriteTimeout' " + "configuration property) [remoteAddr=" + ses.remoteAddress() +
", writeTimeout=" + sockWriteTimeout + ']');
@@ -2142,9 +2142,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
catch (IgniteCheckedException e) {
if (e.hasCause(IpcOutOfSystemResourcesException.class))
// Has cause or is itself the IpcOutOfSystemResourcesException.
- LT.warn(log, null, OUT_OF_RESOURCES_TCP_MSG);
+ LT.warn(log, OUT_OF_RESOURCES_TCP_MSG);
else if (getSpiContext().node(node.id()) != null)
- LT.warn(log, null, e.getMessage());
+ LT.warn(log, e.getMessage());
else if (log.isDebugEnabled())
log.debug("Failed to establish shared memory connection with local node (node has left): " +
node.id());
@@ -2505,11 +2505,11 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
boolean failureDetThrReached = timeoutHelper.checkFailureTimeoutReached(e);
if (failureDetThrReached)
- LT.warn(log, null, "Connect timed out (consider increasing 'failureDetectionTimeout' " +
+ LT.warn(log, "Connect timed out (consider increasing 'failureDetectionTimeout' " +
"configuration property) [addr=" + addr + ", failureDetectionTimeout=" +
failureDetectionTimeout() + ']');
else if (X.hasCause(e, SocketTimeoutException.class))
- LT.warn(log, null, "Connect timed out (consider increasing 'connTimeout' " +
+ LT.warn(log, "Connect timed out (consider increasing 'connTimeout' " +
"configuration property) [addr=" + addr + ", connTimeout=" + connTimeout + ']');
if (errs == null)
@@ -2540,7 +2540,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
assert errs != null;
if (X.hasCause(errs, ConnectException.class))
- LT.warn(log, null, "Failed to connect to a remote node " +
+ LT.warn(log, "Failed to connect to a remote node " +
"(make sure that destination node is alive and " +
"operating system firewall is disabled on local and remote hosts) " +
"[addrs=" + addrs + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
index 79cfe49..0024f7b 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ClientImpl.java
@@ -64,7 +64,6 @@ import org.apache.ignite.internal.util.typedef.internal.LT;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteInClosure;
import org.apache.ignite.lang.IgniteUuid;
-import org.apache.ignite.marshaller.MarshallerUtils;
import org.apache.ignite.spi.IgniteSpiContext;
import org.apache.ignite.spi.IgniteSpiException;
import org.apache.ignite.spi.IgniteSpiOperationTimeoutHelper;
@@ -483,7 +482,7 @@ class ClientImpl extends TcpDiscoveryImpl {
if (timeout > 0 && (U.currentTimeMillis() - startTime) > timeout)
return null;
- LT.warn(log, null, "IP finder returned empty addresses list. " +
+ LT.warn(log, "IP finder returned empty addresses list. " +
"Please check IP finder configuration" +
(spi.ipFinder instanceof TcpDiscoveryMulticastIpFinder ?
" and make sure multicast works on your network. " : ". ") +
@@ -553,7 +552,7 @@ class ClientImpl extends TcpDiscoveryImpl {
if (timeout > 0 && (U.currentTimeMillis() - startTime) > timeout)
return null;
- LT.warn(log, null, "Failed to connect to any address from IP finder (will retry to join topology " +
+ LT.warn(log, "Failed to connect to any address from IP finder (will retry to join topology " +
"every 2 secs): " + toOrderedList(addrs0), true);
Thread.sleep(2000);
@@ -917,7 +916,7 @@ class ClientImpl extends TcpDiscoveryImpl {
ClassNotFoundException clsNotFoundEx = X.cause(e, ClassNotFoundException.class);
if (clsNotFoundEx != null)
- LT.warn(log, null, "Failed to read message due to ClassNotFoundException " +
+ LT.warn(log, "Failed to read message due to ClassNotFoundException " +
"(make sure same versions of all classes are available on all nodes) " +
"[rmtNodeId=" + rmtNodeId + ", err=" + clsNotFoundEx.getMessage() + ']');
else
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 135a737..95398e0 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -516,7 +516,7 @@ class ServerImpl extends TcpDiscoveryImpl {
boolean res = pingNode(node);
if (!res && !node.isClient() && nodeAlive(nodeId)) {
- LT.warn(log, null, "Failed to ping node (status check will be initiated): " + nodeId);
+ LT.warn(log, "Failed to ping node (status check will be initiated): " + nodeId);
msgWorker.addMessage(new TcpDiscoveryStatusCheckMessage(locNode, node.id()));
}
@@ -906,7 +906,7 @@ class ServerImpl extends TcpDiscoveryImpl {
U.addressesAsString(msg.addresses(), msg.hostNames()) + ']');
}
else
- LT.warn(log, null, "Node has not been connected to topology and will repeat join process. " +
+ LT.warn(log, "Node has not been connected to topology and will repeat join process. " +
"Check remote nodes logs for possible error messages. " +
"Note that large topology may require significant time to start. " +
"Increase 'TcpDiscoverySpi.networkTimeout' configuration property " +
@@ -1026,7 +1026,7 @@ class ServerImpl extends TcpDiscoveryImpl {
}
if (e != null && X.hasCause(e, ConnectException.class)) {
- LT.warn(log, null, "Failed to connect to any address from IP finder " +
+ LT.warn(log, "Failed to connect to any address from IP finder " +
"(make sure IP finder addresses are correct and firewalls are disabled on all host machines): " +
toOrderedList(addrs), true);
}
@@ -2905,7 +2905,7 @@ class ServerImpl extends TcpDiscoveryImpl {
}
}
- LT.warn(log, null, "Local node has detected failed nodes and started cluster-wide procedure. " +
+ LT.warn(log, "Local node has detected failed nodes and started cluster-wide procedure. " +
"To speed up failure detection please see 'Failure Detection' section under javadoc" +
" for 'TcpDiscoverySpi'");
}
@@ -2990,7 +2990,7 @@ class ServerImpl extends TcpDiscoveryImpl {
"[locNodeAddrs=" + U.addressesAsString(locNode) +
", rmtNodeAddrs=" + U.addressesAsString(node) + ']';
- LT.warn(log, null, errMsg);
+ LT.warn(log, errMsg);
// Always output in debug.
if (log.isDebugEnabled())
@@ -3043,7 +3043,7 @@ class ServerImpl extends TcpDiscoveryImpl {
}
// Output warning.
- LT.warn(log, null, "Ignoring join request from node (duplicate ID) [node=" + node +
+ LT.warn(log, "Ignoring join request from node (duplicate ID) [node=" + node +
", existingNode=" + existingNode + ']');
// Ignore join request.
@@ -3098,8 +3098,7 @@ class ServerImpl extends TcpDiscoveryImpl {
if (subj == null) {
// Node has not pass authentication.
- LT.warn(log, null,
- "Authentication failed [nodeId=" + node.id() +
+ LT.warn(log, "Authentication failed [nodeId=" + node.id() +
", addrs=" + U.addressesAsString(node) + ']',
"Authentication failed [nodeId=" + U.id8(node.id()) + ", addrs=" +
U.addressesAsString(node) + ']');
@@ -3128,8 +3127,7 @@ class ServerImpl extends TcpDiscoveryImpl {
else {
if (!(subj instanceof Serializable)) {
// Node has not pass authentication.
- LT.warn(log, null,
- "Authentication subject is not Serializable [nodeId=" + node.id() +
+ LT.warn(log, "Authentication subject is not Serializable [nodeId=" + node.id() +
", addrs=" + U.addressesAsString(node) + ']',
"Authentication subject is not Serializable [nodeId=" + U.id8(node.id()) +
", addrs=" +
@@ -3199,7 +3197,7 @@ class ServerImpl extends TcpDiscoveryImpl {
return;
}
- LT.warn(log, null, err.message());
+ LT.warn(log, err.message());
// Always output in debug.
if (log.isDebugEnabled())
@@ -3240,7 +3238,7 @@ class ServerImpl extends TcpDiscoveryImpl {
", rmtNodeAddrs=" + U.addressesAsString(node) +
", locNodeId=" + locNode.id() + ", rmtNodeId=" + msg.creatorNodeId() + ']';
- LT.warn(log, null, errMsg);
+ LT.warn(log, errMsg);
// Always output in debug.
if (log.isDebugEnabled())
@@ -3528,7 +3526,7 @@ class ServerImpl extends TcpDiscoveryImpl {
* @param sndMsg Message to send.
*/
private void nodeCheckError(TcpDiscoveryNode node, String errMsg, String sndMsg) {
- LT.warn(log, null, errMsg);
+ LT.warn(log, errMsg);
// Always output in debug.
if (log.isDebugEnabled())
@@ -3811,8 +3809,7 @@ class ServerImpl extends TcpDiscoveryImpl {
if (!permissionsEqual(coordSubj.subject().permissions(), subj.subject().permissions())) {
// Node has not pass authentication.
- LT.warn(log, null,
- "Authentication failed [nodeId=" + node.id() +
+ LT.warn(log, "Authentication failed [nodeId=" + node.id() +
", addrs=" + U.addressesAsString(node) + ']',
"Authentication failed [nodeId=" + U.id8(node.id()) + ", addrs=" +
U.addressesAsString(node) + ']');
@@ -5267,7 +5264,7 @@ class ServerImpl extends TcpDiscoveryImpl {
"[rmtAddr=" + sock.getRemoteSocketAddress() +
", locAddr=" + sock.getLocalSocketAddress() + ']');
- LT.warn(log, null, "Failed to read magic header (too few bytes received) [rmtAddr=" +
+ LT.warn(log, "Failed to read magic header (too few bytes received) [rmtAddr=" +
sock.getRemoteSocketAddress() + ", locAddr=" + sock.getLocalSocketAddress() + ']');
return;
@@ -5283,7 +5280,7 @@ class ServerImpl extends TcpDiscoveryImpl {
"[rmtAddr=" + sock.getRemoteSocketAddress() +
", locAddr=" + sock.getLocalSocketAddress() + ']');
- LT.warn(log, null, "Unknown connection detected (is some other software connecting to " +
+ LT.warn(log, "Unknown connection detected (is some other software connecting to " +
"this Ignite port?" +
(!spi.isSslEnabled() ? " missing SSL configuration on remote node?" : "" ) +
") [rmtAddr=" + sock.getInetAddress() + ']', true);
@@ -5403,7 +5400,7 @@ class ServerImpl extends TcpDiscoveryImpl {
U.error(log, "Caught exception on handshake [err=" + e +", sock=" + sock + ']', e);
if (X.hasCause(e, SSLException.class) && spi.isSslEnabled() && !spi.isNodeStopping0())
- LT.warn(log, null, "Failed to initialize connection " +
+ LT.warn(log, "Failed to initialize connection " +
"(missing SSL configuration on remote node?) " +
"[rmtAddr=" + sock.getInetAddress() + ']', true);
else if ((X.hasCause(e, ObjectStreamException.class) || !sock.isClosed())
@@ -5432,12 +5429,12 @@ class ServerImpl extends TcpDiscoveryImpl {
onException("Caught exception on handshake [err=" + e +", sock=" + sock + ']', e);
if (e.hasCause(SocketTimeoutException.class))
- LT.warn(log, null, "Socket operation timed out on handshake " +
+ LT.warn(log, "Socket operation timed out on handshake " +
"(consider increasing 'networkTimeout' configuration property) " +
"[netTimeout=" + spi.netTimeout + ']');
else if (e.hasCause(ClassNotFoundException.class))
- LT.warn(log, null, "Failed to read message due to ClassNotFoundException " +
+ LT.warn(log, "Failed to read message due to ClassNotFoundException " +
"(make sure same versions of all classes are available on all nodes) " +
"[rmtAddr=" + sock.getRemoteSocketAddress() +
", err=" + X.cause(e, ClassNotFoundException.class).getMessage() + ']');
@@ -5667,7 +5664,7 @@ class ServerImpl extends TcpDiscoveryImpl {
return;
if (e.hasCause(ClassNotFoundException.class))
- LT.warn(log, null, "Failed to read message due to ClassNotFoundException " +
+ LT.warn(log, "Failed to read message due to ClassNotFoundException " +
"(make sure same versions of all classes are available on all nodes) " +
"[rmtNodeId=" + nodeId +
", err=" + X.cause(e, ClassNotFoundException.class).getMessage() + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
index 30b83e5..1d63852 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoveryImpl.java
@@ -303,7 +303,7 @@ abstract class TcpDiscoveryImpl {
*/
protected boolean checkAckTimeout(long ackTimeout) {
if (ackTimeout > spi.getMaxAckTimeout()) {
- LT.warn(log, null, "Acknowledgement timeout is greater than maximum acknowledgement timeout " +
+ LT.warn(log, "Acknowledgement timeout is greater than maximum acknowledgement timeout " +
"(consider increasing 'maxAckTimeout' configuration property) " +
"[ackTimeout=" + ackTimeout + ", maxAckTimeout=" + spi.getMaxAckTimeout() + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/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 426eb8e..dee93aa 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
@@ -1471,7 +1471,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
}
catch (IOException | IgniteCheckedException e) {
if (X.hasCause(e, SocketTimeoutException.class))
- LT.warn(log, null, "Timed out waiting for message to be read (most probably, the reason is " +
+ LT.warn(log, "Timed out waiting for message to be read (most probably, the reason is " +
"in long GC pauses on remote node) [curTimeout=" + timeout + ']');
throw e;
@@ -1511,7 +1511,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
return res;
}
catch (SocketTimeoutException e) {
- LT.warn(log, null, "Timed out waiting for message delivery receipt (most probably, the reason is " +
+ LT.warn(log, "Timed out waiting for message delivery receipt (most probably, the reason is " +
"in long GC pauses on remote node; consider tuning GC and increasing 'ackTimeout' " +
"configuration property). Will retry to send message with increased timeout. " +
"Current timeout: " + timeout + '.');
@@ -1575,7 +1575,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
res.add(resolved);
}
catch (UnknownHostException ignored) {
- LT.warn(log, null, "Failed to resolve address from IP finder (host is unknown): " + addr);
+ LT.warn(log, "Failed to resolve address from IP finder (host is unknown): " + addr);
// Add address in any case.
res.add(addr);
@@ -2045,7 +2045,7 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
// Close socket - timeout occurred.
U.closeQuiet(sock);
- LT.warn(log, null, "Socket write has timed out (consider increasing " +
+ LT.warn(log, "Socket write has timed out (consider increasing " +
(failureDetectionTimeoutEnabled() ?
"'IgniteConfiguration.failureDetectionTimeout' configuration property) [" +
"failureDetectionTimeout=" + failureDetectionTimeout() + ']' :
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
index 5bbe90e..d5d3533 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ipfinder/multicast/TcpDiscoveryMulticastIpFinder.java
@@ -598,7 +598,7 @@ public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
addrRes = new AddressResponse(data);
}
catch (IgniteCheckedException e) {
- LT.warn(log, e, "Failed to deserialize multicast response.");
+ LT.error(log, e, "Failed to deserialize multicast response.");
continue;
}
@@ -876,7 +876,7 @@ public class TcpDiscoveryMulticastIpFinder extends TcpDiscoveryVmIpFinder {
}
catch (IOException e) {
if (!isInterrupted()) {
- LT.warn(log, e, "Failed to send/receive address message (will try to reconnect).");
+ LT.error(log, e, "Failed to send/receive address message (will try to reconnect).");
synchronized (this) {
U.close(sock);
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
index 524c643..e6a5537 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
@@ -1024,7 +1024,7 @@ public final class GridTestUtils {
Collection<ClusterNode> nodes = top.nodes(p, AffinityTopologyVersion.NONE);
if (nodes.size() > backups + 1) {
- LT.warn(log, null, "Partition map was not updated yet (will wait) [grid=" + g.name() +
+ LT.warn(log, "Partition map was not updated yet (will wait) [grid=" + g.name() +
", p=" + p + ", nodes=" + F.nodeIds(nodes) + ']');
wait = true;
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
index 032d99e..e0432a0 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/common/GridCommonAbstractTest.java
@@ -486,7 +486,7 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest {
if (affNodes.size() != owners.size() || !affNodes.containsAll(owners) ||
(waitEvicts && loc != null && loc.state() != GridDhtPartitionState.OWNING)) {
- LT.warn(log(), null, "Waiting for topology map update [" +
+ LT.warn(log(), "Waiting for topology map update [" +
"grid=" + g.name() +
", cache=" + cfg.getName() +
", cacheId=" + dht.context().cacheId() +
@@ -503,7 +503,7 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest {
match = true;
}
else {
- LT.warn(log(), null, "Waiting for topology map update [" +
+ LT.warn(log(), "Waiting for topology map update [" +
"grid=" + g.name() +
", cache=" + cfg.getName() +
", cacheId=" + dht.context().cacheId() +
@@ -569,7 +569,7 @@ public abstract class GridCommonAbstractTest extends GridAbstractTest {
}
if (entry.getValue() != GridDhtPartitionState.OWNING) {
- LT.warn(log(), null,
+ LT.warn(log(),
"Waiting for correct partition state, should be OWNING [state=" +
entry.getValue() + "]");
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/core/src/test/java/org/apache/ignite/util/GridLogThrottleTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/util/GridLogThrottleTest.java b/modules/core/src/test/java/org/apache/ignite/util/GridLogThrottleTest.java
index d9540a8..9eac0cc 100644
--- a/modules/core/src/test/java/org/apache/ignite/util/GridLogThrottleTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/util/GridLogThrottleTest.java
@@ -53,26 +53,20 @@ public class GridLogThrottleTest extends GridCommonAbstractTest {
// LOGGED.
LT.error(log, new RuntimeException("Test exception 2."), "Test");
- // OMITTED.
- LT.warn(log, new RuntimeException("Test exception 1."), "Test");
-
- // OMITTED.
- LT.warn(log, new RuntimeException("Test exception 2."), "Test1");
-
- // OMITTED.
- LT.warn(log, new RuntimeException("Test exception 2."), "Test3");
-
// LOGGED.
LT.error(log, null, "Test - without throwable.");
// OMITTED.
LT.error(log, null, "Test - without throwable.");
+ // OMITTED.
+ LT.warn(log, "Test - without throwable.");
+
// LOGGED.
- LT.warn(log, null, "Test - without throwable1.");
+ LT.warn(log, "Test - without throwable1.");
// OMITTED.
- LT.warn(log, null, "Test - without throwable1.");
+ LT.warn(log, "Test - without throwable1.");
Thread.sleep(LT.throttleTimeout());
@@ -90,14 +84,11 @@ public class GridLogThrottleTest extends GridCommonAbstractTest {
// LOGGED.
LT.error(log, new RuntimeException("Test exception 2."), "Test");
- // OMITTED.
- LT.warn(log, new RuntimeException("Test exception 1."), "Test");
-
- // OMITTED.
- LT.warn(log, new RuntimeException("Test exception 2."), "Test1");
+ // LOGGED.
+ LT.warn(log, "Test - without throwable.");
// OMITTED.
- LT.warn(log, new RuntimeException("Test exception 2."), "Test3");
+ LT.warn(log, "Test - without throwable.");
Thread.sleep(LT.throttleTimeout());
@@ -121,4 +112,4 @@ public class GridLogThrottleTest extends GridCommonAbstractTest {
//OMMITED.
LT.info(log(), "Test info message.");
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopExternalCommunication.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopExternalCommunication.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopExternalCommunication.java
index 1d59a95..6202c41 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopExternalCommunication.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/HadoopExternalCommunication.java
@@ -850,7 +850,7 @@ public class HadoopExternalCommunication {
catch (IgniteCheckedException e) {
if (e.hasCause(IpcOutOfSystemResourcesException.class))
// Has cause or is itself the IpcOutOfSystemResourcesException.
- LT.warn(log, null, OUT_OF_RESOURCES_TCP_MSG);
+ LT.warn(log, OUT_OF_RESOURCES_TCP_MSG);
else if (log.isDebugEnabled())
log.debug("Failed to establish shared memory connection with local hadoop process: " +
desc);
@@ -1053,7 +1053,7 @@ public class HadoopExternalCommunication {
", err=" + e + ']');
if (X.hasCause(e, SocketTimeoutException.class))
- LT.warn(log, null, "Connect timed out (consider increasing 'connTimeout' " +
+ LT.warn(log, "Connect timed out (consider increasing 'connTimeout' " +
"configuration property) [addr=" + addr + ", port=" + port + ']');
if (errs == null)
@@ -1078,7 +1078,7 @@ public class HadoopExternalCommunication {
assert errs != null;
if (X.hasCause(errs, ConnectException.class))
- LT.warn(log, null, "Failed to connect to a remote Hadoop process (is process still running?). " +
+ LT.warn(log, "Failed to connect to a remote Hadoop process (is process still running?). " +
"Make sure operating system firewall is disabled on local and remote host) " +
"[addrs=" + addr + ", port=" + port + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 2e8b93f..000e70d 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@ -921,7 +921,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
String longMsg = "Query execution is too long [time=" + time + " ms, sql='" + sql + '\'' +
", plan=" + U.nl() + plan.getString(1) + U.nl() + ", parameters=" + params + "]";
- LT.warn(log, null, longMsg, msg);
+ LT.warn(log, longMsg, msg);
}
return rs;
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapEvictQueryTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapEvictQueryTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapEvictQueryTest.java
index f21a279..aecbb03 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapEvictQueryTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheOffheapEvictQueryTest.java
@@ -174,7 +174,7 @@ public class IgniteCacheOffheapEvictQueryTest extends GridCommonAbstractTest {
}
}
- LT.warn(log, null, e.getMessage());
+ LT.warn(log, e.getMessage());
return;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3271d75f/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/scanners/http/UriDeploymentHttpScanner.java
----------------------------------------------------------------------
diff --git a/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/scanners/http/UriDeploymentHttpScanner.java b/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/scanners/http/UriDeploymentHttpScanner.java
index 48bfd7f..bb7260d 100644
--- a/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/scanners/http/UriDeploymentHttpScanner.java
+++ b/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/scanners/http/UriDeploymentHttpScanner.java
@@ -343,11 +343,11 @@ public class UriDeploymentHttpScanner implements UriDeploymentScanner {
catch (IOException e) {
if (!scanCtx.isCancelled()) {
if (X.hasCause(e, ConnectException.class)) {
- LT.warn(scanCtx.getLogger(), e, "Failed to connect to HTTP server " +
+ LT.error(scanCtx.getLogger(), e, "Failed to connect to HTTP server " +
"(connection refused): " + U.hidePassword(url));
}
else if (X.hasCause(e, UnknownHostException.class)) {
- LT.warn(scanCtx.getLogger(), e, "Failed to connect to HTTP server " +
+ LT.error(scanCtx.getLogger(), e, "Failed to connect to HTTP server " +
"(host is unknown): " + U.hidePassword(url));
}
else
@@ -404,11 +404,11 @@ public class UriDeploymentHttpScanner implements UriDeploymentScanner {
catch (IOException e) {
if (!scanCtx.isCancelled()) {
if (X.hasCause(e, ConnectException.class)) {
- LT.warn(scanCtx.getLogger(), e, "Failed to connect to HTTP server (connection refused): " +
+ LT.error(scanCtx.getLogger(), e, "Failed to connect to HTTP server (connection refused): " +
U.hidePassword(url.toString()));
}
else if (X.hasCause(e, UnknownHostException.class)) {
- LT.warn(scanCtx.getLogger(), e, "Failed to connect to HTTP server (host is unknown): " +
+ LT.error(scanCtx.getLogger(), e, "Failed to connect to HTTP server (host is unknown): " +
U.hidePassword(url.toString()));
}
else
[47/50] [abbrv] ignite git commit: Add test case for testing permits
releasing by IgniteSempahore with failoverSafe enabled
Posted by sh...@apache.org.
Add test case for testing permits releasing by IgniteSempahore with failoverSafe enabled
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/138a3aad
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/138a3aad
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/138a3aad
Branch: refs/heads/ignite-2788
Commit: 138a3aad20f7dcb16a6c7e6d047d0503450ea06e
Parents: e1defc0
Author: agura <ag...@apache.org>
Authored: Thu Nov 3 15:40:01 2016 +0300
Committer: agura <ag...@apache.org>
Committed: Thu Nov 3 15:40:01 2016 +0300
----------------------------------------------------------------------
...SemaphoreFailoverSafeReleasePermitsTest.java | 129 +++++++++++++++++++
.../IgniteCacheDataStructuresSelfTestSuite.java | 2 +
2 files changed, 131 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/138a3aad/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/SemaphoreFailoverSafeReleasePermitsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/SemaphoreFailoverSafeReleasePermitsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/SemaphoreFailoverSafeReleasePermitsTest.java
new file mode 100644
index 0000000..241253d
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/SemaphoreFailoverSafeReleasePermitsTest.java
@@ -0,0 +1,129 @@
+/*
+ * 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.datastructures;
+
+import java.util.concurrent.TimeUnit;
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteSemaphore;
+import org.apache.ignite.cache.CacheMode;
+import org.apache.ignite.configuration.AtomicConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+import static org.apache.ignite.cache.CacheMode.PARTITIONED;
+import static org.apache.ignite.cache.CacheMode.REPLICATED;
+
+/**
+ *
+ */
+public class SemaphoreFailoverSafeReleasePermitsTest extends GridCommonAbstractTest {
+ /** */
+ protected static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+ /** Grid count. */
+ private static final int GRID_CNT = 3;
+
+ /** Atomics cache mode. */
+ private CacheMode atomicsCacheMode;
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ TcpDiscoverySpi spi = new TcpDiscoverySpi();
+
+ spi.setIpFinder(ipFinder);
+
+ cfg.setDiscoverySpi(spi);
+
+ AtomicConfiguration atomicCfg = atomicConfiguration();
+
+ assertNotNull(atomicCfg);
+
+ cfg.setAtomicConfiguration(atomicCfg);
+
+ return cfg;
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testReleasePermitsPartitioned() throws Exception {
+ atomicsCacheMode = PARTITIONED;
+
+ doTest();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ public void testReleasePermitsReplicated() throws Exception {
+ atomicsCacheMode = REPLICATED;
+
+ doTest();
+ }
+
+ /**
+ * @throws Exception If failed.
+ */
+ private void doTest() throws Exception {
+ try {
+ startGrids(GRID_CNT);
+
+ Ignite ignite = grid(0);
+
+ IgniteSemaphore sem = ignite.semaphore("sem", 1, true, true);
+
+ assertEquals(1, sem.availablePermits());
+
+ sem.acquire(1);
+
+ assertEquals(0, sem.availablePermits());
+
+ ignite.close();
+
+ awaitPartitionMapExchange();
+
+ ignite = grid(1);
+
+ sem = ignite.semaphore("sem", 1, true, true);
+
+ assertTrue(sem.tryAcquire(1, 5000, TimeUnit.MILLISECONDS));
+ }
+ finally {
+ stopAllGrids();
+ }
+ }
+
+ /**
+ * @return Atomic configuration.
+ */
+ protected AtomicConfiguration atomicConfiguration() {
+ AtomicConfiguration atomicCfg = new AtomicConfiguration();
+
+ atomicCfg.setCacheMode(atomicsCacheMode);
+
+ if (atomicsCacheMode == PARTITIONED)
+ atomicCfg.setBackups(1);
+
+ return atomicCfg;
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/138a3aad/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
index d62369c..45a49bf 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheDataStructuresSelfTestSuite.java
@@ -24,6 +24,7 @@ import org.apache.ignite.internal.processors.cache.datastructures.IgniteClientDa
import org.apache.ignite.internal.processors.cache.datastructures.IgniteClientDiscoveryDataStructuresTest;
import org.apache.ignite.internal.processors.cache.datastructures.IgniteDataStructureUniqueNameTest;
import org.apache.ignite.internal.processors.cache.datastructures.IgniteDataStructureWithJobTest;
+import org.apache.ignite.internal.processors.cache.datastructures.SemaphoreFailoverSafeReleasePermitsTest;
import org.apache.ignite.internal.processors.cache.datastructures.local.GridCacheLocalAtomicOffheapSetSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.local.GridCacheLocalAtomicQueueApiSelfTest;
import org.apache.ignite.internal.processors.cache.datastructures.local.GridCacheLocalAtomicSetSelfTest;
@@ -144,6 +145,7 @@ public class IgniteCacheDataStructuresSelfTestSuite extends TestSuite {
suite.addTest(new TestSuite(IgnitePartitionedCountDownLatchSelfTest.class));
suite.addTest(new TestSuite(IgniteDataStructureWithJobTest.class));
suite.addTest(new TestSuite(IgnitePartitionedSemaphoreSelfTest.class));
+ suite.addTest(new TestSuite(SemaphoreFailoverSafeReleasePermitsTest.class));
// TODO IGNITE-3141, enabled when fixed.
// suite.addTest(new TestSuite(IgnitePartitionedLockSelfTest.class));
[10/50] [abbrv] ignite git commit: ignite-3621 Fixed
'testEvictExpired'.
Posted by sh...@apache.org.
ignite-3621 Fixed 'testEvictExpired'.
(cherry picked from commit a4d7aa3)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ad613afd
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ad613afd
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ad613afd
Branch: refs/heads/ignite-2788
Commit: ad613afd7165ed2d8bf0a62805fc2506dfe6c59a
Parents: 062b9b6
Author: sboikov <sb...@gridgain.com>
Authored: Thu Sep 29 12:04:44 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Sep 29 14:16:31 2016 +0300
----------------------------------------------------------------------
.../cache/IgniteCacheConfigVariationsFullApiTest.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ad613afd/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
index 2ca09c8..6b0e193 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheConfigVariationsFullApiTest.java
@@ -3336,7 +3336,12 @@ public class IgniteCacheConfigVariationsFullApiTest extends IgniteCacheConfigVar
boolean wait = waitForCondition(new GridAbsPredicate() {
@Override public boolean apply() {
- return cache.localPeek(key) == null;
+ for (int i = 0; i < gridCount(); i++) {
+ if (peek(jcache(i), key) != null)
+ return false;
+ }
+
+ return true;
}
}, ttl + 1000);
[20/50] [abbrv] ignite git commit: Revert "IGNITE-3191 - Fixed
ordering of fields in binary objects"
Posted by sh...@apache.org.
Revert "IGNITE-3191 - Fixed ordering of fields in binary objects"
This reverts commit d1e3a78ae569fa5d5692816db44f2c677e1b8283.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/de50287d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/de50287d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/de50287d
Branch: refs/heads/ignite-2788
Commit: de50287d493acc73186926d34431733bc76c549b
Parents: f745371
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Oct 3 10:07:33 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Oct 3 10:07:33 2016 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryClassDescriptor.java | 16 ++--
.../binary/builder/BinaryObjectBuilderImpl.java | 24 ++---
.../binary/BinaryFieldOrderSelfTest.java | 98 --------------------
.../IgniteBinaryObjectsTestSuite.java | 2 -
4 files changed, 19 insertions(+), 121 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/de50287d/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
index 276dfe5..4c824d4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
@@ -25,6 +25,7 @@ import java.lang.reflect.Modifier;
import java.lang.reflect.Proxy;
import java.math.BigDecimal;
import java.sql.Timestamp;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -32,7 +33,6 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import java.util.TreeMap;
import java.util.UUID;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.binary.BinaryObjectException;
@@ -269,9 +269,10 @@ public class BinaryClassDescriptor {
case OBJECT:
// Must not use constructor to honor transient fields semantics.
ctor = null;
+ ArrayList<BinaryFieldAccessor> fields0 = new ArrayList<>();
stableFieldsMeta = metaDataEnabled ? new HashMap<String, Integer>() : null;
- Map<String, BinaryFieldAccessor> fields0 = new TreeMap<>();
+ BinarySchema.Builder schemaBuilder = BinarySchema.Builder.newBuilder();
Set<String> duplicates = duplicateFields(cls);
@@ -299,7 +300,9 @@ public class BinaryClassDescriptor {
BinaryFieldAccessor fieldInfo = BinaryFieldAccessor.create(f, fieldId);
- fields0.put(name, fieldInfo);
+ fields0.add(fieldInfo);
+
+ schemaBuilder.addField(fieldId);
if (metaDataEnabled)
stableFieldsMeta.put(name, fieldInfo.mode().typeId());
@@ -307,12 +310,7 @@ public class BinaryClassDescriptor {
}
}
- fields = fields0.values().toArray(new BinaryFieldAccessor[fields0.size()]);
-
- BinarySchema.Builder schemaBuilder = BinarySchema.Builder.newBuilder();
-
- for (BinaryFieldAccessor field : fields)
- schemaBuilder.addField(field.id);
+ fields = fields0.toArray(new BinaryFieldAccessor[fields0.size()]);
stableSchema = schemaBuilder.build();
http://git-wip-us.apache.org/repos/asf/ignite/blob/de50287d/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
index d166051..2c76192 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
@@ -17,32 +17,32 @@
package org.apache.ignite.internal.binary.builder;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
import org.apache.ignite.binary.BinaryInvalidTypeException;
import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryObjectBuilder;
import org.apache.ignite.binary.BinaryObjectException;
import org.apache.ignite.binary.BinaryType;
-import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryMetadata;
import org.apache.ignite.internal.binary.BinaryObjectImpl;
-import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
+import org.apache.ignite.internal.binary.BinaryWriterExImpl;
+import org.apache.ignite.internal.binary.GridBinaryMarshaller;
+import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinarySchema;
import org.apache.ignite.internal.binary.BinarySchemaRegistry;
+import org.apache.ignite.internal.binary.BinaryObjectOffheapImpl;
import org.apache.ignite.internal.binary.BinaryUtils;
-import org.apache.ignite.internal.binary.BinaryWriterExImpl;
-import org.apache.ignite.internal.binary.GridBinaryMarshaller;
import org.apache.ignite.internal.util.typedef.F;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.lang.IgniteBiTuple;
import org.jetbrains.annotations.Nullable;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Set;
+
/**
*
*/
@@ -522,7 +522,7 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
Object val = val0 == null ? new BinaryValueWithType(BinaryUtils.typeByClass(Object.class), null) : val0;
if (assignedVals == null)
- assignedVals = new TreeMap<>();
+ assignedVals = new LinkedHashMap<>();
Object oldVal = assignedVals.put(name, val);
http://git-wip-us.apache.org/repos/asf/ignite/blob/de50287d/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
deleted file mode 100644
index 6bb1e13..0000000
--- a/modules/core/src/test/java/org/apache/ignite/internal/binary/BinaryFieldOrderSelfTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package org.apache.ignite.internal.binary;
-
-import org.apache.ignite.binary.BinaryObject;
-import org.apache.ignite.configuration.IgniteConfiguration;
-import org.apache.ignite.internal.IgniteEx;
-import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-
-/**
- * Test that field ordering doesn't change the schema.
- */
-public class BinaryFieldOrderSelfTest extends GridCommonAbstractTest {
- /** {@inheritDoc} */
- @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
- IgniteConfiguration cfg = super.getConfiguration(gridName);
-
- cfg.setMarshaller(new BinaryMarshaller());
- cfg.setDiscoverySpi(new TcpDiscoverySpi().setIpFinder(new TcpDiscoveryVmIpFinder(true)));
-
- return cfg;
- }
-
- /** {@inheritDoc} */
- @Override protected void beforeTest() throws Exception {
- startGrid();
- }
-
- /** {@inheritDoc} */
- @Override protected void afterTest() throws Exception {
- stopAllGrids();
- }
-
- /**
- * @throws Exception If failed.
- */
- public void testEquals() throws Exception {
- IgniteEx ignite = grid();
-
- BinaryObject bo0 = ignite.binary().toBinary(new MyType(222, 333, 111));
-
- BinaryObject bo1 = ignite.binary().builder(bo0.type().typeName()).
- setField("b", 222).
- setField("c", 333).
- setField("a", 111).
- hashCode(12345).
- build();
-
- BinaryObject bo2 = ignite.binary().builder(bo0.type().typeName()).
- setField("a", 111).
- setField("b", 222).
- setField("c", 333).
- hashCode(12345).
- build();
-
- assertEquals(12345, bo0.hashCode());
- assertEquals(12345, bo1.hashCode());
- assertEquals(12345, bo2.hashCode());
-
- assertTrue(bo0.equals(bo1));
- assertTrue(bo0.equals(bo2));
- assertTrue(bo1.equals(bo2));
- }
-
- /**
- */
- private static class MyType {
- /** B. */
- private int b;
-
- /** C. */
- private int c;
-
- /** A. */
- private int a;
-
- /**
- * @param b B.
- * @param c C.
- * @param a A.
- */
- MyType(int b, int c, int a) {
- this.b = b;
- this.c = c;
- this.a = a;
- }
-
- /** {@inheritDoc} */
- @Override public boolean equals(Object obj) {
- return super.equals(obj);
- }
-
- /** {@inheritDoc} */
- @Override public int hashCode() {
- return 12345;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/de50287d/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
index 50c6f0b..c1d9974 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteBinaryObjectsTestSuite.java
@@ -22,7 +22,6 @@ import org.apache.ignite.internal.binary.BinaryBasicIdMapperSelfTest;
import org.apache.ignite.internal.binary.BinaryBasicNameMapperSelfTest;
import org.apache.ignite.internal.binary.BinaryConfigurationConsistencySelfTest;
import org.apache.ignite.internal.binary.BinaryEnumsSelfTest;
-import org.apache.ignite.internal.binary.BinaryFieldOrderSelfTest;
import org.apache.ignite.internal.binary.BinaryFieldsHeapSelfTest;
import org.apache.ignite.internal.binary.BinaryFieldsOffheapSelfTest;
import org.apache.ignite.internal.binary.BinaryFooterOffsetsHeapSelfTest;
@@ -105,7 +104,6 @@ public class IgniteBinaryObjectsTestSuite extends TestSuite {
suite.addTestSuite(GridBinaryAffinityKeySelfTest.class);
suite.addTestSuite(GridBinaryWildcardsSelfTest.class);
suite.addTestSuite(BinaryObjectToStringSelfTest.class);
- suite.addTestSuite(BinaryFieldOrderSelfTest.class);
// Tests for objects with non-compact footers.
suite.addTestSuite(BinaryMarshallerNonCompactSelfTest.class);
[41/50] [abbrv] ignite git commit: Fixed javadoc
Posted by sh...@apache.org.
Fixed javadoc
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/c478d03a
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/c478d03a
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/c478d03a
Branch: refs/heads/ignite-2788
Commit: c478d03a81f9d3b55ad7757f743a7471b768e2ba
Parents: 5afd654
Author: yzhdanov <yz...@apache.org>
Authored: Fri Oct 7 11:43:34 2016 +0300
Committer: yzhdanov <yz...@apache.org>
Committed: Fri Oct 7 11:43:34 2016 +0300
----------------------------------------------------------------------
.../main/java/org/apache/ignite/services/Service.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/c478d03a/modules/core/src/main/java/org/apache/ignite/services/Service.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/services/Service.java b/modules/core/src/main/java/org/apache/ignite/services/Service.java
index 60b977d..e82f6c3 100644
--- a/modules/core/src/main/java/org/apache/ignite/services/Service.java
+++ b/modules/core/src/main/java/org/apache/ignite/services/Service.java
@@ -53,21 +53,21 @@ import java.io.Serializable;
* Consecutively, this service can be deployed as follows:
* <pre name="code" class="java">
* ...
- * GridServices svcs = grid.services();
+ * IgniteServices svcs = ignite.services();
*
- * svcs.deployClusterSingleton("mySingleton", new MyGridService());
+ * svcs.deployClusterSingleton("mySingleton", new MyIgniteService());
* </pre>
* Or from grid configuration on startup:
* <pre name="code" class="java">
* IgniteConfiguration gridCfg = new IgniteConfiguration();
*
- * GridServiceConfiguration svcCfg = new GridServiceConfiguration();
+ * IgniteServiceConfiguration svcCfg = new IgniteServiceConfiguration();
*
* // Configuration for cluster-singleton service.
* svcCfg.setName("mySingleton");
* svcCfg.setMaxPerNodeCount(1);
* svcCfg.setTotalCount(1);
- * svcCfg.setService(new MyGridService());
+ * svcCfg.setService(new MyIgniteService());
*
* gridCfg.setServiceConfiguration(svcCfg);
* ...
@@ -88,7 +88,7 @@ public interface Service extends Serializable {
* {@code cancel} methods on {@link org.apache.ignite.IgniteServices} API are called.
* <p>
* Note that Ignite cannot guarantee that the service exits from {@link #execute(ServiceContext)}
- * method whenever {@code cancel(GridServiceContext)} method is called. It is up to the user to
+ * method whenever {@code cancel(ServiceContext)} method is called. It is up to the user to
* make sure that the service code properly reacts to cancellations.
*
* @param ctx Service execution context.
@@ -117,4 +117,4 @@ public interface Service extends Serializable {
* {@link org.apache.ignite.IgniteServices#cancel(String)} method will be called.
*/
public void execute(ServiceContext ctx) throws Exception;
-}
\ No newline at end of file
+}
[03/50] [abbrv] ignite git commit: Validate hash code presence in
BinaryObject. Fixes #928
Posted by sh...@apache.org.
Validate hash code presence in BinaryObject. Fixes #928
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e3dfdecc
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e3dfdecc
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e3dfdecc
Branch: refs/heads/ignite-2788
Commit: e3dfdecc3607b5f3183bfcb1ce36c57543a8965f
Parents: 78144c4
Author: Alexander Paschenko <al...@gmail.com>
Authored: Wed Sep 28 16:46:46 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed Sep 28 17:00:45 2016 +0300
----------------------------------------------------------------------
.../internal/binary/BinaryClassDescriptor.java | 16 ++++-
.../internal/binary/BinaryEnumObjectImpl.java | 5 ++
.../ignite/internal/binary/BinaryObjectEx.java | 8 +++
.../internal/binary/BinaryObjectImpl.java | 7 +++
.../binary/BinaryObjectOffheapImpl.java | 7 +++
.../ignite/internal/binary/BinaryUtils.java | 5 +-
.../internal/binary/BinaryWriterExImpl.java | 6 +-
.../binary/builder/BinaryObjectBuilderImpl.java | 11 +++-
.../processors/cache/GridCacheUtils.java | 5 ++
.../ignite/internal/util/IgniteUtils.java | 23 ++++++-
...ridCacheStoreManagerDeserializationTest.java | 1 +
.../cache/GridCacheUtilsSelfTest.java | 64 +++++++++++++++++++-
...calCacheStoreManagerDeserializationTest.java | 2 +-
.../GridCacheBinaryObjectsAbstractSelfTest.java | 31 ++++++++++
14 files changed, 182 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
index 083057d..4c824d4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryClassDescriptor.java
@@ -41,6 +41,7 @@ import org.apache.ignite.binary.BinarySerializer;
import org.apache.ignite.binary.Binarylizable;
import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
import org.apache.ignite.internal.util.GridUnsafe;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.S;
import org.apache.ignite.internal.util.typedef.internal.U;
@@ -114,6 +115,9 @@ public class BinaryClassDescriptor {
private final boolean excluded;
/** */
+ private final boolean overridesHashCode;
+
+ /** */
private final Class<?>[] intfs;
/**
@@ -164,6 +168,8 @@ public class BinaryClassDescriptor {
this.mapper = mapper;
this.registered = registered;
+ overridesHashCode = IgniteUtils.overridesEqualsAndHashCode(cls);
+
schemaReg = ctx.schemaRegistry(typeId);
excluded = MarshallerExclusions.isExcluded(cls);
@@ -845,7 +851,15 @@ public class BinaryClassDescriptor {
* @param obj Object.
*/
private void postWrite(BinaryWriterExImpl writer, Object obj) {
- writer.postWrite(userType, registered, obj instanceof CacheObjectImpl ? 0 : obj.hashCode());
+ if (obj instanceof CacheObjectImpl)
+ writer.postWrite(userType, registered, 0, false);
+ else if (obj instanceof BinaryObjectEx) {
+ boolean flagSet = ((BinaryObjectEx)obj).isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
+
+ writer.postWrite(userType, registered, obj.hashCode(), !flagSet);
+ }
+ else
+ writer.postWrite(userType, registered, obj.hashCode(), overridesHashCode);
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
index c9874ed..dcfcc9d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryEnumObjectImpl.java
@@ -139,6 +139,11 @@ public class BinaryEnumObjectImpl implements BinaryObjectEx, Externalizable, Cac
}
/** {@inheritDoc} */
+ @Override public boolean isFlagSet(short flag) {
+ return false;
+ }
+
+ /** {@inheritDoc} */
@Override public <F> F field(String fieldName) throws BinaryObjectException {
return null;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
index e3566bc..4e137b7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectEx.java
@@ -38,4 +38,12 @@ public interface BinaryObjectEx extends BinaryObject {
* @throws BinaryObjectException If failed.
*/
@Nullable public BinaryType rawType() throws BinaryObjectException;
+
+ /**
+ * Check if flag set.
+ *
+ * @param flag flag to check.
+ * @return {@code true} if flag is set, {@code false} otherwise.
+ */
+ public boolean isFlagSet(short flag);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
index 7b42c03..f37d7c2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectImpl.java
@@ -246,6 +246,13 @@ public final class BinaryObjectImpl extends BinaryObjectExImpl implements Extern
}
/** {@inheritDoc} */
+ @Override public boolean isFlagSet(short flag) {
+ short flags = BinaryPrimitives.readShort(arr, start + GridBinaryMarshaller.FLAGS_POS);
+
+ return BinaryUtils.isFlagSet(flags, flag);
+ }
+
+ /** {@inheritDoc} */
@Override public int typeId() {
int off = start + GridBinaryMarshaller.TYPE_ID_POS;
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
index 2225b7a..9cbbaa2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryObjectOffheapImpl.java
@@ -145,6 +145,13 @@ public class BinaryObjectOffheapImpl extends BinaryObjectExImpl implements Exter
}
/** {@inheritDoc} */
+ @Override public boolean isFlagSet(short flag) {
+ short flags = BinaryPrimitives.readShort(ptr, start + GridBinaryMarshaller.FLAGS_POS);
+
+ return BinaryUtils.isFlagSet(flags, flag);
+ }
+
+ /** {@inheritDoc} */
@Nullable @Override public BinaryType type() throws BinaryObjectException {
return BinaryUtils.typeProxy(ctx, this);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
index b5834a5..25d87ff 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryUtils.java
@@ -109,6 +109,9 @@ public class BinaryUtils {
/** Flag: compact footer, no field IDs. */
public static final short FLAG_COMPACT_FOOTER = 0x0020;
+ /** Flag: no hash code has been set. */
+ public static final short FLAG_EMPTY_HASH_CODE = 0x0040;
+
/** Offset which fits into 1 byte. */
public static final int OFFSET_1 = 1;
@@ -305,7 +308,7 @@ public class BinaryUtils {
* @param flag Flag.
* @return {@code True} if flag is set in flags.
*/
- private static boolean isFlagSet(short flags, short flag) {
+ static boolean isFlagSet(short flags, short flag) {
return (flags & flag) == flag;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
index 1a81819..22b4d1f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/BinaryWriterExImpl.java
@@ -245,8 +245,9 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
* @param userType User type flag.
* @param registered Whether type is registered.
* @param hashCode Hash code.
+ * @param isHashCodeSet Hash code presence flag.
*/
- public void postWrite(boolean userType, boolean registered, int hashCode) {
+ public void postWrite(boolean userType, boolean registered, int hashCode, boolean isHashCodeSet) {
short flags;
boolean useCompactFooter;
@@ -303,6 +304,9 @@ public class BinaryWriterExImpl implements BinaryWriter, BinaryRawWriterEx, Obje
}
}
+ if (!isHashCodeSet)
+ flags |= BinaryUtils.FLAG_EMPTY_HASH_CODE;
+
// Actual write.
int retPos = out.position();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
index 086da5c..2c76192 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryObjectBuilderImpl.java
@@ -86,6 +86,9 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
/** */
private int hashCode;
+ /** */
+ private boolean isHashCodeSet;
+
/**
* @param clsName Class name.
* @param ctx Binary context.
@@ -117,7 +120,7 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
*/
public BinaryObjectBuilderImpl(BinaryObjectImpl obj) {
this(new BinaryBuilderReader(obj), obj.start());
-
+ isHashCodeSet = !obj.isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
reader.registerObject(this);
}
@@ -329,7 +332,8 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
reader.position(start + BinaryUtils.length(reader, start));
}
- writer.postWrite(true, registeredType, hashCode);
+ //noinspection NumberEquality
+ writer.postWrite(true, registeredType, hashCode, isHashCodeSet);
// Update metadata if needed.
int schemaId = writer.schemaId();
@@ -408,9 +412,12 @@ public class BinaryObjectBuilderImpl implements BinaryObjectBuilder {
}
/** {@inheritDoc} */
+ @SuppressWarnings("UnnecessaryBoxing")
@Override public BinaryObjectBuilderImpl hashCode(int hashCode) {
this.hashCode = hashCode;
+ isHashCodeSet = true;
+
return this;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/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 1a4ffd5..0f4e89b 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
@@ -1170,6 +1170,7 @@ public class GridCacheUtils {
/**
* Validates that cache key object has overridden equals and hashCode methods.
+ * Will also check that a BinaryObject has a hash code set.
*
* @param key Key.
* @throws IllegalArgumentException If equals or hashCode is not implemented.
@@ -1181,6 +1182,10 @@ public class GridCacheUtils {
if (!U.overridesEqualsAndHashCode(key))
throw new IllegalArgumentException("Cache key must override hashCode() and equals() methods: " +
key.getClass().getName());
+
+ if (U.isHashCodeEmpty(key))
+ throw new IllegalArgumentException("Cache key created with BinaryBuilder is missing hash code - " +
+ "please set it explicitly during building by using BinaryBuilder.hashCode(int)");
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/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 cdaeab1..501cdb2 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
@@ -149,6 +149,7 @@ import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteInterruptedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.IgniteSystemProperties;
+import org.apache.ignite.binary.BinaryObject;
import org.apache.ignite.binary.BinaryRawReader;
import org.apache.ignite.binary.BinaryRawWriter;
import org.apache.ignite.cluster.ClusterGroupEmptyException;
@@ -170,6 +171,8 @@ import org.apache.ignite.internal.IgniteFutureTimeoutCheckedException;
import org.apache.ignite.internal.IgniteInternalFuture;
import org.apache.ignite.internal.IgniteInterruptedCheckedException;
import org.apache.ignite.internal.IgniteNodeAttributes;
+import org.apache.ignite.internal.binary.BinaryObjectEx;
+import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.cluster.ClusterGroupEmptyCheckedException;
import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
import org.apache.ignite.internal.compute.ComputeTaskCancelledCheckedException;
@@ -8479,9 +8482,15 @@ public abstract class IgniteUtils {
* @return {@code True} if given object has overridden equals and hashCode method.
*/
public static boolean overridesEqualsAndHashCode(Object obj) {
- try {
- Class<?> cls = obj.getClass();
+ return overridesEqualsAndHashCode(obj.getClass());
+ }
+ /**
+ * @param cls Class.
+ * @return {@code True} if given class has overridden equals and hashCode method.
+ */
+ public static boolean overridesEqualsAndHashCode(Class<?> cls) {
+ try {
return !Object.class.equals(cls.getMethod("equals", Object.class).getDeclaringClass()) &&
!Object.class.equals(cls.getMethod("hashCode").getDeclaringClass());
}
@@ -8491,6 +8500,16 @@ public abstract class IgniteUtils {
}
/**
+ * @param obj Object.
+ * @return {@code True} if given object is a {@link BinaryObjectEx} and
+ * has {@link BinaryUtils#FLAG_EMPTY_HASH_CODE} set
+ */
+ public static boolean isHashCodeEmpty(Object obj) {
+ return obj != null && obj instanceof BinaryObjectEx &&
+ ((BinaryObjectEx)obj).isFlagSet(BinaryUtils.FLAG_EMPTY_HASH_CODE);
+ }
+
+ /**
* Checks if error is MAC invalid argument error which ususally requires special handling.
*
* @param e Exception.
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
index 4a069a9..39ce33d 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManagerDeserializationTest.java
@@ -279,6 +279,7 @@ public class GridCacheStoreManagerDeserializationTest extends GridCommonAbstract
for (int i = 0; i < 1; i++) {
builder.setField("id", i);
+ builder.hashCode(i);
entity = builder.build();
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
index d5888e7..5f2c004 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheUtilsSelfTest.java
@@ -18,7 +18,21 @@
package org.apache.ignite.internal.processors.cache;
import java.util.concurrent.Callable;
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.binary.BinaryObject;
+import org.apache.ignite.configuration.BinaryConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.binary.BinaryCachingMetadataHandler;
+import org.apache.ignite.internal.binary.BinaryContext;
+import org.apache.ignite.internal.binary.BinaryMarshaller;
+import org.apache.ignite.internal.binary.BinaryObjectImpl;
+import org.apache.ignite.internal.binary.GridBinaryMarshaller;
+import org.apache.ignite.internal.binary.builder.BinaryObjectBuilderImpl;
+import org.apache.ignite.internal.util.IgniteUtils;
import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.internal.util.typedef.internal.U;
+import org.apache.ignite.logger.NullLogger;
+import org.apache.ignite.marshaller.MarshallerContextTestImpl;
import org.apache.ignite.testframework.GridTestUtils;
import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
@@ -104,7 +118,8 @@ public class GridCacheUtilsSelfTest extends GridCommonAbstractTest {
/**
*/
- public void testCacheKeyValidation() {
+ @SuppressWarnings("ResultOfMethodCallIgnored")
+ public void testCacheKeyValidation() throws IgniteCheckedException {
CU.validateCacheKey("key");
CU.validateCacheKey(1);
@@ -124,6 +139,53 @@ public class GridCacheUtilsSelfTest extends GridCommonAbstractTest {
assertThrowsForInvalidKey(new NoHashCode());
assertThrowsForInvalidKey(new WrongEquals());
+
+ BinaryObjectBuilderImpl binBuilder = new BinaryObjectBuilderImpl(binaryContext(),
+ EqualsAndHashCode.class.getName());
+
+ assertThrowsForInvalidKey(binBuilder.build());
+
+ binBuilder.hashCode(0xFE12);
+
+ BinaryObject binObj = binBuilder.build();
+
+ CU.validateCacheKey(binObj);
+
+ BinaryObjectBuilderImpl binBuilder2 = new BinaryObjectBuilderImpl((BinaryObjectImpl) binObj);
+
+ CU.validateCacheKey(binBuilder2.build());
+ }
+
+ /**
+ * @return Binary marshaller.
+ * @throws IgniteCheckedException if failed.
+ */
+ private BinaryMarshaller binaryMarshaller() throws IgniteCheckedException {
+ IgniteConfiguration iCfg = new IgniteConfiguration();
+
+ BinaryConfiguration bCfg = new BinaryConfiguration();
+
+ iCfg.setBinaryConfiguration(bCfg);
+
+ BinaryContext ctx = new BinaryContext(BinaryCachingMetadataHandler.create(), iCfg, new NullLogger());
+
+ BinaryMarshaller marsh = new BinaryMarshaller();
+
+ marsh.setContext(new MarshallerContextTestImpl(null));
+
+ IgniteUtils.invoke(BinaryMarshaller.class, marsh, "setBinaryContext", ctx, iCfg);
+
+ return marsh;
+ }
+
+ /**
+ * @return Binary context.
+ * @throws IgniteCheckedException if failed.
+ */
+ private BinaryContext binaryContext() throws IgniteCheckedException {
+ GridBinaryMarshaller impl = U.field(binaryMarshaller(), "impl");
+
+ return impl.context();
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
index 827b3cf..b86fe53 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridLocalCacheStoreManagerDeserializationTest.java
@@ -86,7 +86,7 @@ public class GridLocalCacheStoreManagerDeserializationTest extends GridCacheStor
final BinaryObjectBuilder builder = grid.binary().builder("custom_type");
- final BinaryObject entity = builder.setField("id", 0).build();
+ final BinaryObject entity = builder.setField("id", 0).hashCode(0).build();
cache.put(entity, entity);
http://git-wip-us.apache.org/repos/asf/ignite/blob/e3dfdecc/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
index 3a510c3..7936ea4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
@@ -28,6 +28,7 @@ import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import java.util.concurrent.Callable;
import javax.cache.Cache;
import javax.cache.processor.EntryProcessor;
import javax.cache.processor.EntryProcessorException;
@@ -887,6 +888,36 @@ public abstract class GridCacheBinaryObjectsAbstractSelfTest extends GridCommonA
}
/**
+ * @throws Exception If failed.
+ */
+ @SuppressWarnings({ "ThrowableResultOfMethodCallIgnored", "unchecked" })
+ public void testPutWithoutHashCode() throws Exception {
+ final IgniteCache c = jcache(0);
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ /** {@inheritDoc} */
+ @Override public Object call() throws Exception {
+ c.put(new TestObject(5), 5);
+ return null;
+ }
+ }, IllegalArgumentException.class, "Cache key must override hashCode() and equals() methods: ");
+
+ BinaryObjectBuilder bldr = grid(0).binary().builder(TestObject.class.getName());
+ bldr.setField("val", 5);
+
+ final BinaryObject binKey = bldr.build();
+
+ GridTestUtils.assertThrows(log, new Callable<Object>() {
+ /** {@inheritDoc} */
+ @Override public Object call() throws Exception {
+ c.put(binKey, 5);
+ return null;
+ }
+ }, IllegalArgumentException.class, "Cache key created with BinaryBuilder is missing hash code - " +
+ "please set it explicitly during building by using BinaryBuilder.hashCode(int)");
+ }
+
+ /**
* @throws Exception if failed.
*/
public void testKeepBinaryTxOverwrite() throws Exception {
[21/50] [abbrv] ignite git commit: Merge branch 'ignite-1.7.2' into
ignite-1.7.3
Posted by sh...@apache.org.
Merge branch 'ignite-1.7.2' into ignite-1.7.3
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b5902336
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b5902336
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b5902336
Branch: refs/heads/ignite-2788
Commit: b5902336ba7a2c313b61050e38d7e033d310d55f
Parents: c7fa918 a4d7aa3
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Oct 3 10:47:13 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Oct 3 10:47:13 2016 +0300
----------------------------------------------------------------------
.../cache/GridCacheAbstractFullApiSelfTest.java | 11 ++++++++---
.../IgniteCacheConfigVariationsFullApiTest.java | 7 ++++++-
...heAtomicClientOnlyMultiNodeFullApiSelfTest.java | 17 +++++++++++++++--
...acheAtomicNearOnlyMultiNodeFullApiSelfTest.java | 17 +++++++++++++++--
.../IgniteSessionStateStoreProviderTest.cs | 13 +++++++++++++
.../IgniteOutputCacheProvider.cs | 2 +-
.../IgniteSessionStateStoreProvider.cs | 8 +++++++-
.../dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs | 13 +++++++------
8 files changed, 72 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
[23/50] [abbrv] ignite git commit: IGNITE-1629 .NET: Introduced
native logging facility
Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
index 59bf090..db2a96b 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.csproj
@@ -308,7 +308,6 @@
<Compile Include="Impl\Common\IgniteConfigurationXmlSerializer.cs" />
<Compile Include="Impl\Common\IgniteHome.cs" />
<Compile Include="Impl\Common\LoadedAssembliesResolver.cs" />
- <Compile Include="Impl\Common\Logger.cs" />
<Compile Include="Impl\Common\ResizeableArray.cs" />
<Compile Include="Impl\Common\TypeCaster.cs" />
<Compile Include="Impl\Common\TypeStringConverter.cs" />
@@ -343,6 +342,7 @@
<Compile Include="Impl\Ignite.cs" />
<Compile Include="Impl\IgniteManager.cs" />
<Compile Include="Impl\IgniteProxy.cs" />
+ <Compile Include="Impl\Log\JavaLogger.cs" />
<Compile Include="Impl\PlatformTarget.cs" />
<Compile Include="Impl\IgniteUtils.cs" />
<Compile Include="Impl\Handle\Handle.cs" />
@@ -435,6 +435,10 @@
<Compile Include="Interop\Package-Info.cs" />
<Compile Include="Lifecycle\ClientReconnectEventArgs.cs" />
<Compile Include="Lifecycle\Package-Info.cs" />
+ <Compile Include="Log\CategoryLogger.cs" />
+ <Compile Include="Log\ILogger.cs" />
+ <Compile Include="Log\LoggerExtensions.cs" />
+ <Compile Include="Log\LogLevel.cs" />
<Compile Include="Messaging\Package-Info.cs" />
<Compile Include="Package-Info.cs" />
<Compile Include="Lifecycle\ILifecycleBean.cs" />
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs
index e5e79cd..cb15564 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/CacheConfiguration.cs
@@ -23,6 +23,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
using System;
using System.Collections.Generic;
using System.ComponentModel;
+ using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Apache.Ignite.Core.Binary;
@@ -35,6 +36,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
using Apache.Ignite.Core.Common;
using Apache.Ignite.Core.Impl.Binary;
using Apache.Ignite.Core.Impl.Cache.Affinity;
+ using Apache.Ignite.Core.Log;
/// <summary>
/// Defines grid cache configuration.
@@ -353,6 +355,21 @@ namespace Apache.Ignite.Core.Cache.Configuration
}
/// <summary>
+ /// Validates this instance and outputs information to the log, if necessary.
+ /// </summary>
+ internal void Validate(ILogger log)
+ {
+ Debug.Assert(log != null);
+
+ var entities = QueryEntities;
+ if (entities != null)
+ {
+ foreach (var entity in entities)
+ entity.Validate(log, string.Format("Validating cache configuration '{0}'", Name ?? ""));
+ }
+ }
+
+ /// <summary>
/// Gets or sets write synchronization mode. This mode controls whether the main
/// caller should wait for update on other nodes to complete or not.
/// </summary>
@@ -669,7 +686,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
/// <summary>
/// Gets or sets the affinity function to provide mapping from keys to nodes.
/// <para />
- /// Predefined implementations:
+ /// Predefined implementations:
/// <see cref="RendezvousAffinityFunction"/>, <see cref="FairAffinityFunction"/>.
/// </summary>
public IAffinityFunction AffinityFunction { get; set; }
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryEntity.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryEntity.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryEntity.cs
index e6eceb8..adfe9e1 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryEntity.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryEntity.cs
@@ -27,6 +27,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
using System.Reflection;
using Apache.Ignite.Core.Binary;
using Apache.Ignite.Core.Impl.Binary;
+ using Apache.Ignite.Core.Log;
/// <summary>
/// Query entity is a description of cache entry (composed of key and value)
@@ -104,7 +105,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
KeyTypeName = value == null
? null
- : (JavaTypes.GetJavaTypeNameAndLogWarning(value) ?? BinaryUtils.GetTypeName(value));
+ : (JavaTypes.GetJavaTypeName(value) ?? BinaryUtils.GetTypeName(value));
_keyType = value;
}
@@ -140,7 +141,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
ValueTypeName = value == null
? null
- : (JavaTypes.GetJavaTypeNameAndLogWarning(value) ?? BinaryUtils.GetTypeName(value));
+ : (JavaTypes.GetJavaTypeName(value) ?? BinaryUtils.GetTypeName(value));
_valueType = value;
}
@@ -239,6 +240,26 @@ namespace Apache.Ignite.Core.Cache.Configuration
writer.WriteInt(0);
}
+ /// <summary>
+ /// Validates this instance and outputs information to the log, if necessary.
+ /// </summary>
+ internal void Validate(ILogger log, string logInfo)
+ {
+ Debug.Assert(log != null);
+ Debug.Assert(logInfo != null);
+
+ logInfo += string.Format(", QueryEntity '{0}:{1}'", _keyTypeName ?? "", _valueTypeName ?? "");
+
+ JavaTypes.LogIndirectMappingWarning(_keyType, log, logInfo);
+ JavaTypes.LogIndirectMappingWarning(_valueType, log, logInfo);
+
+ var fields = Fields;
+ if (fields != null)
+ {
+ foreach (var field in fields)
+ field.Validate(log, logInfo);
+ }
+ }
/// <summary>
/// Rescans the attributes in <see cref="KeyType"/> and <see cref="ValueType"/>.
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryField.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryField.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryField.cs
index b11e53d..12028e2 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryField.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Configuration/QueryField.cs
@@ -20,8 +20,10 @@
namespace Apache.Ignite.Core.Cache.Configuration
{
using System;
+ using System.Diagnostics;
using Apache.Ignite.Core.Impl.Binary;
using Apache.Ignite.Core.Impl.Common;
+ using Apache.Ignite.Core.Log;
/// <summary>
/// Represents a queryable field.
@@ -71,7 +73,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
}
/// <summary>
- /// Gets the field name.
+ /// Gets or sets the field name.
/// </summary>
public string Name { get; set; }
@@ -87,7 +89,7 @@ namespace Apache.Ignite.Core.Cache.Configuration
{
FieldTypeName = value == null
? null
- : (JavaTypes.GetJavaTypeNameAndLogWarning(value) ?? BinaryUtils.GetTypeName(value));
+ : (JavaTypes.GetJavaTypeName(value) ?? BinaryUtils.GetTypeName(value));
_type = value;
}
@@ -105,5 +107,18 @@ namespace Apache.Ignite.Core.Cache.Configuration
_type = null;
}
}
+
+ /// <summary>
+ /// Validates this instance and outputs information to the log, if necessary.
+ /// </summary>
+ internal void Validate(ILogger log, string logInfo)
+ {
+ Debug.Assert(log != null);
+ Debug.Assert(logInfo != null);
+
+ logInfo += string.Format(", QueryField '{0}'", Name);
+
+ JavaTypes.LogIndirectMappingWarning(_type, log, logInfo);
+ }
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
index a16ae3a..91aa1dd 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IIgnite.cs
@@ -29,6 +29,7 @@ namespace Apache.Ignite.Core
using Apache.Ignite.Core.Datastream;
using Apache.Ignite.Core.DataStructures;
using Apache.Ignite.Core.Events;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Lifecycle;
using Apache.Ignite.Core.Messaging;
using Apache.Ignite.Core.Services;
@@ -277,6 +278,13 @@ namespace Apache.Ignite.Core
ICollection<string> GetCacheNames();
/// <summary>
+ /// Gets the logger.
+ /// <para />
+ /// See <see cref="IgniteConfiguration.Logger"/> for customization.
+ /// </summary>
+ ILogger Logger { get; }
+
+ /// <summary>
/// Occurs when node begins to stop. Node is fully functional at this point.
/// See also: <see cref="LifecycleEventType.BeforeNodeStop"/>.
/// </summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
index 6bdf1ab..8e16fb5 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
@@ -38,6 +38,7 @@
using Apache.Ignite.Core.Impl.Binary;
using Apache.Ignite.Core.Impl.Common;
using Apache.Ignite.Core.Lifecycle;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Transactions;
using BinaryReader = Apache.Ignite.Core.Impl.Binary.BinaryReader;
using BinaryWriter = Apache.Ignite.Core.Impl.Binary.BinaryWriter;
@@ -292,6 +293,21 @@
}
/// <summary>
+ /// Validates this instance and outputs information to the log, if necessary.
+ /// </summary>
+ internal void Validate(ILogger log)
+ {
+ Debug.Assert(log != null);
+
+ var ccfg = CacheConfiguration;
+ if (ccfg != null)
+ {
+ foreach (var cfg in ccfg)
+ cfg.Validate(log);
+ }
+ }
+
+ /// <summary>
/// Reads data from specified reader into current instance.
/// </summary>
/// <param name="r">The binary reader.</param>
@@ -398,6 +414,7 @@
Assemblies = cfg.Assemblies;
SuppressWarnings = cfg.SuppressWarnings;
LifecycleBeans = cfg.LifecycleBeans;
+ Logger = cfg.Logger;
JvmInitialMemoryMb = cfg.JvmInitialMemoryMb;
JvmMaxMemoryMb = cfg.JvmMaxMemoryMb;
}
@@ -678,5 +695,76 @@
get { return _isLateAffinityAssignment ?? DefaultIsLateAffinityAssignment; }
set { _isLateAffinityAssignment = value; }
}
+
+ /// <summary>
+ /// Serializes this instance to the specified XML writer.
+ /// </summary>
+ /// <param name="writer">The writer.</param>
+ /// <param name="rootElementName">Name of the root element.</param>
+ public void ToXml(XmlWriter writer, string rootElementName)
+ {
+ IgniteArgumentCheck.NotNull(writer, "writer");
+ IgniteArgumentCheck.NotNullOrEmpty(rootElementName, "rootElementName");
+
+ IgniteConfigurationXmlSerializer.Serialize(this, writer, rootElementName);
+ }
+
+ /// <summary>
+ /// Serializes this instance to an XML string.
+ /// </summary>
+ public string ToXml()
+ {
+ var sb = new StringBuilder();
+
+ var settings = new XmlWriterSettings
+ {
+ Indent = true
+ };
+
+ using (var xmlWriter = XmlWriter.Create(sb, settings))
+ {
+ ToXml(xmlWriter, "igniteConfiguration");
+ }
+
+ return sb.ToString();
+ }
+
+ /// <summary>
+ /// Deserializes IgniteConfiguration from the XML reader.
+ /// </summary>
+ /// <param name="reader">The reader.</param>
+ /// <returns>Deserialized instance.</returns>
+ public static IgniteConfiguration FromXml(XmlReader reader)
+ {
+ IgniteArgumentCheck.NotNull(reader, "reader");
+
+ return IgniteConfigurationXmlSerializer.Deserialize(reader);
+ }
+
+ /// <summary>
+ /// Deserializes IgniteConfiguration from the XML string.
+ /// </summary>
+ /// <param name="xml">Xml string.</param>
+ /// <returns>Deserialized instance.</returns>
+ public static IgniteConfiguration FromXml(string xml)
+ {
+ IgniteArgumentCheck.NotNullOrEmpty(xml, "xml");
+
+ using (var xmlReader = XmlReader.Create(new StringReader(xml)))
+ {
+ // Skip XML header.
+ xmlReader.MoveToContent();
+
+ return FromXml(xmlReader);
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the logger.
+ /// <para />
+ /// If no logger is set, logging is delegated to Java, which uses the logger defined in Spring XML (if present)
+ /// or logs to console otherwise.
+ /// </summary>
+ public ILogger Logger { get; set; }
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
index 24eaa30..916fd20 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
@@ -357,6 +357,18 @@
<xs:attribute name="pessimisticTransactionLogLinger" type="xs:string" />
</xs:complexType>
</xs:element>
+ <xs:element name="logger" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>The logger. If no logger is set, logging is delegated to Java, which uses the logger defined in Spring XML (if present) or logs to console otherwise.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="type" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation>Assembly-qualified type name.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
</xs:all>
<xs:attribute name="gridName" type="xs:string" />
<xs:attribute name="jvmDllPath" type="xs:string" />
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
index 552a7f2..7b023f3 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Ignition.cs
@@ -35,9 +35,11 @@ namespace Apache.Ignite.Core
using Apache.Ignite.Core.Impl.Cache.Affinity;
using Apache.Ignite.Core.Impl.Common;
using Apache.Ignite.Core.Impl.Handle;
+ using Apache.Ignite.Core.Impl.Log;
using Apache.Ignite.Core.Impl.Memory;
using Apache.Ignite.Core.Impl.Unmanaged;
using Apache.Ignite.Core.Lifecycle;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Resource;
using BinaryReader = Apache.Ignite.Core.Impl.Binary.BinaryReader;
using UU = Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils;
@@ -201,15 +203,21 @@ namespace Apache.Ignite.Core
lock (SyncRoot)
{
+ // 0. Init logger
+ var log = cfg.Logger ?? new JavaLogger();
+
+ log.Debug("Starting Ignite.NET " + Assembly.GetExecutingAssembly().GetName().Version);
+
// 1. Check GC settings.
- CheckServerGc(cfg);
+ CheckServerGc(cfg, log);
// 2. Create context.
- IgniteUtils.LoadDlls(cfg.JvmDllPath);
+ IgniteUtils.LoadDlls(cfg.JvmDllPath, log);
- var cbs = new UnmanagedCallbacks();
+ var cbs = new UnmanagedCallbacks(log);
- IgniteManager.CreateJvmContext(cfg, cbs);
+ IgniteManager.CreateJvmContext(cfg, cbs, log);
+ log.Debug("JVM started.");
var gridName = cfg.GridName;
@@ -221,12 +229,17 @@ namespace Apache.Ignite.Core
try
{
// 4. Initiate Ignite start.
- UU.IgnitionStart(cbs.Context, cfg.SpringConfigUrl, gridName, ClientMode);
+ UU.IgnitionStart(cbs.Context, cfg.SpringConfigUrl, gridName, ClientMode, cfg.Logger != null);
+
// 5. At this point start routine is finished. We expect STARTUP object to have all necessary data.
var node = _startup.Ignite;
interopProc = node.InteropProcessor;
+ var javaLogger = log as JavaLogger;
+ if (javaLogger != null)
+ javaLogger.SetProcessor(interopProc);
+
// 6. On-start callback (notify lifecycle components).
node.OnStart();
@@ -271,10 +284,11 @@ namespace Apache.Ignite.Core
/// Check whether GC is set to server mode.
/// </summary>
/// <param name="cfg">Configuration.</param>
- private static void CheckServerGc(IgniteConfiguration cfg)
+ /// <param name="log">Log.</param>
+ private static void CheckServerGc(IgniteConfiguration cfg, ILogger log)
{
if (!cfg.SuppressWarnings && !GCSettings.IsServerGC && Interlocked.CompareExchange(ref _gcWarn, 1, 0) == 0)
- Logger.LogWarning("GC server mode is not enabled, this could lead to less " +
+ log.Warn("GC server mode is not enabled, this could lead to less " +
"than optimal performance on multi-core machines (to enable see " +
"http://msdn.microsoft.com/en-us/library/ms229357(v=vs.110).aspx).");
}
@@ -285,14 +299,15 @@ namespace Apache.Ignite.Core
/// <param name="inStream">Input stream with data.</param>
/// <param name="outStream">Output stream.</param>
/// <param name="handleRegistry">Handle registry.</param>
- internal static void OnPrepare(PlatformMemoryStream inStream, PlatformMemoryStream outStream,
- HandleRegistry handleRegistry)
+ /// <param name="log">Log.</param>
+ internal static void OnPrepare(PlatformMemoryStream inStream, PlatformMemoryStream outStream,
+ HandleRegistry handleRegistry, ILogger log)
{
try
{
BinaryReader reader = BinaryUtils.Marshaller.StartUnmarshal(inStream);
- PrepareConfiguration(reader, outStream);
+ PrepareConfiguration(reader, outStream, log);
PrepareLifecycleBeans(reader, outStream, handleRegistry);
@@ -313,7 +328,8 @@ namespace Apache.Ignite.Core
/// </summary>
/// <param name="reader">Reader.</param>
/// <param name="outStream">Response stream.</param>
- private static void PrepareConfiguration(BinaryReader reader, PlatformMemoryStream outStream)
+ /// <param name="log">Log.</param>
+ private static void PrepareConfiguration(BinaryReader reader, PlatformMemoryStream outStream, ILogger log)
{
// 1. Load assemblies.
IgniteConfiguration cfg = _startup.Configuration;
@@ -334,6 +350,7 @@ namespace Apache.Ignite.Core
_startup.Marshaller = new Marshaller(cfg.BinaryConfiguration);
// 3. Send configuration details to Java
+ cfg.Validate(log);
cfg.Write(_startup.Marshaller.StartMarshal(outStream));
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs
index f30264d..a8d94f2 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Binary/JavaTypes.cs
@@ -20,7 +20,7 @@ namespace Apache.Ignite.Core.Impl.Binary
using System;
using System.Collections.Generic;
using System.Linq;
- using Apache.Ignite.Core.Impl.Common;
+ using Apache.Ignite.Core.Log;
/// <summary>
/// Provides mapping between Java and .NET basic types.
@@ -67,26 +67,33 @@ namespace Apache.Ignite.Core.Impl.Binary
/// <summary>
/// Gets the corresponding Java type name.
- /// Logs a warning for indirectly mapped types.
/// </summary>
- public static string GetJavaTypeNameAndLogWarning(Type type)
+ public static string GetJavaTypeName(Type type)
{
if (type == null)
return null;
string res;
- if (!NetToJava.TryGetValue(type, out res))
- return null;
+ return NetToJava.TryGetValue(type, out res) ? res : null;
+ }
- Type directType;
+ /// <summary>
+ /// Logs a warning for indirectly mapped types.
+ /// </summary>
+ public static void LogIndirectMappingWarning(Type type, ILogger log, string logInfo)
+ {
+ if (type == null)
+ return;
- if (IndirectMappingTypes.TryGetValue(type, out directType))
- Logger.LogWarning("Type '{0}' maps to Java type '{1}' using unchecked conversion. " +
- "This may cause issues in SQL queries. " +
- "You can use '{2}' instead to achieve direct mapping.", type, res, directType);
+ Type directType;
+ if (!IndirectMappingTypes.TryGetValue(type, out directType))
+ return;
- return res;
+ log.Warn("{0}: Type '{1}' maps to Java type '{2}' using unchecked conversion. " +
+ "This may cause issues in SQL queries. " +
+ "You can use '{3}' instead to achieve direct mapping.",
+ logInfo, type, NetToJava[type], directType);
}
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Logger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Logger.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Logger.cs
deleted file mode 100644
index cab5afc..0000000
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Common/Logger.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-\ufeff/*
-* 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.
-*/
-
-namespace Apache.Ignite.Core.Impl.Common
-{
- using System;
-
- /// <summary>
- /// Console logger.
- /// </summary>
- internal static class Logger
- {
- /// <summary>
- /// Logs the warning.
- /// </summary>
- /// <param name="warning">The warning.</param>
- /// <param name="args">The arguments.</param>
- public static void LogWarning(string warning, params object[] args)
- {
- Console.WriteLine("WARNING: " + string.Format(warning, args));
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
index 0fac417..2a3a014 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Ignite.cs
@@ -43,6 +43,7 @@ namespace Apache.Ignite.Core.Impl
using Apache.Ignite.Core.Impl.Transactions;
using Apache.Ignite.Core.Impl.Unmanaged;
using Apache.Ignite.Core.Lifecycle;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Messaging;
using Apache.Ignite.Core.Services;
using Apache.Ignite.Core.Transactions;
@@ -407,6 +408,7 @@ namespace Apache.Ignite.Core.Impl
NearCacheConfiguration nearConfiguration)
{
IgniteArgumentCheck.NotNull(configuration, "configuration");
+ configuration.Validate(Logger);
using (var stream = IgniteManager.Memory.Allocate().GetStream())
{
@@ -445,6 +447,7 @@ namespace Apache.Ignite.Core.Impl
NearCacheConfiguration nearConfiguration)
{
IgniteArgumentCheck.NotNull(configuration, "configuration");
+ configuration.Validate(Logger);
using (var stream = IgniteManager.Memory.Allocate().GetStream())
{
@@ -674,6 +677,12 @@ namespace Apache.Ignite.Core.Impl
}
/** <inheritdoc /> */
+ public ILogger Logger
+ {
+ get { return _cbs.Log; }
+ }
+
+ /** <inheritdoc /> */
public event EventHandler Stopping;
/** <inheritdoc /> */
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteManager.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteManager.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteManager.cs
index 05bc786..ee54218 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteManager.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteManager.cs
@@ -27,6 +27,7 @@ namespace Apache.Ignite.Core.Impl
using Apache.Ignite.Core.Impl.Common;
using Apache.Ignite.Core.Impl.Memory;
using Apache.Ignite.Core.Impl.Unmanaged;
+ using Apache.Ignite.Core.Log;
using UU = Apache.Ignite.Core.Impl.Unmanaged.UnmanagedUtils;
/// <summary>
@@ -57,8 +58,9 @@ namespace Apache.Ignite.Core.Impl
/// </summary>
/// <param name="cfg">Configuration.</param>
/// <param name="cbs">Callbacks.</param>
+ /// <param name="log"></param>
/// <returns>Context.</returns>
- internal static void CreateJvmContext(IgniteConfiguration cfg, UnmanagedCallbacks cbs)
+ internal static void CreateJvmContext(IgniteConfiguration cfg, UnmanagedCallbacks cbs, ILogger log)
{
lock (SyncRoot)
{
@@ -69,7 +71,7 @@ namespace Apache.Ignite.Core.Impl
{
if (!_jvmCfg.Equals(jvmCfg))
{
- Logger.LogWarning("Attempting to start Ignite node with different Java " +
+ log.Warn("Attempting to start Ignite node with different Java " +
"configuration; current Java configuration will be ignored (consider " +
"starting node in separate process) [oldConfig=" + _jvmCfg +
", newConfig=" + jvmCfg + ']');
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
index 12de847..914a87d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteProxy.cs
@@ -31,6 +31,7 @@ namespace Apache.Ignite.Core.Impl
using Apache.Ignite.Core.Events;
using Apache.Ignite.Core.Impl.Binary;
using Apache.Ignite.Core.Impl.Cluster;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Lifecycle;
using Apache.Ignite.Core.Messaging;
using Apache.Ignite.Core.Services;
@@ -392,6 +393,12 @@ namespace Apache.Ignite.Core.Impl
}
/** <inheritdoc /> */
+ public ILogger Logger
+ {
+ get { return _ignite.Logger; }
+ }
+
+ /** <inheritdoc /> */
public event EventHandler Stopping
{
add { _ignite.Stopping += value; }
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteUtils.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteUtils.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteUtils.cs
index 048c8ac..70d483d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteUtils.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/IgniteUtils.cs
@@ -35,6 +35,7 @@ namespace Apache.Ignite.Core.Impl
using Apache.Ignite.Core.Impl.Cluster;
using Apache.Ignite.Core.Impl.Common;
using Apache.Ignite.Core.Impl.Unmanaged;
+ using Apache.Ignite.Core.Log;
using Microsoft.Win32;
using BinaryReader = Apache.Ignite.Core.Impl.Binary.BinaryReader;
@@ -124,12 +125,17 @@ namespace Apache.Ignite.Core.Impl
/// Load JVM DLL if needed.
/// </summary>
/// <param name="configJvmDllPath">JVM DLL path from config.</param>
- public static void LoadDlls(string configJvmDllPath)
+ /// <param name="log">Log.</param>
+ public static void LoadDlls(string configJvmDllPath, ILogger log)
{
- if (_loaded) return;
+ if (_loaded)
+ {
+ log.Debug("JNI dll is already loaded.");
+ return;
+ }
// 1. Load JNI dll.
- LoadJvmDll(configJvmDllPath);
+ LoadJvmDll(configJvmDllPath, log);
// 2. Load GG JNI dll.
UnmanagedUtils.Initialize();
@@ -190,17 +196,25 @@ namespace Apache.Ignite.Core.Impl
/// <summary>
/// Loads the JVM DLL.
/// </summary>
- private static void LoadJvmDll(string configJvmDllPath)
+ private static void LoadJvmDll(string configJvmDllPath, ILogger log)
{
var messages = new List<string>();
foreach (var dllPath in GetJvmDllPaths(configJvmDllPath))
{
+ log.Debug("Trying to load JVM dll from [option={0}, path={1}]...", dllPath.Key, dllPath.Value);
+
var errCode = LoadDll(dllPath.Value, FileJvmDll);
if (errCode == 0)
+ {
+ log.Debug("jvm.dll successfully loaded from [option={0}, path={1}]", dllPath.Key, dllPath.Value);
return;
+ }
+
+ var message = string.Format(CultureInfo.InvariantCulture, "[option={0}, path={1}, error={2}]",
+ dllPath.Key, dllPath.Value, FormatWin32Error(errCode));
+ messages.Add(message);
- messages.Add(string.Format(CultureInfo.InvariantCulture, "[option={0}, path={1}, error={2}]",
- dllPath.Key, dllPath.Value, FormatWin32Error(errCode)));
+ log.Debug("Failed to load jvm.dll: " + message);
if (dllPath.Value == configJvmDllPath)
break; // if configJvmDllPath is specified and is invalid - do not try other options
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
new file mode 100644
index 0000000..23e7a37
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Log/JavaLogger.cs
@@ -0,0 +1,110 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Impl.Log
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Diagnostics;
+ using System.Linq;
+ using Apache.Ignite.Core.Impl.Unmanaged;
+ using Apache.Ignite.Core.Log;
+
+ /// <summary>
+ /// Logger that delegates to Java.
+ /// </summary>
+ internal class JavaLogger : ILogger
+ {
+ /** */
+ private IUnmanagedTarget _proc;
+
+ /** */
+ private readonly List<LogLevel> _enabledLevels = new List<LogLevel>(5);
+
+ /** */
+ private readonly List<Tuple<LogLevel, string, string, string>> _pendingLogs
+ = new List<Tuple<LogLevel, string, string, string>>();
+
+ /** */
+ private readonly object _syncRoot = new object();
+
+ /// <summary>
+ /// Sets the processor.
+ /// </summary>
+ /// <param name="proc">The proc.</param>
+ public void SetProcessor(IUnmanagedTarget proc)
+ {
+ Debug.Assert(proc != null);
+
+ lock (_syncRoot)
+ {
+ _proc = proc;
+
+ // Preload enabled levels.
+ _enabledLevels.AddRange(
+ new[] { LogLevel.Trace, LogLevel.Debug, LogLevel.Info, LogLevel.Warn, LogLevel.Error }
+ .Where(x => UnmanagedUtils.ProcessorLoggerIsLevelEnabled(proc, (int)x)));
+
+ foreach (var log in _pendingLogs)
+ {
+ Log(log.Item1, log.Item2, log.Item3, log.Item4);
+ }
+ }
+ }
+
+ /** <inheritdoc /> */
+ public void Log(LogLevel level, string message, object[] args, IFormatProvider formatProvider, string category,
+ string nativeErrorInfo, Exception ex)
+ {
+ // Java error info should not go back to Java.
+ // Either we log in .NET, and Java sends us logs, or we log in Java, and .NET sends logs, not both.
+ Debug.Assert(nativeErrorInfo == null);
+
+ lock (_syncRoot)
+ {
+ if (!IsEnabled(level))
+ return;
+
+ var msg = args == null ? message : string.Format(formatProvider, message, args);
+ var err = ex != null ? ex.ToString() : null;
+
+ if (_proc != null)
+ Log(level, msg, category, err);
+ else
+ _pendingLogs.Add(Tuple.Create(level, msg, category, err));
+ }
+ }
+
+ /** <inheritdoc /> */
+ public bool IsEnabled(LogLevel level)
+ {
+ lock (_syncRoot)
+ {
+ return _proc == null || _enabledLevels.Contains(level);
+ }
+ }
+
+ /// <summary>
+ /// Logs the message.
+ /// </summary>
+ private void Log(LogLevel level, string msg, string category, string err)
+ {
+ if (IsEnabled(level))
+ UnmanagedUtils.ProcessorLoggerLog(_proc, (int)level, msg, category, err);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
index 2da4192..8756dec 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/IgniteJniNativeMethods.cs
@@ -113,6 +113,13 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
[DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorGetCacheNames")]
public static extern void ProcessorGetCacheNames(void* ctx, void* obj, long memPtr);
+ [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorLoggerIsLevelEnabled")]
+ [return: MarshalAs(UnmanagedType.U1)]
+ public static extern bool ProcessorLoggerIsLevelEnabled(void* ctx, void* obj, int level);
+
+ [DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteProcessorLoggerLog")]
+ public static extern void ProcessorLoggerLog(void* ctx, void* obj, int level, sbyte* messsage, sbyte* category, sbyte* errorInfo);
+
[DllImport(IgniteUtils.FileIgniteJniDll, EntryPoint = "IgniteTargetInStreamOutLong")]
public static extern long TargetInStreamOutLong(void* ctx, void* target, int opType, long memPtr);
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs
index 51d9c74..6367e1e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbackHandlers.cs
@@ -104,5 +104,8 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
internal void* affinityFunctionAssignPartitions;
internal void* affinityFunctionRemoveNode;
internal void* affinityFunctionDestroy;
+
+ internal void* loggerLog;
+ internal void* loggerIsLevelEnabled;
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
index 223eb5b..493e061 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
@@ -22,6 +22,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.IO;
+ using System.Globalization;
using System.Runtime.InteropServices;
using System.Threading;
using Apache.Ignite.Core.Cache.Affinity;
@@ -38,11 +39,13 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
using Apache.Ignite.Core.Impl.Datastream;
using Apache.Ignite.Core.Impl.Events;
using Apache.Ignite.Core.Impl.Handle;
+ using Apache.Ignite.Core.Impl.Log;
using Apache.Ignite.Core.Impl.Memory;
using Apache.Ignite.Core.Impl.Messaging;
using Apache.Ignite.Core.Impl.Resource;
using Apache.Ignite.Core.Impl.Services;
using Apache.Ignite.Core.Lifecycle;
+ using Apache.Ignite.Core.Log;
using Apache.Ignite.Core.Services;
using UU = UnmanagedUtils;
@@ -89,6 +92,9 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
[SuppressMessage("Microsoft.Reliability", "CA2006:UseSafeHandleToEncapsulateNativeResources")]
private readonly IntPtr _cbsPtr;
+ /** Log. */
+ private readonly ILogger _log;
+
/** Error type: generic. */
private const int ErrGeneric = 1;
@@ -98,7 +104,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
/** Error type: attach. */
private const int ErrJvmAttach = 3;
- /** Opeartion: prepare .Net. */
+ /** Operation: prepare .Net. */
private const int OpPrepareDotNet = 1;
private delegate long CacheStoreCreateCallbackDelegate(void* target, long memPtr);
@@ -174,6 +180,9 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
private delegate void OnClientDisconnectedDelegate(void* target);
private delegate void OnClientReconnectedDelegate(void* target, bool clusterRestarted);
+ private delegate void LoggerLogDelegate(void* target, int level, sbyte* messageChars, int messageCharsLen, sbyte* categoryChars, int categoryCharsLen, sbyte* errorInfoChars, int errorInfoCharsLen, long memPtr);
+ private delegate bool LoggerIsLevelEnabledDelegate(void* target, int level);
+
private delegate long AffinityFunctionInitDelegate(void* target, long memPtr, void* baseFunc);
private delegate int AffinityFunctionPartitionDelegate(void* target, long ptr, long memPtr);
private delegate void AffinityFunctionAssignPartitionsDelegate(void* target, long ptr, long inMemPtr, long outMemPtr);
@@ -183,10 +192,14 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
private delegate void ConsoleWriteDelegate(sbyte* chars, int charsLen, bool isErr);
/// <summary>
- /// constructor.
+ /// Constructor.
/// </summary>
- public UnmanagedCallbacks()
+ /// <param name="log">Logger.</param>
+ public UnmanagedCallbacks(ILogger log)
{
+ Debug.Assert(log != null);
+ _log = log;
+
var cbs = new UnmanagedCallbackHandlers
{
target = IntPtr.Zero.ToPointer(), // Target is not used in .Net as we rely on dynamic FP creation.
@@ -270,7 +283,10 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
affinityFunctionPartition = CreateFunctionPointer((AffinityFunctionPartitionDelegate)AffinityFunctionPartition),
affinityFunctionAssignPartitions = CreateFunctionPointer((AffinityFunctionAssignPartitionsDelegate)AffinityFunctionAssignPartitions),
affinityFunctionRemoveNode = CreateFunctionPointer((AffinityFunctionRemoveNodeDelegate)AffinityFunctionRemoveNode),
- affinityFunctionDestroy = CreateFunctionPointer((AffinityFunctionDestroyDelegate)AffinityFunctionDestroy)
+ affinityFunctionDestroy = CreateFunctionPointer((AffinityFunctionDestroyDelegate)AffinityFunctionDestroy),
+
+ loggerLog = CreateFunctionPointer((LoggerLogDelegate)LoggerLog),
+ loggerIsLevelEnabled = CreateFunctionPointer((LoggerIsLevelEnabledDelegate)LoggerIsLevelEnabled)
};
_cbsPtr = Marshal.AllocHGlobal(UU.HandlersSize());
@@ -550,7 +566,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
/// <summary>
- /// Get comptue job using it's GC handle pointer.
+ /// Get compute job using it's GC handle pointer.
/// </summary>
/// <param name="jobPtr">Job pointer.</param>
/// <returns>Compute job.</returns>
@@ -883,7 +899,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
using (var inStream = IgniteManager.Memory.Get(arg1).GetStream())
using (var outStream = IgniteManager.Memory.Get(arg2).GetStream())
{
- Ignition.OnPrepare(inStream, outStream, _handleRegistry);
+ Ignition.OnPrepare(inStream, outStream, _handleRegistry, _log);
return 0;
}
@@ -1131,6 +1147,40 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
});
}
+ private void LoggerLog(void* target, int level, sbyte* messageChars, int messageCharsLen, sbyte* categoryChars,
+ int categoryCharsLen, sbyte* errorInfoChars, int errorInfoCharsLen, long memPtr)
+ {
+ // When custom logger in .NET is not defined, Java should not call us.
+ Debug.Assert(!(_log is JavaLogger));
+
+ SafeCall(() =>
+ {
+ var message = IgniteUtils.Utf8UnmanagedToString(messageChars, messageCharsLen);
+ var category = IgniteUtils.Utf8UnmanagedToString(categoryChars, categoryCharsLen);
+ var nativeError = IgniteUtils.Utf8UnmanagedToString(errorInfoChars, errorInfoCharsLen);
+
+ Exception ex = null;
+
+ if (memPtr != 0 && _ignite != null)
+ {
+ using (var stream = IgniteManager.Memory.Get(memPtr).GetStream())
+ {
+ ex = _ignite.Marshaller.Unmarshal<Exception>(stream);
+ }
+ }
+
+ _log.Log((LogLevel) level, message, null, CultureInfo.InvariantCulture, category, nativeError, ex);
+ }, true);
+ }
+
+ private bool LoggerIsLevelEnabled(void* target, int level)
+ {
+ // When custom logger in .NET is not defined, Java should not call us.
+ Debug.Assert(!(_log is JavaLogger));
+
+ return SafeCall(() => _log.IsEnabled((LogLevel) level), true);
+ }
+
private static void ConsoleWrite(sbyte* chars, int charsLen, bool isErr)
{
try
@@ -1246,6 +1296,8 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
catch (Exception e)
{
+ _log.Error(e, "Failure in Java callback");
+
UU.ThrowToJava(_ctx.NativeContext, e);
}
}
@@ -1262,6 +1314,8 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
catch (Exception e)
{
+ _log.Error(e, "Failure in Java callback");
+
UU.ThrowToJava(_ctx.NativeContext, e);
return default(T);
@@ -1287,6 +1341,14 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
/// <summary>
+ /// Gets the log.
+ /// </summary>
+ public ILogger Log
+ {
+ get { return _log; }
+ }
+
+ /// <summary>
/// Create function pointer for the given function.
/// </summary>
private void* CreateFunctionPointer(Delegate del)
@@ -1323,6 +1385,8 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
}
_initEvent.Set();
+
+ ResourceProcessor.Inject(_log, grid);
}
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
index 0e9556d..f89caa8 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedUtils.cs
@@ -77,11 +77,12 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
#region NATIVE METHODS: PROCESSOR
internal static void IgnitionStart(UnmanagedContext ctx, string cfgPath, string gridName,
- bool clientMode)
+ bool clientMode, bool userLogger)
{
using (var mem = IgniteManager.Memory.Allocate().GetStream())
{
mem.WriteBool(clientMode);
+ mem.WriteBool(userLogger);
sbyte* cfgPath0 = IgniteUtils.StringToUtf8Unmanaged(cfgPath);
sbyte* gridName0 = IgniteUtils.StringToUtf8Unmanaged(gridName);
@@ -377,6 +378,30 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
JNI.ProcessorGetCacheNames(target.Context, target.Target, memPtr);
}
+ internal static bool ProcessorLoggerIsLevelEnabled(IUnmanagedTarget target, int level)
+ {
+ return JNI.ProcessorLoggerIsLevelEnabled(target.Context, target.Target, level);
+ }
+
+ internal static void ProcessorLoggerLog(IUnmanagedTarget target, int level, string message, string category,
+ string errorInfo)
+ {
+ var message0 = IgniteUtils.StringToUtf8Unmanaged(message);
+ var category0 = IgniteUtils.StringToUtf8Unmanaged(category);
+ var errorInfo0 = IgniteUtils.StringToUtf8Unmanaged(errorInfo);
+
+ try
+ {
+ JNI.ProcessorLoggerLog(target.Context, target.Target, level, message0, category0, errorInfo0);
+ }
+ finally
+ {
+ Marshal.FreeHGlobal(new IntPtr(message0));
+ Marshal.FreeHGlobal(new IntPtr(category0));
+ Marshal.FreeHGlobal(new IntPtr(errorInfo0));
+ }
+ }
+
#endregion
#region NATIVE METHODS: TARGET
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Log/CategoryLogger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Log/CategoryLogger.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Log/CategoryLogger.cs
new file mode 100644
index 0000000..2d7f876
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Log/CategoryLogger.cs
@@ -0,0 +1,82 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Log
+{
+ using System;
+ using Apache.Ignite.Core.Impl.Common;
+
+ /// <summary>
+ /// Wrapping logger with a predefined category.
+ /// <para />
+ /// When <see cref="Log"/> method is called, and <c>category</c> parameter is null, predefined category
+ /// will be used.
+ /// </summary>
+ public class CategoryLogger : ILogger
+ {
+ /** Wrapped logger. */
+ private readonly ILogger _logger;
+
+ /** Category to use. */
+ private readonly string _category;
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="CategoryLogger"/> class.
+ /// </summary>
+ /// <param name="logger">The logger to wrap.</param>
+ /// <param name="category">The category.</param>
+ public CategoryLogger(ILogger logger, string category)
+ {
+ IgniteArgumentCheck.NotNull(logger, "log");
+
+ // If logger is already a CategoryLogger, get underlying logger instead to avoid unnecessary nesting.
+ var catLogger = logger as CategoryLogger;
+ _logger = catLogger != null ? catLogger._logger : logger;
+
+ _category = category;
+ }
+
+ /// <summary>
+ /// Logs the specified message.
+ /// </summary>
+ /// <param name="level">The level.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments to format <paramref name="message" />.
+ /// Can be null (formatting will not occur).</param>
+ /// <param name="formatProvider">The format provider. Can be null if <paramref name="args" /> is null.</param>
+ /// <param name="category">The logging category name.</param>
+ /// <param name="nativeErrorInfo">The native error information.</param>
+ /// <param name="ex">The exception. Can be null.</param>
+ public void Log(LogLevel level, string message, object[] args, IFormatProvider formatProvider, string category,
+ string nativeErrorInfo, Exception ex)
+ {
+ _logger.Log(level, message, args, formatProvider, category ?? _category, nativeErrorInfo, ex);
+ }
+
+ /// <summary>
+ /// Determines whether the specified log level is enabled.
+ /// </summary>
+ /// <param name="level">The level.</param>
+ /// <returns>
+ /// Value indicating whether the specified log level is enabled
+ /// </returns>
+ public bool IsEnabled(LogLevel level)
+ {
+ return _logger.IsEnabled(level);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Log/ILogger.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Log/ILogger.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Log/ILogger.cs
new file mode 100644
index 0000000..a2f2f20
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Log/ILogger.cs
@@ -0,0 +1,51 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Log
+{
+ using System;
+
+ /// <summary>
+ /// Defines Ignite logging interface.
+ /// <para />
+ /// This interface only provides essential log methods.
+ /// All convenience overloads are in <see cref="LoggerExtensions"/>.
+ /// </summary>
+ public interface ILogger
+ {
+ /// <summary>
+ /// Logs the specified message.
+ /// </summary>
+ /// <param name="level">The level.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments to format <paramref name="message" />.
+ /// Can be null (formatting will not occur).</param>
+ /// <param name="formatProvider">The format provider. Can be null if <paramref name="args" /> is null.</param>
+ /// <param name="category">The logging category name.</param>
+ /// <param name="nativeErrorInfo">The native error information.</param>
+ /// <param name="ex">The exception. Can be null.</param>
+ void Log(LogLevel level, string message, object[] args, IFormatProvider formatProvider, string category,
+ string nativeErrorInfo, Exception ex);
+
+ /// <summary>
+ /// Determines whether the specified log level is enabled.
+ /// </summary>
+ /// <param name="level">The level.</param>
+ /// <returns>Value indicating whether the specified log level is enabled</returns>
+ bool IsEnabled(LogLevel level);
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Log/LogLevel.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Log/LogLevel.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Log/LogLevel.cs
new file mode 100644
index 0000000..75694ab
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Log/LogLevel.cs
@@ -0,0 +1,53 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Log
+{
+ using System;
+
+ /// <summary>
+ /// Defines log levels.
+ /// </summary>
+ [Serializable]
+ public enum LogLevel
+ {
+ /// <summary>
+ /// Trace log level.
+ /// </summary>
+ Trace = 0,
+
+ /// <summary>
+ /// Debug log level.
+ /// </summary>
+ Debug = 1,
+
+ /// <summary>
+ /// Info log level.
+ /// </summary>
+ Info = 2,
+
+ /// <summary>
+ /// Warning log level.
+ /// </summary>
+ Warn = 3,
+
+ /// <summary>
+ /// Error log level.
+ /// </summary>
+ Error = 4
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/3c9e254e/modules/platforms/dotnet/Apache.Ignite.Core/Log/LoggerExtensions.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Log/LoggerExtensions.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Log/LoggerExtensions.cs
new file mode 100644
index 0000000..93748e3
--- /dev/null
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Log/LoggerExtensions.cs
@@ -0,0 +1,320 @@
+\ufeff/*
+ * 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.
+ */
+
+namespace Apache.Ignite.Core.Log
+{
+ using System;
+ using System.Globalization;
+ using Apache.Ignite.Core.Impl.Common;
+
+ /// <summary>
+ /// Extension methods for <see cref="ILogger" />
+ /// </summary>
+ public static class LoggerExtensions
+ {
+ // 4 overloads per level (message, message+args, ex+message, ex+message+args)
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Trace"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ public static void Trace(this ILogger logger, string message)
+ {
+ Log(logger, LogLevel.Trace, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Trace"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Trace(this ILogger logger, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Trace, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Trace"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ public static void Trace(this ILogger logger, Exception ex, string message)
+ {
+ Log(logger, LogLevel.Trace, ex, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Trace"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Trace(this ILogger logger, Exception ex, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Trace, ex, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Debug"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ public static void Debug(this ILogger logger, string message)
+ {
+ Log(logger, LogLevel.Debug, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Debug"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Debug(this ILogger logger, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Debug, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Debug"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ public static void Debug(this ILogger logger, Exception ex, string message)
+ {
+ Log(logger, LogLevel.Debug, ex, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Debug"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Debug(this ILogger logger, Exception ex, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Debug, ex, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Info"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ public static void Info(this ILogger logger, string message)
+ {
+ Log(logger, LogLevel.Info, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Info"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Info(this ILogger logger, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Info, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Info"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ public static void Info(this ILogger logger, Exception ex, string message)
+ {
+ Log(logger, LogLevel.Info, ex, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Info"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Info(this ILogger logger, Exception ex, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Info, ex, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Warn"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ public static void Warn(this ILogger logger, string message)
+ {
+ Log(logger, LogLevel.Warn, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Warn"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Warn(this ILogger logger, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Warn, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Warn"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ public static void Warn(this ILogger logger, Exception ex, string message)
+ {
+ Log(logger, LogLevel.Warn, ex, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Warn"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Warn(this ILogger logger, Exception ex, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Warn, ex, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Error"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ public static void Error(this ILogger logger, string message)
+ {
+ Log(logger, LogLevel.Error, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Error"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Error(this ILogger logger, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Error, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Error"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ public static void Error(this ILogger logger, Exception ex, string message)
+ {
+ Log(logger, LogLevel.Error, ex, message);
+ }
+
+ /// <summary>
+ /// Logs the message with <see cref="LogLevel.Error"/> level.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Error(this ILogger logger, Exception ex, string message, params object[] args)
+ {
+ Log(logger, LogLevel.Error, ex, message, args);
+ }
+
+ /// <summary>
+ /// Logs the message.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="level">The level.</param>
+ /// <param name="message">The message.</param>
+ public static void Log(this ILogger logger, LogLevel level, string message)
+ {
+ IgniteArgumentCheck.NotNull(logger, "logger");
+
+ logger.Log(level, message, null, null, null, null, null);
+ }
+
+ /// <summary>
+ /// Logs the message.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="level">The level.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Log(this ILogger logger, LogLevel level, string message, params object[] args)
+ {
+ IgniteArgumentCheck.NotNull(logger, "logger");
+
+ logger.Log(level, message, args, CultureInfo.InvariantCulture, null, null, null);
+ }
+
+ /// <summary>
+ /// Logs the message.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="level">The level.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ public static void Log(this ILogger logger, LogLevel level, Exception ex, string message)
+ {
+ IgniteArgumentCheck.NotNull(logger, "logger");
+
+ logger.Log(level, message, null, null, null, null, ex);
+ }
+
+ /// <summary>
+ /// Logs the message.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="level">The level.</param>
+ /// <param name="ex">The exception.</param>
+ /// <param name="message">The message.</param>
+ /// <param name="args">The arguments.</param>
+ public static void Log(this ILogger logger, LogLevel level, Exception ex, string message, params object[] args)
+ {
+ IgniteArgumentCheck.NotNull(logger, "logger");
+
+ logger.Log(level, message, args, CultureInfo.InvariantCulture, null, null, ex);
+ }
+
+ /// <summary>
+ /// Gets the <see cref="CategoryLogger"/> with a specified category that wraps provided logger.
+ /// </summary>
+ /// <param name="logger">The logger.</param>
+ /// <param name="category">The category.</param>
+ /// <returns>Logger that always uses specified category.</returns>
+ public static ILogger GetLogger(this ILogger logger, string category)
+ {
+ IgniteArgumentCheck.NotNull(logger, "logger");
+
+ return new CategoryLogger(logger, category);
+ }
+ }
+}
\ No newline at end of file
[13/50] [abbrv] ignite git commit: ignite-1.6.9 - Fixing tests
Posted by sh...@apache.org.
ignite-1.6.9 - Fixing tests
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/f447559e
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/f447559e
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/f447559e
Branch: refs/heads/ignite-2788
Commit: f447559ecba55149452e4e48e2bf44ef1fa1b4d7
Parents: 22dc2c9
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Sep 29 17:10:14 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Sep 29 17:10:14 2016 +0300
----------------------------------------------------------------------
.../cache/distributed/dht/GridDhtCacheAdapter.java | 12 ------------
.../cache/distributed/near/GridNearCacheAdapter.java | 9 ++-------
2 files changed, 2 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/f447559e/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 8ced02f..35e6267 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
@@ -261,18 +261,6 @@ public abstract class GridDhtCacheAdapter<K, V> extends GridDistributedCacheAdap
*/
public abstract GridNearCacheAdapter<K, V> near();
- /** {@inheritDoc} */
- @Override public void forceKeyCheck() {
- if (!keyCheck) {
- super.forceKeyCheck();
-
- GridNearCacheAdapter near = near();
-
- if (near != null)
- near.forceKeyCheck();
- }
- }
-
/**
* @return Partition topology.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/f447559e/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 6acf48e..4ddad74 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
@@ -116,14 +116,9 @@ public abstract class GridNearCacheAdapter<K, V> extends GridDistributedCacheAda
/** {@inheritDoc} */
@Override public void forceKeyCheck() {
- if (!keyCheck) {
- super.forceKeyCheck();
+ super.forceKeyCheck();
- GridDhtCacheAdapter dht = dht();
-
- if (dht != null)
- dht.forceKeyCheck();
- }
+ dht().forceKeyCheck();
}
/** {@inheritDoc} */
[12/50] [abbrv] ignite git commit: ignite-3957: clear swap space when
cache is destroyed
Posted by sh...@apache.org.
ignite-3957: clear swap space when cache is destroyed
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/106d496d
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/106d496d
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/106d496d
Branch: refs/heads/ignite-2788
Commit: 106d496d7dd07f56940adc62b666e28974fe789d
Parents: 2489b8a
Author: Andrey Martianov <am...@gridgain.com>
Authored: Thu Sep 29 16:33:04 2016 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu Sep 29 17:00:48 2016 +0300
----------------------------------------------------------------------
.../processors/cache/GridCacheSwapManager.java | 7 ++
.../spi/swapspace/file/FileSwapSpaceSpi.java | 53 +++++++----
.../cache/GridCacheSwapCleanupTest.java | 99 ++++++++++++++++++++
.../ignite/testsuites/IgniteCacheTestSuite.java | 2 +
4 files changed, 141 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/106d496d/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
index 8ba960a..5ada8dc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
@@ -143,6 +143,13 @@ public class GridCacheSwapManager extends GridCacheManagerAdapter {
@Override protected void stop0(boolean cancel) {
if (offheapEnabled)
offheap.destruct(spaceName);
+
+ try {
+ clearSwap();
+ }
+ catch (IgniteCheckedException e) {
+ U.error(log, "Failed to clear cache swap space", e);
+ }
}
/**
http://git-wip-us.apache.org/repos/asf/ignite/blob/106d496d/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
index 9be5b93..1f6004d 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/swapspace/file/FileSwapSpaceSpi.java
@@ -333,12 +333,7 @@ public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi,
/** {@inheritDoc} */
@Override public void clear(@Nullable String spaceName) throws IgniteSpiException {
- Space space = space(spaceName, false);
-
- if (space == null)
- return;
-
- space.clear();
+ destruct(spaceName);
notifyListener(EVT_SWAP_SPACE_CLEARED, spaceName);
}
@@ -630,7 +625,7 @@ public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi,
* @throws org.apache.ignite.spi.IgniteSpiException In case of error.
*/
@Nullable private Space space(@Nullable String name, boolean create) throws IgniteSpiException {
- String masked = name != null ? name : DFLT_SPACE_NAME;
+ String masked = maskNull(name);
assert masked != null;
@@ -652,6 +647,36 @@ public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi,
}
/**
+ * Destructs space.
+ *
+ * @param spaceName space name.
+ * */
+ private void destruct(@Nullable String spaceName) {
+ String masked = maskNull(spaceName);
+
+ Space space = spaces.remove(masked);
+
+ if (space != null) {
+ try {
+ space.stop();
+ }
+ catch (IgniteInterruptedCheckedException e) {
+ U.error(log, "Interrupted.", e);
+ }
+ }
+ }
+
+ /**
+ * Masks null space name with default space name.
+ *
+ * @param spaceName Space name.
+ * @return Space name or default space name if space name is null.
+ * */
+ private static String maskNull(String spaceName) {
+ return spaceName != null ? spaceName : DFLT_SPACE_NAME;
+ }
+
+ /**
* Validates space name.
*
* @param name Space name.
@@ -1623,18 +1648,6 @@ public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi,
}
/**
- * Clears space.
- *
- * @throws org.apache.ignite.spi.IgniteSpiException If failed.
- */
- public void clear() throws IgniteSpiException {
- Iterator<Map.Entry<SwapKey, byte[]>> iter = entriesIterator();
-
- while (iter.hasNext())
- remove(iter.next().getKey(), false);
- }
-
- /**
* Stops space.
*
* @throws org.apache.ignite.internal.IgniteInterruptedCheckedException If interrupted.
@@ -1931,4 +1944,4 @@ public class FileSwapSpaceSpi extends IgniteSpiAdapter implements SwapSpaceSpi,
};
}
}
-}
\ No newline at end of file
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/106d496d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java
new file mode 100644
index 0000000..5835ef0
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheSwapCleanupTest.java
@@ -0,0 +1,99 @@
+/*
+ * 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.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.eviction.lru.LruEvictionPolicy;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.managers.swapspace.GridSwapSpaceManager;
+import org.apache.ignite.internal.util.typedef.internal.CU;
+import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.TcpDiscoveryIpFinder;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder;
+import org.apache.ignite.spi.swapspace.file.FileSwapSpaceSpi;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+
+/**
+ * Check swap is cleaned after cache destroy.
+ */
+public class GridCacheSwapCleanupTest extends GridCommonAbstractTest {
+ /** IP finder. */
+ private static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
+
+ /** Cache name. */
+ private static final String CACHE_NAME = "swapCleanupCache";
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(IP_FINDER);
+
+ cfg.setSwapSpaceSpi(new FileSwapSpaceSpi());
+
+ return cfg;
+ }
+
+ /**
+ * Creates cache configuration.
+ *
+ * @return Cache configuration.
+ * */
+ private CacheConfiguration createCacheConfiguration() {
+ CacheConfiguration ccfg = new CacheConfiguration();
+
+ ccfg.setName(CACHE_NAME);
+ ccfg.setEvictionPolicy(new LruEvictionPolicy(10));
+ ccfg.setSwapEnabled(true);
+
+ return ccfg;
+ }
+
+ /**
+ * Checks swap is cleaned after cache destroy.
+ *
+ * @throws Exception If failed.
+ * */
+ public void testSwapCleanupAfterCacheDestroy() throws Exception {
+ try (Ignite g = startGrid()) {
+ for (int iter = 0; iter < 3; iter++) {
+ IgniteCache cache = g.getOrCreateCache(createCacheConfiguration());
+
+ for (int i = 0; i < 20; i++) {
+ assertNull(cache.get(i));
+
+ cache.put(i, i);
+ }
+
+ String spaceName = CU.swapSpaceName(internalCache(cache).context());
+
+ GridSwapSpaceManager swapSpaceMgr = ((IgniteEx)g).context().swap();
+
+ assertEquals(10, swapSpaceMgr.swapKeys(spaceName));
+
+ g.destroyCache(cache.getName());
+
+ assertEquals(0, swapSpaceMgr.swapKeys(spaceName));
+ assertEquals(0, swapSpaceMgr.swapSize(spaceName));
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ignite/blob/106d496d/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
index 5ad4cb8..711453c 100755
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite.java
@@ -81,6 +81,7 @@ import org.apache.ignite.internal.processors.cache.GridCacheReplicatedTxStoreExc
import org.apache.ignite.internal.processors.cache.GridCacheStopSelfTest;
import org.apache.ignite.internal.processors.cache.GridCacheStorePutxSelfTest;
import org.apache.ignite.internal.processors.cache.GridCacheStoreValueBytesSelfTest;
+import org.apache.ignite.internal.processors.cache.GridCacheSwapCleanupTest;
import org.apache.ignite.internal.processors.cache.GridCacheSwapPreloadSelfTest;
import org.apache.ignite.internal.processors.cache.GridCacheSwapReloadSelfTest;
import org.apache.ignite.internal.processors.cache.GridCacheTtlManagerSelfTest;
@@ -227,6 +228,7 @@ public class IgniteCacheTestSuite extends TestSuite {
// Swap tests.
suite.addTestSuite(GridCacheSwapPreloadSelfTest.class);
suite.addTestSuite(GridCacheSwapReloadSelfTest.class);
+ suite.addTestSuite(GridCacheSwapCleanupTest.class);
// Common tests.
suite.addTestSuite(CacheNamesSelfTest.class);
[04/50] [abbrv] ignite git commit: IGNITE-3995 .NET: Introduced
default non-null ASP.NET Session-State Store Provider cache name. This closes
#1128.
Posted by sh...@apache.org.
IGNITE-3995 .NET: Introduced default non-null ASP.NET Session-State Store Provider cache name. This closes #1128.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/53229e29
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/53229e29
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/53229e29
Branch: refs/heads/ignite-2788
Commit: 53229e290f7d6aab9b504693bd2b93155ecd2bad
Parents: bfe4458
Author: Pavel Tupitsyn <pt...@gridgain.com>
Authored: Wed Sep 28 17:07:47 2016 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Sep 28 17:07:47 2016 +0300
----------------------------------------------------------------------
.../IgniteSessionStateStoreProviderTest.cs | 13 +++++++++++++
.../Apache.Ignite.AspNet/IgniteOutputCacheProvider.cs | 2 +-
.../IgniteSessionStateStoreProvider.cs | 8 +++++++-
.../dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs | 13 +++++++------
4 files changed, 28 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/53229e29/modules/platforms/dotnet/Apache.Ignite.AspNet.Tests/IgniteSessionStateStoreProviderTest.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.AspNet.Tests/IgniteSessionStateStoreProviderTest.cs b/modules/platforms/dotnet/Apache.Ignite.AspNet.Tests/IgniteSessionStateStoreProviderTest.cs
index fc239ad..2c73359 100644
--- a/modules/platforms/dotnet/Apache.Ignite.AspNet.Tests/IgniteSessionStateStoreProviderTest.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.AspNet.Tests/IgniteSessionStateStoreProviderTest.cs
@@ -133,6 +133,19 @@ namespace Apache.Ignite.AspNet.Tests
stateProvider = GetProvider();
CheckProvider(stateProvider);
+
+ // Omitted cache name results in default cache name (not null).
+ stateProvider = new IgniteSessionStateStoreProvider();
+
+ stateProvider.Initialize("testName", new NameValueCollection
+ {
+ {GridNameAttr, GridName}
+ });
+
+ var cacheNames = Ignition.GetIgnite(GridName).GetCacheNames();
+
+ Assert.IsFalse(cacheNames.Contains(null));
+ Assert.IsTrue(cacheNames.Contains(IgniteSessionStateStoreProvider.DefaultCacheName));
}
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/53229e29/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteOutputCacheProvider.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteOutputCacheProvider.cs b/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteOutputCacheProvider.cs
index d232726..2790493 100644
--- a/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteOutputCacheProvider.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteOutputCacheProvider.cs
@@ -99,7 +99,7 @@ namespace Apache.Ignite.AspNet
{
base.Initialize(name, config);
- var cache = ConfigUtil.InitializeCache<string, object>(config, GetType());
+ var cache = ConfigUtil.InitializeCache<string, object>(config, GetType(), null);
_expiryCacheHolder = new ExpiryCacheHolder<string, object>(cache);
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/53229e29/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteSessionStateStoreProvider.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteSessionStateStoreProvider.cs b/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteSessionStateStoreProvider.cs
index 1ee6d92..86035dd 100644
--- a/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteSessionStateStoreProvider.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.AspNet/IgniteSessionStateStoreProvider.cs
@@ -47,6 +47,11 @@ namespace Apache.Ignite.AspNet
/// </summary>
public class IgniteSessionStateStoreProvider : SessionStateStoreProviderBase
{
+ /// <summary>
+ /// The default cache name to be used when <c>cacheName</c> attribute is not specified.
+ /// </summary>
+ public const string DefaultCacheName = "ASPNET_SESSION_STATE";
+
/** Extension id */
private const int ExtensionId = 0;
@@ -94,7 +99,8 @@ namespace Apache.Ignite.AspNet
{
base.Initialize(name, config);
- var cache = ConfigUtil.InitializeCache<string, IgniteSessionStateStoreData>(config, GetType());
+ var cache = ConfigUtil.InitializeCache<string, IgniteSessionStateStoreData>(config, GetType(),
+ DefaultCacheName);
_expiryCacheHolder = new ExpiryCacheHolder<string, IgniteSessionStateStoreData>(cache);
http://git-wip-us.apache.org/repos/asf/ignite/blob/53229e29/modules/platforms/dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs b/modules/platforms/dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs
index 3eb3d90..a162d81 100644
--- a/modules/platforms/dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.AspNet/Impl/ConfigUtil.cs
@@ -22,6 +22,7 @@ namespace Apache.Ignite.AspNet.Impl
using System.Configuration;
using System.Diagnostics;
using System.Globalization;
+ using System.Linq;
using Apache.Ignite.Core;
using Apache.Ignite.Core.Cache;
using Apache.Ignite.Core.Cache.Configuration;
@@ -33,24 +34,25 @@ namespace Apache.Ignite.AspNet.Impl
internal static class ConfigUtil
{
/** */
- public const string GridName = "gridName";
+ private const string GridName = "gridName";
/** */
- public const string CacheName = "cacheName";
+ private const string CacheName = "cacheName";
/** */
- public const string IgniteConfigurationSectionName = "igniteConfigurationSectionName";
+ private const string IgniteConfigurationSectionName = "igniteConfigurationSectionName";
/// <summary>
/// Initializes the cache from configuration.
/// </summary>
- public static ICache<TK, TV> InitializeCache<TK, TV>(NameValueCollection config, Type callerType)
+ public static ICache<TK, TV> InitializeCache<TK, TV>(NameValueCollection config, Type callerType,
+ string defaultCacheName)
{
Debug.Assert(config != null);
Debug.Assert(callerType != null);
var gridName = config[GridName];
- var cacheName = config[CacheName];
+ var cacheName = config.AllKeys.Contains(CacheName) ? config[CacheName] : defaultCacheName;
var cfgSection = config[IgniteConfigurationSectionName];
try
@@ -66,7 +68,6 @@ namespace Apache.Ignite.AspNet.Impl
throw new IgniteException(string.Format(CultureInfo.InvariantCulture,
"Failed to initialize {0}: {1}", callerType, ex), ex);
}
-
}
/// <summary>
[38/50] [abbrv] ignite git commit: Merge branch 'ignite-1.7.3' into
UPSTREAM_master
Posted by sh...@apache.org.
Merge branch 'ignite-1.7.3' into UPSTREAM_master
# Conflicts:
# modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
# modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs
# modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs
# modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a370bad1
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a370bad1
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a370bad1
Branch: refs/heads/ignite-2788
Commit: a370bad1463deade9a6fb975fd0b7297df2deaa9
Parents: a01927a d45383b
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Tue Oct 4 18:55:19 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Tue Oct 4 18:55:19 2016 +0300
----------------------------------------------------------------------
.../dotnet/Apache.Ignite.Core/IgniteConfiguration.cs | 2 +-
.../dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs | 5 ++++-
.../dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs | 10 ++++++++--
.../Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs | 5 ++++-
4 files changed, 17 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a370bad1/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a370bad1/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a370bad1/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/a370bad1/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs
----------------------------------------------------------------------
[28/50] [abbrv] ignite git commit: Merge branch community/ignite-1.7.3
Posted by sh...@apache.org.
Merge branch community/ignite-1.7.3
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/443b4d4b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/443b4d4b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/443b4d4b
Branch: refs/heads/ignite-2788
Commit: 443b4d4b9fa2daf0d68d54cb227a2e3d84de9fc2
Parents: afc8923
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 13:03:36 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 13:03:36 2016 +0300
----------------------------------------------------------------------
.../internal/processors/platform/PlatformConfigurationEx.java | 5 -----
.../processors/platform/cpp/PlatformCppConfigurationEx.java | 5 -----
.../platform/dotnet/PlatformDotNetConfigurationEx.java | 5 -----
3 files changed, 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/443b4d4b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
index a5f9e13..8f7c93b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
@@ -59,9 +59,4 @@ public interface PlatformConfigurationEx {
* @return Available cache extensions.
*/
@Nullable public Collection<PlatformCacheExtension> cacheExtensions();
-
- /**
- * @return Platform logger.
- */
- public PlatformLogger logger();
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ignite/blob/443b4d4b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
index 2d5adbf..4f6bb2d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
@@ -86,11 +86,6 @@ public class PlatformCppConfigurationEx extends PlatformCppConfiguration impleme
return null;
}
- /** {@inheritDoc} */
- @Override public PlatformLogger logger() {
- return null;
- }
-
/**
* @param warnings Warnings.
*/
http://git-wip-us.apache.org/repos/asf/ignite/blob/443b4d4b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
index 2fdd735..34e7ce2 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
@@ -92,11 +92,6 @@ public class PlatformDotNetConfigurationEx extends PlatformDotNetConfiguration i
return Collections.<PlatformCacheExtension>singleton(new PlatformDotNetSessionCacheExtension());
}
- /** {@inheritDoc} */
- @Override public PlatformLogger logger() {
- return logger;
- }
-
/**
* @param warnings Warnings.
*/
[49/50] [abbrv] ignite git commit: Merge branch 'master' into
ignite-2788
Posted by sh...@apache.org.
http://git-wip-us.apache.org/repos/asf/ignite/blob/0cd6723d/modules/clients/pom.xml
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0cd6723d/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 3130e6d,6d35d21..949235d
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@@ -943,13 -988,13 +988,12 @@@ public class IgniteConfiguration
/**
* Sets Ignite installation folder.
*
- * @param ggHome {@code Ignition} installation folder.
- * @return {@code this} for chaining.
+ * @param igniteHome {@code Ignition} installation folder.
* @see IgniteConfiguration#getIgniteHome()
* @see IgniteSystemProperties#IGNITE_HOME
- * @return {@code this} for chaining.
*/
- public IgniteConfiguration setIgniteHome(String ggHome) {
- this.ggHome = ggHome;
+ public IgniteConfiguration setIgniteHome(String igniteHome) {
+ this.igniteHome = igniteHome;
return this;
}
@@@ -972,12 -1017,12 +1016,13 @@@
/**
* Sets Ignite work folder.
*
- * @param ggWork {@code Ignite} work folder.
+ * @param igniteWorkDir {@code Ignite} work directory.
+ * @see IgniteConfiguration#getWorkDirectory()
* @return {@code this} for chaining.
+ * @see IgniteConfiguration#getWorkDirectory()
*/
- public IgniteConfiguration setWorkDirectory(String ggWork) {
- this.ggWork = ggWork;
+ public IgniteConfiguration setWorkDirectory(String igniteWorkDir) {
+ this.igniteWorkDir = igniteWorkDir;
return this;
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/0cd6723d/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0cd6723d/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/0cd6723d/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestNioListener.java
----------------------------------------------------------------------
[08/50] [abbrv] ignite git commit: IGNITE-3633 - Enforce key
validation for tests.
Posted by sh...@apache.org.
IGNITE-3633 - Enforce key validation for tests.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/062b9b69
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/062b9b69
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/062b9b69
Branch: refs/heads/ignite-2788
Commit: 062b9b69aa851d5253dfb7f44066b7d749f1ca12
Parents: 3e8a1c6
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Thu Sep 29 11:26:50 2016 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Thu Sep 29 11:27:43 2016 +0300
----------------------------------------------------------------------
.../ignite/internal/processors/cache/GridCacheAdapter.java | 7 +++++++
.../cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java | 6 ++++++
2 files changed, 13 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/062b9b69/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 fe6bb1b..55400ab 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
@@ -4891,6 +4891,13 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
}
/**
+ * For tests only.
+ */
+ public void forceKeyCheck() {
+ keyCheck = true;
+ }
+
+ /**
* Validates that given cache key has overridden equals and hashCode methods and
* implements {@link Externalizable}.
*
http://git-wip-us.apache.org/repos/asf/ignite/blob/062b9b69/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
index 7936ea4..150c245 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/binary/GridCacheBinaryObjectsAbstractSelfTest.java
@@ -894,6 +894,10 @@ public abstract class GridCacheBinaryObjectsAbstractSelfTest extends GridCommonA
public void testPutWithoutHashCode() throws Exception {
final IgniteCache c = jcache(0);
+ GridCacheAdapter<Object, Object> cache0 = grid(0).context().cache().internalCache(null);
+
+ cache0.forceKeyCheck();
+
GridTestUtils.assertThrows(log, new Callable<Object>() {
/** {@inheritDoc} */
@Override public Object call() throws Exception {
@@ -907,6 +911,8 @@ public abstract class GridCacheBinaryObjectsAbstractSelfTest extends GridCommonA
final BinaryObject binKey = bldr.build();
+ cache0.forceKeyCheck();
+
GridTestUtils.assertThrows(log, new Callable<Object>() {
/** {@inheritDoc} */
@Override public Object call() throws Exception {
[31/50] [abbrv] ignite git commit: IGNITE-3279 .NET: NLog logger
Posted by sh...@apache.org.
IGNITE-3279 .NET: NLog logger
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/48b293db
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/48b293db
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/48b293db
Branch: refs/heads/ignite-2788
Commit: 48b293db4d443b4d8739f709ff12f19aad008b84
Parents: 1c82cd0
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 14:08:07 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 14:08:07 2016 +0300
----------------------------------------------------------------------
.../dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/48b293db/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs b/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
index 6603836..baaa60d 100644
--- a/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.NLog/Properties/AssemblyInfo.cs
@@ -33,8 +33,8 @@ using System.Runtime.InteropServices;
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("c6b58e4a-a2e9-4554-ad02-68ce6da5cfb7")]
-[assembly: AssemblyVersion("1.8.0.13244")]
-[assembly: AssemblyFileVersion("1.8.0.13244")]
+[assembly: AssemblyVersion("1.8.0.14218")]
+[assembly: AssemblyFileVersion("1.8.0.14218")]
[assembly: AssemblyInformationalVersion("1.8.0")]
[assembly: CLSCompliant(true)]
[37/50] [abbrv] ignite git commit: .NET: Fix code analysis warnings
Posted by sh...@apache.org.
.NET: Fix code analysis warnings
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d45383b6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d45383b6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d45383b6
Branch: refs/heads/ignite-2788
Commit: d45383b69cc68c0ec967ebd673b197e437720214
Parents: bfdb5c3
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Tue Oct 4 18:48:25 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Tue Oct 4 18:48:25 2016 +0300
----------------------------------------------------------------------
.../dotnet/Apache.Ignite.Core/Common/JavaException.cs | 1 +
.../dotnet/Apache.Ignite.Core/IgniteConfiguration.cs | 1 +
.../dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs | 5 ++++-
.../dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs | 10 ++++++++--
.../Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs | 5 ++++-
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 1 +
6 files changed, 19 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/d45383b6/modules/platforms/dotnet/Apache.Ignite.Core/Common/JavaException.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Common/JavaException.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Common/JavaException.cs
index a634010..5f7ba66 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Common/JavaException.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Common/JavaException.cs
@@ -23,6 +23,7 @@ namespace Apache.Ignite.Core.Common
/// <summary>
/// Indicates an error on Java side and contains full Java stack trace.
/// </summary>
+ [Serializable]
public class JavaException : IgniteException
{
/// <summary>
http://git-wip-us.apache.org/repos/asf/ignite/blob/d45383b6/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
index 7652092..b045c5a 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
@@ -748,6 +748,7 @@
/// </summary>
/// <param name="xml">Xml string.</param>
/// <returns>Deserialized instance.</returns>
+ [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
public static IgniteConfiguration FromXml(string xml)
{
IgniteArgumentCheck.NotNullOrEmpty(xml, "xml");
http://git-wip-us.apache.org/repos/asf/ignite/blob/d45383b6/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs
index 454f7bb..1f5523c 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeFunc.cs
@@ -66,7 +66,10 @@ namespace Apache.Ignite.Core.Impl.Compute
}
catch (TargetInvocationException ex)
{
- throw ex.InnerException;
+ if (ex.InnerException != null)
+ throw ex.InnerException;
+
+ throw;
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/d45383b6/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs
index 526c445..9fa1377 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeJob.cs
@@ -82,7 +82,10 @@ namespace Apache.Ignite.Core.Impl.Compute
}
catch (TargetInvocationException ex)
{
- throw ex.InnerException;
+ if (ex.InnerException != null)
+ throw ex.InnerException;
+
+ throw;
}
}
@@ -95,7 +98,10 @@ namespace Apache.Ignite.Core.Impl.Compute
}
catch (TargetInvocationException ex)
{
- throw ex.InnerException;
+ if (ex.InnerException != null)
+ throw ex.InnerException;
+
+ throw;
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/d45383b6/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs
index 1867f8c..974ada2 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Compute/ComputeOutFunc.cs
@@ -70,7 +70,10 @@ namespace Apache.Ignite.Core.Impl.Compute
}
catch (TargetInvocationException ex)
{
- throw ex.InnerException;
+ if (ex.InnerException != null)
+ throw ex.InnerException;
+
+ throw;
}
}
http://git-wip-us.apache.org/repos/asf/ignite/blob/d45383b6/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
index 493e061..a9de66e 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
@@ -1181,6 +1181,7 @@ namespace Apache.Ignite.Core.Impl.Unmanaged
return SafeCall(() => _log.IsEnabled((LogLevel) level), true);
}
+ [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
private static void ConsoleWrite(sbyte* chars, int charsLen, bool isErr)
{
try
[25/50] [abbrv] ignite git commit: IGNITE-1629 .NET: Introduced
native logging facility - fix merge
Posted by sh...@apache.org.
IGNITE-1629 .NET: Introduced native logging facility - fix merge
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ae4ae71f
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ae4ae71f
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ae4ae71f
Branch: refs/heads/ignite-2788
Commit: ae4ae71f0481662a5fb13eb8ee63a17e6c4c3802
Parents: 3c9e254
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 12:16:34 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 12:16:34 2016 +0300
----------------------------------------------------------------------
modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ae4ae71f/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
index 8e16fb5..7652092 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfiguration.cs
@@ -24,6 +24,8 @@
using System.Diagnostics.CodeAnalysis;
using System.IO;
using System.Linq;
+ using System.Text;
+ using System.Xml;
using Apache.Ignite.Core.Binary;
using Apache.Ignite.Core.Cache;
using Apache.Ignite.Core.Cache.Configuration;
[26/50] [abbrv] ignite git commit: Merge branch community/ignite-1.7.3
Posted by sh...@apache.org.
Merge branch community/ignite-1.7.3
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/e7b13cc5
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/e7b13cc5
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/e7b13cc5
Branch: refs/heads/ignite-2788
Commit: e7b13cc5c4111be990e51e7633a8fb10f6795489
Parents: e7f3532 ae4ae71
Author: Pavel Tupitsyn <pt...@apache.org>
Authored: Mon Oct 3 12:55:06 2016 +0300
Committer: Pavel Tupitsyn <pt...@apache.org>
Committed: Mon Oct 3 12:55:06 2016 +0300
----------------------------------------------------------------------
.../client/ClientReconnectionSelfTest.java | 4 +-
.../client/router/TcpSslRouterSelfTest.java | 7 +-
.../client/suite/IgniteClientTestSuite.java | 71 +++----
.../processors/cache/GridCacheAdapter.java | 7 +
.../distributed/near/GridNearCacheAdapter.java | 7 +
.../query/GridCacheQueryMetricsAdapter.java | 12 +-
.../platform/PlatformConfigurationEx.java | 6 +
.../cpp/PlatformCppConfigurationEx.java | 5 +
.../dotnet/PlatformDotNetConfigurationEx.java | 5 +
.../cache/VisorCacheResetQueryMetricsTask.java | 69 +++++++
.../cache/GridCacheAbstractFullApiSelfTest.java | 11 +-
.../IgniteCacheConfigVariationsFullApiTest.java | 7 +-
...niteCacheExpireAndUpdateConsistencyTest.java | 7 +
.../GridCacheBinaryObjectsAbstractSelfTest.java | 6 +
...tomicClientOnlyMultiNodeFullApiSelfTest.java | 17 +-
...eAtomicNearOnlyMultiNodeFullApiSelfTest.java | 17 +-
.../ignite/testframework/IgniteTestSuite.java | 203 ++++++++++++++++---
.../testframework/junits/GridAbstractTest.java | 31 ++-
.../apache/ignite/testsuites/IgniteIgnore.java | 2 +-
modules/ignored-tests/pom.xml | 128 +++++++++++-
.../testsuites/IgniteIgnoredTestSuite.java | 9 +
.../CacheAbstractQueryMetricsSelfTest.java | 6 +-
...titionedCacheJtaLookupClassNameSelfTest.java | 4 +-
.../ignite/testsuites/IgniteJtaTestSuite.java | 3 +-
.../IgniteSessionStateStoreProviderTest.cs | 13 ++
.../IgniteOutputCacheProvider.cs | 2 +-
.../IgniteSessionStateStoreProvider.cs | 8 +-
.../Apache.Ignite.AspNet/Impl/ConfigUtil.cs | 13 +-
.../Apache.Ignite.Core.Tests.csproj | 6 +
.../IgniteConfigurationSection.xsd | 12 ++
.../Impl/Unmanaged/UnmanagedCallbacks.cs | 1 +
.../p2p/GridP2PUserVersionChangeSelfTest.java | 7 +-
.../testsuites/IgniteResourceSelfTestSuite.java | 11 +-
.../testsuites/IgniteSpringTestSuite.java | 15 +-
34 files changed, 601 insertions(+), 131 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
index a58510d,97f0866..a5f9e13
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/PlatformConfigurationEx.java
@@@ -17,8 -17,8 +17,9 @@@
package org.apache.ignite.internal.processors.platform;
+import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.cache.PlatformCacheExtension;
+ import org.apache.ignite.internal.logger.platform.PlatformLogger;
import org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway;
import org.apache.ignite.internal.processors.platform.memory.PlatformMemoryManagerImpl;
import org.jetbrains.annotations.Nullable;
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/cpp/PlatformCppConfigurationEx.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/core/src/main/java/org/apache/ignite/internal/processors/platform/dotnet/PlatformDotNetConfigurationEx.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
index aa74939,2c6150c..c1c4953
--- a/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
+++ b/modules/platforms/dotnet/Apache.Ignite.Core.Tests/Apache.Ignite.Core.Tests.csproj
@@@ -270,6 -249,6 +270,12 @@@
<Content Include="Config\Log\custom-log.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
++ <Content Include="Config\Log\dotnet-log4j.xml">
++ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
++ </Content>
++ <Content Include="Config\Log\custom-log.xml">
++ <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
++ </Content>
<Content Include="Config\spring-test.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
index 40e3055,916fd20..f17c896
--- a/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/IgniteConfigurationSection.xsd
@@@ -1060,42 -349,15 +1060,54 @@@
</xs:complexType>
</xs:element>
<xs:element name="transactionConfiguration" minOccurs="0">
+ <xs:annotation>
+ <xs:documentation>Transaction configuration.</xs:documentation>
+ </xs:annotation>
+ <xs:complexType>
+ <xs:attribute name="defaultTransactionConcurrency" type="transactionConcurrency">
+ <xs:annotation>
+ <xs:documentation>Cache transaction concurrency to use when one is not explicitly specified.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="defaultTransactionIsolation" type="transactionIsolation">
+ <xs:annotation>
+ <xs:documentation>Cache transaction isolation to use when one is not explicitly specified.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="defaultTimeout" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ Cache transaction timeout to use when one is not explicitly specified. TimeSpan.Zero for infinite timeout.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="pessimisticTransactionLogSize" type="xs:int">
+ <xs:annotation>
+ <xs:documentation>
+ Size of pessimistic transactions log stored on node in order to recover transaction commit if originating node has left grid before it has sent all messages to transaction nodes. 0 for unlimited.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="pessimisticTransactionLogLinger" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>Delay after which pessimistic recovery entries will be cleaned up for failed node.</xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="logger" minOccurs="0">
++ <xs:annotation>
++ <xs:documentation>The logger. If no logger is set, logging is delegated to Java, which uses the logger defined in Spring XML (if present) or logs to console otherwise.</xs:documentation>
++ </xs:annotation>
+ <xs:complexType>
- <xs:attribute name="defaultTransactionConcurrency" type="xs:string" />
- <xs:attribute name="defaultTransactionIsolation" type="xs:string" />
- <xs:attribute name="defaultTimeout" type="xs:string" />
- <xs:attribute name="pessimisticTransactionLogSize" type="xs:int" />
- <xs:attribute name="pessimisticTransactionLogLinger" type="xs:string" />
++ <xs:attribute name="type" type="xs:string" use="required">
++ <xs:annotation>
++ <xs:documentation>Assembly-qualified type name.</xs:documentation>
++ </xs:annotation>
++ </xs:attribute>
+ </xs:complexType>
+ </xs:element>
+ <xs:element name="logger" minOccurs="0">
<xs:annotation>
<xs:documentation>The logger. If no logger is set, logging is delegated to Java, which uses the logger defined in Spring XML (if present) or logs to console otherwise.</xs:documentation>
</xs:annotation>
http://git-wip-us.apache.org/repos/asf/ignite/blob/e7b13cc5/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
----------------------------------------------------------------------
diff --cc modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
index e623969,493e061..1b58d17
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Impl/Unmanaged/UnmanagedCallbacks.cs
@@@ -21,8 -21,8 +21,9 @@@ namespace Apache.Ignite.Core.Impl.Unman
using System.Collections.Generic;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
+ using System.Globalization;
using System.IO;
+ using System.Globalization;
using System.Runtime.InteropServices;
using System.Threading;
using Apache.Ignite.Core.Cache.Affinity;