http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalTxFuture.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalTxFuture.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalTxFuture.java
index 5529143..da35d9c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalTxFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/GridLocalTxFuture.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache.local;
 import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.transactions.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
index bee1d35..2c4a774 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.local.atomic;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.plugin.security.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
index 6e5cf09..c3e9b09 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/GridCacheQueryManager.java
@@ -27,6 +27,7 @@ import org.apache.ignite.internal.managers.eventstorage.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.datastructures.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.processors.query.*;
 import org.apache.ignite.internal.processors.task.*;
 import org.apache.ignite.internal.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index b14d45d..aebf9db 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.transactions;
 import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.transactions.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
index 541e214..11fd32c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEntry.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.internal.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEx.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEx.java
index 321cd44..c3961a5 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEx.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxEx.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.transactions;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.transactions.*;
 import org.apache.ignite.internal.processors.timeout.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
index a3c66c9..d539f15 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.transactions.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
index 0ff9627..46ab74f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.transactions;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.plugin.security.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
index 22bf372..8568318 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalEx.java
@@ -20,6 +20,7 @@ package 
org.apache.ignite.internal.processors.cache.transactions;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.internal.processors.cache.dr.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
index fae1989..c73a291 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxManager.java
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.distributed.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.transactions.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
index 952a8e3..ff9a92c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxRemoteEx.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache.transactions;
 
-import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
new file mode 100644
index 0000000..94b1fe6
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersion.java
@@ -0,0 +1,256 @@
+/*
+ * 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.version;
+
+import org.apache.ignite.lang.*;
+import org.apache.ignite.marshaller.optimized.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Grid unique version.
+ */
+public class GridCacheVersion implements Comparable<GridCacheVersion>, 
Externalizable, IgniteOptimizedMarshallable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    @SuppressWarnings({"NonConstantFieldWithUpperCaseName", 
"AbbreviationUsage", "UnusedDeclaration"})
+    private static Object GG_CLASS_ID;
+
+    /** Node order mask. */
+    private static final int NODE_ORDER_MASK = 0x07_FF_FF_FF;
+
+    /** DR center ID shift. */
+    private static final int DR_ID_SHIFT = 27;
+
+    /** DR center ID mask. */
+    private static final int DR_ID_MASK = 0x1F;
+
+    /** Topology version. */
+    private int topVer;
+
+    /** Node order (used as global order) and DR ID. */
+    private int nodeOrderDrId;
+
+    /** Globally adjusted time. */
+    private long globalTime;
+
+    /** Order. */
+    private long order;
+
+    /**
+     * Empty constructor required by {@link Externalizable}.
+     */
+    public GridCacheVersion() {
+        /* No-op. */
+    }
+
+    /**
+     * @param topVer Topology version plus number of seconds from the start 
time of the first grid node.
+     * @param globalTime Globally adjusted time.
+     * @param order Version order.
+     * @param nodeOrder Node order.
+     * @param dataCenterId Replication data center ID.
+     */
+    public GridCacheVersion(int topVer, long globalTime, long order, int 
nodeOrder, int dataCenterId) {
+        assert topVer >= 0;
+        assert order >= 0;
+        assert nodeOrder >= 0;
+        assert dataCenterId < 32 && dataCenterId >= 0;
+
+        if (nodeOrder > NODE_ORDER_MASK)
+            throw new IllegalArgumentException("Node order overflow: " + 
nodeOrder);
+
+        this.topVer = topVer;
+        this.globalTime = globalTime;
+        this.order = order;
+
+        nodeOrderDrId = nodeOrder | (dataCenterId << DR_ID_SHIFT);
+    }
+
+
+    /**
+     * @param topVer Topology version.
+     * @param nodeOrderDrId Node order and DR ID.
+     * @param globalTime Globally adjusted time.
+     * @param order Version order.
+     */
+    public GridCacheVersion(int topVer, int nodeOrderDrId, long globalTime, 
long order) {
+        this.topVer = topVer;
+        this.nodeOrderDrId = nodeOrderDrId;
+        this.globalTime = globalTime;
+        this.order = order;
+    }
+
+    /**
+     * @return Topology version plus number of seconds from the start time of 
the first grid node..
+     */
+    public int topologyVersion() {
+        return topVer;
+    }
+
+    /**
+     * Gets combined node order and DR ID.
+     *
+     * @return Combined integer for node order and DR ID.
+     */
+    public int nodeOrderAndDrIdRaw() {
+        return nodeOrderDrId;
+    }
+
+    /**
+     * @return Adjusted time.
+     */
+    public long globalTime() {
+        return globalTime;
+    }
+
+    /**
+     * @return Version order.
+     */
+    public long order() {
+        return order;
+    }
+
+    /**
+     * @return Node order on which this version was assigned.
+     */
+    public int nodeOrder() {
+        return nodeOrderDrId & NODE_ORDER_MASK;
+    }
+
+    /**
+     * @return DR mask.
+     */
+    public byte dataCenterId() {
+        return (byte)((nodeOrderDrId >> DR_ID_SHIFT) & DR_ID_MASK);
+    }
+
+    /**
+     * @return DR version.
+     */
+    @Nullable public GridCacheVersion drVersion() {
+        return this; // Use current version.
+    }
+
+    /**
+     * @param ver Version.
+     * @return {@code True} if this version is greater.
+     */
+    public boolean isGreater(GridCacheVersion ver) {
+        return compareTo(ver) > 0;
+    }
+
+    /**
+     * @param ver Version.
+     * @return {@code True} if this version is greater or equal.
+     */
+    public boolean isGreaterEqual(GridCacheVersion ver) {
+        return compareTo(ver) >= 0;
+    }
+
+    /**
+     * @param ver Version.
+     * @return {@code True} if this version is less.
+     */
+    public boolean isLess(GridCacheVersion ver) {
+        return compareTo(ver) < 0;
+    }
+
+    /**
+     * @param ver Version.
+     * @return {@code True} if this version is less or equal.
+     */
+    public boolean isLessEqual(GridCacheVersion ver) {
+        return compareTo(ver) <= 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Object ggClassId() {
+        return GG_CLASS_ID;
+    }
+
+    /**
+     * @return Version represented as {@code GridUuid}
+     */
+    public IgniteUuid asGridUuid() {
+        return new IgniteUuid(new UUID(((long)topVer << 32) | nodeOrderDrId, 
globalTime), order);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeInt(topVer);
+        out.writeLong(globalTime);
+        out.writeLong(order);
+        out.writeInt(nodeOrderDrId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException {
+        topVer = in.readInt();
+        globalTime = in.readLong();
+        order = in.readLong();
+        nodeOrderDrId = in.readInt();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof GridCacheVersion))
+            return false;
+
+        GridCacheVersion that = (GridCacheVersion)o;
+
+        return topVer == that.topVer && order == that.order && nodeOrder() == 
that.nodeOrder();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = topVer;
+
+        res = 31 * res + nodeOrder();
+
+        res = 31 * res + (int)(order ^ (order >>> 32));
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("IfMayBeConditional")
+    @Override public int compareTo(GridCacheVersion other) {
+        if (topologyVersion() == other.topologyVersion()) {
+            if (order == other.order)
+                return nodeOrder() == other.nodeOrder() ? 0 : nodeOrder() < 
other.nodeOrder() ? -1 : 1;
+            else
+                return order < other.order ? -1 : 1;
+        }
+        else
+            return topologyVersion() < other.topologyVersion() ? -1 : 1;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridCacheVersion.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
new file mode 100644
index 0000000..8c95b9b
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionEx.java
@@ -0,0 +1,104 @@
+/*
+ * 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.version;
+
+import java.io.*;
+
+/**
+ * Extended cache version which also has additional DR version.
+ */
+public class GridCacheVersionEx extends GridCacheVersion {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    @SuppressWarnings({"NonConstantFieldWithUpperCaseName", 
"AbbreviationUsage", "UnusedDeclaration"})
+    private static Object GG_CLASS_ID;
+
+    /** DR version. */
+    private GridCacheVersion drVer;
+
+    /**
+     * {@link Externalizable} support.
+     */
+    public GridCacheVersionEx() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param topVer Topology version.
+     * @param globalTime Global time.
+     * @param order Order.
+     * @param nodeOrder Node order.
+     * @param dataCenterId Data center ID.
+     * @param drVer DR version.
+     */
+    public GridCacheVersionEx(int topVer, long globalTime, long order, int 
nodeOrder, byte dataCenterId,
+        GridCacheVersion drVer) {
+        super(topVer, globalTime, order, nodeOrder, dataCenterId);
+
+        assert drVer != null && !(drVer instanceof GridCacheVersionEx); // DR 
version can only be plain here.
+
+        this.drVer = drVer;
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param topVer Topology version.
+     * @param nodeOrderDrId Node order and DR ID.
+     * @param globalTime Globally adjusted time.
+     * @param order Version order.
+     * @param drVer DR version.
+     */
+    public GridCacheVersionEx(int topVer, int nodeOrderDrId, long globalTime, 
long order, GridCacheVersion drVer) {
+        super(topVer, nodeOrderDrId, globalTime, order);
+
+        assert drVer != null && !(drVer instanceof GridCacheVersionEx); // DR 
version can only be plain here.
+
+        this.drVer = drVer;
+    }
+
+    /** {@inheritDoc} */
+    @Override public GridCacheVersion drVersion() {
+        return drVer;
+    }
+
+    /** {@inheritDoc} */
+    @Override public Object ggClassId() {
+        return GG_CLASS_ID;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException {
+        super.readExternal(in);
+
+        drVer = new GridCacheVersion();
+
+        drVer.readExternal(in);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        super.writeExternal(out);
+
+        drVer.writeExternal(out);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
new file mode 100644
index 0000000..c53fa51
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionManager.java
@@ -0,0 +1,282 @@
+/*
+ * 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.version;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.internal.managers.eventstorage.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.util.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.events.IgniteEventType.*;
+
+/**
+ * Makes sure that cache lock order values come in proper sequence.
+ * <p>
+ * NOTE: this class should not make use of any cache specific structures,
+ * like, for example GridCacheContext, as it may be reused between different
+ * caches.
+ */
+public class GridCacheVersionManager<K, V> extends 
GridCacheSharedManagerAdapter<K, V> {
+    /** Timestamp used as base time for cache topology version (January 1, 
2014). */
+    public static final long TOP_VER_BASE_TIME = 1388520000000L;
+
+    /**
+     * Current order. Initialize to current time to make sure that
+     * local version increments even after restarts.
+     */
+    private final AtomicLong order = new AtomicLong(U.currentTimeMillis());
+
+    /** Current order for store operations. */
+    private final AtomicLong loadOrder = new AtomicLong(0);
+
+    /** Last version. */
+    private volatile GridCacheVersion last;
+
+    /** Serializable transaction flag. */
+    private boolean txSerEnabled;
+
+    /** Data center ID. */
+    @SuppressWarnings("FieldAccessedSynchronizedAndUnsynchronized")
+    private byte dataCenterId;
+
+    /** */
+    private long gridStartTime;
+
+    /** */
+    private final GridLocalEventListener discoLsnr = new 
GridLocalEventListener() {
+        @Override public void onEvent(IgniteEvent evt) {
+            assert evt.type() == EVT_NODE_METRICS_UPDATED;
+
+            IgniteDiscoveryEvent discoEvt = (IgniteDiscoveryEvent)evt;
+
+            ClusterNode node = cctx.discovery().node(discoEvt.node().id());
+
+            if (node != null && !node.id().equals(cctx.localNodeId()))
+                onReceived(discoEvt.eventNode().id(), 
node.metrics().getLastDataVersion());
+        }
+    };
+
+    /**
+     * @return Pre-generated UUID.
+     */
+    private IgniteUuid uuid() {
+        return IgniteUuid.randomUuid();
+    }
+
+    /** {@inheritDoc} */
+    @Override public void start0() throws IgniteCheckedException {
+        txSerEnabled = 
cctx.gridConfig().getTransactionsConfiguration().isTxSerializableEnabled();
+
+        dataCenterId = cctx.dataCenterId();
+
+        last = new GridCacheVersion(0, 0, order.get(), 0, dataCenterId);
+
+        cctx.gridEvents().addLocalEventListener(discoLsnr, 
EVT_NODE_METRICS_UPDATED);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void onKernalStart0() throws IgniteCheckedException {
+        for (ClusterNode n : cctx.discovery().remoteNodes())
+            onReceived(n.id(), n.metrics().getLastDataVersion());
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void stop0(boolean cancel) {
+        cctx.gridEvents().removeLocalEventListener(discoLsnr, 
EVT_NODE_METRICS_UPDATED);
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param ver Remote version.
+     */
+    public void onReceived(UUID nodeId, GridCacheVersion ver) {
+        onReceived(nodeId, ver.order());
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param ver Remote version.
+     */
+    public void onReceived(UUID nodeId, long ver) {
+        if (ver > 0)
+            while (true) {
+                long order = this.order.get();
+
+                // If another version is larger, we update.
+                if (ver > order) {
+                    if (!this.order.compareAndSet(order, ver))
+                        // Try again.
+                        continue;
+                    else if (log.isDebugEnabled())
+                        log.debug("Updated version from node [nodeId=" + 
nodeId + ", ver=" + ver + ']');
+                }
+                else if (log.isDebugEnabled()) {
+                    log.debug("Did not update version from node (version has 
lower order) [nodeId=" + nodeId +
+                        ", ver=" + ver + ", curOrder=" + this.order + ']');
+                }
+
+                break;
+            }
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param ver Received version.
+     * @return Next version.
+     */
+    public GridCacheVersion onReceivedAndNext(UUID nodeId, GridCacheVersion 
ver) {
+        onReceived(nodeId, ver);
+
+        return next(ver);
+    }
+
+    /**
+     * @return Next version based on current topology.
+     */
+    public GridCacheVersion next() {
+        return next(cctx.kernalContext().discovery().topologyVersion(), true, 
false);
+    }
+
+    /**
+     * Gets next version based on given topology version. Given value should be
+     * real topology version calculated as number of grid topology changes and
+     * obtained from discovery manager.
+     *
+     * @param topVer Topology version for which new version should be obtained.
+     * @return Next version based on given topology version.
+     */
+    public GridCacheVersion next(long topVer) {
+        return next(topVer, true, false);
+    }
+
+    /**
+     * Gets next version for cache store load and reload operations.
+     *
+     * @return Next version for cache store operations.
+     */
+    public GridCacheVersion nextForLoad() {
+        return next(cctx.kernalContext().discovery().topologyVersion(), true, 
true);
+    }
+
+    /**
+     * Gets next version for cache store load and reload operations.
+     *
+     * @return Next version for cache store operations.
+     */
+    public GridCacheVersion nextForLoad(long topVer) {
+        return next(topVer, true, true);
+    }
+
+    /**
+     * Gets next version for cache store load and reload operations.
+     *
+     * @return Next version for cache store operations.
+     */
+    public GridCacheVersion nextForLoad(GridCacheVersion ver) {
+        return next(ver.topologyVersion(), false, true);
+    }
+
+    /**
+     * Gets next version based on given cache version.
+     *
+     * @param ver Cache version for which new version should be obtained.
+     * @return Next version based on given cache version.
+     */
+    public GridCacheVersion next(GridCacheVersion ver) {
+        return next(ver.topologyVersion(), false, false);
+    }
+
+    /**
+     * The version is generated by taking last order plus one and random 
{@link UUID}.
+     * Such algorithm ensures that lock IDs constantly grow in value and older
+     * lock IDs are smaller than new ones. Therefore, older lock IDs appear
+     * in the pending set before newer ones, hence preventing starvation.
+     *
+     * @param topVer Topology version for which new version should be obtained.
+     * @param addTime If {@code true} then adds to the given topology version 
number of seconds
+     *        from the start time of the first grid node.
+     * @return New lock order.
+     */
+    private GridCacheVersion next(long topVer, boolean addTime, boolean 
forLoad) {
+        if (topVer == -1)
+            topVer = cctx.kernalContext().discovery().topologyVersion();
+
+        if (addTime) {
+            if (gridStartTime == 0)
+                gridStartTime = 
cctx.kernalContext().discovery().gridStartTime();
+
+            topVer += (gridStartTime - TOP_VER_BASE_TIME) / 1000;
+        }
+
+        long globalTime = 
cctx.kernalContext().clockSync().adjustedTime(topVer);
+
+        int locNodeOrder = (int)cctx.localNode().order();
+
+        if (txSerEnabled) {
+            synchronized (this) {
+                long ord = forLoad ? loadOrder.incrementAndGet() : 
order.incrementAndGet();
+
+                GridCacheVersion next = new GridCacheVersion(
+                    (int)topVer,
+                    globalTime,
+                    ord,
+                    locNodeOrder,
+                    dataCenterId);
+
+                last = next;
+
+                return next;
+            }
+        }
+        else {
+            long ord = forLoad ? loadOrder.incrementAndGet() : 
order.incrementAndGet();
+
+            GridCacheVersion next = new GridCacheVersion(
+                (int)topVer,
+                globalTime,
+                ord,
+                locNodeOrder,
+                dataCenterId);
+
+            last = next;
+
+            return next;
+        }
+    }
+
+    /**
+     * Gets last generated version without generating a new one.
+     *
+     * @return Last generated version.
+     */
+    public GridCacheVersion last() {
+        if (txSerEnabled) {
+            synchronized (this) {
+                return last;
+            }
+        }
+        else
+            return last;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionable.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionable.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionable.java
new file mode 100644
index 0000000..5dde4ea
--- /dev/null
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/version/GridCacheVersionable.java
@@ -0,0 +1,28 @@
+/*
+ * 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.version;
+
+/**
+ * Classes that are based on version may choose to implement this interface.
+ */
+public interface GridCacheVersionable {
+    /**
+     * @return Version.
+     */
+    public GridCacheVersion version();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridRawVersionedEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridRawVersionedEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridRawVersionedEntry.java
index 1f54275..fc89e49 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridRawVersionedEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridRawVersionedEntry.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.dr;
 
 import org.apache.ignite.*;
-import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridVersionedEntry.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridVersionedEntry.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridVersionedEntry.java
index 159a047..93a574d 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridVersionedEntry.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/dr/GridVersionedEntry.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.dr;
 
 import org.apache.ignite.*;
-import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.marshaller.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/util/GridUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUtils.java 
b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUtils.java
index 499829e..33fae6a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridUtils.java
@@ -26,6 +26,7 @@ import org.apache.ignite.events.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.mxbean.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.portables.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageAdapter.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageAdapter.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageAdapter.java
index 8f4018b..05f7ffb 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageAdapter.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.util.direct;
 
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageState.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageState.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageState.java
index 8edddd7..9b3863c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageState.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/util/direct/GridTcpCommunicationMessageState.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.util.direct;
 
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.internal.processors.cache.distributed.dht.preloader.*;
@@ -940,7 +941,7 @@ public class GridTcpCommunicationMessageState {
     }
 
     /**
-     * @param ver {@link GridCacheVersion}.
+     * @param ver {@link 
org.apache.ignite.internal.processors.cache.version.GridCacheVersion}.
      * @return Whether value was fully written.
      */
     public final boolean putCacheVersion(@Nullable GridCacheVersion ver) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryVersionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryVersionSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryVersionSelfTest.java
index 1ea6d0d..77b0c0b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryVersionSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheEntryVersionSelfTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
@@ -32,7 +33,7 @@ import static 
org.apache.ignite.cache.CacheAtomicWriteOrderMode.*;
 import static org.apache.ignite.cache.CacheAtomicityMode.*;
 import static org.apache.ignite.cache.CacheMode.*;
 import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
-import static 
org.apache.ignite.internal.processors.cache.GridCacheVersionManager.*;
+import static 
org.apache.ignite.internal.processors.cache.version.GridCacheVersionManager.*;
 
 /**
  * Tests that entry version is

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java
index 2201362..e46511b 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccFlagsTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.testframework.junits.common.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
index e0bc3e4..f2d17af 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccPartitionedSelfTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
index e36d71b..86e43b0 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheMvccSelfTest.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.processors.cache;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.marshaller.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
index cffcf6e..60df4e4 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheTestEntryEx.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.processors.cache;
 
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
 import org.apache.ignite.internal.processors.dr.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java
index 86cff4e..45ad062 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheVersionSelfTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache;
 
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.testframework.*;
 import org.apache.ignite.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
index ffedc53..b60a86e 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridCacheAtomicInvalidPartitionHandlingSelfTest.java
@@ -23,6 +23,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.internal.managers.communication.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
 
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
index e580986..5a02f3c 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
@@ -26,6 +26,7 @@ import org.apache.ignite.internal.processors.cache.jta.*;
 import org.apache.ignite.internal.processors.cache.query.*;
 import org.apache.ignite.internal.processors.cache.query.continuous.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.testframework.junits.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridHashMapLoadTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridHashMapLoadTest.java
 
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridHashMapLoadTest.java
index 55040ed..8e6efd7 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridHashMapLoadTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridHashMapLoadTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.loadtests.hashmap;
 
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.cache.transactions.*;
+import org.apache.ignite.internal.processors.cache.version.*;
 import org.apache.ignite.testframework.junits.*;
 import org.apache.ignite.testframework.junits.common.*;
 import org.apache.ignite.testframework.junits.logger.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/74a79bb2/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index bfcc71e..46ae20d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -938,8 +938,8 @@
                                             
<packages>org.apache.ignite.cache.spring</packages>
                                         </group>
                                         <group>
-                                            <title>.Net Configuration</title>
-                                            
<packages>org.apache.ignite.dotnet</packages>
+                                            <title>Interop</title>
+                                            
<packages>org.apache.ignite.interop</packages>
                                         </group>
                                     </groups>
                                     <header>

Reply via email to