You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2015/08/17 13:05:22 UTC

[01/15] incubator-ignite git commit: 1.3.3-p1-SNAPSHOT

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-gg-10606 776084772 -> ddbbffb07


1.3.3-p1-SNAPSHOT


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

Branch: refs/heads/ignite-gg-10606
Commit: 834b34765fac4cb87d9d8f4bdb39c14a9e61275d
Parents: 7d747d2
Author: Ignite Teamcity <ig...@apache.org>
Authored: Tue Aug 11 10:53:58 2015 +0300
Committer: Ignite Teamcity <ig...@apache.org>
Committed: Tue Aug 11 10:53:58 2015 +0300

----------------------------------------------------------------------
 examples/pom.xml                                   | 2 +-
 modules/aop/pom.xml                                | 2 +-
 modules/apache-license-gen/pom.xml                 | 2 +-
 modules/aws/pom.xml                                | 2 +-
 modules/clients/pom.xml                            | 2 +-
 modules/cloud/pom.xml                              | 2 +-
 modules/codegen/pom.xml                            | 2 +-
 modules/core/pom.xml                               | 2 +-
 modules/core/src/main/resources/ignite.properties  | 2 +-
 modules/extdata/p2p/pom.xml                        | 2 +-
 modules/extdata/uri/modules/uri-dependency/pom.xml | 2 +-
 modules/extdata/uri/pom.xml                        | 2 +-
 modules/gce/pom.xml                                | 2 +-
 modules/geospatial/pom.xml                         | 2 +-
 modules/hadoop/pom.xml                             | 2 +-
 modules/hibernate/pom.xml                          | 2 +-
 modules/indexing/pom.xml                           | 2 +-
 modules/jcl/pom.xml                                | 2 +-
 modules/jta/pom.xml                                | 2 +-
 modules/kafka/pom.xml                              | 2 +-
 modules/log4j/pom.xml                              | 2 +-
 modules/mesos/pom.xml                              | 2 +-
 modules/rest-http/pom.xml                          | 2 +-
 modules/scalar-2.10/pom.xml                        | 2 +-
 modules/scalar/pom.xml                             | 2 +-
 modules/schedule/pom.xml                           | 2 +-
 modules/schema-import/pom.xml                      | 2 +-
 modules/slf4j/pom.xml                              | 2 +-
 modules/spark-2.10/pom.xml                         | 2 +-
 modules/spark/pom.xml                              | 2 +-
 modules/spring/pom.xml                             | 2 +-
 modules/ssh/pom.xml                                | 2 +-
 modules/tools/pom.xml                              | 2 +-
 modules/urideploy/pom.xml                          | 2 +-
 modules/visor-console-2.10/pom.xml                 | 2 +-
 modules/visor-console/pom.xml                      | 2 +-
 modules/visor-plugins/pom.xml                      | 2 +-
 modules/web/pom.xml                                | 2 +-
 modules/yardstick/pom.xml                          | 2 +-
 modules/yarn/pom.xml                               | 2 +-
 pom.xml                                            | 2 +-
 41 files changed, 41 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 1338a18..014cb0a 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>ignite-examples</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/aop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aop/pom.xml b/modules/aop/pom.xml
index 194ffab..1983567 100644
--- a/modules/aop/pom.xml
+++ b/modules/aop/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-aop</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/apache-license-gen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/apache-license-gen/pom.xml b/modules/apache-license-gen/pom.xml
index 11259a5..c723729 100644
--- a/modules/apache-license-gen/pom.xml
+++ b/modules/apache-license-gen/pom.xml
@@ -31,5 +31,5 @@
 
     <groupId>org.apache.ignite</groupId>
     <artifactId>ignite-apache-license-gen</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/aws/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aws/pom.xml b/modules/aws/pom.xml
index 37f6250..1f92999 100644
--- a/modules/aws/pom.xml
+++ b/modules/aws/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-aws</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/clients/pom.xml
----------------------------------------------------------------------
diff --git a/modules/clients/pom.xml b/modules/clients/pom.xml
index 1b33d4b..cf6a347 100644
--- a/modules/clients/pom.xml
+++ b/modules/clients/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-clients</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/cloud/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/pom.xml b/modules/cloud/pom.xml
index 45d08e7..b2cb2a7 100644
--- a/modules/cloud/pom.xml
+++ b/modules/cloud/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>ignite-cloud</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <properties>
         <jcloud.version>1.9.0</jcloud.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/codegen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index 2e8e4ed..49d4c83 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-codegen</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index 222e14b..e9f5531 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-core</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/core/src/main/resources/ignite.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/ignite.properties b/modules/core/src/main/resources/ignite.properties
index 44e954e..6a6b866 100644
--- a/modules/core/src/main/resources/ignite.properties
+++ b/modules/core/src/main/resources/ignite.properties
@@ -15,7 +15,7 @@
 # limitations under the License.
 #
 
-ignite.version=1.3.3-SNAPSHOT
+ignite.version=1.3.3-p1-SNAPSHOT
 ignite.build=0
 ignite.revision=DEV
 ignite.rel.date=01011970

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/extdata/p2p/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/pom.xml b/modules/extdata/p2p/pom.xml
index ad9fc03..ebcee89 100644
--- a/modules/extdata/p2p/pom.xml
+++ b/modules/extdata/p2p/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-extdata-p2p</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/extdata/uri/modules/uri-dependency/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/modules/uri-dependency/pom.xml b/modules/extdata/uri/modules/uri-dependency/pom.xml
index a0ed86e..4c26e87 100644
--- a/modules/extdata/uri/modules/uri-dependency/pom.xml
+++ b/modules/extdata/uri/modules/uri-dependency/pom.xml
@@ -27,7 +27,7 @@
     <artifactId>ignite-extdata-uri-dep</artifactId>
     <packaging>jar</packaging>
 
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
     <modelVersion>4.0.0</modelVersion>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/extdata/uri/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/pom.xml b/modules/extdata/uri/pom.xml
index 46ec215..db1faa1 100644
--- a/modules/extdata/uri/pom.xml
+++ b/modules/extdata/uri/pom.xml
@@ -32,7 +32,7 @@
     </parent>
 
     <artifactId>ignite-extdata-uri</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/gce/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gce/pom.xml b/modules/gce/pom.xml
index 3c13c4c..1442cd5 100644
--- a/modules/gce/pom.xml
+++ b/modules/gce/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-gce</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/geospatial/pom.xml
----------------------------------------------------------------------
diff --git a/modules/geospatial/pom.xml b/modules/geospatial/pom.xml
index 33fda30..40650a7 100644
--- a/modules/geospatial/pom.xml
+++ b/modules/geospatial/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-geospatial</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index eee70d6..c371f3f 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-hadoop</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/hibernate/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate/pom.xml b/modules/hibernate/pom.xml
index a583d52..bc4b2ed 100644
--- a/modules/hibernate/pom.xml
+++ b/modules/hibernate/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-hibernate</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml
index bf2b369..70a2818 100644
--- a/modules/indexing/pom.xml
+++ b/modules/indexing/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-indexing</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/jcl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index 9583e52..fbf21b4 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jcl</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index 2007d1b..868fb22 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jta</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/modules/kafka/pom.xml b/modules/kafka/pom.xml
index 6a15c48..1536e0b 100644
--- a/modules/kafka/pom.xml
+++ b/modules/kafka/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-kafka</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/log4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index 6157eba..c39f892 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-log4j</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/mesos/pom.xml
----------------------------------------------------------------------
diff --git a/modules/mesos/pom.xml b/modules/mesos/pom.xml
index c207f79..6a9a22b 100644
--- a/modules/mesos/pom.xml
+++ b/modules/mesos/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-mesos</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <properties>
         <mesos.version>0.22.0</mesos.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/rest-http/pom.xml
----------------------------------------------------------------------
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 7e06bae..445321b 100644
--- a/modules/rest-http/pom.xml
+++ b/modules/rest-http/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-rest-http</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/scalar-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar-2.10/pom.xml b/modules/scalar-2.10/pom.xml
index 449dab2..65ebb92 100644
--- a/modules/scalar-2.10/pom.xml
+++ b/modules/scalar-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-scalar_2.10</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/scalar/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/pom.xml b/modules/scalar/pom.xml
index ef39a79..4d8b19b 100644
--- a/modules/scalar/pom.xml
+++ b/modules/scalar/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-scalar</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/schedule/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index 690f25b..65570db 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-schedule</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml
index 2c56a3f..3e4bc70 100644
--- a/modules/schema-import/pom.xml
+++ b/modules/schema-import/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-schema-import</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/slf4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index 7b51fcb..f0a9f86 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-slf4j</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/spark-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark-2.10/pom.xml b/modules/spark-2.10/pom.xml
index 5b1745a..abe71df 100644
--- a/modules/spark-2.10/pom.xml
+++ b/modules/spark-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spark_2.10</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/spark/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark/pom.xml b/modules/spark/pom.xml
index d793279..3685427 100644
--- a/modules/spark/pom.xml
+++ b/modules/spark/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spark</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/spring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index afee3f4..f46c337 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spring</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ssh/pom.xml b/modules/ssh/pom.xml
index d6e9ab7..8d49fa1 100644
--- a/modules/ssh/pom.xml
+++ b/modules/ssh/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-ssh</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/tools/pom.xml
----------------------------------------------------------------------
diff --git a/modules/tools/pom.xml b/modules/tools/pom.xml
index 83c800d..106192f 100644
--- a/modules/tools/pom.xml
+++ b/modules/tools/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-tools</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/urideploy/pom.xml
----------------------------------------------------------------------
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index f22da10..2414193 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-urideploy</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/visor-console-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console-2.10/pom.xml b/modules/visor-console-2.10/pom.xml
index fc0fa57..3385ae0 100644
--- a/modules/visor-console-2.10/pom.xml
+++ b/modules/visor-console-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-console_2.10</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index a6a9678..22295e0 100644
--- a/modules/visor-console/pom.xml
+++ b/modules/visor-console/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-console</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/visor-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-plugins/pom.xml b/modules/visor-plugins/pom.xml
index fca86fd..97ff310 100644
--- a/modules/visor-plugins/pom.xml
+++ b/modules/visor-plugins/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-plugins</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <!-- Ignite dependencies -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/web/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index 0a8d53f..f47433d 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-web</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/yardstick/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yardstick/pom.xml b/modules/yardstick/pom.xml
index 853f9d4..de917e5 100644
--- a/modules/yardstick/pom.xml
+++ b/modules/yardstick/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-yardstick</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <properties>
         <yardstick.version>0.7.0</yardstick.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/modules/yarn/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yarn/pom.xml b/modules/yarn/pom.xml
index 2d90422..dbe59b0 100644
--- a/modules/yarn/pom.xml
+++ b/modules/yarn/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-yarn</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
 
     <properties>
         <hadoop.version>2.7.0</hadoop.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/834b3476/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 260e45b..dcda132 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
 
     <groupId>org.apache.ignite</groupId>
     <artifactId>apache-ignite</artifactId>
-    <version>1.3.3-SNAPSHOT</version>
+    <version>1.3.3-p1-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>


[12/15] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2'

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2'

Conflicts:
	examples/pom.xml
	modules/aop/pom.xml
	modules/apache-license-gen/pom.xml
	modules/aws/pom.xml
	modules/clients/pom.xml
	modules/cloud/pom.xml
	modules/codegen/pom.xml
	modules/core/pom.xml
	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
	modules/core/src/main/resources/ignite.properties
	modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
	modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
	modules/extdata/p2p/pom.xml
	modules/extdata/uri/modules/uri-dependency/pom.xml
	modules/extdata/uri/pom.xml
	modules/gce/pom.xml
	modules/geospatial/pom.xml
	modules/hadoop/pom.xml
	modules/hibernate/pom.xml
	modules/indexing/pom.xml
	modules/jcl/pom.xml
	modules/jta/pom.xml
	modules/kafka/pom.xml
	modules/log4j/pom.xml
	modules/mesos/pom.xml
	modules/rest-http/pom.xml
	modules/scalar-2.10/pom.xml
	modules/scalar/pom.xml
	modules/schedule/pom.xml
	modules/schema-import/pom.xml
	modules/slf4j/pom.xml
	modules/spark-2.10/pom.xml
	modules/spark/pom.xml
	modules/spring/pom.xml
	modules/ssh/pom.xml
	modules/tools/pom.xml
	modules/urideploy/pom.xml
	modules/visor-console-2.10/pom.xml
	modules/visor-console/pom.xml
	modules/visor-plugins/pom.xml
	modules/web/pom.xml
	modules/yardstick/pom.xml
	modules/yarn/pom.xml
	pom.xml

Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2'

Conflicts:
	benchmarks/cache-comparison/pom.xml
	benchmarks/filesystem/hadoop1/pom.xml
	benchmarks/filesystem/hadoop2/pom.xml
	benchmarks/mongo/pom.xml
	benchmarks/risk-analytics/pom.xml
	benchmarks/serialization/pom.xml
	benchmarks/yardstick/src/main/dotnet/gridgain-benchmarks/Properties/AssemblyInfo.cs
	examples/clients/cpp/configure.ac
	examples/clients/dotnet/GridGainExamples/GridGainExamples/Properties/AssemblyInfo.cs
	examples/clients/dotnet/GridGainExamples/GridGainExamplesDll/Properties/AssemblyInfo.cs
	examples/pom.xml
	modules/clients/common/configure.ac
	modules/clients/common/project/vs/Resource.rc
	modules/clients/cpp/_old/main/configure.ac
	modules/clients/cpp/_old/main/tests/configure.ac
	modules/clients/cpp/_old/vsproject/resource.h
	modules/clients/cpp/core-test/configure.ac
	modules/clients/cpp/core-test/project/vs/Resource.rc
	modules/clients/cpp/core/configure.ac
	modules/clients/cpp/core/project/vs/Resource.rc
	modules/clients/dotnet/gridgain-codegen/Properties/AssemblyInfo.cs
	modules/clients/dotnet/gridgain-exe/Properties/AssemblyInfo.cs
	modules/clients/dotnet/gridgain/Properties/AssemblyInfo.cs
	modules/clients/pom.xml
	modules/clients/src/test/dotnet/gridgain-examples-test/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test-compatibility/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test-dll/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test-runner/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test/Properties/AssemblyInfo.cs
	modules/codegen/pom.xml
	modules/compatibility/gg-versions/7.3.3/src/main/java/org/gridgain/grid/compatibility/GridCompatibilityTestsRunner.java
	modules/compatibility/pom.xml
	modules/core/pom.xml
	modules/core/src/main/resources/gridgain.properties
	modules/diagnostic/pom.xml
	modules/dr-demo/pom.xml
	modules/license-gen/pom.xml
	modules/mongo-sniffer/pom.xml
	modules/mongo-visor/pom.xml
	modules/mongo/pom.xml
	modules/tools/pom.xml
	modules/visor-console/pom.xml
	modules/visor-demo/pom.xml
	modules/visor-tester-plugin/pom.xml
	modules/visor-tester/pom.xml
	modules/visor/pom.xml
	modules/yardstick/dotnet/Properties/AssemblyInfo.cs
	modules/yardstick/pom.xml
	parent/pom.xml
	pilots/chronotrack/pom.xml
	pilots/ctb/pom.xml
	pilots/dsi/pom.xml
	pilots/ionic/pom.xml
	pilots/sb/pom.xml
	pilots/sony/pom.xml
	pilots/wellsfargo/pom.xml
	pilots/worldpay/pom.xml
	pom.xml


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

Branch: refs/heads/ignite-gg-10606
Commit: 648cbd78282dea1e895a80be9d1322952d4d7af3
Parents: 0d70112 5faffb9
Author: Anton Vinogradov <vi...@gmail.com>
Authored: Mon Aug 17 10:58:54 2015 +0300
Committer: Anton Vinogradov <vi...@gmail.com>
Committed: Mon Aug 17 10:58:54 2015 +0300

----------------------------------------------------------------------
 .../CachePartialUpdateCheckedException.java     |  29 +++-
 .../processors/cache/GridCacheAdapter.java      | 160 +++++++++++++++++--
 .../processors/cache/GridCacheMapEntry.java     |   4 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  63 ++++++--
 .../near/GridNearOptimisticTxPrepareFuture.java |   2 +-
 ...cheDhtLocalPartitionAfterRemoveSelfTest.java |  33 ++--
 .../cache/GridCacheAbstractFullApiSelfTest.java |   1 -
 .../IgniteCacheSizeFailoverTest.java            | 115 +++++++++++++
 .../IgniteCachePutRetryAbstractSelfTest.java    | 120 ++++++++++++--
 ...PutRetryAtomicPrimaryWriteOrderSelfTest.java |  32 ++++
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |   1 +
 .../IgniteCacheFailoverTestSuite.java           |   3 +
 .../testsuites/IgniteCacheTestSuite2.java       |   1 +
 13 files changed, 499 insertions(+), 65 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index d125382,992edd8..00c0629
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@@ -2278,8 -2283,7 +2278,9 @@@ public abstract class GridCacheAdapter<
       * @param filter Filter.
       * @return Put future.
       */
 +    public IgniteInternalFuture<Boolean> putAsync(K key, V val,
 +        @Nullable CacheEntryPredicate... filter) {
+     public IgniteInternalFuture<Boolean> putAsync(K key, V val, @Nullable CacheEntryPredicate... filter) {
          final boolean statsEnabled = ctx.config().isStatisticsEnabled();
  
          final long start = statsEnabled ? System.nanoTime() : 0L;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
index 7f2d173,9abc5c8..74f62ba
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
@@@ -69,10 -81,23 +81,25 @@@ public abstract class IgniteCachePutRet
       * @throws Exception If failed.
       */
      public void testPut() throws Exception {
+         checkPut(false);
+     }
+ 
+     /**
+      * @throws Exception If failed.
+      */
+     public void testPutAsync() throws Exception {
+         checkPut(true);
+     }
+ 
+     /**
+      * @param async If {@code true} tests asynchronous put.
+      * @throws Exception If failed.
+      */
+     private void checkPut(boolean async) throws Exception {
          final AtomicBoolean finished = new AtomicBoolean();
  
 +        int keysCnt = keysCount();
 +
          IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
              @Override public Object call() throws Exception {
                  while (!finished.get()) {
@@@ -87,21 -112,53 +114,58 @@@
              }
          });
  
 -        int keysCnt = keysCount();
  
-         try {
-             for (int i = 0; i < keysCnt; i++)
-                 ignite(0).cache(null).put(i, i);
+         IgniteCache<Object, Object> cache = ignite(0).cache(null);
  
-             finished.set(true);
+         if (atomicityMode() == ATOMIC)
+             assertEquals(writeOrderMode(), cache.getConfiguration(CacheConfiguration.class).getAtomicWriteOrderMode());
+ 
+         int iter = 0;
+ 
+         long stopTime = System.currentTimeMillis() + 60_000;
+ 
+         if (async) {
+             IgniteCache<Object, Object> cache0 = cache.withAsync();
+ 
+             while (System.currentTimeMillis() < stopTime) {
+                 Integer val = ++iter;
+ 
+                 for (int i = 0; i < keysCnt; i++) {
+                     cache0.put(i, val);
+ 
+                     cache0.future().get();
+                 }
+ 
+                 for (int i = 0; i < keysCnt; i++) {
+                     cache0.get(i);
+ 
+                     assertEquals(val, cache0.future().get());
+                 }
+             }
+         }
+         else {
+             while (System.currentTimeMillis() < stopTime) {
+                 Integer val = ++iter;
+ 
+                 for (int i = 0; i < keysCnt; i++)
+                     cache.put(i, val);
+ 
+                 for (int i = 0; i < keysCnt; i++)
+                     assertEquals(val, cache.get(i));
+             }
+         }
+ 
+         finished.set(true);
+         fut.get();
  
 +            fut.get();
 +        }
 +        finally {
 +            finished.set(true);
 +        }
 +
          for (int i = 0; i < keysCnt; i++)
-             assertEquals(i, ignite(0).cache(null).get(i));
+             assertEquals(iter, cache.get(i));
      }
  
      /**
@@@ -124,34 -196,39 +203,45 @@@
              }
          });
  
 -        int keysCnt = keysCount();
 +        try {
 +            int keysCnt = keysCount();
  
-             boolean eThrown = false;
+         boolean eThrown = false;
+ 
+         IgniteCache<Object, Object> cache = ignite(0).cache(null).withNoRetries();
+ 
+         if (async)
+             cache = cache.withAsync();
  
-             for (int i = 0; i < keysCnt; i++) {
-                 try {
-                     ignite(0).cache(null).withNoRetries().put(i, i);
+         for (int i = 0; i < keysCnt; i++) {
+             try {
+                 if (async) {
+                     cache.put(i, i);
+ 
+                     cache.future().get();
                  }
-                 catch (Exception e) {
-                     assertTrue("Invalid exception: " + e, X.hasCause(e, ClusterTopologyCheckedException.class) ||
-                         X.hasCause(e, CachePartialUpdateException.class));
+                 else
+                     cache.put(i, i);
+             }
+             catch (Exception e) {
+                 assertTrue("Invalid exception: " + e,
+                     X.hasCause(e, ClusterTopologyCheckedException.class, CachePartialUpdateException.class));
  
-                     eThrown = true;
+                 eThrown = true;
  
 -                break;
 +                    break;
 +                }
              }
 -        }
  
-             assertTrue(eThrown);
+         assertTrue(eThrown);
  
 -        finished.set(true);
 -        fut.get();
 +            finished.set(true);
 +
 +            fut.get();
 +        }
 +        finally {
 +            finished.set(true);
 +        }
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/648cbd78/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------


[06/15] incubator-ignite git commit: Merge remote-tracking branch 'origin/ignite-1.3.3-p2' into ignite-1.3.3-p2

Posted by sb...@apache.org.
Merge remote-tracking branch 'origin/ignite-1.3.3-p2' into ignite-1.3.3-p2


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

Branch: refs/heads/ignite-gg-10606
Commit: 47895da65c84e3c51a0eeb6c526d424ea9fabf41
Parents: a3301b3 9300bbc
Author: sboikov <sb...@gridgain.com>
Authored: Fri Aug 14 11:39:04 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Aug 14 11:39:04 2015 +0300

----------------------------------------------------------------------
 examples/pom.xml                                   | 2 +-
 modules/aop/pom.xml                                | 2 +-
 modules/apache-license-gen/pom.xml                 | 2 +-
 modules/aws/pom.xml                                | 2 +-
 modules/clients/pom.xml                            | 2 +-
 modules/cloud/pom.xml                              | 2 +-
 modules/codegen/pom.xml                            | 2 +-
 modules/core/pom.xml                               | 2 +-
 modules/core/src/main/resources/ignite.properties  | 2 +-
 modules/extdata/p2p/pom.xml                        | 2 +-
 modules/extdata/uri/modules/uri-dependency/pom.xml | 2 +-
 modules/extdata/uri/pom.xml                        | 2 +-
 modules/gce/pom.xml                                | 2 +-
 modules/geospatial/pom.xml                         | 2 +-
 modules/hadoop/pom.xml                             | 2 +-
 modules/hibernate/pom.xml                          | 2 +-
 modules/indexing/pom.xml                           | 2 +-
 modules/jcl/pom.xml                                | 2 +-
 modules/jta/pom.xml                                | 2 +-
 modules/kafka/pom.xml                              | 2 +-
 modules/log4j/pom.xml                              | 2 +-
 modules/mesos/pom.xml                              | 2 +-
 modules/rest-http/pom.xml                          | 2 +-
 modules/scalar-2.10/pom.xml                        | 2 +-
 modules/scalar/pom.xml                             | 2 +-
 modules/schedule/pom.xml                           | 2 +-
 modules/schema-import/pom.xml                      | 2 +-
 modules/slf4j/pom.xml                              | 2 +-
 modules/spark-2.10/pom.xml                         | 2 +-
 modules/spark/pom.xml                              | 2 +-
 modules/spring/pom.xml                             | 2 +-
 modules/ssh/pom.xml                                | 2 +-
 modules/tools/pom.xml                              | 2 +-
 modules/urideploy/pom.xml                          | 2 +-
 modules/visor-console-2.10/pom.xml                 | 2 +-
 modules/visor-console/pom.xml                      | 2 +-
 modules/visor-plugins/pom.xml                      | 2 +-
 modules/web/pom.xml                                | 2 +-
 modules/yardstick/pom.xml                          | 2 +-
 modules/yarn/pom.xml                               | 2 +-
 pom.xml                                            | 2 +-
 41 files changed, 41 insertions(+), 41 deletions(-)
----------------------------------------------------------------------



[15/15] incubator-ignite git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-gg-10606

Posted by sb...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-gg-10606


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

Branch: refs/heads/ignite-gg-10606
Commit: ddbbffb079c714875e4caada19de2e6571436527
Parents: 15541d7 1f00c70
Author: iveselovskiy <iv...@gridgain.com>
Authored: Mon Aug 17 14:04:45 2015 +0300
Committer: iveselovskiy <iv...@gridgain.com>
Committed: Mon Aug 17 14:04:45 2015 +0300

----------------------------------------------------------------------
 .../CachePartialUpdateCheckedException.java     |  29 +-
 .../processors/cache/GridCacheAdapter.java      | 161 +++++-
 .../processors/cache/GridCacheMapEntry.java     |   4 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  63 ++-
 .../near/GridNearOptimisticTxPrepareFuture.java |   2 +-
 .../ignite/internal/util/GridArgumentCheck.java |  17 +
 ...cheDhtLocalPartitionAfterRemoveSelfTest.java |  33 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |   1 -
 .../IgniteCacheSizeFailoverTest.java            | 115 ++++
 .../IgniteCachePutRetryAbstractSelfTest.java    | 120 +++-
 ...PutRetryAtomicPrimaryWriteOrderSelfTest.java |  32 ++
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |   1 +
 .../IgniteCacheFailoverTestSuite.java           |   3 +
 .../testsuites/IgniteCacheTestSuite2.java       |   1 +
 modules/jms11/pom.xml                           |  98 ++++
 .../apache/ignite/stream/jms11/JmsStreamer.java | 524 ++++++++++++++++++
 .../ignite/stream/jms11/MessageTransformer.java |  43 ++
 .../stream/jms11/IgniteJmsStreamerTest.java     | 551 +++++++++++++++++++
 .../jms11/IgniteJmsStreamerTestSuite.java       |  34 ++
 .../ignite/stream/jms11/TestTransformers.java   | 123 +++++
 .../apache/ignite/logger/log4j/Log4JLogger.java |   4 +
 pom.xml                                         |   1 +
 22 files changed, 1890 insertions(+), 70 deletions(-)
----------------------------------------------------------------------



[08/15] incubator-ignite git commit: # Properly handle ClusterTopologyServerNotFoundException for retries

Posted by sb...@apache.org.
# Properly handle ClusterTopologyServerNotFoundException for retries


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

Branch: refs/heads/ignite-gg-10606
Commit: 2903a29e7a50802617872bfd0fcc3497c4c7785e
Parents: 122a9db
Author: sboikov <sb...@gridgain.com>
Authored: Fri Aug 14 16:22:25 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Aug 14 16:22:25 2015 +0300

----------------------------------------------------------------------
 .../CachePartialUpdateCheckedException.java     | 29 +++++++++++-
 .../processors/cache/GridCacheAdapter.java      | 50 ++++++++++++--------
 .../dht/atomic/GridNearAtomicUpdateFuture.java  | 48 +++++++++++--------
 .../near/GridNearOptimisticTxPrepareFuture.java |  2 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  1 -
 5 files changed, 86 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2903a29e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
index 0272b7c..f430d12 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.cache;
 
 import org.apache.ignite.*;
+import org.apache.ignite.internal.processors.affinity.*;
 
 import java.util.*;
 
@@ -32,6 +33,9 @@ public class CachePartialUpdateCheckedException extends IgniteCheckedException {
     /** Failed keys. */
     private final Collection<Object> failedKeys = new ArrayList<>();
 
+    /** */
+    private AffinityTopologyVersion topVer;
+
     /**
      * @param msg Error message.
      */
@@ -50,13 +54,36 @@ public class CachePartialUpdateCheckedException extends IgniteCheckedException {
     /**
      * @param failedKeys Failed keys.
      * @param err Error.
+     * @param topVer Topology version for failed update.
      */
-    public void add(Collection<?> failedKeys, Throwable err) {
+    public void add(Collection<?> failedKeys, Throwable err, AffinityTopologyVersion topVer) {
+        if (topVer != null) {
+            AffinityTopologyVersion topVer0 = this.topVer;
+
+            if (topVer0 == null || topVer.compareTo(topVer0) > 0)
+                this.topVer = topVer;
+        }
+
         this.failedKeys.addAll(failedKeys);
 
         addSuppressed(err);
     }
 
+    /**
+     * @return Topology version.
+     */
+    public AffinityTopologyVersion topologyVersion() {
+        return topVer;
+    }
+
+    /**
+     * @param failedKeys Failed keys.
+     * @param err Error.
+     */
+    public void add(Collection<?> failedKeys, Throwable err) {
+        add(failedKeys, err, null);
+    }
+
     /** {@inheritDoc} */
     @Override public String getMessage() {
         return super.getMessage() + ": " + failedKeys;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2903a29e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 91af352..992edd8 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -3975,13 +3975,17 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                     }
 
                     if (X.hasCause(e, ClusterTopologyCheckedException.class) && i != retries - 1) {
-                        AffinityTopologyVersion topVer = tx.topologyVersion();
+                        ClusterTopologyCheckedException topErr = e.getCause(ClusterTopologyCheckedException.class);
 
-                        assert topVer != null && topVer.topologyVersion() > 0 : tx;
+                        if (!(topErr instanceof ClusterTopologyServerNotFoundException)) {
+                            AffinityTopologyVersion topVer = tx.topologyVersion();
+
+                            assert topVer != null && topVer.topologyVersion() > 0 : tx;
 
-                        ctx.affinity().affinityReadyFuture(topVer.topologyVersion() + 1).get();
+                            ctx.affinity().affinityReadyFuture(topVer.topologyVersion() + 1).get();
 
-                        continue;
+                            continue;
+                        }
                     }
 
                     throw e;
@@ -4702,31 +4706,35 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                     }
                     catch (IgniteCheckedException e) {
                         if (X.hasCause(e, ClusterTopologyCheckedException.class) && --retries > 0) {
-                            IgniteTxLocalAdapter tx = AsyncOpRetryFuture.this.tx;
+                            ClusterTopologyCheckedException topErr = e.getCause(ClusterTopologyCheckedException.class);
 
-                            assert tx != null;
+                            if (!(topErr instanceof ClusterTopologyServerNotFoundException)) {
+                                IgniteTxLocalAdapter tx = AsyncOpRetryFuture.this.tx;
 
-                            AffinityTopologyVersion topVer = tx.topologyVersion();
+                                assert tx != null;
 
-                            assert topVer != null && topVer.topologyVersion() > 0 : tx;
+                                AffinityTopologyVersion topVer = tx.topologyVersion();
 
-                            IgniteInternalFuture<?> topFut =
-                                ctx.affinity().affinityReadyFuture(topVer.topologyVersion() + 1);
+                                assert topVer != null && topVer.topologyVersion() > 0 : tx;
 
-                            topFut.listen(new IgniteInClosure<IgniteInternalFuture<?>>() {
-                                @Override public void apply(IgniteInternalFuture<?> topFut) {
-                                    try {
-                                        topFut.get();
+                                IgniteInternalFuture<?> topFut =
+                                    ctx.affinity().affinityReadyFuture(topVer.topologyVersion() + 1);
 
-                                        execute();
-                                    }
-                                    catch (IgniteCheckedException e) {
-                                        onDone(e);
+                                topFut.listen(new IgniteInClosure<IgniteInternalFuture<?>>() {
+                                    @Override public void apply(IgniteInternalFuture<?> topFut) {
+                                        try {
+                                            topFut.get();
+
+                                            execute();
+                                        }
+                                        catch (IgniteCheckedException e) {
+                                            onDone(e);
+                                        }
                                     }
-                                }
-                            });
+                                });
 
-                            return;
+                                return;
+                            }
                         }
 
                         onDone(e);

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2903a29e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index 0498839..5dc5494 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -275,6 +275,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
             if (singleNodeId.equals(nodeId)) {
                 onDone(addFailedKeys(
                     singleReq.keys(),
+                    singleReq.topologyVersion(),
                     new ClusterTopologyCheckedException("Primary node left grid before response is received: " + nodeId)));
 
                 return true;
@@ -286,8 +287,9 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
         GridNearAtomicUpdateRequest req = mappings.get(nodeId);
 
         if (req != null) {
-            addFailedKeys(req.keys(), new ClusterTopologyCheckedException("Primary node left grid before response is " +
-                "received: " + nodeId));
+            addFailedKeys(req.keys(),
+                req.topologyVersion(),
+                new ClusterTopologyCheckedException("Primary node left grid before response is received: " + nodeId));
 
             mappings.remove(nodeId);
 
@@ -356,8 +358,11 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
 
     /**
      * @param failed Keys to remap.
+     * @param errTopVer Topology version for failed update.
      */
-    private void remap(Collection<?> failed) {
+    private void remap(Collection<?> failed, AffinityTopologyVersion errTopVer) {
+        assert errTopVer != null;
+
         GridCacheVersion futVer0 = futVer;
 
         if (futVer0 == null || cctx.mvcc().removeAtomicFuture(futVer0) == null)
@@ -409,15 +414,11 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
 
         GridFutureAdapter<Void> fut0;
 
-        long nextTopVer;
-
         synchronized (this) {
             mappings = new ConcurrentHashMap8<>(keys.size(), 1.0f);
 
             assert topVer != null && topVer.topologyVersion() > 0 : this;
 
-            nextTopVer = topVer.topologyVersion() + 1;
-
             topVer = AffinityTopologyVersion.ZERO;
 
             fut0 = topCompleteFut;
@@ -434,7 +435,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
         updVer = null;
         topLocked = false;
 
-        IgniteInternalFuture<?> fut = cctx.affinity().affinityReadyFuture(nextTopVer);
+        IgniteInternalFuture<?> fut = cctx.affinity().affinityReadyFuture(errTopVer.topologyVersion() + 1);
 
         fut.listen(new CI1<IgniteInternalFuture<?>>() {
             @Override public void apply(final IgniteInternalFuture<?> fut) {
@@ -471,15 +472,17 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
             X.hasCause(err, ClusterTopologyCheckedException.class) &&
             storeFuture() &&
             remapCnt.decrementAndGet() > 0) {
+            ClusterTopologyCheckedException topErr = X.cause(err, ClusterTopologyCheckedException.class);
 
-            CachePartialUpdateCheckedException cause = X.cause(err, CachePartialUpdateCheckedException.class);
+            if (!(topErr instanceof  ClusterTopologyServerNotFoundException)) {
+                CachePartialUpdateCheckedException cause = X.cause(err, CachePartialUpdateCheckedException.class);
 
-            if (F.isEmpty(cause.failedKeys()))
-                cause.printStackTrace();
+                assert cause != null && cause.topologyVersion() != null : err;
 
-            remap(cause.failedKeys());
+                remap(cause.failedKeys(), cause.topologyVersion());
 
-            return false;
+                return false;
+            }
         }
 
         if (super.onDone(retval, err)) {
@@ -528,8 +531,10 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
 
             updateNear(singleReq, res);
 
-            if (res.error() != null)
-                onDone(res.failedKeys() != null ? addFailedKeys(res.failedKeys(), res.error()) : res.error());
+            if (res.error() != null) {
+                onDone(res.failedKeys() != null ?
+                    addFailedKeys(res.failedKeys(), singleReq.topologyVersion(), res.error()) : res.error());
+            }
             else {
                 if (op == TRANSFORM) {
                     if (ret != null)
@@ -551,7 +556,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
                 updateNear(req, res);
 
                 if (res.error() != null)
-                    addFailedKeys(req.keys(), res.error());
+                    addFailedKeys(req.keys(), req.topologyVersion(), res.error());
                 else {
                     if (op == TRANSFORM) {
                         assert !req.fastMap();
@@ -1048,7 +1053,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
                     onDone(new GridCacheReturn(cctx, true, null, true));
             }
             catch (IgniteCheckedException e) {
-                onDone(addFailedKeys(req.keys(), e));
+                onDone(addFailedKeys(req.keys(), req.topologyVersion(), e));
             }
         }
     }
@@ -1079,7 +1084,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
                     cctx.io().send(req.nodeId(), req, cctx.ioPolicy());
                 }
                 catch (IgniteCheckedException e) {
-                    addFailedKeys(req.keys(), e);
+                    addFailedKeys(req.keys(), req.topologyVersion(), e);
 
                     removeMapping(req.nodeId());
                 }
@@ -1135,10 +1140,13 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
 
     /**
      * @param failedKeys Failed keys.
+     * @param topVer Topology version for failed update.
      * @param err Error cause.
      * @return Root {@link org.apache.ignite.internal.processors.cache.CachePartialUpdateCheckedException}.
      */
-    private synchronized IgniteCheckedException addFailedKeys(Collection<KeyCacheObject> failedKeys, Throwable err) {
+    private synchronized IgniteCheckedException addFailedKeys(Collection<KeyCacheObject> failedKeys,
+        AffinityTopologyVersion topVer,
+        Throwable err) {
         CachePartialUpdateCheckedException err0 = this.err;
 
         if (err0 == null)
@@ -1149,7 +1157,7 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
         for (KeyCacheObject key : failedKeys)
             keys.add(key.value(cctx.cacheObjectContext(), false));
 
-        err0.add(keys, err);
+        err0.add(keys, err, topVer);
 
         return err0;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2903a29e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
index 44b7997..2b86672 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearOptimisticTxPrepareFuture.java
@@ -416,7 +416,7 @@ public class GridNearOptimisticTxPrepareFuture extends GridNearTxPrepareFutureAd
                 GridCacheContext<?, ?> cacheCtx = cctx.cacheContext(cacheId);
 
                 if (CU.affinityNodes(cacheCtx, topVer).isEmpty()) {
-                    onDone(new ClusterTopologyCheckedException("Failed to map keys for cache (all " +
+                    onDone(new ClusterTopologyServerNotFoundException("Failed to map keys for cache (all " +
                         "partition nodes left the grid): " + cacheCtx.name()));
 
                     return;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2903a29e/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
index 0a8f87c..ff948a1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheAbstractFullApiSelfTest.java
@@ -5010,7 +5010,6 @@ public abstract class GridCacheAbstractFullApiSelfTest extends GridCacheAbstract
 
         assertThrows(log, new Callable<Object>() {
             @Override public Object call() throws Exception {
-
                 IgniteFuture fut = cache.future().chain(new IgniteClosure<IgniteFuture, Object>() {
                     @Override public Object apply(IgniteFuture o) {
                         return o.get();


[03/15] incubator-ignite git commit: # ignite-1228

Posted by sb...@apache.org.
# ignite-1228

Signed-off-by: Valentin Kulichenko <va...@gmail.com>


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

Branch: refs/heads/ignite-gg-10606
Commit: e5eef50844580bd9ef2dba6bdfc1efca8992e78a
Parents: 8ecddcc
Author: Valentin Kulichenko <va...@gmail.com>
Authored: Tue Aug 11 18:34:58 2015 -0700
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Thu Aug 13 18:57:20 2015 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/ignite/logger/log4j/Log4JLogger.java    | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e5eef508/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
----------------------------------------------------------------------
diff --git a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
index e3828ab..bc843fb 100644
--- a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
+++ b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/Log4JLogger.java
@@ -342,6 +342,10 @@ public class Log4JLogger implements IgniteLogger, LoggerNodeIdAware, Log4jFileAw
                     impl.setLevel(logLevel);
             }
 
+            // If still don't have appenders, disable logging.
+            if (!isConfigured())
+                impl.setLevel(Level.OFF);
+
             quiet0 = quiet;
             inited = true;
         }


[07/15] incubator-ignite git commit: # Wait for next topology version before retry, retries for async tx operations

Posted by sb...@apache.org.
# Wait for next topology version before retry, retries for async tx operations


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

Branch: refs/heads/ignite-gg-10606
Commit: 122a9dbf337d5c1128be32d4efee1e0f1dc683f5
Parents: 47895da
Author: sboikov <sb...@gridgain.com>
Authored: Fri Aug 14 12:50:06 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Aug 14 13:57:19 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      | 143 +++++++++++++++++--
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |  25 +++-
 .../IgniteCachePutRetryAbstractSelfTest.java    |  94 ++++++++++--
 3 files changed, 237 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/122a9dbf/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 47ede5b..91af352 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -2283,8 +2283,7 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
      * @param filter Filter.
      * @return Put future.
      */
-    public IgniteInternalFuture<Boolean> putAsync(K key, V val,
-                                                  @Nullable CacheEntryPredicate... filter) {
+    public IgniteInternalFuture<Boolean> putAsync(K key, V val, @Nullable CacheEntryPredicate... filter) {
         final boolean statsEnabled = ctx.config().isStatisticsEnabled();
 
         final long start = statsEnabled ? System.nanoTime() : 0L;
@@ -3975,8 +3974,15 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                         U.addLastCause(e, e1, log);
                     }
 
-                    if (X.hasCause(e, ClusterTopologyCheckedException.class) && i != retries - 1)
+                    if (X.hasCause(e, ClusterTopologyCheckedException.class) && i != retries - 1) {
+                        AffinityTopologyVersion topVer = tx.topologyVersion();
+
+                        assert topVer != null && topVer.topologyVersion() > 0 : tx;
+
+                        ctx.affinity().affinityReadyFuture(topVer.topologyVersion() + 1).get();
+
                         continue;
+                    }
 
                     throw e;
                 }
@@ -4014,18 +4020,36 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
 
         IgniteTxLocalAdapter tx = ctx.tm().threadLocalTx(ctx);
 
-        if (tx == null || tx.implicit())
-            tx = ctx.tm().newTx(
-                true,
-                op.single(),
-                ctx.systemTx() ? ctx : null,
-                OPTIMISTIC,
-                READ_COMMITTED,
-                ctx.kernalContext().config().getTransactionConfiguration().getDefaultTxTimeout(),
-                !ctx.skipStore(),
-                0);
+        if (tx == null || tx.implicit()) {
+            boolean skipStore = ctx.skipStore(); // Save value of thread-local flag.
+
+            CacheOperationContext opCtx = ctx.operationContextPerCall();
+
+            int retries = opCtx != null && opCtx.noRetries() ? 1 : MAX_RETRIES;
 
-        return asyncOp(tx, op);
+            if (retries == 1) {
+                tx = ctx.tm().newTx(
+                    true,
+                    op.single(),
+                    ctx.systemTx() ? ctx : null,
+                    OPTIMISTIC,
+                    READ_COMMITTED,
+                    ctx.kernalContext().config().getTransactionConfiguration().getDefaultTxTimeout(),
+                    !skipStore,
+                    0);
+
+                return asyncOp(tx, op);
+            }
+            else {
+                AsyncOpRetryFuture<T> fut = new AsyncOpRetryFuture<>(op, skipStore, retries);
+
+                fut.execute();
+
+                return fut;
+            }
+        }
+        else
+            return asyncOp(tx, op);
     }
 
     /**
@@ -4624,6 +4648,97 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
     /**
      *
      */
+    private class AsyncOpRetryFuture<T> extends GridFutureAdapter<T> {
+        /** */
+        private AsyncOp<T> op;
+
+        /** */
+        private boolean skipStore;
+
+        /** */
+        private int retries;
+
+        /** */
+        private IgniteTxLocalAdapter tx;
+
+        /**
+         * @param op Operation.
+         * @param skipStore Skip store flag.
+         * @param retries Number of retries.
+         */
+        public AsyncOpRetryFuture(AsyncOp<T> op,
+            boolean skipStore,
+            int retries) {
+            assert retries > 1 : retries;
+
+            this.op = op;
+            this.tx = null;
+            this.skipStore = skipStore;
+            this.retries = retries;
+        }
+
+        /**
+         * @param tx Transaction.
+         */
+        public void execute() {
+            tx = ctx.tm().newTx(
+                true,
+                op.single(),
+                ctx.systemTx() ? ctx : null,
+                OPTIMISTIC,
+                READ_COMMITTED,
+                ctx.kernalContext().config().getTransactionConfiguration().getDefaultTxTimeout(),
+                !skipStore,
+                0);
+
+            IgniteInternalFuture<T> fut = asyncOp(tx, op);
+
+            fut.listen(new IgniteInClosure<IgniteInternalFuture<T>>() {
+                @Override public void apply(IgniteInternalFuture<T> fut) {
+                    try {
+                        T res = fut.get();
+
+                        onDone(res);
+                    }
+                    catch (IgniteCheckedException e) {
+                        if (X.hasCause(e, ClusterTopologyCheckedException.class) && --retries > 0) {
+                            IgniteTxLocalAdapter tx = AsyncOpRetryFuture.this.tx;
+
+                            assert tx != null;
+
+                            AffinityTopologyVersion topVer = tx.topologyVersion();
+
+                            assert topVer != null && topVer.topologyVersion() > 0 : tx;
+
+                            IgniteInternalFuture<?> topFut =
+                                ctx.affinity().affinityReadyFuture(topVer.topologyVersion() + 1);
+
+                            topFut.listen(new IgniteInClosure<IgniteInternalFuture<?>>() {
+                                @Override public void apply(IgniteInternalFuture<?> topFut) {
+                                    try {
+                                        topFut.get();
+
+                                        execute();
+                                    }
+                                    catch (IgniteCheckedException e) {
+                                        onDone(e);
+                                    }
+                                }
+                            });
+
+                            return;
+                        }
+
+                        onDone(e);
+                    }
+                }
+            });
+        }
+    }
+
+    /**
+     *
+     */
     private static class PeekModes {
         /** */
         private boolean near;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/122a9dbf/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
index 751c9ba..0498839 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridNearAtomicUpdateFuture.java
@@ -409,9 +409,15 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
 
         GridFutureAdapter<Void> fut0;
 
+        long nextTopVer;
+
         synchronized (this) {
             mappings = new ConcurrentHashMap8<>(keys.size(), 1.0f);
 
+            assert topVer != null && topVer.topologyVersion() > 0 : this;
+
+            nextTopVer = topVer.topologyVersion() + 1;
+
             topVer = AffinityTopologyVersion.ZERO;
 
             fut0 = topCompleteFut;
@@ -428,7 +434,24 @@ public class GridNearAtomicUpdateFuture extends GridFutureAdapter<Object>
         updVer = null;
         topLocked = false;
 
-        map();
+        IgniteInternalFuture<?> fut = cctx.affinity().affinityReadyFuture(nextTopVer);
+
+        fut.listen(new CI1<IgniteInternalFuture<?>>() {
+            @Override public void apply(final IgniteInternalFuture<?> fut) {
+                cctx.kernalContext().closure().runLocalSafe(new Runnable() {
+                    @Override public void run() {
+                        try {
+                            fut.get();
+
+                            map();
+                        }
+                        catch (IgniteCheckedException e) {
+                            onDone(e);
+                        }
+                    }
+                });
+            }
+        });
     }
 
     /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/122a9dbf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
index dcba325..9abc5c8 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
@@ -27,6 +27,7 @@ import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.testframework.*;
 
+import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
@@ -76,11 +77,25 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
     protected CacheAtomicWriteOrderMode writeOrderMode() {
         return CLOCK;
     }
-
     /**
      * @throws Exception If failed.
      */
     public void testPut() throws Exception {
+        checkPut(false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testPutAsync() throws Exception {
+        checkPut(true);
+    }
+
+    /**
+     * @param async If {@code true} tests asynchronous put.
+     * @throws Exception If failed.
+     */
+    private void checkPut(boolean async) throws Exception {
         final AtomicBoolean finished = new AtomicBoolean();
 
         IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
@@ -104,20 +119,67 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
         if (atomicityMode() == ATOMIC)
             assertEquals(writeOrderMode(), cache.getConfiguration(CacheConfiguration.class).getAtomicWriteOrderMode());
 
-        for (int i = 0; i < keysCnt; i++)
-            cache.put(i, i);
+        int iter = 0;
+
+        long stopTime = System.currentTimeMillis() + 60_000;
+
+        if (async) {
+            IgniteCache<Object, Object> cache0 = cache.withAsync();
+
+            while (System.currentTimeMillis() < stopTime) {
+                Integer val = ++iter;
+
+                for (int i = 0; i < keysCnt; i++) {
+                    cache0.put(i, val);
+
+                    cache0.future().get();
+                }
+
+                for (int i = 0; i < keysCnt; i++) {
+                    cache0.get(i);
+
+                    assertEquals(val, cache0.future().get());
+                }
+            }
+        }
+        else {
+            while (System.currentTimeMillis() < stopTime) {
+                Integer val = ++iter;
+
+                for (int i = 0; i < keysCnt; i++)
+                    cache.put(i, val);
+
+                for (int i = 0; i < keysCnt; i++)
+                    assertEquals(val, cache.get(i));
+            }
+        }
 
         finished.set(true);
         fut.get();
 
         for (int i = 0; i < keysCnt; i++)
-            assertEquals(i, ignite(0).cache(null).get(i));
+            assertEquals(iter, cache.get(i));
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testFailsWithNoRetries() throws Exception {
+        checkFailsWithNoRetries(false);
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testFailsWithNoRetriesAsync() throws Exception {
+        checkFailsWithNoRetries(true);
     }
 
     /**
+     * @param async If {@code true} tests asynchronous put.
      * @throws Exception If failed.
      */
-    public void testFailWithNoRetries() throws Exception {
+    private void checkFailsWithNoRetries(boolean async) throws Exception {
         final AtomicBoolean finished = new AtomicBoolean();
 
         IgniteInternalFuture<Object> fut = GridTestUtils.runAsync(new Callable<Object>() {
@@ -136,22 +198,34 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
 
         int keysCnt = keysCount();
 
-        boolean exceptionThrown = false;
+        boolean eThrown = false;
+
+        IgniteCache<Object, Object> cache = ignite(0).cache(null).withNoRetries();
+
+        if (async)
+            cache = cache.withAsync();
 
         for (int i = 0; i < keysCnt; i++) {
             try {
-                ignite(0).cache(null).withNoRetries().put(i, i);
+                if (async) {
+                    cache.put(i, i);
+
+                    cache.future().get();
+                }
+                else
+                    cache.put(i, i);
             }
             catch (Exception e) {
-                assertTrue("Invalid exception: " + e, X.hasCause(e, ClusterTopologyCheckedException.class) || X.hasCause(e, CachePartialUpdateException.class));
+                assertTrue("Invalid exception: " + e,
+                    X.hasCause(e, ClusterTopologyCheckedException.class, CachePartialUpdateException.class));
 
-                exceptionThrown = true;
+                eThrown = true;
 
                 break;
             }
         }
 
-        assertTrue(exceptionThrown);
+        assertTrue(eThrown);
 
         finished.set(true);
         fut.get();


[14/15] incubator-ignite git commit: # GG-10606: diagnostic output.

Posted by sb...@apache.org.
# GG-10606: diagnostic output.


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

Branch: refs/heads/ignite-gg-10606
Commit: 15541d7047f2b482ed8487687a82d86fb95c294e
Parents: 7760847
Author: iveselovskiy <iv...@gridgain.com>
Authored: Mon Aug 17 14:03:28 2015 +0300
Committer: iveselovskiy <iv...@gridgain.com>
Committed: Mon Aug 17 14:03:28 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/internal/util/IgniteUtils.java   | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/15541d70/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index f8c4c7e..4faed0f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -5026,7 +5026,14 @@ public abstract class IgniteUtils {
      */
     @Nullable public static String readString(DataInput in) throws IOException {
         // If value is not null, then read it. Otherwise return null.
-        return !in.readBoolean() ? in.readUTF() : null;
+        try {
+            return !in.readBoolean() ? in.readUTF() : null;
+        } catch (IOException ioe) {
+            // TODO: debug, remove later.
+            ioe.printStackTrace();
+
+            throw ioe;
+        }
     }
 
     /**


[10/15] incubator-ignite git commit: ignite-1228 - Closed #18

Posted by sb...@apache.org.
ignite-1228 - Closed #18


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

Branch: refs/heads/ignite-gg-10606
Commit: d0536dcec02e46cc1e68a13676e87a140d511db2
Parents: 7760847 e5eef50
Author: Valentin Kulichenko <va...@gmail.com>
Authored: Fri Aug 14 15:31:34 2015 -0700
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Fri Aug 14 15:31:34 2015 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/ignite/logger/log4j/Log4JLogger.java    | 4 ++++
 1 file changed, 4 insertions(+)
----------------------------------------------------------------------



[05/15] incubator-ignite git commit: # Fix TopologyVersionAwareJob

Posted by sb...@apache.org.
 # Fix TopologyVersionAwareJob


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

Branch: refs/heads/ignite-gg-10606
Commit: a3301b3511a742c7c2cc013a4e31a1a838482938
Parents: 51dcd51
Author: sboikov <sb...@gridgain.com>
Authored: Fri Aug 14 11:27:29 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Aug 14 11:37:47 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheAdapter.java      |   9 +-
 .../IgniteCacheSizeFailoverTest.java            | 115 +++++++++++++++++++
 .../IgniteCachePutRetryAbstractSelfTest.java    |  19 ++-
 ...PutRetryAtomicPrimaryWriteOrderSelfTest.java |  32 ++++++
 .../tcp/IgniteCacheSslStartStopSelfTest.java    |   1 +
 .../IgniteCacheFailoverTestSuite.java           |   3 +
 6 files changed, 175 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3301b35/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 18f4004..47ede5b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -5597,9 +5597,12 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
                     jobCtx.holdcc();
 
                     fut.listen(new CI1<IgniteInternalFuture<?>>() {
-                        @Override
-                        public void apply(IgniteInternalFuture<?> t) {
-                            jobCtx.callcc();
+                        @Override public void apply(IgniteInternalFuture<?> t) {
+                            ((IgniteKernal)ignite).context().closure().runLocalSafe(new Runnable() {
+                                @Override public void run() {
+                                    jobCtx.callcc();
+                                }
+                            }, false);
                         }
                     });
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3301b35/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSizeFailoverTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSizeFailoverTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSizeFailoverTest.java
new file mode 100644
index 0000000..a76d894
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCacheSizeFailoverTest.java
@@ -0,0 +1,115 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.distributed;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.testframework.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+import static org.apache.ignite.cache.CacheMode.*;
+import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
+
+/**
+ *
+ */
+public class IgniteCacheSizeFailoverTest extends GridCommonAbstractTest {
+    /** */
+    private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        ((TcpDiscoverySpi)cfg.getDiscoverySpi()).setIpFinder(ipFinder);
+
+        CacheConfiguration ccfg = new CacheConfiguration();
+
+        ccfg.setCacheMode(PARTITIONED);
+        ccfg.setAtomicityMode(ATOMIC);
+        ccfg.setWriteSynchronizationMode(FULL_SYNC);
+        ccfg.setBackups(1);
+
+        cfg.setCacheConfiguration(ccfg);
+
+        return cfg;
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testSize() throws Exception {
+        startGrids(2);
+
+        final AtomicBoolean stop = new AtomicBoolean();
+
+        final AtomicInteger cntr = new AtomicInteger();
+
+        IgniteInternalFuture<?> fut = GridTestUtils.runMultiThreadedAsync(new Callable<Object>() {
+            @Override public Object call() throws Exception {
+                int idx = cntr.getAndIncrement();
+
+                IgniteCache<Object, Object> cache = ignite(idx).cache(null);
+
+                long cntr = 0;
+
+                while (!stop.get()) {
+                    cache.size();
+
+                    if (cntr++ % 1000 == 0)
+                        log.info("Iteration: " + cntr);
+                }
+
+                return null;
+            }
+        }, 2, "size-thread");
+
+        try {
+            for (int i = 0; i < 10; i++) {
+                log.info("Start node: " + i);
+
+                Ignite node = startGrid(3);
+
+                IgniteCache<Object, Object> cache = node.cache(null);
+
+                for (int j = 0; j < 100; j++)
+                    assertTrue(cache.size() >= 0);
+
+                log.info("Stop node: " + i);
+
+                stopGrid(3);
+            }
+        }
+        finally {
+            stop.set(true);
+        }
+
+        log.info("Stop test.");
+
+        fut.get();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3301b35/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
index bfddbe7..dcba325 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.processors.cache.distributed.dht;
 
+import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
@@ -29,6 +30,9 @@ import org.apache.ignite.testframework.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
+import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.*;
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
 /**
  *
  */
@@ -47,6 +51,7 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
     @Override protected CacheConfiguration cacheConfiguration(String gridName) throws Exception {
         CacheConfiguration cfg = super.cacheConfiguration(gridName);
 
+        cfg.setAtomicWriteOrderMode(writeOrderMode());
         cfg.setBackups(1);
 
         return cfg;
@@ -66,6 +71,13 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
     }
 
     /**
+     * @return Write order mode.
+     */
+    protected CacheAtomicWriteOrderMode writeOrderMode() {
+        return CLOCK;
+    }
+
+    /**
      * @throws Exception If failed.
      */
     public void testPut() throws Exception {
@@ -87,8 +99,13 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
 
         int keysCnt = keysCount();
 
+        IgniteCache<Object, Object> cache = ignite(0).cache(null);
+
+        if (atomicityMode() == ATOMIC)
+            assertEquals(writeOrderMode(), cache.getConfiguration(CacheConfiguration.class).getAtomicWriteOrderMode());
+
         for (int i = 0; i < keysCnt; i++)
-            ignite(0).cache(null).put(i, i);
+            cache.put(i, i);
 
         finished.set(true);
         fut.get();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3301b35/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.java
new file mode 100644
index 0000000..e9682c5
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ignite.internal.processors.cache.distributed.dht.atomic;
+
+import org.apache.ignite.cache.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+
+import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.*;
+
+/**
+ *
+ */
+public class IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest extends IgniteCachePutRetryAtomicSelfTest {
+    /** {@inheritDoc} */
+    @Override protected CacheAtomicWriteOrderMode writeOrderMode() {
+        return PRIMARY;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3301b35/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/IgniteCacheSslStartStopSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/IgniteCacheSslStartStopSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/IgniteCacheSslStartStopSelfTest.java
index 9bf6caa..5b9af4f 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/IgniteCacheSslStartStopSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/IgniteCacheSslStartStopSelfTest.java
@@ -26,6 +26,7 @@ import org.apache.ignite.testframework.*;
  *
  */
 public class IgniteCacheSslStartStopSelfTest extends IgniteCachePutRetryAbstractSelfTest {
+    /** {@inheritDoc} */
     @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
         IgniteConfiguration cfg = super.getConfiguration(gridName);
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/a3301b35/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
index 524bfb3..af2b85c 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheFailoverTestSuite.java
@@ -73,10 +73,13 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
         suite.addTestSuite(IgniteCacheTxNearDisabledFairAffinityPutGetRestartTest.class);
 
         suite.addTestSuite(IgniteCachePutRetryAtomicSelfTest.class);
+        suite.addTestSuite(IgniteCachePutRetryAtomicPrimaryWriteOrderSelfTest.class);
         suite.addTestSuite(IgniteCachePutRetryTransactionalSelfTest.class);
 
         suite.addTestSuite(IgniteCacheSslStartStopSelfTest.class);
 
+        suite.addTestSuite(IgniteCacheSizeFailoverTest.class);
+
         return suite;
     }
 }


[04/15] incubator-ignite git commit: 1.3.3-p2-SNAPSHOT

Posted by sb...@apache.org.
1.3.3-p2-SNAPSHOT


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

Branch: refs/heads/ignite-gg-10606
Commit: 9300bbc776191218fb687339ba72675f3fe45848
Parents: 51dcd51
Author: Ignite Teamcity <ig...@apache.org>
Authored: Fri Aug 14 11:34:47 2015 +0300
Committer: Ignite Teamcity <ig...@apache.org>
Committed: Fri Aug 14 11:34:47 2015 +0300

----------------------------------------------------------------------
 examples/pom.xml                                   | 2 +-
 modules/aop/pom.xml                                | 2 +-
 modules/apache-license-gen/pom.xml                 | 2 +-
 modules/aws/pom.xml                                | 2 +-
 modules/clients/pom.xml                            | 2 +-
 modules/cloud/pom.xml                              | 2 +-
 modules/codegen/pom.xml                            | 2 +-
 modules/core/pom.xml                               | 2 +-
 modules/core/src/main/resources/ignite.properties  | 2 +-
 modules/extdata/p2p/pom.xml                        | 2 +-
 modules/extdata/uri/modules/uri-dependency/pom.xml | 2 +-
 modules/extdata/uri/pom.xml                        | 2 +-
 modules/gce/pom.xml                                | 2 +-
 modules/geospatial/pom.xml                         | 2 +-
 modules/hadoop/pom.xml                             | 2 +-
 modules/hibernate/pom.xml                          | 2 +-
 modules/indexing/pom.xml                           | 2 +-
 modules/jcl/pom.xml                                | 2 +-
 modules/jta/pom.xml                                | 2 +-
 modules/kafka/pom.xml                              | 2 +-
 modules/log4j/pom.xml                              | 2 +-
 modules/mesos/pom.xml                              | 2 +-
 modules/rest-http/pom.xml                          | 2 +-
 modules/scalar-2.10/pom.xml                        | 2 +-
 modules/scalar/pom.xml                             | 2 +-
 modules/schedule/pom.xml                           | 2 +-
 modules/schema-import/pom.xml                      | 2 +-
 modules/slf4j/pom.xml                              | 2 +-
 modules/spark-2.10/pom.xml                         | 2 +-
 modules/spark/pom.xml                              | 2 +-
 modules/spring/pom.xml                             | 2 +-
 modules/ssh/pom.xml                                | 2 +-
 modules/tools/pom.xml                              | 2 +-
 modules/urideploy/pom.xml                          | 2 +-
 modules/visor-console-2.10/pom.xml                 | 2 +-
 modules/visor-console/pom.xml                      | 2 +-
 modules/visor-plugins/pom.xml                      | 2 +-
 modules/web/pom.xml                                | 2 +-
 modules/yardstick/pom.xml                          | 2 +-
 modules/yarn/pom.xml                               | 2 +-
 pom.xml                                            | 2 +-
 41 files changed, 41 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 014cb0a..043689c 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -28,7 +28,7 @@
     </parent>
 
     <artifactId>ignite-examples</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/aop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aop/pom.xml b/modules/aop/pom.xml
index 1983567..8a271e5 100644
--- a/modules/aop/pom.xml
+++ b/modules/aop/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-aop</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/apache-license-gen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/apache-license-gen/pom.xml b/modules/apache-license-gen/pom.xml
index c723729..e1066c1 100644
--- a/modules/apache-license-gen/pom.xml
+++ b/modules/apache-license-gen/pom.xml
@@ -31,5 +31,5 @@
 
     <groupId>org.apache.ignite</groupId>
     <artifactId>ignite-apache-license-gen</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/aws/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aws/pom.xml b/modules/aws/pom.xml
index 1f92999..e5cf518 100644
--- a/modules/aws/pom.xml
+++ b/modules/aws/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-aws</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/clients/pom.xml
----------------------------------------------------------------------
diff --git a/modules/clients/pom.xml b/modules/clients/pom.xml
index cf6a347..44ff225 100644
--- a/modules/clients/pom.xml
+++ b/modules/clients/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-clients</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/cloud/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/pom.xml b/modules/cloud/pom.xml
index b2cb2a7..28a071f 100644
--- a/modules/cloud/pom.xml
+++ b/modules/cloud/pom.xml
@@ -29,7 +29,7 @@
     </parent>
 
     <artifactId>ignite-cloud</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <properties>
         <jcloud.version>1.9.0</jcloud.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/codegen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index 49d4c83..7d5a9dc 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-codegen</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index e9f5531..980559d 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-core</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/core/src/main/resources/ignite.properties
----------------------------------------------------------------------
diff --git a/modules/core/src/main/resources/ignite.properties b/modules/core/src/main/resources/ignite.properties
index 6a6b866..1bd08d4 100644
--- a/modules/core/src/main/resources/ignite.properties
+++ b/modules/core/src/main/resources/ignite.properties
@@ -15,7 +15,7 @@
 # limitations under the License.
 #
 
-ignite.version=1.3.3-p1-SNAPSHOT
+ignite.version=1.3.3-p2-SNAPSHOT
 ignite.build=0
 ignite.revision=DEV
 ignite.rel.date=01011970

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/extdata/p2p/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/pom.xml b/modules/extdata/p2p/pom.xml
index ebcee89..d81b488 100644
--- a/modules/extdata/p2p/pom.xml
+++ b/modules/extdata/p2p/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-extdata-p2p</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/extdata/uri/modules/uri-dependency/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/modules/uri-dependency/pom.xml b/modules/extdata/uri/modules/uri-dependency/pom.xml
index 4c26e87..7430fa1 100644
--- a/modules/extdata/uri/modules/uri-dependency/pom.xml
+++ b/modules/extdata/uri/modules/uri-dependency/pom.xml
@@ -27,7 +27,7 @@
     <artifactId>ignite-extdata-uri-dep</artifactId>
     <packaging>jar</packaging>
 
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
     <modelVersion>4.0.0</modelVersion>
 
     <dependencies>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/extdata/uri/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/pom.xml b/modules/extdata/uri/pom.xml
index db1faa1..4121188 100644
--- a/modules/extdata/uri/pom.xml
+++ b/modules/extdata/uri/pom.xml
@@ -32,7 +32,7 @@
     </parent>
 
     <artifactId>ignite-extdata-uri</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/gce/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gce/pom.xml b/modules/gce/pom.xml
index 1442cd5..3c1ea24 100644
--- a/modules/gce/pom.xml
+++ b/modules/gce/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-gce</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/geospatial/pom.xml
----------------------------------------------------------------------
diff --git a/modules/geospatial/pom.xml b/modules/geospatial/pom.xml
index 40650a7..1cb53b6 100644
--- a/modules/geospatial/pom.xml
+++ b/modules/geospatial/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-geospatial</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index c371f3f..28a0e10 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-hadoop</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/hibernate/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate/pom.xml b/modules/hibernate/pom.xml
index bc4b2ed..14d257a 100644
--- a/modules/hibernate/pom.xml
+++ b/modules/hibernate/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-hibernate</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml
index 70a2818..15067fa 100644
--- a/modules/indexing/pom.xml
+++ b/modules/indexing/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-indexing</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/jcl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index fbf21b4..d191858 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jcl</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index 868fb22..9714593 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-jta</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/modules/kafka/pom.xml b/modules/kafka/pom.xml
index 1536e0b..ed77507 100644
--- a/modules/kafka/pom.xml
+++ b/modules/kafka/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-kafka</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/log4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index c39f892..987c8aa 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-log4j</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/mesos/pom.xml
----------------------------------------------------------------------
diff --git a/modules/mesos/pom.xml b/modules/mesos/pom.xml
index 6a9a22b..7879e63 100644
--- a/modules/mesos/pom.xml
+++ b/modules/mesos/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-mesos</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <properties>
         <mesos.version>0.22.0</mesos.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/rest-http/pom.xml
----------------------------------------------------------------------
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 445321b..4864b55 100644
--- a/modules/rest-http/pom.xml
+++ b/modules/rest-http/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-rest-http</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/scalar-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar-2.10/pom.xml b/modules/scalar-2.10/pom.xml
index 65ebb92..11d9c9a 100644
--- a/modules/scalar-2.10/pom.xml
+++ b/modules/scalar-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-scalar_2.10</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/scalar/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/pom.xml b/modules/scalar/pom.xml
index 4d8b19b..d5241c3 100644
--- a/modules/scalar/pom.xml
+++ b/modules/scalar/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-scalar</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/schedule/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index 65570db..26b2ed3 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-schedule</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml
index 3e4bc70..957c821 100644
--- a/modules/schema-import/pom.xml
+++ b/modules/schema-import/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-schema-import</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/slf4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index f0a9f86..4c81324 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-slf4j</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/spark-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark-2.10/pom.xml b/modules/spark-2.10/pom.xml
index abe71df..3cc13ea 100644
--- a/modules/spark-2.10/pom.xml
+++ b/modules/spark-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spark_2.10</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/spark/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark/pom.xml b/modules/spark/pom.xml
index 3685427..0ba28d8 100644
--- a/modules/spark/pom.xml
+++ b/modules/spark/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spark</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/spring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index f46c337..3fdb893 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-spring</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ssh/pom.xml b/modules/ssh/pom.xml
index 8d49fa1..7911ff1 100644
--- a/modules/ssh/pom.xml
+++ b/modules/ssh/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-ssh</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/tools/pom.xml
----------------------------------------------------------------------
diff --git a/modules/tools/pom.xml b/modules/tools/pom.xml
index 106192f..e31d996 100644
--- a/modules/tools/pom.xml
+++ b/modules/tools/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-tools</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/urideploy/pom.xml
----------------------------------------------------------------------
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index 2414193..58fd030 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-urideploy</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/visor-console-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console-2.10/pom.xml b/modules/visor-console-2.10/pom.xml
index 3385ae0..a676e10 100644
--- a/modules/visor-console-2.10/pom.xml
+++ b/modules/visor-console-2.10/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-console_2.10</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index 22295e0..6eb02e9 100644
--- a/modules/visor-console/pom.xml
+++ b/modules/visor-console/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-console</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/visor-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-plugins/pom.xml b/modules/visor-plugins/pom.xml
index 97ff310..a1936e4 100644
--- a/modules/visor-plugins/pom.xml
+++ b/modules/visor-plugins/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-visor-plugins</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <!-- Ignite dependencies -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/web/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index f47433d..3e31812 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-web</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <dependencies>
         <dependency>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/yardstick/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yardstick/pom.xml b/modules/yardstick/pom.xml
index de917e5..aa3845b 100644
--- a/modules/yardstick/pom.xml
+++ b/modules/yardstick/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-yardstick</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <properties>
         <yardstick.version>0.7.0</yardstick.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/modules/yarn/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yarn/pom.xml b/modules/yarn/pom.xml
index dbe59b0..bfa53bc 100644
--- a/modules/yarn/pom.xml
+++ b/modules/yarn/pom.xml
@@ -31,7 +31,7 @@
     </parent>
 
     <artifactId>ignite-yarn</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
 
     <properties>
         <hadoop.version>2.7.0</hadoop.version>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9300bbc7/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index dcda132..176c14e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
 
     <groupId>org.apache.ignite</groupId>
     <artifactId>apache-ignite</artifactId>
-    <version>1.3.3-p1-SNAPSHOT</version>
+    <version>1.3.3-p2-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <properties>


[02/15] incubator-ignite git commit: # ignite-1175: call 'onDeferredDelete' from innerRemover

Posted by sb...@apache.org.
# ignite-1175: call 'onDeferredDelete' from innerRemover


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

Branch: refs/heads/ignite-gg-10606
Commit: 51dcd518e51883ca043492a86928cf3488db4bd7
Parents: 834b347
Author: sboikov <sb...@gridgain.com>
Authored: Tue Aug 11 11:30:02 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Tue Aug 11 11:39:54 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheMapEntry.java     |   4 +-
 ...cheDhtLocalPartitionAfterRemoveSelfTest.java | 112 +++++++++++++++++++
 .../testsuites/IgniteCacheTestSuite2.java       |   1 +
 3 files changed, 116 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/51dcd518/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
index 4680994..a078bed 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
@@ -1232,7 +1232,9 @@ public abstract class GridCacheMapEntry implements GridCacheEntryEx {
         if (writeThrough)
             cctx.store().remove(tx, keyValue(false));
 
-        if (!cctx.deferredDelete()) {
+        if (cctx.deferredDelete() && !detached() && !isInternal())
+            cctx.onDeferredDelete(this, newVer);
+        else {
             boolean marked = false;
 
             synchronized (this) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/51dcd518/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
new file mode 100644
index 0000000..a930d35
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
@@ -0,0 +1,112 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache;
+
+import org.apache.ignite.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import static org.apache.ignite.cache.CacheAtomicityMode.*;
+
+/**
+ * Test for remove operation.
+ */
+public class CacheDhtLocalPartitionAfterRemoveSelfTest extends GridCommonAbstractTest {
+    /** Grid count. */
+    private static final int GRID_CNT = 3;
+
+    /** {@inheritDoc} */
+    @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+        IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+        CacheConfiguration ccfg = new CacheConfiguration();
+
+        ccfg.setAtomicityMode(TRANSACTIONAL);
+        ccfg.setNearConfiguration(null);
+
+        cfg.setCacheConfiguration(ccfg);
+
+        return cfg;
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTestsStarted() throws Exception {
+        startGrids(GRID_CNT);
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void afterTestsStopped() throws Exception {
+        stopAllGrids();
+    }
+
+    /**
+     * @throws Exception If failed.
+     */
+    public void testMemoryUsage() throws Exception {
+        assertEquals(10_000, GridDhtLocalPartition.MAX_DELETE_QUEUE_SIZE);
+
+        IgniteCache<TestKey, Integer> cache = grid(0).cache(null);
+
+        for (int i = 0; i < 20_000; ++i)
+            cache.put(new TestKey(String.valueOf(i)), i);
+
+        for (int i = 0; i < 20_000; ++i)
+            assertEquals((Object)i, cache.getAndRemove(new TestKey(String.valueOf(i))));
+
+        assertEquals(0, cache.size());
+
+        for (int g = 0; g < GRID_CNT; g++) {
+            cache = grid(g).cache(null);
+
+            for (GridDhtLocalPartition p : dht(cache).topology().localPartitions()) {
+                int size = p.size();
+
+                assertTrue("Unexpected size: " + size, size <= 32);
+            }
+        }
+    }
+
+    /**
+     * Test key.
+     */
+    private static class TestKey {
+        /** Key. */
+        private String key;
+
+        /**
+         * @param key Key.
+         */
+        public TestKey(String key) {
+            this.key = key;
+        }
+
+        /** {@inheritDoc} */
+        @Override public int hashCode() {
+            return key.hashCode();
+        }
+
+        /** {@inheritDoc} */
+        @Override public boolean equals(Object obj) {
+            if (obj == null || !(obj instanceof TestKey))
+                return false;
+
+            return key.equals(((TestKey)obj).key);
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/51dcd518/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
index bf760f5..dcbab07 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite2.java
@@ -98,6 +98,7 @@ public class IgniteCacheTestSuite2 extends TestSuite {
         suite.addTest(new TestSuite(GridCacheDhtPreloadPutGetSelfTest.class));
         suite.addTest(new TestSuite(GridCacheDhtPreloadDisabledSelfTest.class));
         suite.addTest(new TestSuite(GridCacheDhtPreloadMultiThreadedSelfTest.class));
+        suite.addTest(new TestSuite(CacheDhtLocalPartitionAfterRemoveSelfTest.class));
         suite.addTest(new TestSuite(GridCacheColocatedPreloadRestartSelfTest.class));
         suite.addTest(new TestSuite(GridCacheNearPreloadRestartSelfTest.class));
         suite.addTest(new TestSuite(GridCacheDhtPreloadStartStopSelfTest.class));


[11/15] incubator-ignite git commit: ignite-534 - IgniteJmsStreamer implemented. Closes #14.

Posted by sb...@apache.org.
ignite-534 - IgniteJmsStreamer implemented. Closes #14.


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

Branch: refs/heads/ignite-gg-10606
Commit: 0d701127c8a95a30f4c484247e84ab1f10f95e3a
Parents: d0536dc
Author: Raul Kripalani <ra...@apache.org>
Authored: Fri Aug 14 16:11:19 2015 -0700
Committer: Valentin Kulichenko <va...@gmail.com>
Committed: Fri Aug 14 16:11:19 2015 -0700

----------------------------------------------------------------------
 .../ignite/internal/util/GridArgumentCheck.java |  17 +
 modules/jms11/pom.xml                           |  98 ++++
 .../apache/ignite/stream/jms11/JmsStreamer.java | 524 ++++++++++++++++++
 .../ignite/stream/jms11/MessageTransformer.java |  43 ++
 .../stream/jms11/IgniteJmsStreamerTest.java     | 551 +++++++++++++++++++
 .../jms11/IgniteJmsStreamerTestSuite.java       |  34 ++
 .../ignite/stream/jms11/TestTransformers.java   | 123 +++++
 pom.xml                                         |   1 +
 8 files changed, 1391 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/core/src/main/java/org/apache/ignite/internal/util/GridArgumentCheck.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/GridArgumentCheck.java b/modules/core/src/main/java/org/apache/ignite/internal/util/GridArgumentCheck.java
index b94bae6..8289f90 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/GridArgumentCheck.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/GridArgumentCheck.java
@@ -35,6 +35,9 @@ public class GridArgumentCheck {
     /** Not empty argument error message suffix. */
     private static final String NOT_EMPTY_SUFFIX = " must not be empty.";
 
+    /** Not null or empty error message suffix. */
+    private static final String NOT_NULL_OR_EMPTY_SUFFIX = " must not be null or empty.";
+
     /**
      * Checks if given argument value is not {@code null}. Otherwise - throws {@link NullPointerException}.
      *
@@ -145,4 +148,18 @@ public class GridArgumentCheck {
         if (arr.length == 0)
             throw new IllegalArgumentException(INVALID_ARG_MSG_PREFIX + name + NOT_EMPTY_SUFFIX);
     }
+
+    /**
+     * Checks that a String is not null or empty.
+     *
+     * @param value Value to check.
+     * @param name Argument name.
+     */
+    public static void notNullOrEmpty(String value, String name) {
+        notNull(value, name);
+
+        if (value.trim().length() == 0) {
+            throw new IllegalArgumentException(INVALID_ARG_MSG_PREFIX + name + NOT_NULL_OR_EMPTY_SUFFIX);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/jms11/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jms11/pom.xml b/modules/jms11/pom.xml
new file mode 100644
index 0000000..c93ea9a
--- /dev/null
+++ b/modules/jms11/pom.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.
+-->
+
+<!--
+    POM file.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.ignite</groupId>
+        <artifactId>ignite-parent</artifactId>
+        <version>1</version>
+        <relativePath>../../parent</relativePath>
+    </parent>
+
+    <artifactId>ignite-jms11</artifactId>
+    <version>1.4.1-SNAPSHOT</version>
+
+    <properties>
+        <activemq.version>5.11.1</activemq.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-core</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>javax.jms</groupId>
+            <artifactId>jms-api</artifactId>
+            <version>1.1-rev-1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-client</artifactId>
+            <version>${activemq.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-broker</artifactId>
+            <version>${activemq.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-kahadb-store</artifactId>
+            <version>${activemq.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-log4j</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-spring</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.ignite</groupId>
+            <artifactId>ignite-core</artifactId>
+            <version>${project.version}</version>
+            <type>test-jar</type>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+</project>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/JmsStreamer.java
----------------------------------------------------------------------
diff --git a/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/JmsStreamer.java b/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/JmsStreamer.java
new file mode 100644
index 0000000..de84a3e
--- /dev/null
+++ b/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/JmsStreamer.java
@@ -0,0 +1,524 @@
+/*
+ * 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.stream.jms11;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.stream.*;
+
+import javax.jms.*;
+import javax.jms.Queue;
+import java.util.*;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
+
+/**
+ * Streamer that consumes from a JMS destination and feeds key-value pairs into an {@link IgniteDataStreamer} instance.
+ * <p>
+ * This Streamer uses purely JMS semantics and it is not coupled with any JMS implementation. It uses {@link
+ * MessageListener} to receive messages. You must provide your broker's {@link javax.jms.ConnectionFactory} when
+ * creating a {@link JmsStreamer}.
+ * <p>
+ * You must also provide a {@link MessageTransformer} to convert the incoming message into cache entries.
+ * <p>
+ * This Streamer has many features:
+ *
+ * <ul>
+ *     <li>Consumes from queues or topics.</li>
+ *     <li>For topics, it supports durable subscriptions.</li>
+ *     <li>Concurrent consumers are supported via the <tt>threads</tt> parameter. When consuming from queues,
+ *     this component will start as many {@link Session} objects with separate {@link MessageListener} instances each,
+ *     therefore achieving <i>native</i> concurrency (in terms of the JMS standard).<br>
+ *     When consuming from topics, obviously we cannot start multiple threads as that would lead us to consume
+ *     duplicate messages. Therefore, we achieve concurrency in a <i>virtualized</i> manner through an internal
+ *     thread pool.</li>
+ *     <li>Transacted sessions are supported through the <tt>transacted</tt> parameter.</li>
+ *     <li>Batched consumption is possible via the <tt>batched</tt> parameter. Depending on the broker, this
+ *     technique can provide a higher throughput as it decreases the amount of message acknowledgement round trips
+ *     that are necessary, albeit at the expense possible duplicate messages (especially if an incident
+ *     occurs in the middle of a transaction).<br>
+ *     Batches are committed when the <tt>batchClosureMillis</tt> time has elapsed, or when a Session has received
+ *     at least <tt>batchClosureSize</tt> messages. Time-based closure fires with the specified frequency and applies to
+ *     all {@link Session}s in parallel. Size-based closure applies individually to each <tt>Session</tt> (as transactions
+ *     are <tt>Session-bound</tt> in JMS, so it will fire when that {@link Session} has processed that many messages.
+ *     Both options are compatible with each other, or you can disable either (see setter documentation),
+ *     but not both.</li>
+ *     <li>Can specify the destination with implementation-specific {@link Destination} objects or with names.</li>
+ * </ul>
+
+ *
+ * @author Raul Kripalani
+ */
+public class JmsStreamer<T extends Message, K, V> extends StreamAdapter<T, K, V> {
+
+    /** Logger. */
+    private IgniteLogger log;
+
+    /**
+     * <i>Compulsory.</i> The message transformer that converts an incoming JMS {@link Message} (or subclass) into one
+     * or multiple cache entries.
+     */
+    private MessageTransformer<T, K, V> transformer;
+
+    /** The JMS {@link ConnectionFactory} to use. */
+    private ConnectionFactory connectionFactory;
+
+    /** Whether to register or not as a durable subscription (for topic consumption). */
+    private boolean durableSubscription;
+
+    /** Name of the durable subscription, as required by the JMS specification. */
+    private String durableSubscriptionName;
+
+    /** Client ID in case we're using durable subscribers. */
+    private String clientId;
+
+    /** The JMS {@link Destination}; takes precedence over destinationName if both are set. */
+    private Destination destination;
+
+    /** Name of the destination. */
+    private String destinationName;
+
+    /** Whether to consume in a transacted manner. */
+    private boolean transacted;
+
+    /** Whether to consume messages in batches. May lead to duplicate consumption. Value <tt>true</tt> implies
+     * <tt>transacted = true</tt>. */
+    private boolean batched;
+
+    /** When using batched consumers, the amount of messages after the batch (transaction) will be committed. */
+    private int batchClosureSize = 50;
+
+    /**
+     * When using batched consumers, the amount of time to wait before the batch (transaction) will be committed. A
+     * value of 0 or -1 disables timed-based session commits.
+     */
+    private long batchClosureMillis = 1000;
+
+    /** Destination type. */
+    private Class<? extends Destination> destinationType = Queue.class;
+
+    /**
+     * Number of threads to concurrently consume JMS messages. When working with queues, we will start as many {@link
+     * javax.jms.Session} objects as indicated by this field, i.e. you will get native concurrency. On the other hand,
+     * when consuming from a topic, for obvious reason we will only start 1 message consumer but we will distribute the
+     * processing of received messages to as many concurrent threads as indicated.
+     */
+    private int threads = 1;
+
+    /** Whether we are stopped or not. */
+    private volatile boolean stopped = true;
+
+    /** JMS Connection. */
+    private Connection connection;
+
+    /** Stores the current JMS Sessions. */
+    private Set<Session> sessions = Collections.newSetFromMap(new ConcurrentHashMap<Session, Boolean>());
+
+    /** Message consumers. */
+    private Set<MessageConsumer> consumers = Collections.newSetFromMap(new ConcurrentHashMap<MessageConsumer, Boolean>());
+
+    /** Message listeners. */
+    private Set<IgniteJmsMessageListener> listeners = Collections.newSetFromMap(new ConcurrentHashMap<IgniteJmsMessageListener, Boolean>());
+
+    /** Scheduler for handling {@link #batchClosureMillis}. */
+    private ScheduledExecutorService scheduler;
+
+    /**
+     * Starts streamer.
+     *
+     * @throws IgniteException If failed.
+     */
+    public void start() throws IgniteException {
+        if (!stopped)
+            throw new IgniteException("Attempted to start an already started JMS Streamer");
+
+        try {
+            A.notNull(getStreamer(), "streamer");
+            A.notNull(getIgnite(), "ignite");
+
+            log = getIgnite().log();
+
+            A.notNull(transformer, "message transformer");
+            A.notNull(connectionFactory, "connection factory");
+            A.ensure(threads > 0, "threads > 0");
+
+            // handle batched && transacted parameter interaction
+            if (batched && !transacted) {
+                log.warning("Starting a Batched JMS Streamer without transacted flag = true. Setting it automatically.");
+                transacted = true;
+            }
+
+            // handle batch completion criteria
+            if (batched) {
+                A.ensure(batchClosureMillis > 0 || batchClosureSize > 0, "at least one of batch closure size or " +
+                    "batch closure frequency must be specified when using batch consumption");
+            }
+
+            // check the parameters needed for durable subscriptions, if enabled
+            if (durableSubscription) {
+                A.notNullOrEmpty(clientId, "client id is compulsory when using durable subscriptions");
+                A.notNullOrEmpty(durableSubscriptionName, "durable subscription name is compulsory when using " +
+                    "durable subscriptions");
+            }
+
+            // validate the destination; if we have an explicit destination, make sure it's of type Queue or Topic;
+            // else make sure that the destinationName and the destinationType are valid
+            if (destination == null) {
+                A.notNull(destinationType, "destination type");
+                A.ensure(destinationType.isAssignableFrom(Queue.class) || destinationType.isAssignableFrom(Topic.class),
+                    "this streamer can only handle Queues or Topics.");
+                A.notNullOrEmpty(destinationName, "destination or destination name");
+            }
+            else if (destination instanceof Queue) {
+                destinationType = Queue.class;
+            }
+            else if (destination instanceof Topic) {
+                destinationType = Topic.class;
+            }
+            else {
+                throw new IllegalArgumentException("Invalid destination object. Can only handle Queues or Topics.");
+            }
+
+            // create a new connection and the client iD if relevant.
+            connection = connectionFactory.createConnection();
+            if (clientId != null && clientId.trim().length() > 0) {
+                connection.setClientID(clientId.trim());
+            }
+
+            // build the JMS objects
+            if (destinationType == Queue.class) {
+                initializeJmsObjectsForQueue();
+            }
+            else {
+                initializeJmsObjectsForTopic();
+            }
+
+            stopped = false;
+
+            // start the JMS connection
+            connection.start();
+
+            // set up the scheduler service for committing batches
+            if (batched && batchClosureMillis > 0) {
+                scheduler = Executors.newScheduledThreadPool(1);
+                scheduler.schedule(new Runnable() {
+                    @Override
+                    public void run() {
+                        for (Session session : sessions) {
+                            try {
+                                session.commit();
+                                if (log.isDebugEnabled()) {
+                                    log.debug("Committing session from time-based batch completion [session=" +
+                                        session + "]");
+                                }
+                            }
+                            catch (JMSException e) {
+                                log.warning("Error while committing session: from batch time-based completion " +
+                                    "[session=" + session + "]");
+                            }
+                        }
+                        for (IgniteJmsMessageListener ml : listeners) {
+                            ml.resetBatchCounter();
+                        }
+                    }
+                }, batchClosureMillis, TimeUnit.MILLISECONDS);
+            }
+
+        }
+        catch (Throwable t) {
+            throw new IgniteException("Exception while initializing JmsStreamer", t);
+        }
+
+    }
+
+    /**
+     * Stops streamer.
+     */
+    public void stop() throws IgniteException {
+        if (stopped)
+            throw new IgniteException("Attempted to stop an already stopped JMS Streamer");
+
+
+        try {
+            stopped = true;
+
+            if (scheduler != null && !scheduler.isShutdown()) {
+                scheduler.shutdown();
+                scheduler = null;
+            }
+
+            connection.stop();
+            connection.close();
+
+            for (Session s : sessions) {
+                s.close();
+            }
+
+            sessions.clear();
+            consumers.clear();
+            listeners.clear();
+        }
+        catch (Throwable t) {
+            throw new IgniteException("Exception while stopping JmsStreamer", t);
+        }
+    }
+
+    /**
+     * Sets the JMS {@link ConnectionFactory}.
+     *
+     * @param connectionFactory JMS {@link ConnectionFactory} for this streamer to use.
+     */
+    public void setConnectionFactory(ConnectionFactory connectionFactory) {
+        this.connectionFactory = connectionFactory;
+    }
+
+    /**
+     * <i>Compulsory.</i> The {@link MessageTransformer} that converts an incoming JMS {@link Message} (or subclass)
+     * into one or multiple cache entries.
+     *
+     * @param transformer The implementation of the MessageTransformer to use.
+     */
+    public void setTransformer(MessageTransformer<T, K, V> transformer) {
+        this.transformer = transformer;
+    }
+
+    /**
+     * Sets the JMS {@link Destination} explicitly. Takes precedence over destinationName if both are set.
+     *
+     * @param destination JMS {@link Destination} if setting it explicitly.
+     */
+    public void setDestination(Destination destination) {
+        this.destination = destination;
+    }
+
+    /**
+     * Sets the name of the JMS destination to consume from.
+     *
+     * @param destinationName The name of the destination; will be passed on directly to the broker.
+     */
+    public void setDestinationName(String destinationName) {
+        this.destinationName = destinationName;
+    }
+
+    /**
+     * Sets the type of the destination to create, when used in combination with {@link #setDestinationName(String)}. It
+     * can be an interface or the implementation class specific to the broker.
+     *
+     * @param destinationType The class representing the destination type. Suggested values: {@link Queue} or {@link
+     * Topic}. <i>Compulsory</i> if using {@link #destinationName}.
+     * @see Queue
+     * @see Topic
+     */
+    public void setDestinationType(Class<? extends Destination> destinationType) {
+        this.destinationType = destinationType;
+    }
+
+    /**
+     * Sets the number of threads to concurrently consume JMS messages. <p> When working with queues, we will start as
+     * many {@link javax.jms.Session} objects as indicated by this field, i.e. you will get native concurrency. <p> On
+     * the other hand, when consuming from a topic, for obvious reason we will only start 1 message consumer but we will
+     * distribute the processing of received messages to as many concurrent threads as indicated.
+     *
+     * @param threads Number of threads to use. Default: <tt>1</tt>.
+     */
+    public void setThreads(int threads) {
+        this.threads = threads;
+    }
+
+    /**
+     * Sets the client ID of the JMS {@link Connection}.
+     *
+     * @param clientId Client ID in case we're using durable subscribers. Default: none.
+     */
+    public void setClientId(String clientId) {
+        this.clientId = clientId;
+    }
+
+    /**
+     * A <tt>true</tt> value is only accepted in combination with topic consumption.
+     *
+     * @param durableSubscription Whether or not to use durable subscriptions. Default: <tt>false</tt>.
+     */
+    public void setDurableSubscription(boolean durableSubscription) {
+        this.durableSubscription = durableSubscription;
+    }
+
+    /**
+     * Instructs the streamer whether to use local JMS transactions or not.
+     *
+     * @param transacted Whether to consume or not in a transacted manner. Default: <tt>false</tt>.
+     */
+    public void setTransacted(boolean transacted) {
+        this.transacted = transacted;
+    }
+
+    /**
+     * Batch consumption leverages JMS Transactions to minimise round trips to the broker. <p> Rather than ACKing every
+     * single message received, they will be received in the context of a JMS transaction which will be committed once
+     * the indicated batch closure size or batch closure time has elapsed. <p> Warning: May lead to duplicate
+     * consumption.
+     *
+     * @param batched Whether to consume messages in batches. Value <tt>true</tt> implies <tt>transacted = true</tt>.
+     * Default: <tt>false</tt>.
+     * @see #setBatchClosureMillis(long)
+     * @see #setBatchClosureSize(int)
+     */
+    public void setBatched(boolean batched) {
+        this.batched = batched;
+    }
+
+    /**
+     * When using batched consumption, sets the amount of messages that will be received before a batch is committed.
+     *
+     * @param batchClosureSize The amount of messages processed before a batch is committed. Default: <tt>50</tt>.
+     */
+    public void setBatchClosureSize(int batchClosureSize) {
+        this.batchClosureSize = batchClosureSize;
+    }
+
+    /**
+     * When using batched consumption, sets the time in milliseconds that will elapse before a batch is committed.
+     *
+     * @param batchClosureMillis Milliseconds before a batch is committed. Default: <tt>1000ms</tt>.
+     */
+    public void setBatchClosureMillis(long batchClosureMillis) {
+        this.batchClosureMillis = batchClosureMillis;
+    }
+
+    /**
+     * When using Durable Subscribers, sets the name of the durable subscriber. It is compulsory.
+     *
+     * @param durableSubscriptionName Name of the durable subscriber. Default: none.
+     */
+    public void setDurableSubscriptionName(String durableSubscriptionName) {
+        this.durableSubscriptionName = durableSubscriptionName;
+    }
+
+    private void initializeJmsObjectsForTopic() throws JMSException {
+        Session session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE);
+        Topic topic = (Topic)destination;
+
+        if (destination == null)
+            topic = session.createTopic(destinationName);
+
+        MessageConsumer consumer = durableSubscription ? session.createDurableSubscriber(topic, durableSubscriptionName) :
+            session.createConsumer(topic);
+
+        IgniteJmsMessageListener messageListener = new IgniteJmsMessageListener(session, true);
+        consumer.setMessageListener(messageListener);
+
+        consumers.add(consumer);
+        sessions.add(session);
+        listeners.add(messageListener);
+    }
+
+    private void initializeJmsObjectsForQueue() throws JMSException {
+        for (int i = 0; i < threads; i++) {
+            Session session = connection.createSession(transacted, Session.AUTO_ACKNOWLEDGE);
+
+            if (destination == null)
+                destination = session.createQueue(destinationName);
+
+            MessageConsumer consumer = session.createConsumer(destination);
+
+            IgniteJmsMessageListener messageListener = new IgniteJmsMessageListener(session, false);
+            consumer.setMessageListener(messageListener);
+
+            consumers.add(consumer);
+            sessions.add(session);
+            listeners.add(messageListener);
+        }
+    }
+
+    private void processMessage(T message) {
+        final IgniteDataStreamer<K, V> streamer = getStreamer();
+
+        Map<K, V> entries = transformer.apply(message);
+
+        if (entries == null || entries.size() == 0)
+            return;
+
+        streamer.addData(entries);
+    }
+
+    /**
+     * Message listener for queues.
+     */
+    private class IgniteJmsMessageListener implements MessageListener {
+
+        private Session session;
+        private AtomicInteger counter = new AtomicInteger(0);
+        private Executor executor;
+
+        public IgniteJmsMessageListener(Session session, boolean createThreadPool) {
+            this.session = session;
+
+            // if we don't need a thread pool, create a dummy one that executes the task synchronously
+            //noinspection NullableProblems
+            this.executor = createThreadPool ? Executors.newFixedThreadPool(threads) : new Executor() {
+                @Override
+                public void execute(Runnable command) {
+                    command.run();
+                }
+            };
+        }
+
+        @Override
+        public void onMessage(final Message message) {
+            if (stopped) {
+                return;
+            }
+
+            executor.execute(new Runnable() {
+                @Override @SuppressWarnings("unchecked")
+                public void run() {
+                    processMessage((T)message);
+                    if (batched) {
+                        // batch completion may be handled by timer only
+                        if (batchClosureSize <= 0)
+                            return;
+
+                        else if (counter.incrementAndGet() >= batchClosureSize) {
+                            try {
+                                session.commit();
+                                counter.set(0);
+                            }
+                            catch (Exception e) {
+                                log.warning("Could not commit JMS session upon completion of batch.", e);
+                            }
+                        }
+                    }
+                    else if (transacted) {
+                        try {
+                            session.commit();
+                        }
+                        catch (JMSException e) {
+                            log.warning("Could not commit JMS session (non-batched).", e);
+                        }
+                    }
+                }
+            });
+
+        }
+
+        public void resetBatchCounter() {
+            counter.set(0);
+        }
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/MessageTransformer.java
----------------------------------------------------------------------
diff --git a/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/MessageTransformer.java b/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/MessageTransformer.java
new file mode 100644
index 0000000..3cb0231
--- /dev/null
+++ b/modules/jms11/src/main/java/org/apache/ignite/stream/jms11/MessageTransformer.java
@@ -0,0 +1,43 @@
+/*
+ * 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.stream.jms11;
+
+import org.jetbrains.annotations.*;
+
+import javax.jms.*;
+import java.util.*;
+
+/**
+ * Implement this interface to transform from a {@link Message} to a set of cache entries in the form of a {@link Map}.
+ *
+ * @param <T> The type of JMS Message.
+ * @param <K> The type of the cache key.
+ * @param <V> The type of the cache value.
+ * @author Raul Kripalani
+ */
+public interface MessageTransformer<T extends Message, K, V> {
+
+    /**
+     * Transformation function.
+     *
+     * @param message The message received from the JMS broker.
+     * @return Set of cache entries to add to the cache. It could be empty or null if the message should be skipped.
+     */
+    @Nullable Map<K, V> apply(T message);
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTest.java
----------------------------------------------------------------------
diff --git a/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTest.java b/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTest.java
new file mode 100644
index 0000000..f1c107d
--- /dev/null
+++ b/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTest.java
@@ -0,0 +1,551 @@
+/*
+ * 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.stream.jms11;
+
+import org.apache.activemq.*;
+import org.apache.activemq.broker.*;
+import org.apache.activemq.broker.region.*;
+import org.apache.activemq.broker.region.policy.*;
+import org.apache.activemq.command.*;
+import org.apache.ignite.*;
+import org.apache.ignite.events.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.testframework.junits.common.*;
+
+import org.junit.*;
+
+import javax.jms.*;
+import javax.jms.Destination;
+import javax.jms.Message;
+import javax.jms.Queue;
+import javax.jms.Topic;
+import java.util.*;
+import java.util.concurrent.*;
+
+import static org.apache.ignite.events.EventType.*;
+
+/**
+ * Test for {@link JmsStreamer}. Tests both queues and topics.
+ *
+ * @author Raul Kripalani
+ */
+public class IgniteJmsStreamerTest extends GridCommonAbstractTest {
+
+    private static final int CACHE_ENTRY_COUNT = 100;
+    private static final String QUEUE_NAME = "ignite.test.queue";
+    private static final String TOPIC_NAME = "ignite.test.topic";
+    private static final Map<String, String> TEST_DATA = new HashMap<>();
+
+    static {
+        for (int i = 1; i <= CACHE_ENTRY_COUNT; i++)
+            TEST_DATA.put(Integer.toString(i), "v" + i);
+    }
+
+    private BrokerService broker;
+    private ConnectionFactory connectionFactory;
+
+    /** Constructor. */
+    public IgniteJmsStreamerTest() {
+        super(true);
+    }
+
+    @Before @SuppressWarnings("unchecked")
+    public void beforeTest() throws Exception {
+        grid().<Integer, String>getOrCreateCache(defaultCacheConfiguration());
+
+        broker = new BrokerService();
+        broker.deleteAllMessages();
+        broker.setPersistent(false);
+
+        PolicyMap policyMap = new PolicyMap();
+        PolicyEntry policy = new PolicyEntry();
+        policy.setQueuePrefetch(1);
+        broker.setDestinationPolicy(policyMap);
+        broker.getDestinationPolicy().setDefaultEntry(policy);
+
+        broker.start(true);
+
+        connectionFactory = new ActiveMQConnectionFactory(BrokerRegistry.getInstance().findFirst().getVmConnectorURI());
+
+    }
+
+    @After
+    public void afterTest() throws Exception {
+        grid().cache(null).clear();
+
+        broker.deleteAllMessages();
+        broker.stop();
+    }
+
+    public void testQueueFromName() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce messages into the queue
+        produceObjectMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<ObjectMessage, String, String> jmsStreamer = newJmsStreamer(ObjectMessage.class, dataStreamer);
+            jmsStreamer.setDestinationType(Queue.class);
+            jmsStreamer.setDestinationName(QUEUE_NAME);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testTopicFromName() throws JMSException, InterruptedException {
+        Destination destination = new ActiveMQTopic(TOPIC_NAME);
+
+        // should not produced messages until subscribed to the topic; otherwise they will be missed because this is not
+        // a durable subscriber (for which a dedicated test exists)
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<ObjectMessage, String, String> jmsStreamer = newJmsStreamer(ObjectMessage.class, dataStreamer);
+            jmsStreamer.setDestinationType(Topic.class);
+            jmsStreamer.setDestinationName(TOPIC_NAME);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // produce messages
+            produceObjectMessages(destination, false);
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testQueueFromExplicitDestination() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce messages into the queue
+        produceObjectMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<ObjectMessage, String, String> jmsStreamer = newJmsStreamer(ObjectMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            // start the streamer
+            jmsStreamer.start();
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testTopicFromExplicitDestination() throws JMSException, InterruptedException {
+        Destination destination = new ActiveMQTopic(TOPIC_NAME);
+
+        // should not produced messages until subscribed to the topic; otherwise they will be missed because this is not
+        // a durable subscriber (for which a dedicated test exists)
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<ObjectMessage, String, String> jmsStreamer = newJmsStreamer(ObjectMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // produce messages
+            produceObjectMessages(destination, false);
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testInsertMultipleCacheEntriesFromOneMessage() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce A SINGLE MESSAGE, containing all data, into the queue
+        produceStringMessages(destination, true);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<TextMessage, String, String> jmsStreamer = newJmsStreamer(TextMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testDurableSubscriberStartStopStart() throws Exception {
+        Destination destination = new ActiveMQTopic(TOPIC_NAME);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<TextMessage, String, String> jmsStreamer = newJmsStreamer(TextMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+            jmsStreamer.setDurableSubscription(true);
+            jmsStreamer.setClientId(Long.toString(System.currentTimeMillis()));
+            jmsStreamer.setDurableSubscriptionName("ignite-test-durable");
+
+            // we start the streamer so that the durable subscriber registers itself
+            jmsStreamer.start();
+
+            // we stop it immediately
+            jmsStreamer.stop();
+
+            // we assert that there are no clients of the broker (to make sure we disconnected properly)
+            assertEquals(0, broker.getCurrentConnections());
+
+            // we send messages while we're still away
+            produceStringMessages(destination, false);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testQueueMessagesConsumedInBatchesCompletionSizeBased() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce multiple messages into the queue
+        produceStringMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<TextMessage, String, String> jmsStreamer = newJmsStreamer(TextMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+            jmsStreamer.setBatched(true);
+            jmsStreamer.setBatchClosureSize(99);
+
+            // disable time-based session commits
+            jmsStreamer.setBatchClosureMillis(0);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            // we expect all entries to be loaded, but still one (uncommitted) message should remain in the queue
+            // as observed by the broker
+            DestinationStatistics qStats = broker.getBroker().getDestinationMap().get(destination).getDestinationStatistics();
+            assertEquals(1, qStats.getMessages().getCount());
+            assertEquals(1, qStats.getInflight().getCount());
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testQueueMessagesConsumedInBatchesCompletionTimeBased() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce multiple messages into the queue
+        produceStringMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<TextMessage, String, String> jmsStreamer = newJmsStreamer(TextMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+            jmsStreamer.setBatched(true);
+            jmsStreamer.setBatchClosureMillis(2000);
+            // disable size-based session commits
+            jmsStreamer.setBatchClosureSize(0);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+            DestinationStatistics qStats = broker.getBroker().getDestinationMap().get(destination).getDestinationStatistics();
+
+            jmsStreamer.start();
+
+            // all messages are still inflight
+            assertEquals(CACHE_ENTRY_COUNT, qStats.getMessages().getCount());
+            assertEquals(0, qStats.getDequeues().getCount());
+
+            // wait a little bit
+            Thread.sleep(100);
+
+            // all messages are still inflight
+            assertEquals(CACHE_ENTRY_COUNT, qStats.getMessages().getCount());
+            assertEquals(0, qStats.getDequeues().getCount());
+
+            // now let the scheduler execute
+            Thread.sleep(2100);
+
+            // all messages are committed
+            assertEquals(0, qStats.getMessages().getCount());
+            assertEquals(CACHE_ENTRY_COUNT, qStats.getDequeues().getCount());
+
+            latch.await(5, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testGenerateNoEntries() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce multiple messages into the queue
+        produceStringMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<TextMessage, String, String> jmsStreamer = newJmsStreamer(TextMessage.class, dataStreamer);
+            // override the transformer with one that generates no cache entries
+            jmsStreamer.setTransformer(TestTransformers.generateNoEntries());
+            jmsStreamer.setDestination(destination);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(1);
+
+            jmsStreamer.start();
+
+            // no cache PUT events were received in 3 seconds, i.e. CountDownLatch does not fire
+            assertFalse(latch.await(3, TimeUnit.SECONDS));
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testTransactedSessionNoBatching() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce multiple messages into the queue
+        produceStringMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<TextMessage, String, String> jmsStreamer = newJmsStreamer(TextMessage.class, dataStreamer);
+            jmsStreamer.setTransacted(true);
+            jmsStreamer.setDestination(destination);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            jmsStreamer.start();
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    public void testQueueMultipleThreads() throws Exception {
+        Destination destination = new ActiveMQQueue(QUEUE_NAME);
+
+        // produce messages into the queue
+        produceObjectMessages(destination, false);
+
+        try (IgniteDataStreamer<String, String> dataStreamer = grid().dataStreamer(null)) {
+            JmsStreamer<ObjectMessage, String, String> jmsStreamer = newJmsStreamer(ObjectMessage.class, dataStreamer);
+            jmsStreamer.setDestination(destination);
+            jmsStreamer.setThreads(5);
+
+            // subscribe to cache PUT events and return a countdown latch starting at CACHE_ENTRY_COUNT
+            CountDownLatch latch = subscribeToPutEvents(CACHE_ENTRY_COUNT);
+
+            // start the streamer
+            jmsStreamer.start();
+
+            DestinationStatistics qStats = broker.getBroker().getDestinationMap().get(destination).getDestinationStatistics();
+            assertEquals(5, qStats.getConsumers().getCount());
+
+            // all cache PUT events received in 10 seconds
+            latch.await(10, TimeUnit.SECONDS);
+
+            // assert that all consumers received messages - given that the prefetch is 1
+            for (Subscription subscription : broker.getBroker().getDestinationMap().get(destination).getConsumers())
+                assertTrue(subscription.getDequeueCounter() > 0);
+
+            assertAllCacheEntriesLoaded();
+
+            jmsStreamer.stop();
+        }
+
+    }
+
+    private void assertAllCacheEntriesLoaded() {
+        // Get the cache and check that the entries are present
+        IgniteCache<String, String> cache = grid().cache(null);
+        for (Map.Entry<String, String> entry : TEST_DATA.entrySet())
+            assertEquals(entry.getValue(), cache.get(entry.getKey()));
+    }
+
+    @SuppressWarnings("unchecked")
+    private <T extends Message> JmsStreamer<T, String, String> newJmsStreamer(Class<T> type,
+        IgniteDataStreamer<String, String> dataStreamer) {
+
+        JmsStreamer<T, String, String> jmsStreamer = new JmsStreamer<>();
+        jmsStreamer.setIgnite(grid());
+        jmsStreamer.setStreamer(dataStreamer);
+        jmsStreamer.setConnectionFactory(connectionFactory);
+
+        if (type == ObjectMessage.class) {
+            jmsStreamer.setTransformer((MessageTransformer<T, String, String>) TestTransformers.forObjectMessage());
+        }
+        else {
+            jmsStreamer.setTransformer((MessageTransformer<T, String, String>) TestTransformers.forTextMessage());
+        }
+
+        dataStreamer.allowOverwrite(true);
+        dataStreamer.autoFlushFrequency(10);
+        return jmsStreamer;
+    }
+
+    private CountDownLatch subscribeToPutEvents(int expect) {
+        Ignite ignite = grid();
+
+        // Listen to cache PUT events and expect as many as messages as test data items
+        final CountDownLatch latch = new CountDownLatch(expect);
+        @SuppressWarnings("serial") IgniteBiPredicate<UUID, CacheEvent> callback = new IgniteBiPredicate<UUID, CacheEvent>() {
+            @Override public boolean apply(UUID uuid, CacheEvent evt) {
+                latch.countDown();
+                return true;
+            }
+        };
+
+        ignite.events(ignite.cluster().forCacheNodes(null)).remoteListen(callback, null, EVT_CACHE_OBJECT_PUT);
+        return latch;
+    }
+
+    private void produceObjectMessages(Destination destination, boolean singleMessage) throws JMSException {
+        Session session = connectionFactory.createConnection().createSession(false, Session.AUTO_ACKNOWLEDGE);
+        MessageProducer mp = session.createProducer(destination);
+        HashSet<TestTransformers.TestObject> set = new HashSet<>();
+
+        for (String key : TEST_DATA.keySet()) {
+            TestTransformers.TestObject to = new TestTransformers.TestObject(key, TEST_DATA.get(key));
+            set.add(to);
+        }
+
+        int messagesSent;
+        if (singleMessage) {
+            mp.send(session.createObjectMessage(set));
+            messagesSent = 1;
+        }
+        else {
+            for (TestTransformers.TestObject to : set)
+                mp.send(session.createObjectMessage(to));
+
+            messagesSent = set.size();
+        }
+
+        if (destination instanceof Queue) {
+            try {
+                assertEquals(messagesSent, broker.getBroker().getDestinationMap().get(destination)
+                    .getDestinationStatistics().getMessages().getCount());
+            }
+            catch (Exception e) {
+                fail(e.toString());
+            }
+        }
+
+    }
+
+    private void produceStringMessages(Destination destination, boolean singleMessage) throws JMSException {
+        Session session = connectionFactory.createConnection().createSession(false, Session.AUTO_ACKNOWLEDGE);
+        MessageProducer mp = session.createProducer(destination);
+        HashSet<String> set = new HashSet<>();
+
+        for (String key : TEST_DATA.keySet())
+            set.add(key + "," + TEST_DATA.get(key));
+
+        int messagesSent;
+        if (singleMessage) {
+            StringBuilder sb = new StringBuilder();
+
+            for (String s : set)
+                sb.append(s).append("|");
+
+            sb.deleteCharAt(sb.length() - 1);
+            mp.send(session.createTextMessage(sb.toString()));
+            messagesSent = 1;
+
+        }
+        else {
+            for (String s : set) {
+                mp.send(session.createTextMessage(s));
+            }
+            messagesSent = set.size();
+        }
+
+        if (destination instanceof Queue) {
+            try {
+                assertEquals(messagesSent, broker.getBroker().getDestinationMap().get(destination)
+                    .getDestinationStatistics().getMessages().getCount());
+            }
+            catch (Exception e) {
+                fail(e.toString());
+            }
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTestSuite.java b/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTestSuite.java
new file mode 100644
index 0000000..e299f04
--- /dev/null
+++ b/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/IgniteJmsStreamerTestSuite.java
@@ -0,0 +1,34 @@
+/*
+ * 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.stream.jms11;
+
+import org.junit.runner.*;
+import org.junit.runners.*;
+
+/**
+ * JMS streamer tests.
+ *
+ * @author Raul Kripalani
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+    IgniteJmsStreamerTest.class
+})
+public class IgniteJmsStreamerTestSuite {
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/TestTransformers.java
----------------------------------------------------------------------
diff --git a/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/TestTransformers.java b/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/TestTransformers.java
new file mode 100644
index 0000000..ce001a1
--- /dev/null
+++ b/modules/jms11/src/test/java/org/apache/ignite/stream/jms11/TestTransformers.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.stream.jms11;
+
+import javax.jms.*;
+import java.io.*;
+import java.util.*;
+
+/**
+ * Test transformers for JmsStreamer tests.
+ *
+ * @author Raul Kripalani
+ */
+public class TestTransformers {
+
+    /**
+     * Returns a transformer for JMS {@link TextMessage}s, capable of extracting many tuples from a single message,
+     * if pipe characters are encountered.
+     *
+     * @return
+     */
+    public static MessageTransformer<TextMessage, String, String> forTextMessage() {
+        return new MessageTransformer<TextMessage, String, String>() {
+            @Override
+            public Map<String, String> apply(TextMessage message) {
+                final Map<String, String> answer = new HashMap<>();
+                String text;
+                try {
+                    text = message.getText();
+                }
+                catch (JMSException e) {
+                    e.printStackTrace();
+                    return Collections.emptyMap();
+                }
+                for (String s : text.split("\\|")) {
+                    String[] tokens = s.split(",");
+                    answer.put(tokens[0], tokens[1]);
+                }
+                return answer;
+            }
+        };
+    }
+
+    /**
+     * Returns a transformer for JMS {@link ObjectMessage}s, capable of extracting many tuples from a single message,
+     * if the payload is a {@link Collection}.
+     *
+     * @return
+     */
+    public static MessageTransformer<ObjectMessage, String, String> forObjectMessage() {
+        return new MessageTransformer<ObjectMessage, String, String>() {
+            @Override @SuppressWarnings("unchecked")
+            public Map<String, String> apply(ObjectMessage message) {
+                Object object;
+                try {
+                    object = message.getObject();
+                }
+                catch (JMSException e) {
+                    e.printStackTrace();
+                    return Collections.emptyMap();
+                }
+
+                final Map<String, String> answer = new HashMap<>();
+                if (object instanceof Collection) {
+                    for (TestObject to : (Collection<TestObject>)object)
+                        answer.put(to.getKey(), to.getValue());
+
+                }
+                else if (object instanceof TestObject) {
+                    TestObject to = (TestObject)object;
+                    answer.put(to.getKey(), to.getValue());
+                }
+                return answer;
+            }
+        };
+    }
+
+    public static MessageTransformer<TextMessage, String, String> generateNoEntries() {
+        return new MessageTransformer<TextMessage, String, String>() {
+            @Override
+            public Map<String, String> apply(TextMessage message) {
+                return null;
+            }
+        };
+    }
+
+    public static class TestObject implements Serializable {
+        private static final long serialVersionUID = -7332027566186690945L;
+
+        private String key;
+        private String value;
+
+        public TestObject(String key, String value) {
+            this.key = key;
+            this.value = value;
+        }
+
+        public String getKey() {
+            return key;
+        }
+
+        public String getValue() {
+            return value;
+        }
+
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0d701127/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 4d53d96..f3a5d65 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,6 +74,7 @@
         <module>modules/mesos</module>
         <module>modules/kafka</module>
         <module>modules/yarn</module>
+        <module>modules/jms11</module>
     </modules>
 
     <profiles>


[13/15] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2'

Posted by sb...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2'

Conflicts:
	examples/pom.xml
	modules/aop/pom.xml
	modules/apache-license-gen/pom.xml
	modules/aws/pom.xml
	modules/clients/pom.xml
	modules/cloud/pom.xml
	modules/codegen/pom.xml
	modules/core/pom.xml
	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
	modules/core/src/main/resources/ignite.properties
	modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheDhtLocalPartitionAfterRemoveSelfTest.java
	modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
	modules/extdata/p2p/pom.xml
	modules/extdata/uri/modules/uri-dependency/pom.xml
	modules/extdata/uri/pom.xml
	modules/gce/pom.xml
	modules/geospatial/pom.xml
	modules/hadoop/pom.xml
	modules/hibernate/pom.xml
	modules/indexing/pom.xml
	modules/jcl/pom.xml
	modules/jta/pom.xml
	modules/kafka/pom.xml
	modules/log4j/pom.xml
	modules/mesos/pom.xml
	modules/rest-http/pom.xml
	modules/scalar-2.10/pom.xml
	modules/scalar/pom.xml
	modules/schedule/pom.xml
	modules/schema-import/pom.xml
	modules/slf4j/pom.xml
	modules/spark-2.10/pom.xml
	modules/spark/pom.xml
	modules/spring/pom.xml
	modules/ssh/pom.xml
	modules/tools/pom.xml
	modules/urideploy/pom.xml
	modules/visor-console-2.10/pom.xml
	modules/visor-console/pom.xml
	modules/visor-plugins/pom.xml
	modules/web/pom.xml
	modules/yardstick/pom.xml
	modules/yarn/pom.xml
	pom.xml

Merge remote-tracking branch 'remotes/origin/ignite-1.3.3-p2'

Conflicts:
	benchmarks/cache-comparison/pom.xml
	benchmarks/filesystem/hadoop1/pom.xml
	benchmarks/filesystem/hadoop2/pom.xml
	benchmarks/mongo/pom.xml
	benchmarks/risk-analytics/pom.xml
	benchmarks/serialization/pom.xml
	benchmarks/yardstick/src/main/dotnet/gridgain-benchmarks/Properties/AssemblyInfo.cs
	examples/clients/cpp/configure.ac
	examples/clients/dotnet/GridGainExamples/GridGainExamples/Properties/AssemblyInfo.cs
	examples/clients/dotnet/GridGainExamples/GridGainExamplesDll/Properties/AssemblyInfo.cs
	examples/pom.xml
	modules/clients/common/configure.ac
	modules/clients/common/project/vs/Resource.rc
	modules/clients/cpp/_old/main/configure.ac
	modules/clients/cpp/_old/main/tests/configure.ac
	modules/clients/cpp/_old/vsproject/resource.h
	modules/clients/cpp/core-test/configure.ac
	modules/clients/cpp/core-test/project/vs/Resource.rc
	modules/clients/cpp/core/configure.ac
	modules/clients/cpp/core/project/vs/Resource.rc
	modules/clients/dotnet/gridgain-codegen/Properties/AssemblyInfo.cs
	modules/clients/dotnet/gridgain-exe/Properties/AssemblyInfo.cs
	modules/clients/dotnet/gridgain/Properties/AssemblyInfo.cs
	modules/clients/pom.xml
	modules/clients/src/test/dotnet/gridgain-examples-test/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test-compatibility/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test-dll/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test-runner/Properties/AssemblyInfo.cs
	modules/clients/src/test/dotnet/gridgain-test/Properties/AssemblyInfo.cs
	modules/codegen/pom.xml
	modules/compatibility/gg-versions/7.3.3/src/main/java/org/gridgain/grid/compatibility/GridCompatibilityTestsRunner.java
	modules/compatibility/pom.xml
	modules/core/pom.xml
	modules/core/src/main/resources/gridgain.properties
	modules/diagnostic/pom.xml
	modules/dr-demo/pom.xml
	modules/license-gen/pom.xml
	modules/mongo-sniffer/pom.xml
	modules/mongo-visor/pom.xml
	modules/mongo/pom.xml
	modules/tools/pom.xml
	modules/visor-console/pom.xml
	modules/visor-demo/pom.xml
	modules/visor-tester-plugin/pom.xml
	modules/visor-tester/pom.xml
	modules/visor/pom.xml
	modules/yardstick/dotnet/Properties/AssemblyInfo.cs
	modules/yardstick/pom.xml
	parent/pom.xml
	pilots/chronotrack/pom.xml
	pilots/ctb/pom.xml
	pilots/dsi/pom.xml
	pilots/ionic/pom.xml
	pilots/sb/pom.xml
	pilots/sony/pom.xml
	pilots/wellsfargo/pom.xml
	pilots/worldpay/pom.xml
	pom.xml


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

Branch: refs/heads/ignite-gg-10606
Commit: 1f00c7071d354b9f817be5daf725f638cd2f347b
Parents: 648cbd7
Author: Anton Vinogradov <vi...@gmail.com>
Authored: Mon Aug 17 11:01:06 2015 +0300
Committer: Anton Vinogradov <vi...@gmail.com>
Committed: Mon Aug 17 11:01:06 2015 +0300

----------------------------------------------------------------------
 .../ignite/internal/processors/cache/GridCacheAdapter.java     | 3 ---
 .../distributed/dht/IgniteCachePutRetryAbstractSelfTest.java   | 6 ------
 2 files changed, 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1f00c707/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 00c0629..177dcfb 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@ -2278,8 +2278,6 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
      * @param filter Filter.
      * @return Put future.
      */
-    public IgniteInternalFuture<Boolean> putAsync(K key, V val,
-        @Nullable CacheEntryPredicate... filter) {
     public IgniteInternalFuture<Boolean> putAsync(K key, V val, @Nullable CacheEntryPredicate... filter) {
         final boolean statsEnabled = ctx.config().isStatisticsEnabled();
 
@@ -4695,7 +4693,6 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
         }
 
         /**
-         * @param tx Transaction.
          */
         public void execute() {
             tx = ctx.tm().newTx(

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1f00c707/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
index 74f62ba..c798369 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/dht/IgniteCachePutRetryAbstractSelfTest.java
@@ -158,12 +158,6 @@ public abstract class IgniteCachePutRetryAbstractSelfTest extends GridCacheAbstr
         finished.set(true);
         fut.get();
 
-            fut.get();
-        }
-        finally {
-            finished.set(true);
-        }
-
         for (int i = 0; i < keysCnt; i++)
             assertEquals(iter, cache.get(i));
     }


[09/15] incubator-ignite git commit: # Properly handle ClusterTopologyServerNotFoundException for retries

Posted by sb...@apache.org.
# Properly handle ClusterTopologyServerNotFoundException for retries


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

Branch: refs/heads/ignite-gg-10606
Commit: 5faffb98032f54ed1160279de9d52938aef94bd2
Parents: 2903a29
Author: sboikov <sb...@gridgain.com>
Authored: Fri Aug 14 16:23:19 2015 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri Aug 14 16:23:19 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/CachePartialUpdateCheckedException.java       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5faffb98/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
index f430d12..c2259df 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CachePartialUpdateCheckedException.java
@@ -34,7 +34,7 @@ public class CachePartialUpdateCheckedException extends IgniteCheckedException {
     private final Collection<Object> failedKeys = new ArrayList<>();
 
     /** */
-    private AffinityTopologyVersion topVer;
+    private transient AffinityTopologyVersion topVer;
 
     /**
      * @param msg Error message.