You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by av...@apache.org on 2017/05/25 13:28:23 UTC

[01/10] ignite git commit: IGNITE-5134: Fixed ClassCastException in IgniteCacheDatabaseSharedManager. This closes #1895.

Repository: ignite
Updated Branches:
  refs/heads/ignite-5232 [created] 256d45958


IGNITE-5134: Fixed ClassCastException in IgniteCacheDatabaseSharedManager. This closes #1895.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d6e70502
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d6e70502
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d6e70502

Branch: refs/heads/ignite-5232
Commit: d6e7050280817b4705302346e170a1809a3d1a91
Parents: a04aa10
Author: Ivan Rakov <iv...@gmail.com>
Authored: Wed May 3 11:24:01 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Wed May 3 11:25:20 2017 +0300

----------------------------------------------------------------------
 .../IgniteCacheDatabaseSharedManager.java       | 21 +++++++++++++-------
 .../pagemem/impl/PageMemoryNoLoadSelfTest.java  |  3 ++-
 .../database/IgniteDbDynamicCacheSelfTest.java  |  1 +
 .../database/MetadataStorageSelfTest.java       |  3 ++-
 .../processors/igfs/IgfsSizeSelfTest.java       |  2 +-
 5 files changed, 20 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d6e70502/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
index 5062d0f..7151b2f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
@@ -715,7 +715,8 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
      * @param memMetrics {@link MemoryMetrics} object to collect memory usage metrics.
      * @return Memory policy instance.
      */
-    private MemoryPolicy initMemory(MemoryConfiguration memCfg, MemoryPolicyConfiguration plcCfg, MemoryMetricsImpl memMetrics) {
+    private MemoryPolicy initMemory(MemoryConfiguration memCfg, MemoryPolicyConfiguration plcCfg,
+        MemoryMetricsImpl memMetrics) {
         File allocPath = buildAllocPath(plcCfg);
 
         DirectMemoryProvider memProvider = allocPath == null ?
@@ -726,23 +727,29 @@ public class IgniteCacheDatabaseSharedManager extends GridCacheSharedManagerAdap
 
         PageMemory pageMem = createPageMemory(memProvider, memCfg, plcCfg, memMetrics);
 
-        return new MemoryPolicy(pageMem, plcCfg, memMetrics, createPageEvictionTracker(plcCfg,
-            (PageMemoryNoStoreImpl)pageMem));
+        return new MemoryPolicy(pageMem, plcCfg, memMetrics, createPageEvictionTracker(plcCfg, pageMem));
     }
 
     /**
      * @param plc Memory Policy Configuration.
      * @param pageMem Page memory.
      */
-    private PageEvictionTracker createPageEvictionTracker(MemoryPolicyConfiguration plc, PageMemoryNoStoreImpl pageMem) {
+    private PageEvictionTracker createPageEvictionTracker(MemoryPolicyConfiguration plc, PageMemory pageMem) {
+        if (plc.getPageEvictionMode() == DataPageEvictionMode.DISABLED)
+            return new NoOpPageEvictionTracker();
+
+        assert pageMem instanceof PageMemoryNoStoreImpl : pageMem.getClass();
+
+        PageMemoryNoStoreImpl pageMem0 = (PageMemoryNoStoreImpl)pageMem;
+
         if (Boolean.getBoolean("override.fair.fifo.page.eviction.tracker"))
-            return new FairFifoPageEvictionTracker(pageMem, plc, cctx);
+            return new FairFifoPageEvictionTracker(pageMem0, plc, cctx);
 
         switch (plc.getPageEvictionMode()) {
             case RANDOM_LRU:
-                return new RandomLruPageEvictionTracker(pageMem, plc, cctx);
+                return new RandomLruPageEvictionTracker(pageMem0, plc, cctx);
             case RANDOM_2_LRU:
-                return new Random2LruPageEvictionTracker(pageMem, plc, cctx);
+                return new Random2LruPageEvictionTracker(pageMem0, plc, cctx);
             default:
                 return new NoOpPageEvictionTracker();
         }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d6e70502/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
index 84db565..0a283ed 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoLoadSelfTest.java
@@ -280,7 +280,8 @@ public class PageMemoryNoLoadSelfTest extends GridCommonAbstractTest {
     protected PageMemory memory() throws Exception {
         File memDir = U.resolveWorkDirectory(U.defaultWorkDirectory(), "pagemem", false);
 
-        MemoryPolicyConfiguration plcCfg = new MemoryPolicyConfiguration().setMaxSize(10 * 1024 * 1024);
+        MemoryPolicyConfiguration plcCfg = new MemoryPolicyConfiguration()
+            .setInitialSize(10 * 1024 * 1024).setMaxSize(10 * 1024 * 1024);
 
         DirectMemoryProvider provider = new MappedFileMemoryProvider(log(), memDir);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d6e70502/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
index 3b3e1de..8655ba9 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/IgniteDbDynamicCacheSelfTest.java
@@ -44,6 +44,7 @@ public class IgniteDbDynamicCacheSelfTest extends GridCommonAbstractTest {
         MemoryPolicyConfiguration plc = new MemoryPolicyConfiguration();
 
         plc.setName("dfltPlc");
+        plc.setInitialSize(200 * 1024 * 1024);
         plc.setMaxSize(200 * 1024 * 1024);
 
         dbCfg.setDefaultMemoryPolicyName("dfltPlc");

http://git-wip-us.apache.org/repos/asf/ignite/blob/d6e70502/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
index af0b849..b98f429 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/database/MetadataStorageSelfTest.java
@@ -157,7 +157,8 @@ public class MetadataStorageSelfTest extends GridCommonAbstractTest {
     protected PageMemory memory(boolean clean) throws Exception {
         DirectMemoryProvider provider = new MappedFileMemoryProvider(log(), allocationPath);
 
-        MemoryPolicyConfiguration plcCfg = new MemoryPolicyConfiguration().setMaxSize(30 * 1024 * 1024);
+        MemoryPolicyConfiguration plcCfg = new MemoryPolicyConfiguration()
+            .setMaxSize(30 * 1024 * 1024).setInitialSize(30 * 1024 * 1024);
 
         return new PageMemoryNoStoreImpl(
             log,

http://git-wip-us.apache.org/repos/asf/ignite/blob/d6e70502/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsSizeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsSizeSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsSizeSelfTest.java
index 456971a..597efe1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsSizeSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/igfs/IgfsSizeSelfTest.java
@@ -397,7 +397,7 @@ public class IgfsSizeSelfTest extends IgfsCommonAbstractTest {
                 String memPlcName = "igfsDataMemPlc";
 
                 cfg.setMemoryConfiguration(new MemoryConfiguration().setMemoryPolicies(
-                    new MemoryPolicyConfiguration().setMaxSize(maxSize).setName(memPlcName)));
+                    new MemoryPolicyConfiguration().setMaxSize(maxSize).setInitialSize(maxSize).setName(memPlcName)));
 
                 FileSystemConfiguration igfsCfg = cfg.getFileSystemConfiguration()[0];
 


[06/10] ignite git commit: IGNITE-5190 - ArrayIndexOutOfBoundsException in GridMergeIndexSorted

Posted by av...@apache.org.
IGNITE-5190 - ArrayIndexOutOfBoundsException in GridMergeIndexSorted

(cherry picked from commit 3a9dba5)


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/0c45750b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/0c45750b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/0c45750b

Branch: refs/heads/ignite-5232
Commit: 0c45750bdcaabf72980f775e0bc2f18edc603607
Parents: b051163
Author: Sergi Vladykin <se...@gmail.com>
Authored: Thu May 11 16:01:38 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Thu May 11 17:44:22 2017 +0300

----------------------------------------------------------------------
 .../query/h2/twostep/GridMergeIndexSorted.java  |  3 +
 .../query/IgniteSqlSplitterSelfTest.java        | 68 ++++++++++++++++++++
 2 files changed, 71 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/0c45750b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
index f2d9de4..54c8dd4 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/twostep/GridMergeIndexSorted.java
@@ -252,6 +252,9 @@ public final class GridMergeIndexSorted extends GridMergeIndex {
          *
          */
         private void goNext() {
+            if (off == streams.length)
+                return; // All streams are done.
+
             if (streams[off].next())
                 bubbleUp(streams, off, streamCmp);
             else

http://git-wip-us.apache.org/repos/asf/ignite/blob/0c45750b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
index 8e56d36..6391286 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/IgniteSqlSplitterSelfTest.java
@@ -1579,6 +1579,37 @@ public class IgniteSqlSplitterSelfTest extends GridCommonAbstractTest {
         }
     }
 
+    /**
+     * @throws Exception If failed.
+     */
+    public void testJoinWithSubquery() throws Exception {
+        IgniteCache<Integer, Contract> c1 = ignite(0).createCache(
+            cacheConfig("Contract", true,
+            Integer.class, Contract.class));
+
+        IgniteCache<Integer, PromoContract> c2 = ignite(0).createCache(
+            cacheConfig("PromoContract", true,
+            Integer.class, PromoContract.class));
+
+        for (int i = 0; i < 100; i++) {
+            int coId = i % 10;
+            int cust = i / 10;
+            c1.put( i, new Contract(coId, cust));
+        }
+
+        for (int i = 0; i < 10; i++)
+            c2.put(i, new PromoContract((i % 5) + 1, i));
+
+        final List<List<?>> res = c2.query(new SqlFieldsQuery("SELECT CO.CO_ID \n" +
+            "FROM PromoContract PMC  \n" +
+            "INNER JOIN \"Contract\".Contract CO  ON PMC.CO_ID = 5  \n" +
+            "AND PMC.CO_ID = CO.CO_ID  \n" +
+            "INNER JOIN  (SELECT CO_ID FROM PromoContract EBP WHERE EBP.CO_ID = 5 LIMIT 1) VPMC  \n" +
+            "ON PMC.CO_ID = VPMC.CO_ID ")).getAll();
+
+        assertFalse(res.isEmpty());
+    }
+
     /** @throws Exception if failed. */
     public void testDistributedAggregates() throws Exception {
         final String cacheName = "ints";
@@ -2098,4 +2129,41 @@ public class IgniteSqlSplitterSelfTest extends GridCommonAbstractTest {
         @QuerySqlField
         private int goodId;
     }
+
+    /** */
+    private static class Contract implements Serializable {
+        /** */
+        @QuerySqlField(index = true)
+        private final int CO_ID;
+
+        /** */
+        @QuerySqlField(index = true)
+        private final int CUSTOMER_ID;
+
+        /** */
+        public Contract(final int CO_ID, final int CUSTOMER_ID) {
+            this.CO_ID = CO_ID;
+            this.CUSTOMER_ID = CUSTOMER_ID;
+        }
+
+    }
+
+    /** */
+    public class PromoContract implements Serializable {
+        /** */
+        @QuerySqlField(index = true, orderedGroups = {
+            @QuerySqlField.Group(name = "myIdx", order = 1)})
+        private final int CO_ID;
+
+        /** */
+        @QuerySqlField(index = true, orderedGroups = {
+            @QuerySqlField.Group(name = "myIdx", order = 0)})
+        private final int OFFER_ID;
+
+        /** */
+        public PromoContract(final int co_Id, final int offer_Id) {
+            this.CO_ID = co_Id;
+            this.OFFER_ID = offer_Id;
+        }
+    }
 }


[07/10] ignite git commit: GG-11423 Build release artifacts once and use them for all editions

Posted by av...@apache.org.
GG-11423 Build release artifacts once and use them for all editions


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/cfe1e511
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/cfe1e511
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/cfe1e511

Branch: refs/heads/ignite-5232
Commit: cfe1e511a36f6f07ec7635a5dcbe31aef0c637e3
Parents: b051163
Author: oleg-ostanin <oo...@gridgain.com>
Authored: Wed May 17 16:24:58 2017 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Wed May 17 16:39:05 2017 +0300

----------------------------------------------------------------------
 DEVNOTES.txt                                    |  74 ++++--
 assembly/dependencies-fabric-lgpl.xml           |   2 +
 assembly/dependencies-fabric.xml                |   2 +
 assembly/release-fabric-lgpl.xml                |   1 +
 assembly/release-fabric.xml                     |   1 +
 assembly/release-yardstick.xml                  |  98 +++++++
 .../Apache.Ignite.Core.nuspec                   |   5 +-
 modules/platforms/dotnet/build.ps1              |   5 +-
 modules/web-console/web-agent/pom.xml           |   8 +
 parent/pom.xml                                  |   8 +-
 pom.xml                                         | 257 ++++++-------------
 11 files changed, 246 insertions(+), 215 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/DEVNOTES.txt
----------------------------------------------------------------------
diff --git a/DEVNOTES.txt b/DEVNOTES.txt
index d3c162e..8a689b8 100644
--- a/DEVNOTES.txt
+++ b/DEVNOTES.txt
@@ -1,36 +1,63 @@
 Ignite Fabric Maven Build Instructions
 ======================================
-Without LGPL dependencies (default):
-  mvn clean package -DskipTests
+1) Optional: build Apache Ignite.NET as described at modules/platforms/dotnet/DEVNOTES.txt.
 
-Without LGPL dependencies and Scala 2.10:
-  mvn clean package -DskipTests -Dscala-2.10
+2) Compile and package:
 
-With LGPL dependencies:
-  mvn clean package -DskipTests -Prelease,lgpl -Dignite.edition=fabric-lgpl
+  mvn clean package -Pall-java,all-scala,licenses -DskipTests
 
-With LGPL dependencies and Scala 2.10:
-  mvn clean package -DskipTests -Prelease,lgpl -Dignite.edition=fabric-lgpl -Dscala-2.10
+  or if you have built Apache Ignite.NET on the first step use following command:
+  (Note that 'doxygen' should be installed before running this command.)
 
-With LGPL dependencies and Scala 2.10 and Ignite-Yardstick:
-  mvn clean package -DskipTests -Prelease,lgpl,yardstick -Dignite.edition=fabric-lgpl -Dscala-2.10
+  mvn clean package -Pall-java,all-scala,licenses -DskipTests -DclientDocs
 
-With Apache Ignite.NET:
-  Build Apache Ignite.NET as described at modules/platforms/dotnet/DEVNOTES.txt.
+3) Javadoc generation (optional):
 
-  Then build Ignite Fabric with Apache Ignite.NET:
-  mvn clean package -DskipTests -DclientDocs
+  mvn initialize -Pjavadoc
 
-  Note that 'doxygen' should be installed before running this command.
+4) Assembly Apache Ignite fabric:
+
+  mvn initialize -Prelease
 
 Look for apache-ignite-fabric-<version>-bin.zip in ./target/bin directory.
 
+Ignite Fabric with LGPL Maven Build Instructions
+======================================
+1) Optional: build Apache Ignite.NET as described at modules/platforms/dotnet/DEVNOTES.txt.
+
+2) Compile and package:
+
+  mvn clean package -Pall-java,all-scala,licenses -DskipTests
+
+  or if you have built Apache Ignite.NET on the first step use following command:
+  (Note that 'doxygen' should be installed before running this command.)
+
+  mvn clean package -Pall-java,all-scala,licenses -DskipTests -DclientDocs
+
+3) Javadoc generation with LGPL (optional):
+
+  mvn initialize -Pjavadoc,lgpl
+
+4) Assembly Apache Ignite fabric with LGPL dependencies:
+
+  mvn initialize -Prelease,lgpl -Dignite.edition=fabric-lgpl
+
+Look for apache-ignite-fabric-lgpl-<version>-bin.zip in ./target/bin directory.
+
 Ignite Hadoop Accelerator Maven Build Instructions
 ============================================
-mvn clean package -DskipTests -Dignite.edition=hadoop [-Dhadoop.version=X.X.X] [-Dspark.version=x.y.z]
+1) Compile and package:
+
+    mvn clean package -Pall-java,all-scala,licenses -DskipTests
 
 Use 'hadoop.version' parameter to build Ignite against a specific Hadoop version.
 Use 'spark.version' parameter to build ignite-spark module for a specific Spark version. Version should be >= 2.0.0.
+For example:
+
+    mvn clean package -Pall-java,all-scala,licenses -DskipTests -Dhadoop.version=2.4.2 -Dspark.version=2.1.1
+
+2) Assembly Hadoop Accelerator:
+  mvn initialize -Prelease -Dignite.edition=hadoop
 
 Look for apache-ignite-hadoop-<version>-bin.zip in ./target/bin directory. Resulting binary
 assembly will also include integration module for Apache Spark.
@@ -66,12 +93,17 @@ Maven release plugin release:prepare goal can be used to make release tag.
 
 Deploy Ignite release candidate to maven repository and dev-svn, make tag:
 
-   Following command deploys Ignite to maven repository, prepares sources and fabric edition binaries.
-      mvn deploy -P apache-release,gpg,release,scala,lgpl,deploy-ignite-site -Dignite.edition=fabric -DskipTests -B
+   1) Deploy Ignite to maven repository, prepares sources and fabric edition binaries.
+      mvn deploy -Papache-release,gpg,all-java,all-scala,licenses,deploy-ignite-site -Dignite.edition=fabric -DskipTests
+
+   2) Javadoc generation:
+      mvn initialize -Pjavadoc
+
+   3) Assembly Apache Ignite Fabric:
+      mvn initialize -Prelease
 
-   In case you want to release both fabric and hadoop editions you have to build hadoop edition first using command
-      mvn package -P apache-release,gpg,release,scala,lgpl -Dignite.edition=hadoop -DskipTests -B
-   save /target/bin/*.zip, make "mvn clean" and restore saved files before deploying fabric.
+   4) Assembly Hadoop Accelerator:
+      mvn initialize -Prelease -Dignite.edition=hadoop
 
    Binary artifact name can be changed by setting additional property -Dignite.zip.pattern. Binary artifact will be
    created inside /target/bin folder when release profile is used.

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/assembly/dependencies-fabric-lgpl.xml
----------------------------------------------------------------------
diff --git a/assembly/dependencies-fabric-lgpl.xml b/assembly/dependencies-fabric-lgpl.xml
index 4cff146..e2fac3c 100644
--- a/assembly/dependencies-fabric-lgpl.xml
+++ b/assembly/dependencies-fabric-lgpl.xml
@@ -131,6 +131,8 @@
                 <exclude>org.apache.ignite:ignite-websphere-test</exclude>
                 <exclude>org.apache.ignite:ignite-cassandra</exclude>
                 <exclude>org.apache.ignite:ignite-yardstick</exclude>
+                <exclude>org.apache.ignite:ignite-benchmarks</exclude>
+                <exclude>org.apache.ignite:ignite-web-agent</exclude>
             </excludes>
             <sources>
                 <includeModuleDirectory>true</includeModuleDirectory>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/assembly/dependencies-fabric.xml
----------------------------------------------------------------------
diff --git a/assembly/dependencies-fabric.xml b/assembly/dependencies-fabric.xml
index be68d0a..6c4101e 100644
--- a/assembly/dependencies-fabric.xml
+++ b/assembly/dependencies-fabric.xml
@@ -136,6 +136,8 @@
                 <exclude>org.apache.ignite:ignite-websphere-test</exclude>
                 <exclude>org.apache.ignite:ignite-cassandra</exclude>
                 <exclude>org.apache.ignite:ignite-yardstick</exclude>
+                <exclude>org.apache.ignite:ignite-benchmarks</exclude>
+                <exclude>org.apache.ignite:ignite-web-agent</exclude>
             </excludes>
             <sources>
                 <includeModuleDirectory>true</includeModuleDirectory>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/assembly/release-fabric-lgpl.xml
----------------------------------------------------------------------
diff --git a/assembly/release-fabric-lgpl.xml b/assembly/release-fabric-lgpl.xml
index 1766558..ff4d8c4 100644
--- a/assembly/release-fabric-lgpl.xml
+++ b/assembly/release-fabric-lgpl.xml
@@ -32,6 +32,7 @@
     <componentDescriptors>
         <componentDescriptor>release-base.xml</componentDescriptor>
         <componentDescriptor>release-fabric-base.xml</componentDescriptor>
+        <componentDescriptor>release-yardstick.xml</componentDescriptor>
     </componentDescriptors>
 
     <files>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/assembly/release-fabric.xml
----------------------------------------------------------------------
diff --git a/assembly/release-fabric.xml b/assembly/release-fabric.xml
index ffde8ec..7536d4e 100644
--- a/assembly/release-fabric.xml
+++ b/assembly/release-fabric.xml
@@ -32,6 +32,7 @@
     <componentDescriptors>
         <componentDescriptor>release-base.xml</componentDescriptor>
         <componentDescriptor>release-fabric-base.xml</componentDescriptor>
+        <componentDescriptor>release-yardstick.xml</componentDescriptor>
     </componentDescriptors>
 
     <files>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/assembly/release-yardstick.xml
----------------------------------------------------------------------
diff --git a/assembly/release-yardstick.xml b/assembly/release-yardstick.xml
new file mode 100644
index 0000000..0bd6f41
--- /dev/null
+++ b/assembly/release-yardstick.xml
@@ -0,0 +1,98 @@
+<?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.
+  -->
+
+<component xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2"
+           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+           xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.2
+           http://maven.apache.org/xsd/component-1.1.2.xsd">
+    <files>
+        <file>
+            <source>modules/yardstick/pom-standalone.xml</source>
+            <outputDirectory>benchmarks/sources</outputDirectory>
+            <destName>pom.xml</destName>
+        </file>
+
+        <file>
+            <source>modules/yardstick/DEVNOTES-standalone.txt</source>
+            <outputDirectory>benchmarks/sources</outputDirectory>
+            <destName>DEVNOTES.txt</destName>
+        </file>
+
+        <file>
+            <source>modules/yardstick/README.txt</source>
+            <outputDirectory>benchmarks</outputDirectory>
+            <destName>README.txt</destName>
+        </file>
+    </files>
+
+    <fileSets>
+        <fileSet>
+            <directory>modules/yardstick/target/assembly/bin</directory>
+            <outputDirectory>benchmarks/bin</outputDirectory>
+        </fileSet>
+
+        <fileSet>
+            <directory>modules/yardstick/target/assembly/config</directory>
+            <outputDirectory>benchmarks/config</outputDirectory>
+            <includes>
+                <include>benchmark.properties</include>
+                <include>benchmark-remote.properties</include>
+                <include>benchmark-sample.properties</include>
+                <include>benchmark-remote-sample.properties</include>
+                <include>benchmark-multicast.properties</include>
+                <include>ignite-base-config.xml</include>
+                <include>ignite-localhost-config.xml</include>
+                <include>ignite-remote-config.xml</include>
+                <include>ignite-multicast-config.xml</include>
+            </includes>
+        </fileSet>
+
+        <fileSet>
+            <directory>modules/yardstick/target/assembly/libs</directory>
+            <outputDirectory>benchmarks/libs</outputDirectory>
+            <excludes>
+                <exclude>junit-*.jar</exclude>
+                <exclude>ignite-apache-license-gen-*.jar</exclude>
+                <exclude>hamcrest-core-*.jar</exclude>
+                <exclude>tools-*.jar</exclude>
+            </excludes>
+        </fileSet>
+
+        <fileSet>
+            <directory>modules/yardstick/src</directory>
+            <outputDirectory>benchmarks/sources/src</outputDirectory>
+        </fileSet>
+
+        <fileSet>
+            <directory>modules/yardstick/target/assembly/config</directory>
+            <outputDirectory>benchmarks/sources/config</outputDirectory>
+            <includes>
+                <include>benchmark.properties</include>
+                <include>benchmark-remote.properties</include>
+                <include>benchmark-sample.properties</include>
+                <include>benchmark-remote-sample.properties</include>
+                <include>benchmark-multicast.properties</include>
+                <include>ignite-base-config.xml</include>
+                <include>ignite-localhost-config.xml</include>
+                <include>ignite-remote-config.xml</include>
+                <include>ignite-multicast-config.xml</include>
+            </includes>
+        </fileSet>
+    </fileSets>
+</component>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.nuspec
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.nuspec b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.nuspec
index 8f562f1..09236ba 100644
--- a/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.nuspec
+++ b/modules/platforms/dotnet/Apache.Ignite.Core/Apache.Ignite.Core.nuspec
@@ -61,10 +61,7 @@ More info: https://apacheignite-net.readme.io/
             Library files (jars) should not be included in project, so that NuGet package restore works properly.
             We keep jars in NuGet dir and copy them over in PostBuild event.
         -->
-        <file src="..\..\..\..\target\release-package\libs\*.jar" target="Libs" />
-        <file src="..\..\..\..\target\release-package\libs\ignite-spring\*.jar" target="Libs" />
-        <file src="..\..\..\..\target\release-package\libs\ignite-indexing\*.jar" target="Libs" />
-        <file src="..\..\..\..\target\release-package\libs\licenses\*.*" target="Licenses" />
+        <file src="..\bin\Libs\*.jar" target="Libs" />
     
         <!-- LINQPad samples -->
         <file src="NuGet\LINQPad\*.*" target="linqpad-samples" />

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/modules/platforms/dotnet/build.ps1
----------------------------------------------------------------------
diff --git a/modules/platforms/dotnet/build.ps1 b/modules/platforms/dotnet/build.ps1
index b8e6a37..222076a 100644
--- a/modules/platforms/dotnet/build.ps1
+++ b/modules/platforms/dotnet/build.ps1
@@ -112,10 +112,7 @@ if (!$skipJava) {
     $libsDir = "$PSScriptRoot\bin\Libs"
     mkdir -Force $libsDir; del -Force $libsDir\*.*
     
-    copy -Force target\release-package\libs\*.jar $libsDir
-    copy -Force target\release-package\libs\ignite-spring\*.jar $libsDir
-    copy -Force target\release-package\libs\ignite-indexing\*.jar $libsDir
-    copy -Force target\release-package\libs\licenses\*.jar $libsDir
+    ls modules\indexing\target,modules\core\target,modules\spring\target*.jar -recurse -include "ignite-core*","ignite-indexing*","ignite-shmem*","ignite-spring*","lucene*","h2*","cache-api*","commons-*","spring*" -exclude "*-sources*","*-javadoc*","*-tests*" | % { copy -Force $_ $libsDir }
 
     # Restore directory
     cd $PSScriptRoot

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/modules/web-console/web-agent/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web-console/web-agent/pom.xml b/modules/web-console/web-agent/pom.xml
index 49e0ef0..168d150 100644
--- a/modules/web-console/web-agent/pom.xml
+++ b/modules/web-console/web-agent/pom.xml
@@ -183,6 +183,14 @@
 
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-javadoc-plugin</artifactId>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-deploy-plugin</artifactId>
                 <configuration>
                     <skip>true</skip>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 3b57895..110411b 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -997,12 +997,8 @@
         </profile>
 
         <profile>
-            <id>release</id>
-            <activation>
-                <property>
-                    <name>!skipDefault</name><!--activeByDefault-->
-                </property>
-            </activation>
+            <id>licenses</id>
+
             <dependencies>
                 <dependency>
                     <groupId>org.apache.ignite</groupId>

http://git-wip-us.apache.org/repos/asf/ignite/blob/cfe1e511/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8d388a5..db63291 100644
--- a/pom.xml
+++ b/pom.xml
@@ -164,29 +164,64 @@
         </profile>
 
         <profile>
-            <id>dev-libs</id>
-            <activation>
-                <activeByDefault>true</activeByDefault>
-            </activation>
+            <id>javadoc</id>
             <build>
                 <plugins>
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>core-javadoc</id>
+                                <goals>
+                                    <goal>aggregate</goal>
+                                </goals>
+                                <phase>validate</phase>
+                                <configuration>
+                                    <reportOutputDirectory>${basedir}/target/javadoc</reportOutputDirectory>
+                                    <destDir>core</destDir>
+                                    <stylesheetfile>${basedir}/assembly/docfiles/javadoc.css</stylesheetfile>
+                                    <subpackages>org.apache.ignite -exclude org.apache.ignite.client:org.apache.ignite.codegen:org.apache.ignite.examples:org.apache.ignite.internal:org.apache.ignite.schema:org.apache.ignite.tests:org.apache.ignite.tools:org.apache.ignite.util:org.apache.ignite.spi.discovery.tcp.messages:org.apache.ignite.spi.discovery.tcp.internal:org.apache.ignite.spi.deployment.uri.scanners:org.apache.ignite.spi.deployment.uri.tasks:org.apache.ignite.yardstick:org.apache.ignite.webtest</subpackages>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-antrun-plugin</artifactId>
                         <version>1.7</version>
                         <inherited>false</inherited>
+                        <dependencies>
+                            <dependency>
+                                <groupId>org.apache.ignite</groupId>
+                                <artifactId>ignite-tools</artifactId>
+                                <version>${project.version}</version>
+                            </dependency>
+                        </dependencies>
                         <executions>
                             <execution>
-                                <id>dev-libs</id>
+                                <id>javadoc-postprocessing-new</id>
                                 <goals>
                                     <goal>run</goal>
                                 </goals>
-                                <phase>package</phase>
+                                <phase>initialize</phase>
                                 <configuration>
                                     <target>
-                                        <copy todir="${basedir}/libs">
-                                            <fileset dir="${basedir}/target/release-package/libs" />
+                                        <copy todir="${basedir}/target/javadoc/core">
+                                            <fileset dir="assembly/docfiles">
+                                                <include name="img/**" />
+                                                <include name="*.js" />
+                                            </fileset>
                                         </copy>
+
+                                            <taskdef name="doctask" classname="org.apache.ignite.tools.ant.beautifier.GridJavadocAntTask" />
+
+                                            <doctask css="dotted" dir="target/javadoc/core">
+                                                <include name="**/*.html" />
+                                                <exclude name="overview-frame.html" />
+                                                <exclude name="allclasses-frame.html" />
+                                                <exclude name="**/class-use/*" />
+                                            </doctask>
                                     </target>
                                 </configuration>
                             </execution>
@@ -208,11 +243,6 @@
 
         <profile>
             <id>release</id>
-            <activation>
-                <property>
-                    <name>!skipDefault</name><!--activeByDefault-->
-                </property>
-            </activation>
             <build>
                 <plugins>
                     <plugin><!-- skipping generation of dependencies licenses
@@ -235,26 +265,6 @@
 
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <id>core-javadoc</id>
-                                <goals>
-                                    <goal>aggregate</goal>
-                                </goals>
-                                <phase>process-test-classes</phase>
-                                <configuration>
-                                    <reportOutputDirectory>${basedir}/target/javadoc</reportOutputDirectory>
-                                    <destDir>core</destDir>
-                                    <stylesheetfile>${basedir}/assembly/docfiles/javadoc.css</stylesheetfile>
-                                    <subpackages>org.apache.ignite -exclude org.apache.ignite.client:org.apache.ignite.codegen:org.apache.ignite.examples:org.apache.ignite.internal:org.apache.ignite.schema:org.apache.ignite.tests:org.apache.ignite.tools:org.apache.ignite.util:org.apache.ignite.spi.discovery.tcp.messages:org.apache.ignite.spi.discovery.tcp.internal:org.apache.ignite.spi.deployment.uri.scanners:org.apache.ignite.spi.deployment.uri.tasks:org.apache.ignite.yardstick:org.apache.ignite.webtest</subpackages>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-antrun-plugin</artifactId>
                         <version>1.7</version>
                         <inherited>false</inherited>
@@ -267,44 +277,17 @@
                         </dependencies>
                         <executions>
                             <execution>
-                                <id>javadoc-postprocessing</id>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                                <phase>prepare-package</phase>
-                                <configuration>
-                                    <target>
-                                        <copy todir="${basedir}/target/javadoc/core">
-                                            <fileset dir="assembly/docfiles">
-                                                <include name="img/**" />
-                                                <include name="*.js" />
-                                            </fileset>
-                                        </copy>
-
-                                        <taskdef name="doctask" classname="org.apache.ignite.tools.ant.beautifier.GridJavadocAntTask" />
-
-                                        <doctask css="dotted" dir="target/javadoc/core">
-                                            <include name="**/*.html" />
-                                            <exclude name="overview-frame.html" />
-                                            <exclude name="allclasses-frame.html" />
-                                            <exclude name="**/class-use/*" />
-                                        </doctask>
-                                    </target>
-                                </configuration>
-                            </execution>
-
-                            <execution>
                                 <id>release-postprocessing</id>
                                 <goals>
                                     <goal>run</goal>
                                 </goals>
-                                <phase>package</phase>
+                                <phase>initialize</phase>
                                 <configuration>
                                     <target>
                                         <replaceregexp byline="true">
                                             <regexp pattern="pushd &quot;%~dp0&quot;/\.\./\.\.(\s*&amp;::.+)?" />
                                             <substitution expression="pushd &quot;%~dp0&quot;/.." />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.bat" />
                                             </fileset>
                                         </replaceregexp>
@@ -312,7 +295,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="IGNITE_HOME_TMP=&quot;\$\(dirname &quot;\$\{IGNITE_HOME_TMP\}&quot;\)&quot;(\s*#.*)?" />
                                             <substitution expression="" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.sh" />
                                             </fileset>
                                         </replaceregexp>
@@ -320,7 +303,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="set SCRIPTS_HOME=%IGNITE_HOME%\\bin(\s*&amp;::.*)?" />
                                             <substitution expression="set SCRIPTS_HOME=%IGNITE_HOME%\\\\bin" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.bat" />
                                             </fileset>
                                         </replaceregexp>
@@ -328,7 +311,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="SCRIPTS_HOME=&quot;\$\{IGNITE_HOME_TMP\}/bin&quot;(\s*#.*)?" />
                                             <substitution expression="SCRIPTS_HOME=&quot;$${IGNITE_HOME_TMP}/bin&quot;" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.sh" />
                                             </fileset>
                                         </replaceregexp>
@@ -336,7 +319,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="\. &quot;\$\{SCRIPTS_HOME\}&quot;/include/build-classpath.sh(\s*#.*)?" />
                                             <substitution expression="" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.sh" />
                                             </fileset>
                                         </replaceregexp>
@@ -344,7 +327,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="call &quot;%SCRIPTS_HOME%\\include\\build-classpath.bat&quot;(\s*&amp;::.*)?" />
                                             <substitution expression="" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.bat" />
                                             </fileset>
                                         </replaceregexp>
@@ -352,7 +335,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="ENABLE_ASSERTIONS=.*" />
                                             <substitution expression="ENABLE_ASSERTIONS=&quot;0&quot;" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.sh" />
                                             </fileset>
                                         </replaceregexp>
@@ -360,7 +343,7 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="ENABLE_ASSERTIONS=.*" />
                                             <substitution expression="ENABLE_ASSERTIONS=0" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.bat" />
                                             </fileset>
                                         </replaceregexp>
@@ -368,36 +351,41 @@
                                         <replaceregexp byline="true">
                                             <regexp pattern="-DIGNITE_UPDATE_NOTIFIER=false" />
                                             <substitution expression="" />
-                                            <fileset dir="${basedir}/target/release-package/bin">
+                                            <fileset dir="${basedir}/target/release-package-${ignite.edition}/bin">
                                                 <include name="**/*.sh" />
                                                 <include name="**/*.bat" />
                                             </fileset>
                                         </replaceregexp>
 
-                                        <replaceregexp file="${basedir}/target/release-package/examples/pom.xml" byline="true">
+                                        <replaceregexp file="${basedir}/target/release-package-${ignite.edition}/examples/pom.xml" byline="true">
+                                            <regexp pattern="to_be_replaced_by_ignite_version" />
+                                            <substitution expression="${project.version}" />
+                                        </replaceregexp>
+
+                                        <replaceregexp file="${basedir}/target/release-package-${ignite.edition}/benchmarks/sources/pom.xml" byline="true">
                                             <regexp pattern="to_be_replaced_by_ignite_version" />
                                             <substitution expression="${project.version}" />
                                         </replaceregexp>
 
-                                        <chmod dir="${basedir}/target/release-package" perm="755" includes="**/*.sh" />
+                                        <chmod dir="${basedir}/target/release-package-${ignite.edition}" perm="755" includes="**/*.sh" />
 
                                         <!--
                                         Line ending bugfix for builds packaged in MS Windows machine to adjust Linux based
                                         end-of-line characters for Linux shell scripts
                                         -->
-                                        <fixcrlf srcdir="${basedir}/target/release-package" eol="lf" eof="remove">
+                                        <fixcrlf srcdir="${basedir}/target/release-package-${ignite.edition}" eol="lf" eof="remove">
                                             <include name="**/*.sh" />
                                         </fixcrlf>
 
                                         <zip destfile="${basedir}/target/bin/${ignite.zip.pattern}.zip" encoding="UTF-8">
-                                            <zipfileset dir="${basedir}/target/release-package" prefix="${ignite.zip.pattern}" filemode="755">
+                                            <zipfileset dir="${basedir}/target/release-package-${ignite.edition}" prefix="${ignite.zip.pattern}" filemode="755">
                                                 <include name="**/*.sh" />
                                                 <include name="**/configure" />
                                                 <include name="**/install-sh" />
                                                 <include name="**/compile" />
                                                 <include name="**/missing" />
                                             </zipfileset>
-                                            <zipfileset dir="${basedir}/target/release-package" prefix="${ignite.zip.pattern}">
+                                            <zipfileset dir="${basedir}/target/release-package-${ignite.edition}" prefix="${ignite.zip.pattern}">
                                                 <exclude name="**/*.sh" />
                                                 <exclude name="**/configure" />
                                                 <exclude name="**/install-sh" />
@@ -418,8 +406,8 @@
                         <inherited>false</inherited>
                         <executions>
                             <execution>
-                                <id>dependencies</id>
-                                <phase>prepare-package</phase>
+                                <id>ignite-dependencies</id>
+                                <phase>validate</phase>
                                 <goals>
                                     <goal>single</goal>
                                 </goals>
@@ -427,15 +415,15 @@
                                     <descriptors>
                                         <descriptor>${basedir}/assembly/dependencies-${ignite.edition}.xml</descriptor>
                                     </descriptors>
-                                    <outputDirectory>${basedir}/target/release-package</outputDirectory>
+                                    <outputDirectory>${basedir}/target/release-package-${ignite.edition}</outputDirectory>
                                     <finalName>libs</finalName>
                                     <appendAssemblyId>false</appendAssemblyId>
                                 </configuration>
                             </execution>
 
                             <execution>
-                                <id>release</id>
-                                <phase>prepare-package</phase>
+                                <id>ignite-release</id>
+                                <phase>validate</phase>
                                 <goals>
                                     <goal>single</goal>
                                 </goals>
@@ -443,14 +431,14 @@
                                     <descriptors>
                                         <descriptor>assembly/release-${ignite.edition}.xml</descriptor>
                                     </descriptors>
-                                    <finalName>release-package</finalName>
+                                    <finalName>release-package-${ignite.edition}</finalName>
                                     <appendAssemblyId>false</appendAssemblyId>
                                 </configuration>
                             </execution>
 
                             <execution>
                                 <id>dependencies-visor-console</id>
-                                <phase>prepare-package</phase>
+                                <phase>validate</phase>
                                 <goals>
                                     <goal>single</goal>
                                 </goals>
@@ -458,7 +446,7 @@
                                     <descriptors>
                                         <descriptor>assembly/dependencies-visor-console.xml</descriptor>
                                     </descriptors>
-                                    <outputDirectory>target/release-package/bin</outputDirectory>
+                                    <outputDirectory>target/release-package-${ignite.edition}/bin</outputDirectory>
                                     <finalName>include</finalName>
                                     <appendAssemblyId>false</appendAssemblyId>
                                 </configuration>
@@ -466,7 +454,7 @@
 
                             <execution>
                                 <id>scala-scripts</id>
-                                <phase>prepare-package</phase>
+                                <phase>validate</phase>
                                 <goals>
                                     <goal>single</goal>
                                 </goals>
@@ -474,7 +462,7 @@
                                     <descriptors>
                                         <descriptor>assembly/release-scala.xml</descriptor>
                                     </descriptors>
-                                    <outputDirectory>target/release-package</outputDirectory>
+                                    <outputDirectory>target/release-package-${ignite.edition}</outputDirectory>
                                     <finalName>bin</finalName>
                                     <appendAssemblyId>false</appendAssemblyId>
                                 </configuration>
@@ -498,97 +486,6 @@
             <modules>
                 <module>modules/yardstick</module>
             </modules>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-antrun-plugin</artifactId>
-                        <version>1.7</version>
-                        <inherited>false</inherited>
-                        <dependencies>
-                            <dependency>
-                                <groupId>org.apache.ignite</groupId>
-                                <artifactId>ignite-tools</artifactId>
-                                <version>${project.version}</version>
-                            </dependency>
-                        </dependencies>
-                        <executions>
-                            <execution>
-                                <id>release-yardstick</id>
-                                <goals>
-                                    <goal>run</goal>
-                                </goals>
-                                <phase>prepare-package</phase>
-                                <configuration>
-                                    <target>
-                                        <mkdir dir="${basedir}/target/release-package/benchmarks" />
-
-                                        <copy todir="${basedir}/target/release-package/benchmarks/">
-                                            <fileset dir="${basedir}/modules/yardstick/target/assembly/" />
-                                        </copy>
-
-                                        <!--todo: only required jars should be exported to /benchmarks/libs during compilation-->
-                                        <delete>
-                                            <fileset dir="${basedir}/target/release-package/benchmarks/libs/">
-                                                <include name="junit-*.jar" />
-                                                <include name="ignite-apache-license-gen-*.jar" />
-                                                <include name="hamcrest-core-*.jar" />
-                                                <include name="tools-*.jar" />
-                                            </fileset>
-                                        </delete>
-
-                                        <!--todo: config structure should be refactored to be the same at "sources" and "released sources"-->
-                                        <delete>
-                                            <fileset dir="${basedir}/target/release-package/benchmarks/config/">
-                                                <include name="*.*" />
-                                                <exclude name="benchmark.properties" />
-                                                <exclude name="benchmark-remote.properties" />
-                                                <exclude name="benchmark-sample.properties" />
-                                                <exclude name="benchmark-remote-sample.properties" />
-                                                <exclude name="benchmark-multicast.properties" />
-                                                <exclude name="ignite-base-config.xml" />
-                                                <exclude name="ignite-localhost-config.xml" />
-                                                <exclude name="ignite-remote-config.xml" />
-                                                <exclude name="ignite-multicast-config.xml" />
-                                            </fileset>
-                                        </delete>
-
-                                        <mkdir dir="${basedir}/target/release-package/benchmarks/sources/src" />
-
-                                        <copy todir="${basedir}/target/release-package/benchmarks/sources/src/">
-                                            <fileset dir="${basedir}/modules/yardstick/src" />
-                                        </copy>
-
-                                        <mkdir dir="${basedir}/target/release-package/benchmarks/sources/config" />
-
-                                        <copy todir="${basedir}/target/release-package/benchmarks/sources/config/">
-                                            <fileset dir="${basedir}/target/release-package/benchmarks/config" />
-                                        </copy>
-
-                                        <copy file="${basedir}/modules/yardstick/pom-standalone.xml"
-                                              tofile="${basedir}/target/release-package/benchmarks/sources/pom.xml"/>
-
-                                        <replaceregexp byline="true">
-                                            <regexp pattern="to_be_replaced_by_ignite_version" />
-                                            <substitution expression="${project.version}" />
-                                            <fileset dir="${basedir}/target/release-package/benchmarks/sources/">
-                                                <include name="pom.xml" />
-                                            </fileset>
-                                        </replaceregexp>
-
-                                        <copy file="${basedir}/modules/yardstick/README.txt"
-                                              tofile="${basedir}/target/release-package/benchmarks/README.txt" overwrite="true">
-                                        </copy>
-
-                                        <copy file="${basedir}/modules/yardstick/DEVNOTES-standalone.txt"
-                                              tofile="${basedir}/target/release-package/benchmarks/sources/DEVNOTES.txt"/>
-                                    </target>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
         </profile>
 
         <profile>
@@ -661,7 +558,7 @@
                             </execution>
                             <execution>
                                 <id>source-release-assembly-ignite</id>
-                                <phase>package</phase>
+                                <phase>initialize</phase>
                                 <goals>
                                     <goal>single</goal>
                                 </goals>
@@ -684,7 +581,7 @@
                         <executions>
                             <execution>
                                 <id>attach-artifact</id><!-- allows to sign *bin.zip files -->
-                                <phase>package</phase>
+                                <phase>initialize</phase>
                                 <goals>
                                     <goal>run</goal>
                                 </goals>
@@ -747,7 +644,7 @@
                                 <goals>
                                     <goal>files</goal>
                                 </goals>
-                                <phase>install</phase>
+                                <phase>initialize</phase>
                             </execution>
                         </executions>
                         <configuration>
@@ -779,7 +676,7 @@
                                 <goals>
                                     <goal>run</goal>
                                 </goals>
-                                <phase>install</phase>
+                                <phase>initialize</phase>
                                 <configuration>
                                     <failOnError>false</failOnError>
                                     <target>


[09/10] ignite git commit: IGNITE-5252: Expose getFieldName method to SqlFieldsQuery result. - Fixes #1982.

Posted by av...@apache.org.
IGNITE-5252: Expose getFieldName method to SqlFieldsQuery result. - Fixes #1982.

Signed-off-by: Sergi Vladykin <se...@gmail.com>
(cherry picked from commit 647fd195b310df10b230b67c92a8df04b5a064e2)


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/4155d422
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/4155d422
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/4155d422

Branch: refs/heads/ignite-5232
Commit: 4155d422932a741bd00a72db3f7926f468ccf23e
Parents: ed37bd4
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Wed May 24 13:19:16 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Wed May 24 13:19:16 2017 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/IgniteCache.java     | 13 +++++++
 .../ignite/cache/query/FieldsQueryCursor.java   | 39 ++++++++++++++++++++
 .../processors/cache/IgniteCacheProxy.java      | 13 +++++--
 .../processors/cache/QueryCursorImpl.java       | 19 +++++++++-
 .../processors/query/GridQueryIndexing.java     |  5 ++-
 .../processors/query/GridQueryProcessor.java    | 22 ++++++-----
 .../multijvm/IgniteCacheProcessProxy.java       |  8 ++++
 .../processors/query/h2/IgniteH2Indexing.java   |  9 +++--
 .../query/h2/ddl/DdlStatementsProcessor.java    |  4 +-
 .../cache/SqlFieldsQuerySelfTest.java           | 12 ++++--
 10 files changed, 119 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
index 9c8c090..aeabdb9 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCache.java
@@ -21,6 +21,7 @@ import java.io.Serializable;
 import java.sql.Timestamp;
 import java.util.Collection;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
@@ -41,6 +42,7 @@ import org.apache.ignite.cache.CacheEntryProcessor;
 import org.apache.ignite.cache.CacheMetrics;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.CachePeekMode;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.Query;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.cache.query.QueryDetailMetrics;
@@ -346,6 +348,7 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS
 
     /**
      * Queries cache. Accepts any subclass of {@link Query} interface.
+     * See also {@link #query(SqlFieldsQuery)}.
      *
      * @param qry Query.
      * @return Cursor.
@@ -354,10 +357,20 @@ public interface IgniteCache<K, V> extends javax.cache.Cache<K, V>, IgniteAsyncS
      * @see SqlFieldsQuery
      * @see TextQuery
      * @see SpiQuery
+     *
      */
     public <R> QueryCursor<R> query(Query<R> qry);
 
     /**
+     * Queries cache. Accepts {@link SqlFieldsQuery} class.
+     *
+     * @param qry SqlFieldsQuery.
+     * @return Cursor.
+     * @see SqlFieldsQuery
+     */
+    public FieldsQueryCursor<List<?>> query(SqlFieldsQuery qry);
+
+    /**
      * Queries the cache transforming the entries on the server nodes. Can be used, for example,
      * to avoid network overhead in case only one field out of the large is required by client.
      * <p>

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/main/java/org/apache/ignite/cache/query/FieldsQueryCursor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/query/FieldsQueryCursor.java b/modules/core/src/main/java/org/apache/ignite/cache/query/FieldsQueryCursor.java
new file mode 100644
index 0000000..4219bae
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/cache/query/FieldsQueryCursor.java
@@ -0,0 +1,39 @@
+/*
+ * 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.query;
+
+/**
+ * SQL query result cursor. This extends {@link QueryCursor}
+ * to expose fields metadata to public API for SqlFieldsQueries.
+ */
+public interface FieldsQueryCursor<T> extends QueryCursor<T> {
+    /**
+     * Gets field name.
+     *
+     * @param idx field index.
+     * @return Field name.
+     */
+    String getFieldName(int idx);
+
+    /**
+     * Gets number of columns in a row.
+     *
+     * @return row size.
+     */
+    int getColumnsCount();
+}

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
index dfe817e..9bd9079 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
@@ -49,6 +49,7 @@ import org.apache.ignite.cache.CacheManager;
 import org.apache.ignite.cache.CacheMetrics;
 import org.apache.ignite.cache.CachePeekMode;
 import org.apache.ignite.cache.query.ContinuousQuery;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.Query;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.cache.query.QueryDetailMetrics;
@@ -561,7 +562,7 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
                             if (needToConvert) {
                                 Map.Entry<K, V> entry = (Map.Entry<K, V>)next;
 
-                                return (R) new CacheEntryImpl<>(entry.getKey(), entry.getValue());
+                                return (R)new CacheEntryImpl<>(entry.getKey(), entry.getValue());
                             }
 
                             return (R)next;
@@ -753,6 +754,12 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
 
     /** {@inheritDoc} */
     @SuppressWarnings("unchecked")
+    @Override public FieldsQueryCursor<List<?>> query(SqlFieldsQuery qry) {
+        return (FieldsQueryCursor<List<?>>)query((Query)qry);
+    }
+
+    /** {@inheritDoc} */
+    @SuppressWarnings("unchecked")
     @Override public <R> QueryCursor<R> query(Query<R> qry) {
         A.notNull(qry, "qry");
 
@@ -801,9 +808,9 @@ public class IgniteCacheProxy<K, V> extends AsyncSupportAdapter<IgniteCache<K, V
                         "Using both partitions and distributed JOINs is not supported for the same query");
 
                 if ((p.isReplicatedOnly() && isReplicatedDataNode()) || ctx.isLocal() || qry.isLocal())
-                    return (QueryCursor<R>)ctx.kernalContext().query().queryLocalFields(ctx, p);
+                    return (FieldsQueryCursor<R>)ctx.kernalContext().query().queryLocalFields(ctx, p);
 
-                return (QueryCursor<R>)ctx.kernalContext().query().queryTwoStep(ctx, p);
+                return (FieldsQueryCursor<R>)ctx.kernalContext().query().queryTwoStep(ctx, p);
             }
 
             if (qry instanceof ScanQuery)

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/QueryCursorImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/QueryCursorImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/QueryCursorImpl.java
index 24789fc..4fc1054 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/QueryCursorImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/QueryCursorImpl.java
@@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
 import javax.cache.CacheException;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.QueryCancelledException;
 import org.apache.ignite.internal.processors.cache.query.QueryCursorEx;
 import org.apache.ignite.internal.processors.query.GridQueryCancel;
@@ -38,7 +39,7 @@ import static org.apache.ignite.internal.processors.cache.QueryCursorImpl.State.
 /**
  * Query cursor implementation.
  */
-public class QueryCursorImpl<T> implements QueryCursorEx<T> {
+public class QueryCursorImpl<T> implements QueryCursorEx<T>, FieldsQueryCursor<T> {
     /** */
     private final static AtomicReferenceFieldUpdater<QueryCursorImpl, State> STATE_UPDATER =
         AtomicReferenceFieldUpdater.newUpdater(QueryCursorImpl.class, State.class, "state");
@@ -188,6 +189,22 @@ public class QueryCursorImpl<T> implements QueryCursorEx<T> {
         return fieldsMeta;
     }
 
+    /** {@inheritDoc} */
+    @Override public String getFieldName(int idx) {
+        assert this.fieldsMeta != null;
+
+        GridQueryFieldMetadata metadata = fieldsMeta.get(idx);
+
+        return metadata.fieldName();
+    }
+
+    /** {@inheritDoc} */
+    @Override public int getColumnsCount() {
+        assert this.fieldsMeta != null;
+
+        return fieldsMeta.size();
+    }
+
     /** Query cursor state */
     protected enum State {
         /** Idle. */IDLE,

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
index 0afba59..9eff199 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
@@ -24,6 +24,7 @@ import java.util.List;
 import javax.cache.Cache;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteDataStreamer;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cache.query.SqlQuery;
@@ -71,7 +72,7 @@ public interface GridQueryIndexing {
      * @return Cursor.
      * @throws IgniteCheckedException If failed.
      */
-    public QueryCursor<List<?>> queryTwoStep(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry, GridQueryCancel cancel)
+    public FieldsQueryCursor<List<?>> queryTwoStep(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry, GridQueryCancel cancel)
         throws IgniteCheckedException;
 
     /**
@@ -94,7 +95,7 @@ public interface GridQueryIndexing {
      * @param cancel Query cancel.
      * @return Cursor.
      */
-    public <K, V> QueryCursor<List<?>> queryLocalSqlFields(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry,
+    public FieldsQueryCursor<List<?>> queryLocalSqlFields(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry,
         IndexingQueryFilter filter, GridQueryCancel cancel) throws IgniteCheckedException;
 
     /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 448639b..0399fc4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@ -24,6 +24,7 @@ import org.apache.ignite.binary.Binarylizable;
 import org.apache.ignite.cache.CacheMode;
 import org.apache.ignite.cache.QueryEntity;
 import org.apache.ignite.cache.QueryIndex;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cache.query.SqlQuery;
@@ -1647,18 +1648,19 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * @param qry Query.
      * @return Cursor.
      */
-    public QueryCursor<List<?>> queryTwoStep(final GridCacheContext<?,?> cctx, final SqlFieldsQuery qry) {
+    public FieldsQueryCursor<List<?>> queryTwoStep(final GridCacheContext<?,?> cctx, final SqlFieldsQuery qry) {
         checkxEnabled();
 
         if (!busyLock.enterBusy())
             throw new IllegalStateException("Failed to execute query (grid is stopping).");
 
         try {
-            return executeQuery(GridCacheQueryType.SQL_FIELDS, qry.getSql(), cctx, new IgniteOutClosureX<QueryCursor<List<?>>>() {
-                @Override public QueryCursor<List<?>> applyx() throws IgniteCheckedException {
-                    return idx.queryTwoStep(cctx, qry, null);
-                }
-            }, true);
+            return executeQuery(GridCacheQueryType.SQL_FIELDS, qry.getSql(), cctx,
+                new IgniteOutClosureX<FieldsQueryCursor<List<?>>>() {
+                    @Override public FieldsQueryCursor<List<?>> applyx() throws IgniteCheckedException {
+                        return idx.queryTwoStep(cctx, qry, null);
+                    }
+                }, true);
         }
         catch (IgniteCheckedException e) {
             throw new IgniteException(e);
@@ -1928,16 +1930,16 @@ public class GridQueryProcessor extends GridProcessorAdapter {
      * @return Iterator.
      */
     @SuppressWarnings("unchecked")
-    public QueryCursor<List<?>> queryLocalFields(final GridCacheContext<?, ?> cctx, final SqlFieldsQuery qry) {
+    public FieldsQueryCursor<List<?>> queryLocalFields(final GridCacheContext<?, ?> cctx, final SqlFieldsQuery qry) {
         if (!busyLock.enterBusy())
             throw new IllegalStateException("Failed to execute query (grid is stopping).");
 
         try {
-            return executeQuery(GridCacheQueryType.SQL_FIELDS, qry.getSql(), cctx, new IgniteOutClosureX<QueryCursor<List<?>>>() {
-                @Override public QueryCursor<List<?>> applyx() throws IgniteCheckedException {
+            return executeQuery(GridCacheQueryType.SQL_FIELDS, qry.getSql(), cctx, new IgniteOutClosureX<FieldsQueryCursor<List<?>>>() {
+                @Override public FieldsQueryCursor<List<?>> applyx() throws IgniteCheckedException {
                     GridQueryCancel cancel = new GridQueryCancel();
 
-                    final QueryCursor<List<?>> cursor = idx.queryLocalSqlFields(cctx, qry,
+                    final FieldsQueryCursor<List<?>> cursor = idx.queryLocalSqlFields(cctx, qry,
                         idx.backupFilter(requestTopVer.get(), qry.getPartitions()), cancel);
 
                     return new QueryCursorImpl<List<?>>(new Iterable<List<?>>() {

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java
index d203794..630e441 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteCacheProcessProxy.java
@@ -20,6 +20,7 @@ package org.apache.ignite.testframework.junits.multijvm;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.locks.Lock;
@@ -38,10 +39,12 @@ import org.apache.ignite.cache.CacheEntry;
 import org.apache.ignite.cache.CacheEntryProcessor;
 import org.apache.ignite.cache.CacheMetrics;
 import org.apache.ignite.cache.CachePeekMode;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.Query;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.cache.query.QueryDetailMetrics;
 import org.apache.ignite.cache.query.QueryMetrics;
+import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cluster.ClusterGroup;
 import org.apache.ignite.internal.processors.cache.CacheEntryImpl;
 import org.apache.ignite.internal.util.future.IgniteFinishedFutureImpl;
@@ -191,6 +194,11 @@ public class IgniteCacheProcessProxy<K, V> implements IgniteCache<K, V> {
     }
 
     /** {@inheritDoc} */
+    @Override public FieldsQueryCursor<List<?>> query(SqlFieldsQuery qry) {
+        throw new UnsupportedOperationException("Method should be supported.");
+    }
+
+    /** {@inheritDoc} */
     @Override public <T, R> QueryCursor<R> query(Query<T> qry, IgniteClosure<T, R> transformer) {
         throw new UnsupportedOperationException("Method should be supported.");
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/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 f7466a8..29a91e5 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
@@ -60,6 +60,7 @@ import org.apache.ignite.IgniteDataStreamer;
 import org.apache.ignite.IgniteException;
 import org.apache.ignite.IgniteLogger;
 import org.apache.ignite.cache.QueryIndexType;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.QueryCancelledException;
 import org.apache.ignite.cache.query.QueryCursor;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
@@ -1335,7 +1336,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
     }
 
     /** {@inheritDoc} */
-    @Override public <K, V> QueryCursor<List<?>> queryLocalSqlFields(final GridCacheContext<?, ?> cctx,
+    @Override public FieldsQueryCursor<List<?>> queryLocalSqlFields(final GridCacheContext<?, ?> cctx,
         final SqlFieldsQuery qry, final IndexingQueryFilter filter, final GridQueryCancel cancel)
         throws IgniteCheckedException {
 
@@ -1527,7 +1528,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
         if (qry.getTimeout() > 0)
             fqry.setTimeout(qry.getTimeout(), TimeUnit.MILLISECONDS);
 
-        final QueryCursor<List<?>> res = queryTwoStep(cctx, fqry, null);
+        final FieldsQueryCursor<List<?>> res = queryTwoStep(cctx, fqry, null);
 
         final Iterable<Cache.Entry<K, V>> converted = new Iterable<Cache.Entry<K, V>>() {
             @Override public Iterator<Cache.Entry<K, V>> iterator() {
@@ -1568,7 +1569,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
     }
 
     /** {@inheritDoc} */
-    @Override public QueryCursor<List<?>> queryTwoStep(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry,
+    @Override public FieldsQueryCursor<List<?>> queryTwoStep(GridCacheContext<?, ?> cctx, SqlFieldsQuery qry,
         GridQueryCancel cancel) {
         final String space = cctx.name();
         final String sqlQry = qry.getSql();
@@ -1737,7 +1738,7 @@ public class IgniteH2Indexing implements GridQueryIndexing {
             cancel = new GridQueryCancel();
 
         QueryCursorImpl<List<?>> cursor = new QueryCursorImpl<>(
-            runQueryTwoStep(cctx, twoStepQry, cctx.keepBinary(), enforceJoinOrder, qry.getTimeout(), cancel, 
+            runQueryTwoStep(cctx, twoStepQry, cctx.keepBinary(), enforceJoinOrder, qry.getTimeout(), cancel,
                     qry.getArgs(), qry.getPartitions()),
             cancel);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/ddl/DdlStatementsProcessor.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/ddl/DdlStatementsProcessor.java b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/ddl/DdlStatementsProcessor.java
index 949ea6a..8d8f527 100644
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/ddl/DdlStatementsProcessor.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/ddl/DdlStatementsProcessor.java
@@ -24,7 +24,7 @@ import java.util.List;
 import java.util.Map;
 import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.cache.QueryIndex;
-import org.apache.ignite.cache.query.QueryCursor;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.internal.GridKernalContext;
 import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
@@ -75,7 +75,7 @@ public class DdlStatementsProcessor {
      * @param stmt H2 statement to parse and execute.
      */
     @SuppressWarnings("unchecked")
-    public QueryCursor<List<?>> runDdlStatement(String sql, PreparedStatement stmt)
+    public FieldsQueryCursor<List<?>> runDdlStatement(String sql, PreparedStatement stmt)
         throws IgniteCheckedException {
         assert stmt instanceof JdbcPreparedStatement;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/4155d422/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/SqlFieldsQuerySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/SqlFieldsQuerySelfTest.java b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/SqlFieldsQuerySelfTest.java
index a23f254..8860b2b 100644
--- a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/SqlFieldsQuerySelfTest.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/SqlFieldsQuerySelfTest.java
@@ -21,7 +21,7 @@ import java.io.Serializable;
 import java.util.List;
 import org.apache.ignite.IgniteCache;
 import org.apache.ignite.cache.CacheMode;
-import org.apache.ignite.cache.query.QueryCursor;
+import org.apache.ignite.cache.query.FieldsQueryCursor;
 import org.apache.ignite.cache.query.SqlFieldsQuery;
 import org.apache.ignite.cache.query.annotations.QuerySqlField;
 import org.apache.ignite.configuration.CacheConfiguration;
@@ -66,11 +66,17 @@ public class SqlFieldsQuerySelfTest extends GridCommonAbstractTest {
     private void executeQuery() {
         IgniteCache<?, ?> cache = grid(1).cache("person");
 
-        SqlFieldsQuery qry = new SqlFieldsQuery("select name, age from person where age > 10");
+        SqlFieldsQuery qry = new SqlFieldsQuery("select name as \"Full Name\", age from person where age > 10");
 
-        QueryCursor<List<?>> qryCursor = cache.query(qry);
+        FieldsQueryCursor<List<?>> qryCursor = cache.query(qry);
 
         assertEquals(2, qryCursor.getAll().size());
+
+        assertEquals(2, qryCursor.getColumnsCount()); // Row contains "name" and "age" fields.
+
+        assertEquals("Full Name", qryCursor.getFieldName(0));
+
+        assertEquals("AGE", qryCursor.getFieldName(1));
     }
 
 


[02/10] ignite git commit: Hibernate module deploy fix

Posted by av...@apache.org.
Hibernate module deploy fix


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ff08c8e0
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ff08c8e0
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ff08c8e0

Branch: refs/heads/ignite-5232
Commit: ff08c8e09033a1a703aae602c36a21565fbae606
Parents: d6e7050
Author: Anton Vinogradov <av...@apache.org>
Authored: Wed May 3 12:49:18 2017 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Wed May 3 12:49:18 2017 +0300

----------------------------------------------------------------------
 modules/hibernate-core/pom.xml | 8 --------
 1 file changed, 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ff08c8e0/modules/hibernate-core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate-core/pom.xml b/modules/hibernate-core/pom.xml
index 9131ad3..91ec68b 100644
--- a/modules/hibernate-core/pom.xml
+++ b/modules/hibernate-core/pom.xml
@@ -71,14 +71,6 @@
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>2.8.2</version>
-                <configuration>
-                    <skip>true</skip>
-                </configuration>
-            </plugin>
         </plugins>
     </build>
 </project>


[05/10] ignite git commit: Removed ML from GG PE build for now.

Posted by av...@apache.org.
Removed ML from GG PE build for now.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b051163b
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b051163b
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b051163b

Branch: refs/heads/ignite-5232
Commit: b051163be08b50fc1ead70e8640703376f4c1642
Parents: a5ae183
Author: devozerov <vo...@gridgain.com>
Authored: Fri May 5 18:06:00 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Fri May 5 18:06:00 2017 +0300

----------------------------------------------------------------------
 assembly/release-fabric-base.xml |  1 +
 examples/pom-standalone-lgpl.xml | 19 -------------------
 examples/pom-standalone.xml      | 19 -------------------
 examples/pom.xml                 | 30 ------------------------------
 4 files changed, 1 insertion(+), 68 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b051163b/assembly/release-fabric-base.xml
----------------------------------------------------------------------
diff --git a/assembly/release-fabric-base.xml b/assembly/release-fabric-base.xml
index 5007785..7484dfa 100644
--- a/assembly/release-fabric-base.xml
+++ b/assembly/release-fabric-base.xml
@@ -239,6 +239,7 @@
             <excludes>
                 <exclude>**/package.html</exclude>
                 <exclude>src/test/**</exclude>
+                <exclude>src/main/ml/**</exclude>
             </excludes>
         </fileSet>
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/b051163b/examples/pom-standalone-lgpl.xml
----------------------------------------------------------------------
diff --git a/examples/pom-standalone-lgpl.xml b/examples/pom-standalone-lgpl.xml
index 4798d03..e7eca1e 100644
--- a/examples/pom-standalone-lgpl.xml
+++ b/examples/pom-standalone-lgpl.xml
@@ -33,7 +33,6 @@
         <lgpl.folder>src/main/java</lgpl.folder>
         <java8.folder>src/main/java</java8.folder>
         <spark.folder>src/main/java</spark.folder>
-        <ml.folder>src/main/java</ml.folder>
         <java.ver>1.7</java.ver>
     </properties>
 
@@ -106,23 +105,6 @@
         </profile>
 
         <profile>
-            <id>ml</id>
-
-            <properties>
-                <ml.folder>src/main/ml</ml.folder>
-                <java.ver>1.8</java.ver>
-            </properties>
-
-            <dependencies>
-                <dependency>
-                    <groupId>org.apache.ignite</groupId>
-                    <artifactId>ignite-ml</artifactId>
-                    <version>to_be_replaced_by_ignite_version</version>
-                </dependency>
-            </dependencies>
-        </profile>
-
-        <profile>
             <id>scala</id>
 
             <properties>
@@ -248,7 +230,6 @@
                                 <source>${lgpl.folder}</source>
                                 <source>${java8.folder}</source>
                                 <source>${spark.folder}</source>
-                                <source>${ml.folder}</source>
                             </sources>
                         </configuration>
                     </execution>

http://git-wip-us.apache.org/repos/asf/ignite/blob/b051163b/examples/pom-standalone.xml
----------------------------------------------------------------------
diff --git a/examples/pom-standalone.xml b/examples/pom-standalone.xml
index e74082c..65b5402 100644
--- a/examples/pom-standalone.xml
+++ b/examples/pom-standalone.xml
@@ -33,7 +33,6 @@
         <lgpl.folder>src/main/java</lgpl.folder>
         <java8.folder>src/main/java</java8.folder>
         <spark.folder>src/main/java</spark.folder>
-        <ml.folder>src/main/java</ml.folder>
         <java.ver>1.7</java.ver>
     </properties>
 
@@ -106,23 +105,6 @@
         </profile>
 
         <profile>
-            <id>ml</id>
-
-            <properties>
-                <ml.folder>src/main/ml</ml.folder>
-                <java.ver>1.8</java.ver>
-            </properties>
-
-            <dependencies>
-                <dependency>
-                    <groupId>org.apache.ignite</groupId>
-                    <artifactId>ignite-ml</artifactId>
-                    <version>to_be_replaced_by_ignite_version</version>
-                </dependency>
-            </dependencies>
-        </profile>
-
-        <profile>
             <id>scala</id>
 
             <properties>
@@ -249,7 +231,6 @@
                                 <source>${lgpl.folder}</source>
                                 <source>${java8.folder}</source>
                                 <source>${spark.folder}</source>
-                                <source>${ml.folder}</source>
                             </sources>
                         </configuration>
                     </execution>

http://git-wip-us.apache.org/repos/asf/ignite/blob/b051163b/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 26f653d..6e95fed 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -101,7 +101,6 @@
         <lgpl.folder>src/main/java</lgpl.folder>
         <java8.folder>src/main/java</java8.folder>
         <spark.folder>src/main/java</spark.folder>
-        <ml.folder>src/main/java</ml.folder>
         <spark.test.folder>src/test/java</spark.test.folder>
         <lgpl.test.folder>src/test/java</lgpl.test.folder>
         <java8.test.folder>src/test/java</java8.test.folder>
@@ -236,34 +235,6 @@
         </profile>
 
         <profile>
-            <id>ml</id>
-
-            <properties>
-                <ml.folder>src/main/ml</ml.folder>
-            </properties>
-
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-compiler-plugin</artifactId>
-                        <configuration>
-                            <source>1.8</source>
-                            <target>1.8</target>
-                        </configuration>
-                    </plugin>
-                </plugins>
-            </build>
-
-            <dependencies>
-                <dependency>
-                    <groupId>org.apache.ignite</groupId>
-                    <artifactId>ignite-ml</artifactId>
-                    <version>${project.version}</version>
-                </dependency>
-            </dependencies>
-        </profile>
-
-        <profile>
             <id>lgpl</id>
 
             <properties>
@@ -322,7 +293,6 @@
                                 <source>${lgpl.folder}</source>
                                 <source>${java8.folder}</source>
                                 <source>${spark.folder}</source>
-                                <source>${ml.folder}</source>
                             </sources>
                         </configuration>
                     </execution>


[04/10] ignite git commit: Fixed JavaDocs in MemoryMetricsImpl.

Posted by av...@apache.org.
Fixed JavaDocs in MemoryMetricsImpl.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a5ae1834
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a5ae1834
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a5ae1834

Branch: refs/heads/ignite-5232
Commit: a5ae1834621e3c09ed911777ba652ce4e53ea7e1
Parents: bc4735f
Author: devozerov <vo...@gridgain.com>
Authored: Fri May 5 12:16:36 2017 +0300
Committer: devozerov <vo...@gridgain.com>
Committed: Fri May 5 12:17:11 2017 +0300

----------------------------------------------------------------------
 .../processors/cache/database/MemoryMetricsImpl.java         | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/a5ae1834/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MemoryMetricsImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MemoryMetricsImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MemoryMetricsImpl.java
index 4a7e951..ee356a1 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MemoryMetricsImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/MemoryMetricsImpl.java
@@ -255,12 +255,16 @@ public class MemoryMetricsImpl implements MemoryMetrics {
             largeEntriesPages.decrement();
     }
 
-    /** {@inheritDoc} */
+    /**
+     * Enable metrics.
+     */
     public void enableMetrics() {
         metricsEnabled = true;
     }
 
-    /** {@inheritDoc} */
+    /**
+     * Disable metrics.
+     */
     public void disableMetrics() {
         metricsEnabled = false;
     }


[03/10] ignite git commit: IGNITE-5132: Fixed PutGet example.

Posted by av...@apache.org.
IGNITE-5132: Fixed PutGet example.

(cherry picked from commit ed72663ff8e6b6f46d77c91471400ec1c9ff0dfa)


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/bc4735f7
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/bc4735f7
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/bc4735f7

Branch: refs/heads/ignite-5232
Commit: bc4735f7f5e3fe97aa5f30ef8bdf88e0749d6e2e
Parents: ff08c8e
Author: Igor Sapego <is...@gridgain.com>
Authored: Wed May 3 18:12:49 2017 +0300
Committer: Igor Sapego <is...@gridgain.com>
Committed: Wed May 3 18:12:49 2017 +0300

----------------------------------------------------------------------
 .../common/os/win/include/ignite/common/concurrent_os.h   |  2 +-
 .../cpp/examples/putget-example/config/example-cache.xml  | 10 +---------
 .../putget-example/project/vs/putget-example.vcxproj      |  3 +++
 .../project/vs/putget-example.vcxproj.filters             |  8 ++++++++
 .../cpp/examples/putget-example/src/putget_example.cpp    |  2 +-
 .../query-example/project/vs/query-example.vcxproj        |  3 +++
 .../project/vs/query-example.vcxproj.filters              |  8 ++++++++
 7 files changed, 25 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/common/os/win/include/ignite/common/concurrent_os.h
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/common/os/win/include/ignite/common/concurrent_os.h b/modules/platforms/cpp/common/os/win/include/ignite/common/concurrent_os.h
index 77de4d8..57e732f 100644
--- a/modules/platforms/cpp/common/os/win/include/ignite/common/concurrent_os.h
+++ b/modules/platforms/cpp/common/os/win/include/ignite/common/concurrent_os.h
@@ -76,7 +76,7 @@ namespace ignite
              * Special latch with count = 1.
              */
             class IGNITE_IMPORT_EXPORT SingleLatch
-            {                
+            {
             public:
                 /**
                  * Constructor.

http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/examples/putget-example/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/putget-example/config/example-cache.xml b/modules/platforms/cpp/examples/putget-example/config/example-cache.xml
index 28b726c..af523cd 100644
--- a/modules/platforms/cpp/examples/putget-example/config/example-cache.xml
+++ b/modules/platforms/cpp/examples/putget-example/config/example-cache.xml
@@ -35,18 +35,10 @@
                     Partitioned cache example configuration with binary objects enabled.
                 -->
                 <bean class="org.apache.ignite.configuration.CacheConfiguration">
+                    <property name="name" value="atomic"/>
                     <property name="atomicityMode" value="ATOMIC"/>
                     <property name="backups" value="1"/>
                 </bean>
-
-                <!--
-                    Partitioned cache example configuration.
-                -->
-                <bean class="org.apache.ignite.configuration.CacheConfiguration">
-                    <property name="name" value="tx"/>
-                    <property name="atomicityMode" value="TRANSACTIONAL"/>
-                    <property name="backups" value="1"/>
-                </bean>
             </list>
         </property>
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj b/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj
index 555e15a..8842f3a 100644
--- a/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj
+++ b/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj
@@ -101,6 +101,9 @@ copy "$(ProjectDir)..\..\..\..\project\vs\$(Platform)\$(Configuration)\ignite.co
     <ClInclude Include="..\..\..\include\ignite\examples\address.h" />
     <ClInclude Include="..\..\..\include\ignite\examples\organization.h" />
   </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\config\example-cache.xml" />
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>

http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj.filters
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj.filters b/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj.filters
index 1bcaff5..3bb8a8f 100644
--- a/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj.filters
+++ b/modules/platforms/cpp/examples/putget-example/project/vs/putget-example.vcxproj.filters
@@ -13,6 +13,9 @@
       <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
       <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
     </Filter>
+    <Filter Include="Config">
+      <UniqueIdentifier>{487c5422-915c-4851-892d-c1599ea69e0c}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\putget_example.cpp">
@@ -27,4 +30,9 @@
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\config\example-cache.xml">
+      <Filter>Config</Filter>
+    </None>
+  </ItemGroup>
 </Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/examples/putget-example/src/putget_example.cpp
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/putget-example/src/putget_example.cpp b/modules/platforms/cpp/examples/putget-example/src/putget_example.cpp
index 8bf9c8c..f7bd894 100644
--- a/modules/platforms/cpp/examples/putget-example/src/putget_example.cpp
+++ b/modules/platforms/cpp/examples/putget-example/src/putget_example.cpp
@@ -100,7 +100,7 @@ int main()
         std::cout << std::endl;
 
         // Get cache instance.
-        Cache<int, Organization> cache = grid.GetCache<int, Organization>(NULL);
+        Cache<int, Organization> cache = grid.GetCache<int, Organization>("atomic");
 
         // Clear cache.
         cache.Clear();

http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj b/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj
index ff8e5be..22aa2b9 100644
--- a/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj
+++ b/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj
@@ -102,6 +102,9 @@ copy "$(ProjectDir)..\..\..\..\project\vs\$(Platform)\$(Configuration)\ignite.co
     <ClInclude Include="..\..\..\include\ignite\examples\organization.h" />
     <ClInclude Include="..\..\..\include\ignite\examples\person.h" />
   </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\config\query-example.xml" />
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>

http://git-wip-us.apache.org/repos/asf/ignite/blob/bc4735f7/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj.filters
----------------------------------------------------------------------
diff --git a/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj.filters b/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj.filters
index 219d3f4..506b255 100644
--- a/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj.filters
+++ b/modules/platforms/cpp/examples/query-example/project/vs/query-example.vcxproj.filters
@@ -18,10 +18,18 @@
     <Filter Include="Header Files">
       <UniqueIdentifier>{b355095f-b4e2-4324-9516-854828c876ff}</UniqueIdentifier>
     </Filter>
+    <Filter Include="Config">
+      <UniqueIdentifier>{89a5a9cc-a2c9-4d11-9044-869c3af6a2fd}</UniqueIdentifier>
+    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\query_example.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
   </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\config\query-example.xml">
+      <Filter>Config</Filter>
+    </None>
+  </ItemGroup>
 </Project>
\ No newline at end of file


[08/10] ignite git commit: Merge branch 'ignite-2.0.2.b1' into ignite-2.0.2

Posted by av...@apache.org.
Merge branch 'ignite-2.0.2.b1' into ignite-2.0.2


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ed37bd47
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ed37bd47
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ed37bd47

Branch: refs/heads/ignite-5232
Commit: ed37bd478aabb1760833de3f5730460700a153f3
Parents: cfe1e51 0c45750
Author: Andrey V. Mashenkov <an...@gmail.com>
Authored: Tue May 23 15:10:55 2017 +0300
Committer: Andrey V. Mashenkov <an...@gmail.com>
Committed: Tue May 23 15:10:55 2017 +0300

----------------------------------------------------------------------
 .../query/h2/twostep/GridMergeIndexSorted.java  |  3 +
 .../query/IgniteSqlSplitterSelfTest.java        | 68 ++++++++++++++++++++
 2 files changed, 71 insertions(+)
----------------------------------------------------------------------



[10/10] ignite git commit: IGNITE-5232 GridDhtPartitionDemander.requestPartitions invokes sendMessages consequently, which lead to significant increase of node start time on large clusters with ssl

Posted by av...@apache.org.
IGNITE-5232 GridDhtPartitionDemander.requestPartitions invokes sendMessages consequently, which lead to significant increase of node start time on large clusters with ssl


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/256d4595
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/256d4595
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/256d4595

Branch: refs/heads/ignite-5232
Commit: 256d459581b755a91f038faf9370b3cbbded3541
Parents: 4155d42
Author: Anton Vinogradov <av...@apache.org>
Authored: Thu May 25 16:27:46 2017 +0300
Committer: Anton Vinogradov <av...@apache.org>
Committed: Thu May 25 16:27:46 2017 +0300

----------------------------------------------------------------------
 .../dht/preloader/GridDhtPartitionDemander.java | 103 ++++++++++---------
 1 file changed, 52 insertions(+), 51 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/256d4595/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
index 75cbd00..d483ea8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemander.java
@@ -339,41 +339,21 @@ public class GridDhtPartitionDemander {
 
             return new Runnable() {
                 @Override public void run() {
-                    try {
-                        if (next != null)
-                            fut.listen(new CI1<IgniteInternalFuture<Boolean>>() {
-                                @Override public void apply(IgniteInternalFuture<Boolean> f) {
-                                    try {
-                                        if (f.get()) // Not cancelled.
-                                            next.run(); // Starts next cache rebalancing (according to the order).
-                                    }
-                                    catch (IgniteCheckedException e) {
-                                        if (log.isDebugEnabled())
-                                            log.debug(e.getMessage());
-                                    }
+                    if (next != null)
+                        fut.listen(new CI1<IgniteInternalFuture<Boolean>>() {
+                            @Override public void apply(IgniteInternalFuture<Boolean> f) {
+                                try {
+                                    if (f.get()) // Not cancelled.
+                                        next.run(); // Starts next cache rebalancing (according to the order).
                                 }
-                            });
-
-                        requestPartitions(fut, assigns);
-                    }
-                    catch (IgniteCheckedException e) {
-                        ClusterTopologyCheckedException cause = e.getCause(ClusterTopologyCheckedException.class);
-
-                        if (cause != null)
-                            log.warning("Failed to send initial demand request to node. " + e.getMessage());
-                        else
-                            log.error("Failed to send initial demand request to node.", e);
-
-                        fut.cancel();
-                    }
-                    catch (Throwable th) {
-                        log.error("Runtime error caught during initial demand request sending.", th);
-
-                        fut.cancel();
+                                catch (IgniteCheckedException e) {
+                                    if (log.isDebugEnabled())
+                                        log.debug(e.getMessage());
+                                }
+                            }
+                        });
 
-                        if (th instanceof Error)
-                            throw th;
-                    }
+                    requestPartitions(fut, assigns);
                 }
             };
         }
@@ -410,10 +390,7 @@ public class GridDhtPartitionDemander {
      * @param assigns Assignments.
      * @throws IgniteCheckedException If failed.
      */
-    private void requestPartitions(
-        RebalanceFuture fut,
-        GridDhtPreloaderAssignments assigns
-    ) throws IgniteCheckedException {
+    private void requestPartitions(final RebalanceFuture fut, GridDhtPreloaderAssignments assigns) {
         assert fut != null;
 
         if (topologyChanged(fut)) {
@@ -422,7 +399,7 @@ public class GridDhtPartitionDemander {
             return;
         }
 
-        synchronized (fut) {
+        synchronized (fut) { // Synchronized to prevent consistency issues in case of parallel cancellation.
             if (fut.isDone())
                 return;
 
@@ -454,7 +431,7 @@ public class GridDhtPartitionDemander {
 
             int lsnrCnt = cctx.gridConfig().getRebalanceThreadPoolSize();
 
-            List<Set<Integer>> sParts = new ArrayList<>(lsnrCnt);
+            final List<Set<Integer>> sParts = new ArrayList<>(lsnrCnt);
 
             for (int cnt = 0; cnt < lsnrCnt; cnt++)
                 sParts.add(new HashSet<Integer>());
@@ -469,26 +446,50 @@ public class GridDhtPartitionDemander {
             for (cnt = 0; cnt < lsnrCnt; cnt++) {
                 if (!sParts.get(cnt).isEmpty()) {
                     // Create copy.
-                    GridDhtPartitionDemandMessage initD = createDemandMessage(d, sParts.get(cnt));
+                    final GridDhtPartitionDemandMessage initD = createDemandMessage(d, sParts.get(cnt));
 
                     initD.topic(rebalanceTopics.get(cnt));
                     initD.updateSequence(fut.updateSeq);
                     initD.timeout(cctx.config().getRebalanceTimeout());
 
-                    synchronized (fut) {
-                        if (fut.isDone())
-                            return;// Future can be already cancelled at this moment and all failovers happened.
+                    final int finalCnt = cnt;
 
-                        // New requests will not be covered by failovers.
-                        cctx.io().sendOrderedMessage(node,
-                            rebalanceTopics.get(cnt), initD, cctx.ioPolicy(), initD.timeout());
-                    }
+                    cctx.kernalContext().closure().runLocalSafe(new Runnable() {
+                        @Override public void run() {
+                            try {
+                                if (!fut.isDone()) {
+                                    cctx.io().sendOrderedMessage(node,
+                                        rebalanceTopics.get(finalCnt), initD, cctx.ioPolicy(), initD.timeout());
+
+                                    // Cleanup required in case partitions demanded in parallel with cancellation.
+                                    synchronized (fut) {
+                                        if (fut.isDone())
+                                            fut.cleanupRemoteContexts(node.id());
+                                    }
+
+                                    if (log.isDebugEnabled())
+                                        log.debug("Requested rebalancing [from node=" + node.id() + ", listener index=" +
+                                            finalCnt + ", partitions count=" + sParts.get(finalCnt).size() +
+                                            " (" + partitionsList(sParts.get(finalCnt)) + ")]");
+                                }
+                            }
+                            catch (IgniteCheckedException e) {
+                                ClusterTopologyCheckedException cause = e.getCause(ClusterTopologyCheckedException.class);
 
+                                if (cause != null)
+                                    log.warning("Failed to send initial demand request to node. " + e.getMessage());
+                                else
+                                    log.error("Failed to send initial demand request to node.", e);
 
-                    if (log.isDebugEnabled())
-                        log.debug("Requested rebalancing [from node=" + node.id() + ", listener index=" +
-                            cnt + ", partitions count=" + sParts.get(cnt).size() +
-                            " (" + partitionsList(sParts.get(cnt)) + ")]");
+                                fut.cancel();
+                            }
+                            catch (Throwable th) {
+                                log.error("Runtime error caught during initial demand request sending.", th);
+
+                                fut.cancel();
+                            }
+                        }
+                    }, /*system pool*/true);
                 }
             }
         }