You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by nt...@apache.org on 2015/07/24 14:50:42 UTC
[01/30] incubator-ignite git commit: 1.3.3-SNAPSHOT
Repository: incubator-ignite
Updated Branches:
refs/heads/master cff25e91a -> e4a7dc523
1.3.3-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/f5cc4a1d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f5cc4a1d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f5cc4a1d
Branch: refs/heads/master
Commit: f5cc4a1d26237d052e6d86795a370ba8c931af3b
Parents: 6711d2c
Author: Ignite Teamcity <ig...@apache.org>
Authored: Tue Jul 21 14:12:40 2015 +0300
Committer: Ignite Teamcity <ig...@apache.org>
Committed: Tue Jul 21 14:12:40 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/f5cc4a1d/examples/pom.xml
----------------------------------------------------------------------
diff --git a/examples/pom.xml b/examples/pom.xml
index 6d3fb07..1338a18 100644
--- a/examples/pom.xml
+++ b/examples/pom.xml
@@ -28,7 +28,7 @@
</parent>
<artifactId>ignite-examples</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/aop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aop/pom.xml b/modules/aop/pom.xml
index 3c55e7d..194ffab 100644
--- a/modules/aop/pom.xml
+++ b/modules/aop/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-aop</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/apache-license-gen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/apache-license-gen/pom.xml b/modules/apache-license-gen/pom.xml
index 2edb962..104624a 100644
--- a/modules/apache-license-gen/pom.xml
+++ b/modules/apache-license-gen/pom.xml
@@ -31,7 +31,7 @@
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-apache-license-gen</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<build>
<plugins>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/aws/pom.xml
----------------------------------------------------------------------
diff --git a/modules/aws/pom.xml b/modules/aws/pom.xml
index 4a568b0..37f6250 100644
--- a/modules/aws/pom.xml
+++ b/modules/aws/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-aws</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/clients/pom.xml
----------------------------------------------------------------------
diff --git a/modules/clients/pom.xml b/modules/clients/pom.xml
index 68204f3..1b33d4b 100644
--- a/modules/clients/pom.xml
+++ b/modules/clients/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-clients</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/cloud/pom.xml
----------------------------------------------------------------------
diff --git a/modules/cloud/pom.xml b/modules/cloud/pom.xml
index a183522..45d08e7 100644
--- a/modules/cloud/pom.xml
+++ b/modules/cloud/pom.xml
@@ -29,7 +29,7 @@
</parent>
<artifactId>ignite-cloud</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<properties>
<jcloud.version>1.9.0</jcloud.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/codegen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/codegen/pom.xml b/modules/codegen/pom.xml
index ea9615c..2e8e4ed 100644
--- a/modules/codegen/pom.xml
+++ b/modules/codegen/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-codegen</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/core/pom.xml
----------------------------------------------------------------------
diff --git a/modules/core/pom.xml b/modules/core/pom.xml
index c42be3d..222e14b 100644
--- a/modules/core/pom.xml
+++ b/modules/core/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-core</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/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 2313ac3..44e954e 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.2-SNAPSHOT
+ignite.version=1.3.3-SNAPSHOT
ignite.build=0
ignite.revision=DEV
ignite.rel.date=01011970
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/extdata/p2p/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/p2p/pom.xml b/modules/extdata/p2p/pom.xml
index 5a80380..ad9fc03 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/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 b8e4742..a0ed86e 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<modelVersion>4.0.0</modelVersion>
<dependencies>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/extdata/uri/pom.xml
----------------------------------------------------------------------
diff --git a/modules/extdata/uri/pom.xml b/modules/extdata/uri/pom.xml
index e4e5bb6..46ec215 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/gce/pom.xml
----------------------------------------------------------------------
diff --git a/modules/gce/pom.xml b/modules/gce/pom.xml
index b1be8ea..3c13c4c 100644
--- a/modules/gce/pom.xml
+++ b/modules/gce/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-gce</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/geospatial/pom.xml
----------------------------------------------------------------------
diff --git a/modules/geospatial/pom.xml b/modules/geospatial/pom.xml
index ecee8d4..33fda30 100644
--- a/modules/geospatial/pom.xml
+++ b/modules/geospatial/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-geospatial</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/hadoop/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hadoop/pom.xml b/modules/hadoop/pom.xml
index 555778c..eee70d6 100644
--- a/modules/hadoop/pom.xml
+++ b/modules/hadoop/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-hadoop</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/hibernate/pom.xml
----------------------------------------------------------------------
diff --git a/modules/hibernate/pom.xml b/modules/hibernate/pom.xml
index 5976baa..a583d52 100644
--- a/modules/hibernate/pom.xml
+++ b/modules/hibernate/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-hibernate</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/indexing/pom.xml
----------------------------------------------------------------------
diff --git a/modules/indexing/pom.xml b/modules/indexing/pom.xml
index 067ec2d..bf2b369 100644
--- a/modules/indexing/pom.xml
+++ b/modules/indexing/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-indexing</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/jcl/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jcl/pom.xml b/modules/jcl/pom.xml
index ed864ce..9583e52 100644
--- a/modules/jcl/pom.xml
+++ b/modules/jcl/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-jcl</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/jta/pom.xml
----------------------------------------------------------------------
diff --git a/modules/jta/pom.xml b/modules/jta/pom.xml
index ca5546c..2007d1b 100644
--- a/modules/jta/pom.xml
+++ b/modules/jta/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-jta</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/kafka/pom.xml
----------------------------------------------------------------------
diff --git a/modules/kafka/pom.xml b/modules/kafka/pom.xml
index 5a8cb72..6a15c48 100644
--- a/modules/kafka/pom.xml
+++ b/modules/kafka/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-kafka</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/log4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/log4j/pom.xml b/modules/log4j/pom.xml
index 0489518..6157eba 100644
--- a/modules/log4j/pom.xml
+++ b/modules/log4j/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-log4j</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/mesos/pom.xml
----------------------------------------------------------------------
diff --git a/modules/mesos/pom.xml b/modules/mesos/pom.xml
index 8a63a57..c207f79 100644
--- a/modules/mesos/pom.xml
+++ b/modules/mesos/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-mesos</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<properties>
<mesos.version>0.22.0</mesos.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/rest-http/pom.xml
----------------------------------------------------------------------
diff --git a/modules/rest-http/pom.xml b/modules/rest-http/pom.xml
index 5cb522d..7e06bae 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/scalar-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar-2.10/pom.xml b/modules/scalar-2.10/pom.xml
index 0770410..449dab2 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/scalar/pom.xml
----------------------------------------------------------------------
diff --git a/modules/scalar/pom.xml b/modules/scalar/pom.xml
index 4515772..ef39a79 100644
--- a/modules/scalar/pom.xml
+++ b/modules/scalar/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-scalar</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/schedule/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schedule/pom.xml b/modules/schedule/pom.xml
index 3b734b0..690f25b 100644
--- a/modules/schedule/pom.xml
+++ b/modules/schedule/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-schedule</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/schema-import/pom.xml
----------------------------------------------------------------------
diff --git a/modules/schema-import/pom.xml b/modules/schema-import/pom.xml
index 959e231..2c56a3f 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/slf4j/pom.xml
----------------------------------------------------------------------
diff --git a/modules/slf4j/pom.xml b/modules/slf4j/pom.xml
index 8fa09cb..7b51fcb 100644
--- a/modules/slf4j/pom.xml
+++ b/modules/slf4j/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-slf4j</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/spark-2.10/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark-2.10/pom.xml b/modules/spark-2.10/pom.xml
index 82b08bc..5b1745a 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/spark/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spark/pom.xml b/modules/spark/pom.xml
index 107424a..d793279 100644
--- a/modules/spark/pom.xml
+++ b/modules/spark/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-spark</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/spring/pom.xml
----------------------------------------------------------------------
diff --git a/modules/spring/pom.xml b/modules/spring/pom.xml
index fdd2b0a..afee3f4 100644
--- a/modules/spring/pom.xml
+++ b/modules/spring/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-spring</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/ssh/pom.xml
----------------------------------------------------------------------
diff --git a/modules/ssh/pom.xml b/modules/ssh/pom.xml
index 9fddc21..d6e9ab7 100644
--- a/modules/ssh/pom.xml
+++ b/modules/ssh/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-ssh</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/tools/pom.xml
----------------------------------------------------------------------
diff --git a/modules/tools/pom.xml b/modules/tools/pom.xml
index f58fbdc..83c800d 100644
--- a/modules/tools/pom.xml
+++ b/modules/tools/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-tools</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/urideploy/pom.xml
----------------------------------------------------------------------
diff --git a/modules/urideploy/pom.xml b/modules/urideploy/pom.xml
index 8c6224f..f22da10 100644
--- a/modules/urideploy/pom.xml
+++ b/modules/urideploy/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-urideploy</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/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 fe56751..fc0fa57 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/visor-console/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-console/pom.xml b/modules/visor-console/pom.xml
index b310d4c..a6a9678 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/visor-plugins/pom.xml
----------------------------------------------------------------------
diff --git a/modules/visor-plugins/pom.xml b/modules/visor-plugins/pom.xml
index 4417b49..fca86fd 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.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<!-- Ignite dependencies -->
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/web/pom.xml
----------------------------------------------------------------------
diff --git a/modules/web/pom.xml b/modules/web/pom.xml
index 74dd525..0a8d53f 100644
--- a/modules/web/pom.xml
+++ b/modules/web/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-web</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<dependencies>
<dependency>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/yardstick/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yardstick/pom.xml b/modules/yardstick/pom.xml
index 1044df1..853f9d4 100644
--- a/modules/yardstick/pom.xml
+++ b/modules/yardstick/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-yardstick</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<properties>
<yardstick.version>0.7.0</yardstick.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/modules/yarn/pom.xml
----------------------------------------------------------------------
diff --git a/modules/yarn/pom.xml b/modules/yarn/pom.xml
index 35728fa..2d90422 100644
--- a/modules/yarn/pom.xml
+++ b/modules/yarn/pom.xml
@@ -31,7 +31,7 @@
</parent>
<artifactId>ignite-yarn</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<properties>
<hadoop.version>2.7.0</hadoop.version>
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f5cc4a1d/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 29f5fa5..260e45b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,7 @@
<groupId>org.apache.ignite</groupId>
<artifactId>apache-ignite</artifactId>
- <version>1.3.2-SNAPSHOT</version>
+ <version>1.3.3-SNAPSHOT</version>
<packaging>pom</packaging>
<properties>
[23/30] incubator-ignite git commit: Decrease write buffer to avoid
double sending.
Posted by nt...@apache.org.
Decrease write buffer to avoid double sending.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/65feef6d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/65feef6d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/65feef6d
Branch: refs/heads/master
Commit: 65feef6d2d9bbe0ac19d1496f472c0ee06ef0b04
Parents: 6b84399
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jul 23 16:05:33 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jul 23 16:06:06 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/internal/util/nio/GridNioServer.java | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/65feef6d/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 24e1e08..d3f439a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -977,8 +977,14 @@ public class GridNioServer<T> {
buf = sslFilter.encrypt(ses, sesBuf);
+ int expand = sesBuf.limit() - buf.limit();
+
sesBuf.clear();
+ // SSL data more then socket buffer size
+ if (expand < 0)
+ sesBuf.limit(sesBuf.limit() + expand - 100);
+
assert buf.hasRemaining();
if (!skipWrite) {
[16/30] incubator-ignite git commit: #ignite-1.1.3: security fixes.
Posted by nt...@apache.org.
#ignite-1.1.3: security fixes.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8d063095
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8d063095
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8d063095
Branch: refs/heads/master
Commit: 8d063095c5b1ef1126737e5e01cd91d9832c5765
Parents: 993dec4
Author: ivasilinets <iv...@gridgain.com>
Authored: Wed Jul 22 20:15:58 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Wed Jul 22 20:15:58 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/processors/task/GridTaskProcessor.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8d063095/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
index d59a51d..a19b0b4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
@@ -113,7 +113,8 @@ public class GridTaskProcessor extends GridProcessorAdapter {
/** {@inheritDoc} */
@Override public void onKernalStart() throws IgniteCheckedException {
- tasksMetaCache = ctx.security().enabled() ? ctx.cache().<GridTaskNameHashKey, String>utilityCache() : null;
+ tasksMetaCache = ctx.security().enabled() && !ctx.isDaemon() ?
+ ctx.cache().<GridTaskNameHashKey, String>utilityCache() : null;
startLatch.countDown();
}
[17/30] incubator-ignite git commit: HELPDESC-777 Add
IGNITE_MBEAN_APPEND_CLASS_LOADER_ID system property.
Posted by nt...@apache.org.
HELPDESC-777 Add IGNITE_MBEAN_APPEND_CLASS_LOADER_ID system property.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/42647998
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/42647998
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/42647998
Branch: refs/heads/master
Commit: 426479984f2f5fd972bacb3e063977a666a144ab
Parents: 8d06309
Author: sevdokimov <se...@jetbrains.com>
Authored: Wed Jul 22 13:38:09 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Wed Jul 22 20:30:17 2015 +0300
----------------------------------------------------------------------
.../main/java/org/apache/ignite/IgniteSystemProperties.java | 8 ++++++++
.../java/org/apache/ignite/internal/util/IgniteUtils.java | 6 ++++--
2 files changed, 12 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/42647998/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index 40fc873..b5685b2 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -317,6 +317,14 @@ public final class IgniteSystemProperties {
public static final String IGNITE_MBEAN_APPEND_JVM_ID = "IGNITE_MBEAN_APPEND_JVM_ID";
/**
+ * If this property is set to {@code true} then Ignite will append
+ * hash code of class loader to bean name returned by {@link RuntimeMXBean#getName()}.
+ * <p>
+ * Default is {@code true}.
+ */
+ public static final String IGNITE_MBEAN_APPEND_CLASS_LOADER_ID = "IGNITE_MBEAN_APPEND_CLASS_LOADER_ID";
+
+ /**
* Property controlling size of buffer holding last exception. Default value of {@code 1000}.
*/
public static final String IGNITE_EXCEPTION_REGISTRY_MAX_SIZE = "IGNITE_EXCEPTION_REGISTRY_MAX_SIZE";
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/42647998/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 f457d6c..6bd361f 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
@@ -3997,9 +3997,11 @@ public abstract class IgniteUtils {
* @param sb Sb.
*/
private static void appendClassLoaderHash(SB sb) {
- String clsLdrHash = Integer.toHexString(Ignite.class.getClassLoader().hashCode());
+ if (getBoolean(IGNITE_MBEAN_APPEND_CLASS_LOADER_ID, true)) {
+ String clsLdrHash = Integer.toHexString(Ignite.class.getClassLoader().hashCode());
- sb.a("clsLdr=").a(clsLdrHash).a(',');
+ sb.a("clsLdr=").a(clsLdrHash).a(',');
+ }
}
/**
[02/30] incubator-ignite git commit: license generator deploy fix
Posted by nt...@apache.org.
license generator deploy fix
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/9cab55ad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9cab55ad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9cab55ad
Branch: refs/heads/master
Commit: 9cab55adab3cc23c20cbf86512e8faa446ac6929
Parents: f5cc4a1
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Tue Jul 21 14:43:29 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Tue Jul 21 14:43:29 2015 +0300
----------------------------------------------------------------------
modules/apache-license-gen/pom.xml | 13 -------------
1 file changed, 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9cab55ad/modules/apache-license-gen/pom.xml
----------------------------------------------------------------------
diff --git a/modules/apache-license-gen/pom.xml b/modules/apache-license-gen/pom.xml
index 104624a..11259a5 100644
--- a/modules/apache-license-gen/pom.xml
+++ b/modules/apache-license-gen/pom.xml
@@ -32,17 +32,4 @@
<groupId>org.apache.ignite</groupId>
<artifactId>ignite-apache-license-gen</artifactId>
<version>1.3.3-SNAPSHOT</version>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-deploy-plugin</artifactId>
- <inherited>false</inherited>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- </plugins>
- </build>
</project>
[26/30] incubator-ignite git commit: Fixed basic suite.
Posted by nt...@apache.org.
Fixed basic suite.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/fc1fb7a0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/fc1fb7a0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/fc1fb7a0
Branch: refs/heads/master
Commit: fc1fb7a06a912326aeda59a05511ee5150b19a9e
Parents: e22f030
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Fri Jul 24 10:12:16 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Jul 24 10:14:25 2015 +0300
----------------------------------------------------------------------
.../discovery/IgniteTopologyPrintFormatSelfTest.java | 6 +++---
.../cmdline/GridCommandLineTransformerSelfTest.java | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fc1fb7a0/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
index 2a71f28..2ec4dec 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/managers/discovery/IgniteTopologyPrintFormatSelfTest.java
@@ -124,7 +124,7 @@ public class IgniteTopologyPrintFormatSelfTest extends GridCommonAbstractTest {
assertTrue(F.forAny(log.logs(), new IgnitePredicate<String>() {
@Override public boolean apply(String s) {
- return s.contains("Topology snapshot [ver=2, server nodes=2, client nodes=0,")
+ return s.contains("Topology snapshot [ver=2, servers=2, clients=0,")
|| (s.contains(">>> Number of server nodes: 2") && s.contains(">>> Number of client nodes: 0"));
}
}));
@@ -174,7 +174,7 @@ public class IgniteTopologyPrintFormatSelfTest extends GridCommonAbstractTest {
assertTrue(F.forAny(log.logs(), new IgnitePredicate<String>() {
@Override public boolean apply(String s) {
- return s.contains("Topology snapshot [ver=4, server nodes=2, client nodes=2,")
+ return s.contains("Topology snapshot [ver=4, servers=2, clients=2,")
|| (s.contains(">>> Number of server nodes: 2") && s.contains(">>> Number of client nodes: 2"));
}
}));
@@ -225,7 +225,7 @@ public class IgniteTopologyPrintFormatSelfTest extends GridCommonAbstractTest {
assertTrue(F.forAny(log.logs(), new IgnitePredicate<String>() {
@Override public boolean apply(String s) {
- return s.contains("Topology snapshot [ver=5, server nodes=2, client nodes=3,")
+ return s.contains("Topology snapshot [ver=5, servers=2, clients=3,")
|| (s.contains(">>> Number of server nodes: 2") && s.contains(">>> Number of client nodes: 3"));
}
}));
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/fc1fb7a0/modules/core/src/test/java/org/apache/ignite/startup/cmdline/GridCommandLineTransformerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/startup/cmdline/GridCommandLineTransformerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/startup/cmdline/GridCommandLineTransformerSelfTest.java
index ec85532..dafc649 100644
--- a/modules/core/src/test/java/org/apache/ignite/startup/cmdline/GridCommandLineTransformerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/startup/cmdline/GridCommandLineTransformerSelfTest.java
@@ -32,7 +32,7 @@ public class GridCommandLineTransformerSelfTest extends GridCommonAbstractTest {
public void testTransformIfNoArguments() throws Exception {
assertEquals(
"\"INTERACTIVE=0\" \"QUIET=-DIGNITE_QUIET=true\" \"NO_PAUSE=0\" " +
- "\"JVM_XOPTS=\" \"CONFIG=\"",
+ "\"NO_JMX=0\" \"JVM_XOPTS=\" \"CONFIG=\"",
CommandLineTransformer.transform());
}
@@ -101,7 +101,7 @@ public class GridCommandLineTransformerSelfTest extends GridCommonAbstractTest {
*/
public void testTransformIfOnlyPathToConfigSpecified() throws Exception {
assertEquals(
- "\"INTERACTIVE=0\" \"QUIET=-DIGNITE_QUIET=true\" \"NO_PAUSE=0\" " +
+ "\"INTERACTIVE=0\" \"QUIET=-DIGNITE_QUIET=true\" \"NO_PAUSE=0\" \"NO_JMX=0\" " +
"\"JVM_XOPTS=\" \"CONFIG=c:\\qw.xml\"",
CommandLineTransformer.transform("c:\\qw.xml"));
}
@@ -111,10 +111,10 @@ public class GridCommandLineTransformerSelfTest extends GridCommonAbstractTest {
*/
public void testTransformIfAllSupportedArguments() throws Exception {
assertEquals(
- "\"INTERACTIVE=1\" \"QUIET=-DIGNITE_QUIET=false\" \"NO_PAUSE=1\" " +
- "\"JVM_XOPTS=-Xmx1g -Xms1m\" " +
- "\"CONFIG=\"c:\\path to\\русский каталог\"\"",
- CommandLineTransformer.transform("-i", "-np", "-v", "-J-Xmx1g", "-J-Xms1m",
+ "\"INTERACTIVE=1\" \"QUIET=-DIGNITE_QUIET=false\" \"NO_PAUSE=1\" \"NO_JMX=1\" " +
+ "\"JVM_XOPTS=-Xmx1g -Xms1m\" " +
+ "\"CONFIG=\"c:\\path to\\русский каталог\"\"",
+ CommandLineTransformer.transform("-i", "-np", "-v", "-J-Xmx1g", "-J-Xms1m", "-nojmx",
"\"c:\\path to\\русский каталог\""));
}
}
[13/30] incubator-ignite git commit: GG-10591 Force stop prev node
before start new one.
Posted by nt...@apache.org.
GG-10591 Force stop prev node before start new one.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/dd92a5a0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/dd92a5a0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/dd92a5a0
Branch: refs/heads/master
Commit: dd92a5a0785a84f0d2a8226a9199a1fb78c4db93
Parents: a749ed8
Author: AKuznetsov <ak...@gridgain.com>
Authored: Wed Jul 22 18:23:52 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Wed Jul 22 18:23:52 2015 +0700
----------------------------------------------------------------------
.../org/apache/ignite/visor/commands/open/VisorOpenCommand.scala | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dd92a5a0/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
index 632a96b..5ec4cd0 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
@@ -241,6 +241,9 @@ class VisorOpenCommand extends VisorConsoleCommand {
cfg.setGridLogger(new NullLogger)
val startedGridName = try {
+ // We need to stop previous daemon node before to start new one.
+ Ignition.stopAll(true)
+
Ignition.start(cfg).name
}
finally {
[09/30] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-1.3.3' into ignite-1.3.3
Posted by nt...@apache.org.
Merge remote-tracking branch 'origin/ignite-1.3.3' into ignite-1.3.3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/8cfeb8e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/8cfeb8e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/8cfeb8e1
Branch: refs/heads/master
Commit: 8cfeb8e1ad264ccb48956f6f90c579d7160ff4da
Parents: 4b55407 bce894f
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jul 22 09:28:02 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jul 22 09:28:02 2015 +0300
----------------------------------------------------------------------
.../src/main/java/org/apache/ignite/Ignite.java | 2 +-
.../configuration/ConnectorConfiguration.java | 32 ++
.../configuration/IgniteConfiguration.java | 28 ++
.../apache/ignite/internal/IgniteKernal.java | 3 +-
.../client/ssl/GridSslBasicContextFactory.java | 3 +
.../client/ssl/GridSslContextFactory.java | 5 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 17 +-
.../util/nio/GridNioSessionMetaKey.java | 5 +-
.../util/nio/ssl/BlockingSslHandler.java | 473 +++++++++++++++++++
.../internal/util/nio/ssl/GridNioSslFilter.java | 2 +
.../util/nio/ssl/GridNioSslHandler.java | 12 +-
.../communication/tcp/TcpCommunicationSpi.java | 158 ++++++-
.../ignite/spi/discovery/tcp/ServerImpl.java | 5 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 34 +-
.../apache/ignite/ssl/SslContextFactory.java | 458 ++++++++++++++++++
.../org/apache/ignite/ssl/package-info.java | 22 +
.../GridAbstractCommunicationSelfTest.java | 13 +
.../tcp/GridTcpCommunicationSpiSslSelfTest.java | 38 ++
.../discovery/AbstractDiscoverySelfTest.java | 13 +
.../tcp/TcpDiscoverySpiSslSelfTest.java | 28 ++
.../discovery/tcp/TcpDiscoverySslSelfTest.java | 42 ++
.../ignite/testframework/GridTestUtils.java | 20 +
.../ignite/testframework/junits/IgniteMock.java | 13 +
.../IgniteSpiDiscoverySelfTestSuite.java | 3 +
parent/pom.xml | 2 +-
25 files changed, 1399 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
[07/30] incubator-ignite git commit: Removed @Nullable annotation
Posted by nt...@apache.org.
Removed @Nullable annotation
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/bce894fd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/bce894fd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/bce894fd
Branch: refs/heads/master
Commit: bce894fdf0886bde29cdc9502ecf2e95aebe8dd8
Parents: 2650845
Author: Valentin Kulichenko <vk...@gridgain.com>
Authored: Tue Jul 21 13:06:17 2015 -0700
Committer: Valentin Kulichenko <vk...@gridgain.com>
Committed: Tue Jul 21 13:06:17 2015 -0700
----------------------------------------------------------------------
modules/core/src/main/java/org/apache/ignite/Ignite.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/bce894fd/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index 7103b1b..209946b 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -308,7 +308,7 @@ public interface Ignite extends AutoCloseable {
* @param name Cache name.
* @return Instance of the cache for the specified name.
*/
- @Nullable public <K, V> IgniteCache<K, V> cache(@Nullable String name);
+ public <K, V> IgniteCache<K, V> cache(@Nullable String name);
/**
* Gets grid transactions facade.
[04/30] incubator-ignite git commit: Fixed javadoc.
Posted by nt...@apache.org.
Fixed javadoc.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/36dc9209
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/36dc9209
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/36dc9209
Branch: refs/heads/master
Commit: 36dc9209441fa28c83b7e6f0d24156f679160a2e
Parents: 1fd3189
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Tue Jul 21 21:29:52 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Tue Jul 21 21:29:52 2015 +0300
----------------------------------------------------------------------
parent/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36dc9209/parent/pom.xml
----------------------------------------------------------------------
diff --git a/parent/pom.xml b/parent/pom.xml
index 55d0b43..2d18ee7 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -244,7 +244,7 @@
</group>
<group>
<title>Security APIs</title>
- <packages>org.apache.ignite.plugin.security</packages>
+ <packages>org.apache.ignite.plugin.security:org.apache.ignite.ssl</packages>
</group>
<group>
<title>MXBeans classes</title>
[06/30] incubator-ignite git commit: IGNITE-323. Fixed javadoc.
Posted by nt...@apache.org.
IGNITE-323. Fixed javadoc.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/2650845e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2650845e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2650845e
Branch: refs/heads/master
Commit: 2650845e7b3770bfc22491fb5abc5f026e33c745
Parents: f7317ea
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Tue Jul 21 22:13:52 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Tue Jul 21 22:13:52 2015 +0300
----------------------------------------------------------------------
.../org/apache/ignite/configuration/ConnectorConfiguration.java | 4 ++--
.../ignite/internal/client/ssl/GridSslBasicContextFactory.java | 2 +-
.../apache/ignite/internal/client/ssl/GridSslContextFactory.java | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2650845e/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
index a518cd8..98753e2 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
@@ -467,11 +467,11 @@ public class ConnectorConfiguration {
}
/**
- * Sets instance of {@link Factory<SSLContext>} that will be used to create an instance of {@code SSLContext}
+ * Sets instance of {@link Factory} that will be used to create an instance of {@code SSLContext}
* for Secure Socket Layer on TCP binary protocol. This factory will only be used if
* {@link #setSslEnabled(boolean)} is set to {@code true}.
*
- * @param sslFactory Instance of {@link Factory<SSLContext>}
+ * @param sslFactory Instance of {@link Factory}
*/
public void setSslFactory(Factory<SSLContext> sslFactory) {
this.sslFactory = sslFactory;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2650845e/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
index d9a1f9d..ed52218 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
@@ -38,7 +38,7 @@ import java.util.*;
* factory.setTrustManagers(GridSslBasicContextFactory.getDisabledTrustManager());
* // Rest of initialization.
* </pre>
- * @deprecated Use {@link Factory<SSLContext>} instead.
+ * @deprecated Use {@link Factory} instead.
*/
@Deprecated
public class GridSslBasicContextFactory implements GridSslContextFactory {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2650845e/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
index 7ae1995..34a13cf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
@@ -25,7 +25,7 @@ import javax.net.ssl.*;
* <p>
* Usually, it is enough to configure context from a particular key and trust stores, this functionality is provided
* in {@link GridSslBasicContextFactory}.
- * @deprecated Use {@link Factory<SSLContext>} instead.
+ * @deprecated Use {@link Factory} instead.
*/
@Deprecated
public interface GridSslContextFactory {
[22/30] incubator-ignite git commit: Merge branch 'ignite-gg-10591'
into ignite-1.3.3
Posted by nt...@apache.org.
Merge branch 'ignite-gg-10591' into ignite-1.3.3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/6b84399d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/6b84399d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/6b84399d
Branch: refs/heads/master
Commit: 6b84399d77f0a7cb9e9aa7866353fcd4837a7d2b
Parents: f49db31 c9ee1da
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 23 17:07:39 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 23 17:07:39 2015 +0700
----------------------------------------------------------------------
.../visor/commands/open/VisorOpenCommand.scala | 16 +++++-----------
.../main/scala/org/apache/ignite/visor/visor.scala | 3 +++
2 files changed, 8 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
[27/30] incubator-ignite git commit: Moved changes from mater for
test with 150 clients.
Posted by nt...@apache.org.
Moved changes from mater for test with 150 clients.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/ccebd43a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/ccebd43a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/ccebd43a
Branch: refs/heads/master
Commit: ccebd43af56950b11644cb778572c9c10fd56a2a
Parents: fc1fb7a
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Fri Jul 24 10:45:02 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Jul 24 10:45:02 2015 +0300
----------------------------------------------------------------------
.../processors/cache/distributed/IgniteCache150ClientsTest.java | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ccebd43a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
index 282c7c8..3fc44c0 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/IgniteCache150ClientsTest.java
@@ -51,6 +51,7 @@ public class IgniteCache150ClientsTest extends GridCommonAbstractTest {
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
+ cfg.setLocalHost("127.0.0.1");
cfg.setNetworkTimeout(30_000);
cfg.setConnectorConfiguration(null);
cfg.setPeerClassLoadingEnabled(false);
[30/30] incubator-ignite git commit: Merge remote-tracking branch
'origin/master'
Posted by nt...@apache.org.
Merge remote-tracking branch 'origin/master'
Conflicts:
modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e4a7dc52
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e4a7dc52
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e4a7dc52
Branch: refs/heads/master
Commit: e4a7dc5239bf5581af28f5c37438498a17e5d2c6
Parents: 1bc9ad2 cff25e9
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Fri Jul 24 15:48:44 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Jul 24 15:48:44 2015 +0300
----------------------------------------------------------------------
.../configuration/IgniteConfiguration.java | 35 +-
.../org/apache/ignite/spi/IgniteSpiAdapter.java | 58 +++
.../spi/IgniteSpiOperationTimeoutException.java | 43 ++
.../spi/IgniteSpiOperationTimeoutHelper.java | 102 ++++
.../communication/tcp/TcpCommunicationSpi.java | 122 ++++-
.../ignite/spi/discovery/tcp/ClientImpl.java | 52 +-
.../ignite/spi/discovery/tcp/ServerImpl.java | 509 +++++++++++--------
.../spi/discovery/tcp/TcpDiscoveryImpl.java | 11 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 135 +++--
.../tcp/internal/TcpDiscoveryNode.java | 21 +
.../TcpDiscoveryConnectionCheckMessage.java | 64 +++
.../IgniteClientReconnectAbstractTest.java | 4 +-
.../GridTcpCommunicationSpiAbstractTest.java | 2 +-
...dTcpCommunicationSpiRecoveryAckSelfTest.java | 3 +-
...tionSpiRecoveryFailureDetectionSelfTest.java | 54 ++
...GridTcpCommunicationSpiRecoverySelfTest.java | 23 +-
...unicationSpiTcpFailureDetectionSelfTest.java | 75 +++
.../discovery/AbstractDiscoverySelfTest.java | 23 +-
...lientDiscoverySpiFailureTimeoutSelfTest.java | 205 ++++++++
.../tcp/TcpClientDiscoverySpiSelfTest.java | 116 +++--
.../tcp/TcpDiscoverySpiConfigSelfTest.java | 1 +
.../TcpDiscoverySpiFailureTimeoutSelfTest.java | 402 +++++++++++++++
.../IgniteSpiCommunicationSelfTestSuite.java | 3 +
.../IgniteSpiDiscoverySelfTestSuite.java | 2 +
24 files changed, 1749 insertions(+), 316 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e4a7dc52/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e4a7dc52/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 35911969,7be1dbc..f76025d
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@@ -1964,15 -1971,25 +2007,25 @@@ public class TcpCommunicationSpi extend
}
try {
- safeHandshake(client, null, node.id(), connTimeout0, null);
- safeHandshake(client, null, node.id(), timeoutHelper.nextTimeoutChunk(connTimeout0));
++ safeHandshake(client, null, node.id(), timeoutHelper.nextTimeoutChunk(connTimeout0), null);
}
- catch (HandshakeTimeoutException e) {
+ catch (HandshakeTimeoutException | IgniteSpiOperationTimeoutException e) {
+ client.forceClose();
+
+ if (failureDetectionTimeoutEnabled() && (e instanceof HandshakeTimeoutException ||
+ timeoutHelper.checkFailureTimeoutReached(e))) {
+ log.debug("Handshake timed out (failure threshold reached) [failureDetectionTimeout=" +
+ failureDetectionTimeout() + ", err=" + e.getMessage() + ", client=" + client + ']');
+
+ throw e;
+ }
+
+ assert !failureDetectionTimeoutEnabled();
+
if (log.isDebugEnabled())
- log.debug("Handshake timedout (will retry with increased timeout) [timeout=" + connTimeout0 +
+ log.debug("Handshake timed out (will retry with increased timeout) [timeout=" + connTimeout0 +
", err=" + e.getMessage() + ", client=" + client + ']');
- client.forceClose();
-
if (attempt == reconCnt || connTimeout0 > maxConnTimeout) {
if (log.isDebugEnabled())
log.debug("Handshake timedout (will stop attempts to perform the handshake) " +
@@@ -2111,18 -2130,11 +2166,19 @@@
long rcvCnt = -1;
+ SSLEngine sslEngine = null;
+
try {
- ch.socket().connect(addr, (int)connTimeout);
+ ch.socket().connect(addr, (int)timeoutHelper.nextTimeoutChunk(connTimeout));
+ if (isSslEnabled()) {
+ sslEngine = ignite.configuration().getSslContextFactory().create().createSSLEngine();
+
+ sslEngine.setUseClientMode(true);
+ }
+
- rcvCnt = safeHandshake(ch, recoveryDesc, node.id(), connTimeout0, sslEngine);
+ rcvCnt = safeHandshake(ch, recoveryDesc, node.id(),
- timeoutHelper.nextTimeoutChunk(connTimeout0));
++ timeoutHelper.nextTimeoutChunk(connTimeout0), sslEngine);
if (rcvCnt == -1)
return null;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e4a7dc52/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e4a7dc52/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e4a7dc52/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e4a7dc52/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
[29/30] incubator-ignite git commit: Merge branch 'ignite-1.3.3' into
master.
Posted by nt...@apache.org.
Merge branch 'ignite-1.3.3' into master.
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/configuration/IgniteConfiguration.java
modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
modules/core/src/main/resources/ignite.properties
modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.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
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/1bc9ad2e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/1bc9ad2e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/1bc9ad2e
Branch: refs/heads/master
Commit: 1bc9ad2e80dd2ab04b745c9cbc661362d9a45723
Parents: ae148f1 5082d63
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Fri Jul 24 15:46:02 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Jul 24 15:46:02 2015 +0300
----------------------------------------------------------------------
examples/config/example-ignite.xml | 2 +-
.../src/main/java/org/apache/ignite/Ignite.java | 2 +-
.../configuration/ConnectorConfiguration.java | 32 ++
.../configuration/IgniteConfiguration.java | 28 +
.../apache/ignite/internal/IgniteKernal.java | 4 +-
.../GridClientConnectionManagerAdapter.java | 2 +-
.../client/router/impl/GridTcpRouterImpl.java | 2 +-
.../client/ssl/GridSslBasicContextFactory.java | 3 +
.../client/ssl/GridSslContextFactory.java | 5 +-
.../discovery/GridDiscoveryManager.java | 7 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 20 +-
.../processors/task/GridTaskProcessor.java | 3 +-
.../ignite/internal/util/nio/GridNioServer.java | 28 +-
.../util/nio/GridNioSessionMetaKey.java | 5 +-
.../util/nio/ssl/BlockingSslHandler.java | 519 +++++++++++++++++++
.../internal/util/nio/ssl/GridNioSslFilter.java | 53 +-
.../util/nio/ssl/GridNioSslHandler.java | 79 ++-
.../communication/tcp/TcpCommunicationSpi.java | 176 ++++++-
.../ignite/spi/discovery/tcp/ServerImpl.java | 20 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 34 +-
.../apache/ignite/ssl/SslContextFactory.java | 458 ++++++++++++++++
.../org/apache/ignite/ssl/package-info.java | 22 +
.../IgniteTopologyPrintFormatSelfTest.java | 6 +-
.../internal/util/nio/GridNioSslSelfTest.java | 2 +-
.../GridAbstractCommunicationSelfTest.java | 13 +
.../tcp/GridTcpCommunicationSpiSslSelfTest.java | 38 ++
.../tcp/IgniteCacheSslStartStopSelfTest.java | 46 ++
.../discovery/AbstractDiscoverySelfTest.java | 13 +
.../tcp/TcpDiscoverySpiSslSelfTest.java | 28 +
.../discovery/tcp/TcpDiscoverySslSelfTest.java | 42 ++
.../ignite/testframework/GridTestUtils.java | 20 +
.../ignite/testframework/junits/IgniteMock.java | 13 +
.../IgniteCacheFailoverTestSuite.java | 4 +-
.../IgniteSpiDiscoverySelfTestSuite.java | 3 +
.../visor/commands/open/VisorOpenCommand.scala | 17 +-
.../scala/org/apache/ignite/visor/visor.scala | 3 +
parent/pom.xml | 2 +-
37 files changed, 1646 insertions(+), 108 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 823ddcd,54ef2ba..aa9bfac
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@@ -59,7 -60,7 +60,8 @@@ import javax.cache.expiry.*
import javax.cache.integration.*;
import javax.cache.processor.*;
import javax.management.*;
+import java.io.*;
+ import javax.net.ssl.*;
import java.lang.management.*;
import java.util.*;
@@@ -401,9 -402,9 +403,12 @@@ public class IgniteConfiguration
/** Cache store session listeners. */
private Factory<CacheStoreSessionListener>[] storeSesLsnrs;
+ /** Consistent globally unique node ID which survives node restarts. */
+ private Serializable consistentId;
+
+ /** SSL connection factory. */
+ private Factory<SSLContext> sslCtxFactory;
+
/**
* Creates valid grid configuration with all default values.
*/
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 068d374,fac6f6d..a7363af
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@@ -1094,14 -1027,13 +1094,13 @@@ public class GridDiscoveryManager exten
* @param heap Heap size.
* @return Topology snapshot message.
*/
- private String topologySnapshotMessage(int serverNodesNum, int clientNodesNum, int totalCpus, double heap) {
+ private String topologySnapshotMessage(int srvNodesNum, int clientNodesNum, int totalCpus, double heap) {
return PREFIX + " [" +
(discoOrdered ? "ver=" + topSnap.get().topVer.topologyVersion() + ", " : "") +
- "server nodes=" + srvNodesNum +
- ", client nodes=" + clientNodesNum +
- "servers=" + serverNodesNum +
++ "servers=" + srvNodesNum +
+ ", clients=" + clientNodesNum +
", CPUs=" + totalCpus +
- ", heap=" + heap + "GB" +
- ']';
+ ", heap=" + heap + "GB]";
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index e9fd696,a0acb5c..35911969
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@@ -2261,10 -2285,16 +2341,16 @@@ public class TcpCommunicationSpi extend
else if (log.isDebugEnabled())
log.debug("Received remote node ID: " + rmtNodeId0);
- ch.write(ByteBuffer.wrap(U.IGNITE_HEADER));
+ if (isSslEnabled() ) {
+ assert sslHnd != null;
+
+ ch.write(sslHnd.encrypt(ByteBuffer.wrap(U.IGNITE_HEADER)));
+ }
+ else
+ ch.write(ByteBuffer.wrap(U.IGNITE_HEADER));
if (recovery != null) {
- HandshakeMessage msg = new HandshakeMessage(getLocalNodeId(),
+ HandshakeMessage msg = new HandshakeMessage(getLocalNode().id(),
recovery.incrementConnectCount(),
recovery.receivedCount());
@@@ -2281,11 -2311,24 +2367,23 @@@
buf.flip();
- ch.write(buf);
+ if (isSslEnabled()) {
+ assert sslHnd != null;
+
+ ch.write(sslHnd.encrypt(buf));
+ }
+ else
+ ch.write(buf);
}
- else
- ch.write(ByteBuffer.wrap(nodeIdMessage().nodeIdBytesWithType));
+ else {
+ if (isSslEnabled()) {
+ assert sslHnd != null;
- ch.write(sslHnd.encrypt(ByteBuffer.wrap(nodeIdMsg.nodeIdBytesWithType)));
++ ch.write(sslHnd.encrypt(ByteBuffer.wrap(nodeIdMessage().nodeIdBytesWithType)));
+ }
+ else
- ch.write(ByteBuffer.wrap(nodeIdMsg.nodeIdBytesWithType));
++ ch.write(ByteBuffer.wrap(nodeIdMessage().nodeIdBytesWithType));
+ }
-
if (recovery != null) {
if (log.isDebugEnabled())
log.debug("Waiting for handshake [rmtNode=" + rmtNodeId + ']');
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
index 73f5ba5,ba22395..9ae0928
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
@@@ -72,7 -69,12 +72,7 @@@ public class GridNioSslSelfTest extend
.sendQueueLimit(0)
.filters(
new GridNioCodecFilter(parser, log, false),
- new GridNioSslFilter(sslCtx, log));
- new GridNioSslFilter(sslCtx, true, ByteOrder.nativeOrder(), log))
- .build();
-
- srvr.start();
-
- return srvr;
++ new GridNioSslFilter(sslCtx, true, ByteOrder.nativeOrder(), log));
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1bc9ad2e/parent/pom.xml
----------------------------------------------------------------------
[28/30] incubator-ignite git commit: Added byteOrder and directBuffer
flag to GridNioSslHandler.
Posted by nt...@apache.org.
Added byteOrder and directBuffer flag to GridNioSslHandler.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/5082d63a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/5082d63a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/5082d63a
Branch: refs/heads/master
Commit: 5082d63a3fbdc1a4ba8da38bb5d10c27a629aebc
Parents: ccebd43
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Fri Jul 24 15:18:29 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Fri Jul 24 15:18:29 2015 +0300
----------------------------------------------------------------------
.../GridClientConnectionManagerAdapter.java | 2 +-
.../client/router/impl/GridTcpRouterImpl.java | 2 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 3 +-
.../util/nio/ssl/BlockingSslHandler.java | 37 ++++++++++-
.../internal/util/nio/ssl/GridNioSslFilter.java | 49 ++++----------
.../util/nio/ssl/GridNioSslHandler.java | 69 ++++++++++++++++++--
.../communication/tcp/TcpCommunicationSpi.java | 3 +-
.../internal/util/nio/GridNioSslSelfTest.java | 2 +-
8 files changed, 117 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java
index 166eed5..e8d29b4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/impl/connection/GridClientConnectionManagerAdapter.java
@@ -146,7 +146,7 @@ public abstract class GridClientConnectionManagerAdapter implements GridClientCo
GridNioFilter codecFilter = new GridNioCodecFilter(new GridTcpRestParser(routerClient), gridLog, false);
if (sslCtx != null) {
- GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx, gridLog);
+ GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx, true, ByteOrder.nativeOrder(), gridLog);
sslFilter.directMode(false);
sslFilter.clientMode(true);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java
index cd4c607..7b1cd8b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/router/impl/GridTcpRouterImpl.java
@@ -228,7 +228,7 @@ public class GridTcpRouterImpl implements GridTcpRouter, GridTcpRouterMBean, Lif
GridNioFilter[] filters;
if (sslCtx != null) {
- GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx, log);
+ GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx, false, ByteOrder.nativeOrder(), log);
sslFilter.wantClientAuth(wantClientAuth);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
index c37c17d..689e050 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
@@ -215,7 +215,8 @@ public class GridTcpRestProtocol extends GridRestProtocolAdapter {
GridNioFilter[] filters;
if (sslCtx != null) {
- GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx, log);
+ GridNioSslFilter sslFilter = new GridNioSslFilter(sslCtx,
+ cfg.isDirectBuffer(), ByteOrder.nativeOrder(), log);
sslFilter.directMode(false);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
index 9890efe..ee95308 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
@@ -18,7 +18,6 @@
package org.apache.ignite.internal.util.nio.ssl;
import org.apache.ignite.*;
-import org.apache.ignite.internal.util.future.*;
import org.apache.ignite.internal.util.nio.*;
import org.apache.ignite.internal.util.typedef.internal.*;
@@ -30,7 +29,6 @@ import java.nio.channels.*;
import static javax.net.ssl.SSLEngineResult.HandshakeStatus.*;
import static javax.net.ssl.SSLEngineResult.Status.*;
-import static org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter.*;
/**
*
@@ -483,4 +481,39 @@ public class BlockingSslHandler {
throw new IgniteCheckedException("Failed to write byte to socket.", e);
}
}
+
+ /**
+ * Expands the given byte buffer to the requested capacity.
+ *
+ * @param original Original byte buffer.
+ * @param cap Requested capacity.
+ * @return Expanded byte buffer.
+ */
+ private ByteBuffer expandBuffer(ByteBuffer original, int cap) {
+ ByteBuffer res = ByteBuffer.allocate(cap);
+
+ res.order(ByteOrder.nativeOrder());
+
+ original.flip();
+
+ res.put(original);
+
+ return res;
+ }
+
+ /**
+ * Copies the given byte buffer.
+ *
+ * @param original Byte buffer to copy.
+ * @return Copy of the original byte buffer.
+ */
+ private ByteBuffer copy(ByteBuffer original) {
+ ByteBuffer cp = ByteBuffer.allocate(original.remaining());
+
+ cp.put(original);
+
+ cp.flip();
+
+ return cp;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
index 596344b..c3cb084 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
@@ -52,6 +52,12 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
/** SSL context to use. */
private SSLContext sslCtx;
+ /** Order. */
+ private ByteOrder order;
+
+ /** Allocate direct buffer or heap buffer. */
+ private boolean directBuf;
+
/** Whether SSLEngine should use client mode. */
private boolean clientMode;
@@ -62,13 +68,17 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
* Creates SSL filter.
*
* @param sslCtx SSL context.
+ * @param directBuf Direct buffer flag.
+ * @param order Byte order.
* @param log Logger to use.
*/
- public GridNioSslFilter(SSLContext sslCtx, IgniteLogger log) {
+ public GridNioSslFilter(SSLContext sslCtx, boolean directBuf, ByteOrder order, IgniteLogger log) {
super("SSL filter");
this.log = log;
this.sslCtx = sslCtx;
+ this.directBuf = directBuf;
+ this.order = order;
}
/**
@@ -151,7 +161,7 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
engine.setEnabledProtocols(enabledProtos);
try {
- GridNioSslHandler hnd = new GridNioSslHandler(this, ses, engine, log);
+ GridNioSslHandler hnd = new GridNioSslHandler(this, ses, engine, directBuf, order, log);
ses.addMeta(SSL_HANDLER.ordinal(), hnd);
@@ -384,39 +394,4 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
return (ByteBuffer)msg;
}
-
- /**
- * Expands the given byte buffer to the requested capacity.
- *
- * @param original Original byte buffer.
- * @param cap Requested capacity.
- * @return Expanded byte buffer.
- */
- public static ByteBuffer expandBuffer(ByteBuffer original, int cap) {
- ByteBuffer res = ByteBuffer.allocate(cap);
-
- res.order(ByteOrder.nativeOrder());
-
- original.flip();
-
- res.put(original);
-
- return res;
- }
-
- /**
- * Copies the given byte buffer.
- *
- * @param original Byte buffer to copy.
- * @return Copy of the original byte buffer.
- */
- public static ByteBuffer copy(ByteBuffer original) {
- ByteBuffer cp = ByteBuffer.allocate(original.remaining());
-
- cp.put(original);
-
- cp.flip();
-
- return cp;
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
index dc3d870..8c1ac5a 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
@@ -45,6 +45,12 @@ class GridNioSslHandler extends ReentrantLock {
/** SSL engine. */
private SSLEngine sslEngine;
+ /** Order. */
+ private ByteOrder order;
+
+ /** Allocate direct buffer or heap buffer. */
+ private boolean directBuf;
+
/** Session of this handler. */
private GridNioSession ses;
@@ -82,10 +88,16 @@ class GridNioSslHandler extends ReentrantLock {
* @param ses Session for which this handler was created.
* @param engine SSL engine instance for this handler.
* @param log Logger to use.
+ * @param directBuf Direct buffer flag.
+ * @param order Byte order.
* @throws SSLException If exception occurred when starting SSL handshake.
*/
- GridNioSslHandler(GridNioSslFilter parent, GridNioSession ses, SSLEngine engine, IgniteLogger log)
- throws SSLException {
+ GridNioSslHandler(GridNioSslFilter parent,
+ GridNioSession ses,
+ SSLEngine engine,
+ boolean directBuf,
+ ByteOrder order,
+ IgniteLogger log) throws SSLException {
assert parent != null;
assert ses != null;
assert engine != null;
@@ -93,6 +105,8 @@ class GridNioSslHandler extends ReentrantLock {
this.parent = parent;
this.ses = ses;
+ this.order = order;
+ this.directBuf = directBuf;
this.log = log;
sslEngine = engine;
@@ -111,8 +125,13 @@ class GridNioSslHandler extends ReentrantLock {
// Allocate a little bit more so SSL engine would not return buffer overflow status.
int netBufSize = sslEngine.getSession().getPacketBufferSize() + 50;
- outNetBuf = ByteBuffer.allocate(netBufSize);
- inNetBuf = ByteBuffer.allocate(netBufSize);
+ outNetBuf = directBuf ? ByteBuffer.allocateDirect(netBufSize) : ByteBuffer.allocate(netBufSize);
+
+ outNetBuf.order(order);
+
+ inNetBuf = directBuf ? ByteBuffer.allocateDirect(netBufSize) : ByteBuffer.allocate(netBufSize);
+
+ inNetBuf.order(order);
// Initially buffer is empty.
outNetBuf.position(0);
@@ -120,9 +139,9 @@ class GridNioSslHandler extends ReentrantLock {
int appBufSize = Math.max(sslEngine.getSession().getApplicationBufferSize() + 50, netBufSize * 2);
- appBuf = ByteBuffer.allocate(appBufSize);
+ appBuf = directBuf ? ByteBuffer.allocateDirect(appBufSize) : ByteBuffer.allocate(appBufSize);
- appBuf.order(ByteOrder.nativeOrder());
+ appBuf.order(order);
if (log.isDebugEnabled())
log.debug("Started SSL session [netBufSize=" + netBufSize + ", appBufSize=" + appBufSize + ']');
@@ -588,6 +607,44 @@ class GridNioSslHandler extends ReentrantLock {
}
/**
+ * Expands the given byte buffer to the requested capacity.
+ *
+ * @param original Original byte buffer.
+ * @param cap Requested capacity.
+ * @return Expanded byte buffer.
+ */
+ private ByteBuffer expandBuffer(ByteBuffer original, int cap) {
+ ByteBuffer res = directBuf ? ByteBuffer.allocateDirect(cap) : ByteBuffer.allocate(cap);
+
+ res.order(order);
+
+ original.flip();
+
+ res.put(original);
+
+ return res;
+ }
+
+ /**
+ * Copies the given byte buffer.
+ *
+ * @param original Byte buffer to copy.
+ * @return Copy of the original byte buffer.
+ */
+ private ByteBuffer copy(ByteBuffer original) {
+ ByteBuffer cp = directBuf ? ByteBuffer.allocateDirect(original.remaining()) :
+ ByteBuffer.allocate(original.remaining());
+
+ cp.order(order);
+
+ cp.put(original);
+
+ cp.flip();
+
+ return cp;
+ }
+
+ /**
* Write request for cases while handshake is not finished yet.
*/
private static class WriteRequest {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index a665a3a..a0acb5c 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -1478,7 +1478,8 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
if (isSslEnabled()) {
GridNioSslFilter sslFilter =
- new GridNioSslFilter(ignite.configuration().getSslContextFactory().create(), log);
+ new GridNioSslFilter(ignite.configuration().getSslContextFactory().create(),
+ true, ByteOrder.nativeOrder(), log);
sslFilter.directMode(true);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/5082d63a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
index 930b5d1..ba22395 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/nio/GridNioSslSelfTest.java
@@ -69,7 +69,7 @@ public class GridNioSslSelfTest extends GridNioSelfTest {
.sendQueueLimit(0)
.filters(
new GridNioCodecFilter(parser, log, false),
- new GridNioSslFilter(sslCtx, log))
+ new GridNioSslFilter(sslCtx, true, ByteOrder.nativeOrder(), log))
.build();
srvr.start();
[21/30] incubator-ignite git commit: Added client auth for servers.
Posted by nt...@apache.org.
Added client auth for servers.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f49db319
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f49db319
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f49db319
Branch: refs/heads/master
Commit: f49db319d7ff29259b46c4fb9850ac61c3394e83
Parents: e37efa3
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jul 23 11:51:19 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jul 23 11:51:19 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f49db319/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 48dc52e..a665a3a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -1482,6 +1482,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
sslFilter.directMode(true);
+ sslFilter.wantClientAuth(true);
+ sslFilter.needClientAuth(true);
+
filters = new GridNioFilter[] {
new GridNioCodecFilter(parser, log, true),
new GridConnectionBytesVerifyFilter(log),
[05/30] incubator-ignite git commit: Fixed build.
Posted by nt...@apache.org.
Fixed build.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f7317eac
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f7317eac
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f7317eac
Branch: refs/heads/master
Commit: f7317eaca8b0d39f044af6bb7bfa10b24adcd44a
Parents: 36dc920
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Tue Jul 21 21:54:09 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Tue Jul 21 21:54:09 2015 +0300
----------------------------------------------------------------------
.../src/main/java/org/apache/ignite/ssl/SslContextFactory.java | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f7317eac/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java b/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
index bf09541..d52dcf3 100644
--- a/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
@@ -41,6 +41,9 @@ import java.util.*;
* </pre>
*/
public class SslContextFactory implements Factory<SSLContext> {
+ /** */
+ private static final long serialVersionUID = 0L;
+
/** Default key store type. */
public static final String DFLT_STORE_TYPE = "JKS";
[25/30] incubator-ignite git commit: review
Posted by nt...@apache.org.
review
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e22f030e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e22f030e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e22f030e
Branch: refs/heads/master
Commit: e22f030e20521c3c05c9d1be2bde5c366f4bf7d4
Parents: 58c5a12
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri Jul 24 10:06:22 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Fri Jul 24 10:06:22 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e22f030e/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
index a05135f..596344b 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
@@ -182,7 +182,8 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
}
/** {@inheritDoc} */
- @Override public void onExceptionCaught(GridNioSession ses, IgniteCheckedException ex) throws IgniteCheckedException {
+ @Override public void onExceptionCaught(GridNioSession ses, IgniteCheckedException ex)
+ throws IgniteCheckedException {
proceedExceptionCaught(ses, ex);
}
@@ -327,7 +328,8 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
* @throws GridNioException If failed to forward requests to filter chain.
* @return Close future.
*/
- private GridNioFuture<Boolean> shutdownSession(GridNioSession ses, GridNioSslHandler hnd) throws IgniteCheckedException {
+ private GridNioFuture<Boolean> shutdownSession(GridNioSession ses, GridNioSslHandler hnd)
+ throws IgniteCheckedException {
try {
hnd.closeOutbound();
[15/30] incubator-ignite git commit: minor
Posted by nt...@apache.org.
minor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/993dec44
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/993dec44
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/993dec44
Branch: refs/heads/master
Commit: 993dec44d10db33106a3a4c63b61cae9425809ff
Parents: 26112a8
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jul 22 15:52:42 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jul 22 15:52:42 2015 +0300
----------------------------------------------------------------------
examples/config/example-ignite.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/993dec44/examples/config/example-ignite.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-ignite.xml b/examples/config/example-ignite.xml
index e746e59..e7adb54 100644
--- a/examples/config/example-ignite.xml
+++ b/examples/config/example-ignite.xml
@@ -68,7 +68,7 @@
-->
<!-- Uncomment static IP finder to enable static-based discovery of initial nodes. -->
<!--<bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">-->
- <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.vm.TcpDiscoveryVmIpFinder">
+ <bean class="org.apache.ignite.spi.discovery.tcp.ipfinder.multicast.TcpDiscoveryMulticastIpFinder">
<property name="addresses">
<list>
<!-- In distributed environment, replace with actual host IP address. -->
[03/30] incubator-ignite git commit: Cherry pick form IGNITE-323.
Posted by nt...@apache.org.
Cherry pick form IGNITE-323.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/1fd31892
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/1fd31892
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/1fd31892
Branch: refs/heads/master
Commit: 1fd31892c7a87ecd1c5584b45aecd0b30e3411fb
Parents: 9cab55a
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Tue Jul 21 21:26:09 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Tue Jul 21 21:26:09 2015 +0300
----------------------------------------------------------------------
.../configuration/ConnectorConfiguration.java | 32 ++
.../configuration/IgniteConfiguration.java | 28 ++
.../apache/ignite/internal/IgniteKernal.java | 3 +-
.../client/ssl/GridSslBasicContextFactory.java | 3 +
.../client/ssl/GridSslContextFactory.java | 5 +-
.../rest/protocols/tcp/GridTcpRestProtocol.java | 17 +-
.../util/nio/GridNioSessionMetaKey.java | 5 +-
.../util/nio/ssl/BlockingSslHandler.java | 473 +++++++++++++++++++
.../internal/util/nio/ssl/GridNioSslFilter.java | 2 +
.../util/nio/ssl/GridNioSslHandler.java | 12 +-
.../communication/tcp/TcpCommunicationSpi.java | 158 ++++++-
.../ignite/spi/discovery/tcp/ServerImpl.java | 5 +-
.../spi/discovery/tcp/TcpDiscoverySpi.java | 34 +-
.../apache/ignite/ssl/SslContextFactory.java | 455 ++++++++++++++++++
.../org/apache/ignite/ssl/package-info.java | 22 +
.../GridAbstractCommunicationSelfTest.java | 13 +
.../tcp/GridTcpCommunicationSpiSslSelfTest.java | 38 ++
.../discovery/AbstractDiscoverySelfTest.java | 13 +
.../tcp/TcpDiscoverySpiSslSelfTest.java | 28 ++
.../discovery/tcp/TcpDiscoverySslSelfTest.java | 42 ++
.../ignite/testframework/GridTestUtils.java | 20 +
.../ignite/testframework/junits/IgniteMock.java | 13 +
.../IgniteSpiDiscoverySelfTestSuite.java | 3 +
23 files changed, 1394 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
index 970c54b..a518cd8 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/ConnectorConfiguration.java
@@ -19,8 +19,12 @@ package org.apache.ignite.configuration;
import org.apache.ignite.*;
import org.apache.ignite.internal.client.ssl.*;
+import org.apache.ignite.ssl.*;
+
import org.jetbrains.annotations.*;
+import javax.cache.configuration.*;
+import javax.net.ssl.*;
import java.net.*;
/**
@@ -99,6 +103,9 @@ public class ConnectorConfiguration {
/** SSL context factory for rest binary server. */
private GridSslContextFactory sslCtxFactory;
+ /** SSL context factory for rest binary server. */
+ private Factory<SSLContext> sslFactory;
+
/** Port range */
private int portRange = DFLT_PORT_RANGE;
@@ -429,7 +436,9 @@ public class ConnectorConfiguration {
*
* @return SslContextFactory instance.
* @see GridSslContextFactory
+ * @deprecated Use {@link #getSslFactory()} instead.
*/
+ @Deprecated
public GridSslContextFactory getSslContextFactory() {
return sslCtxFactory;
}
@@ -440,12 +449,35 @@ public class ConnectorConfiguration {
* {@link #setSslEnabled(boolean)} is set to {@code true}.
*
* @param sslCtxFactory Instance of {@link GridSslContextFactory}
+ * @deprecated Use {@link #setSslFactory(Factory)} instead.
*/
+ @Deprecated
public void setSslContextFactory(GridSslContextFactory sslCtxFactory) {
this.sslCtxFactory = sslCtxFactory;
}
/**
+ * Gets context factory that will be used for creating a secure socket layer of rest binary server.
+ *
+ * @return SSL context factory instance.
+ * @see SslContextFactory
+ */
+ public Factory<SSLContext> getSslFactory() {
+ return sslFactory;
+ }
+
+ /**
+ * Sets instance of {@link Factory<SSLContext>} that will be used to create an instance of {@code SSLContext}
+ * for Secure Socket Layer on TCP binary protocol. This factory will only be used if
+ * {@link #setSslEnabled(boolean)} is set to {@code true}.
+ *
+ * @param sslFactory Instance of {@link Factory<SSLContext>}
+ */
+ public void setSslFactory(Factory<SSLContext> sslFactory) {
+ this.sslFactory = sslFactory;
+ }
+
+ /**
* Gets number of ports to try if configured port is already in use.
*
* @return Number of ports to try.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index 2d36c7a..54ef2ba 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@ -52,6 +52,7 @@ import org.apache.ignite.spi.loadbalancing.*;
import org.apache.ignite.spi.loadbalancing.roundrobin.*;
import org.apache.ignite.spi.swapspace.*;
import org.apache.ignite.spi.swapspace.file.*;
+import org.apache.ignite.ssl.*;
import javax.cache.configuration.*;
import javax.cache.event.*;
@@ -59,6 +60,7 @@ import javax.cache.expiry.*;
import javax.cache.integration.*;
import javax.cache.processor.*;
import javax.management.*;
+import javax.net.ssl.*;
import java.lang.management.*;
import java.util.*;
@@ -400,6 +402,9 @@ public class IgniteConfiguration {
/** Cache store session listeners. */
private Factory<CacheStoreSessionListener>[] storeSesLsnrs;
+ /** SSL connection factory. */
+ private Factory<SSLContext> sslCtxFactory;
+
/**
* Creates valid grid configuration with all default values.
*/
@@ -480,6 +485,7 @@ public class IgniteConfiguration {
segResolvers = cfg.getSegmentationResolvers();
sndRetryCnt = cfg.getNetworkSendRetryCount();
sndRetryDelay = cfg.getNetworkSendRetryDelay();
+ sslCtxFactory = cfg.getSslContextFactory();
storeSesLsnrs = cfg.getCacheStoreSessionListenerFactories();
svcCfgs = cfg.getServiceConfiguration();
sysPoolSize = cfg.getSystemThreadPoolSize();
@@ -1310,6 +1316,28 @@ public class IgniteConfiguration {
}
/**
+ * Sets SSL context factory that will be used for creating a secure socket layer.
+ *
+ * @param sslCtxFactory Ssl context factory.
+ * @see SslContextFactory
+ */
+ public IgniteConfiguration setSslContextFactory(Factory<SSLContext> sslCtxFactory) {
+ this.sslCtxFactory = sslCtxFactory;
+
+ return this;
+ }
+
+ /**
+ * Returns SSL context factory that will be used for creating a secure socket layer.
+ *
+ * @return SSL connection factory.
+ * @see SslContextFactory
+ */
+ public Factory<SSLContext> getSslContextFactory() {
+ return sslCtxFactory;
+ }
+
+ /**
* Should return fully configured event SPI implementation. If not provided,
* {@link MemoryEventStorageSpi} will be used.
*
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 024dc7b..8a246dc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -2065,7 +2065,8 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
assert log != null;
if (log.isInfoEnabled())
- log.info("Security status [authentication=" + onOff(ctx.security().enabled()) + ']');
+ log.info("Security status [authentication=" + onOff(ctx.security().enabled())
+ + ", communication encrypted=" + onOff(ctx.config().getSslContextFactory() != null) + ']');
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
index 92c34e0..d9a1f9d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslBasicContextFactory.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal.client.ssl;
import org.apache.ignite.internal.util.typedef.internal.*;
+import javax.cache.configuration.*;
import javax.net.ssl.*;
import java.io.*;
import java.security.*;
@@ -37,7 +38,9 @@ import java.util.*;
* factory.setTrustManagers(GridSslBasicContextFactory.getDisabledTrustManager());
* // Rest of initialization.
* </pre>
+ * @deprecated Use {@link Factory<SSLContext>} instead.
*/
+@Deprecated
public class GridSslBasicContextFactory implements GridSslContextFactory {
/** Default key store type. */
public static final String DFLT_STORE_TYPE = "JKS";
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
index 8a9cd13..7ae1995 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/client/ssl/GridSslContextFactory.java
@@ -17,14 +17,17 @@
package org.apache.ignite.internal.client.ssl;
+import javax.cache.configuration.*;
import javax.net.ssl.*;
/**
* This interface provides creation of SSL context both for server and client use.
* <p>
* Usually, it is enough to configure context from a particular key and trust stores, this functionality is provided
- * in {@link org.apache.ignite.internal.client.ssl.GridSslBasicContextFactory}.
+ * in {@link GridSslBasicContextFactory}.
+ * @deprecated Use {@link Factory<SSLContext>} instead.
*/
+@Deprecated
public interface GridSslContextFactory {
/**
* Creates SSL context based on factory settings.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
index 9b6f353..c37c17d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/protocols/tcp/GridTcpRestProtocol.java
@@ -35,6 +35,7 @@ import org.apache.ignite.marshaller.jdk.*;
import org.apache.ignite.spi.*;
import org.jetbrains.annotations.*;
+import javax.cache.configuration.*;
import javax.net.ssl.*;
import java.io.*;
import java.net.*;
@@ -106,13 +107,23 @@ public class GridTcpRestProtocol extends GridRestProtocolAdapter {
SSLContext sslCtx = null;
if (cfg.isSslEnabled()) {
- GridSslContextFactory factory = cfg.getSslContextFactory();
+ Factory<SSLContext> igniteFactory = ctx.config().getSslContextFactory();
- if (factory == null)
+ Factory<SSLContext> factory = cfg.getSslFactory();
+
+ // This factory deprecated and will be removed.
+ GridSslContextFactory depFactory = cfg.getSslContextFactory();
+
+ if (factory == null && depFactory == null && igniteFactory == null)
// Thrown SSL exception instead of IgniteCheckedException for writing correct warning message into log.
throw new SSLException("SSL is enabled, but SSL context factory is not specified.");
- sslCtx = factory.createSslContext();
+ if (factory != null)
+ sslCtx = factory.create();
+ else if (depFactory != null)
+ sslCtx = depFactory.createSslContext();
+ else
+ sslCtx = igniteFactory.create();
}
int lastPort = cfg.getPort() + cfg.getPortRange() - 1;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
index d7eb2f3..004c327 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionMetaKey.java
@@ -42,7 +42,10 @@ public enum GridNioSessionMetaKey {
MARSHALLER_ID,
/** Message writer. */
- MSG_WRITER;
+ MSG_WRITER,
+
+ /** SSL engine. */
+ SSL_ENGINE;
/** Maximum count of NIO session keys in system. */
public static final int MAX_KEYS_CNT = 64;
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
new file mode 100644
index 0000000..eee90d8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
@@ -0,0 +1,473 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.util.nio.ssl;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.util.future.*;
+import org.apache.ignite.internal.util.nio.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import javax.net.ssl.*;
+import javax.net.ssl.SSLEngineResult.*;
+import java.io.*;
+import java.nio.*;
+import java.nio.channels.*;
+
+import static javax.net.ssl.SSLEngineResult.HandshakeStatus.*;
+import static javax.net.ssl.SSLEngineResult.Status.*;
+import static org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter.*;
+
+/**
+ *
+ */
+public class BlockingSslHandler {
+ /** Logger. */
+ private IgniteLogger log;
+
+ /** */
+ private SocketChannel ch;
+
+ /** */
+ private GridFutureAdapter<ByteBuffer> fut;
+
+ /** SSL engine. */
+ private SSLEngine sslEngine;
+
+ /** Handshake completion flag. */
+ private boolean handshakeFinished;
+
+ /** Engine handshake status. */
+ private HandshakeStatus handshakeStatus;
+
+ /** Output buffer into which encrypted data will be written. */
+ private ByteBuffer outNetBuf;
+
+ /** Input buffer from which SSL engine will decrypt data. */
+ private ByteBuffer inNetBuf;
+
+ /** Empty buffer used in handshake procedure. */
+ private ByteBuffer handshakeBuf = ByteBuffer.allocate(0);
+
+ /** Application buffer. */
+ private ByteBuffer appBuf;
+
+ /**
+ * @param sslEngine SSLEngine.
+ * @param ch Socket channel.
+ * @param fut Future.
+ * @param log Logger.
+ */
+ public BlockingSslHandler(SSLEngine sslEngine, SocketChannel ch, GridFutureAdapter<ByteBuffer> fut,
+ IgniteLogger log) throws SSLException {
+ this.ch = ch;
+ this.fut = fut;
+ this.log = log;
+
+ this.sslEngine = sslEngine;
+
+ // Allocate a little bit more so SSL engine would not return buffer overflow status.
+ int netBufSize = sslEngine.getSession().getPacketBufferSize() + 50;
+
+ outNetBuf = ByteBuffer.allocate(netBufSize);
+ inNetBuf = ByteBuffer.allocate(netBufSize);
+
+ // Initially buffer is empty.
+ outNetBuf.position(0);
+ outNetBuf.limit(0);
+
+ appBuf = allocateAppBuff();
+
+ handshakeStatus = sslEngine.getHandshakeStatus();
+
+ sslEngine.setUseClientMode(true);
+
+ if (log.isDebugEnabled())
+ log.debug("Started SSL session [netBufSize=" + netBufSize + ", appBufSize=" + appBuf.capacity() + ']');
+ }
+
+ /**
+ * Performs handshake procedure with remote peer.
+ *
+ * @throws GridNioException If filter processing has thrown an exception.
+ * @throws SSLException If failed to process SSL data.
+ */
+ public boolean handshake() throws IgniteCheckedException, SSLException {
+ if (log.isDebugEnabled())
+ log.debug("Entered handshake. Handshake status: " + handshakeStatus + '.');
+
+ sslEngine.beginHandshake();
+
+ handshakeStatus = sslEngine.getHandshakeStatus();
+
+ boolean loop = true;
+
+ while (loop) {
+ switch (handshakeStatus) {
+ case NOT_HANDSHAKING:
+ case FINISHED: {
+ handshakeFinished = true;
+
+ if (fut != null) {
+ appBuf.flip();
+
+ fut.onDone(appBuf);
+ }
+
+ loop = false;
+
+ break;
+ }
+
+ case NEED_TASK: {
+ handshakeStatus = runTasks();
+
+ break;
+ }
+
+ case NEED_UNWRAP: {
+ Status status = unwrapHandshake();
+
+ handshakeStatus = sslEngine.getHandshakeStatus();
+
+ if (status == BUFFER_UNDERFLOW && sslEngine.isInboundDone())
+ // Either there is no enough data in buffer or session was closed.
+ loop = false;
+
+ break;
+ }
+
+ case NEED_WRAP: {
+ // If the output buffer has remaining data, clear it.
+ if (outNetBuf.hasRemaining())
+ U.warn(log, "Output net buffer has unsent bytes during handshake (will clear). ");
+
+ outNetBuf.clear();
+
+ SSLEngineResult res = sslEngine.wrap(handshakeBuf, outNetBuf);
+
+ outNetBuf.flip();
+
+ handshakeStatus = res.getHandshakeStatus();
+
+ if (log.isDebugEnabled())
+ log.debug("Wrapped handshake data [status=" + res.getStatus() + ", handshakeStatus=" +
+ handshakeStatus + ']');
+
+ writeNetBuffer();
+
+ break;
+ }
+
+ default: {
+ throw new IllegalStateException("Invalid handshake status in handshake method [handshakeStatus=" +
+ handshakeStatus + ']');
+ }
+ }
+ }
+
+ if (log.isDebugEnabled())
+ log.debug("Leaved handshake. Handshake status:" + handshakeStatus + '.');
+
+ return handshakeFinished;
+ }
+
+ /**
+ * Encrypts data to be written to the network.
+ *
+ * @param src data to encrypt.
+ * @throws SSLException on errors.
+ * @return Output buffer with encrypted data.
+ */
+ public ByteBuffer encrypt(ByteBuffer src) throws SSLException {
+ assert handshakeFinished;
+
+ // The data buffer is (must be) empty, we can reuse the entire
+ // buffer.
+ outNetBuf.clear();
+
+ // Loop until there is no more data in src
+ while (src.hasRemaining()) {
+ int outNetRemaining = outNetBuf.capacity() - outNetBuf.position();
+
+ if (outNetRemaining < src.remaining() * 2) {
+ outNetBuf = expandBuffer(outNetBuf, Math.max(
+ outNetBuf.position() + src.remaining() * 2, outNetBuf.capacity() * 2));
+
+ if (log.isDebugEnabled())
+ log.debug("Expanded output net buffer: " + outNetBuf.capacity());
+ }
+
+ SSLEngineResult res = sslEngine.wrap(src, outNetBuf);
+
+ if (log.isDebugEnabled())
+ log.debug("Encrypted data [status=" + res.getStatus() + ", handshakeStaus=" +
+ res.getHandshakeStatus() + ']');
+
+ if (res.getStatus() == OK) {
+ if (res.getHandshakeStatus() == NEED_TASK)
+ runTasks();
+ }
+ else
+ throw new SSLException("Failed to encrypt data (SSL engine error) [status=" + res.getStatus() +
+ ", handshakeStatus=" + res.getHandshakeStatus() + ']');
+ }
+
+ outNetBuf.flip();
+
+ return outNetBuf;
+ }
+
+ /**
+ * Called by SSL filter when new message was received.
+ *
+ * @param buf Received message.
+ * @throws GridNioException If exception occurred while forwarding events to underlying filter.
+ * @throws SSLException If failed to process SSL data.
+ */
+ public ByteBuffer decode(ByteBuffer buf) throws IgniteCheckedException, SSLException {
+ inNetBuf.clear();
+
+ if (buf.limit() > inNetBuf.remaining()) {
+ inNetBuf = expandBuffer(inNetBuf, inNetBuf.capacity() + buf.limit() * 2);
+
+ appBuf = expandBuffer(appBuf, inNetBuf.capacity() * 2);
+
+ if (log.isDebugEnabled())
+ log.debug("Expanded buffers [inNetBufCapacity=" + inNetBuf.capacity() + ", appBufCapacity=" +
+ appBuf.capacity() + ']');
+ }
+
+ // append buf to inNetBuffer
+ inNetBuf.put(buf);
+
+ if (!handshakeFinished)
+ handshake();
+ else
+ unwrapData();
+
+ if (isInboundDone()) {
+ int newPosition = buf.position() - inNetBuf.position();
+
+ if (newPosition >= 0) {
+ buf.position(newPosition);
+
+ // If we received close_notify but not all bytes has been read by SSL engine, print a warning.
+ if (buf.hasRemaining())
+ U.warn(log, "Got unread bytes after receiving close_notify message (will ignore).");
+ }
+
+ inNetBuf.clear();
+ }
+
+ appBuf.flip();
+
+ return appBuf;
+ }
+
+ /**
+ * @return {@code True} if inbound data stream has ended, i.e. SSL engine received
+ * <tt>close_notify</tt> message.
+ */
+ boolean isInboundDone() {
+ return sslEngine.isInboundDone();
+ }
+
+ /**
+ * Unwraps user data to the application buffer.
+ *
+ * @throws SSLException If failed to process SSL data.
+ * @throws GridNioException If failed to pass events to the next filter.
+ */
+ private void unwrapData() throws IgniteCheckedException, SSLException {
+ if (log.isDebugEnabled())
+ log.debug("Unwrapping received data.");
+
+ // Flip buffer so we can read it.
+ inNetBuf.flip();
+
+ SSLEngineResult res = unwrap0();
+
+ // prepare to be written again
+ inNetBuf.compact();
+
+ checkStatus(res);
+
+ renegotiateIfNeeded(res);
+ }
+
+ /**
+ * Runs all tasks needed to continue SSL work.
+ *
+ * @return Handshake status after running all tasks.
+ */
+ private HandshakeStatus runTasks() {
+ Runnable runnable;
+
+ while ((runnable = sslEngine.getDelegatedTask()) != null) {
+ if (log.isDebugEnabled())
+ log.debug("Running SSL engine task: " + runnable + '.');
+
+ runnable.run();
+ }
+
+ if (log.isDebugEnabled())
+ log.debug("Finished running SSL engine tasks. HandshakeStatus: " + sslEngine.getHandshakeStatus());
+
+ return sslEngine.getHandshakeStatus();
+ }
+
+
+ /**
+ * Unwraps handshake data and processes it.
+ *
+ * @return Status.
+ * @throws SSLException If SSL exception occurred while unwrapping.
+ * @throws GridNioException If failed to pass event to the next filter.
+ */
+ private Status unwrapHandshake() throws SSLException, IgniteCheckedException {
+ // Flip input buffer so we can read the collected data.
+ readFromNet();
+
+ inNetBuf.flip();
+
+ SSLEngineResult res = unwrap0();
+ handshakeStatus = res.getHandshakeStatus();
+
+ checkStatus(res);
+
+ // If handshake finished, no data was produced, and the status is still ok,
+ // try to unwrap more
+ if (handshakeStatus == FINISHED && res.getStatus() == OK && inNetBuf.hasRemaining()) {
+ res = unwrap0();
+
+ handshakeStatus = res.getHandshakeStatus();
+
+ // prepare to be written again
+ inNetBuf.compact();
+
+ renegotiateIfNeeded(res);
+ }
+ else
+ // prepare to be written again
+ inNetBuf.compact();
+
+ return res.getStatus();
+ }
+
+ /**
+ * Performs raw unwrap from network read buffer.
+ *
+ * @return Result.
+ * @throws SSLException If SSL exception occurs.
+ */
+ private SSLEngineResult unwrap0() throws SSLException {
+ SSLEngineResult res;
+
+ do {
+ res = sslEngine.unwrap(inNetBuf, appBuf);
+
+ if (log.isDebugEnabled())
+ log.debug("Unwrapped raw data [status=" + res.getStatus() + ", handshakeStatus=" +
+ res.getHandshakeStatus() + ']');
+
+ if (res.getStatus() == Status.BUFFER_OVERFLOW)
+ appBuf = expandBuffer(appBuf, appBuf.capacity() * 2);
+ }
+ while ((res.getStatus() == OK || res.getStatus() == Status.BUFFER_OVERFLOW) &&
+ (handshakeFinished && res.getHandshakeStatus() == NOT_HANDSHAKING
+ || res.getHandshakeStatus() == NEED_UNWRAP));
+
+ return res;
+ }
+
+ /**
+ * @param res SSL engine result.
+ * @throws SSLException If status is not acceptable.
+ */
+ private void checkStatus(SSLEngineResult res)
+ throws SSLException {
+
+ Status status = res.getStatus();
+
+ if (status != OK && status != CLOSED && status != BUFFER_UNDERFLOW)
+ throw new SSLException("Failed to unwrap incoming data (SSL engine error). Status: " + status);
+ }
+
+ /**
+ * Check status and retry the negotiation process if needed.
+ *
+ * @param res Result.
+ * @throws GridNioException If exception occurred during handshake.
+ * @throws SSLException If failed to process SSL data
+ */
+ private void renegotiateIfNeeded(SSLEngineResult res) throws IgniteCheckedException, SSLException {
+ if (res.getStatus() != CLOSED && res.getStatus() != BUFFER_UNDERFLOW
+ && res.getHandshakeStatus() != NOT_HANDSHAKING) {
+ // Renegotiation required.
+ handshakeStatus = res.getHandshakeStatus();
+
+ if (log.isDebugEnabled())
+ log.debug("Renegotiation requested [status=" + res.getStatus() + ", handshakeStatus = " +
+ handshakeStatus + ']');
+
+ handshakeFinished = false;
+
+ handshake();
+ }
+ }
+
+ /**
+ * Allocate application buffer.
+ */
+ private ByteBuffer allocateAppBuff() {
+ int netBufSize = sslEngine.getSession().getPacketBufferSize() + 50;
+
+ int appBufSize = Math.max(sslEngine.getSession().getApplicationBufferSize() + 50, netBufSize * 2);
+
+ return ByteBuffer.allocate(appBufSize);
+ }
+
+ /**
+ * Read data from net buffer.
+ */
+ private void readFromNet() {
+ try {
+ inNetBuf.clear();
+
+ ch.read(inNetBuf);
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Copies data from out net buffer and passes it to the underlying chain.
+ *
+ * @return Nothing.
+ * @throws GridNioException If send failed.
+ */
+ private void writeNetBuffer() throws IgniteCheckedException {
+ try {
+ ch.write(outNetBuf);
+ }
+ catch (IOException e) {
+ throw new IgniteCheckedException("Failed to write byte to socket.", e);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
index be8a4e8..a05135f 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslFilter.java
@@ -393,6 +393,8 @@ public class GridNioSslFilter extends GridNioFilterAdapter {
public static ByteBuffer expandBuffer(ByteBuffer original, int cap) {
ByteBuffer res = ByteBuffer.allocate(cap);
+ res.order(ByteOrder.nativeOrder());
+
original.flip();
res.put(original);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
index ac22d74..dc3d870 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/GridNioSslHandler.java
@@ -29,6 +29,7 @@ import java.util.concurrent.locks.*;
import static javax.net.ssl.SSLEngineResult.*;
import static javax.net.ssl.SSLEngineResult.HandshakeStatus.*;
import static javax.net.ssl.SSLEngineResult.Status.*;
+import static org.apache.ignite.internal.util.nio.GridNioSessionMetaKey.*;
import static org.apache.ignite.internal.util.nio.ssl.GridNioSslFilter.*;
/**
@@ -96,7 +97,14 @@ class GridNioSslHandler extends ReentrantLock {
sslEngine = engine;
- sslEngine.beginHandshake();
+ if (ses.meta(SSL_ENGINE.ordinal()) == null)
+ sslEngine.beginHandshake();
+ else {
+ sslEngine = ses.meta(SSL_ENGINE.ordinal());
+
+ handshakeFinished = true;
+ initHandshakeComplete = true;
+ }
handshakeStatus = sslEngine.getHandshakeStatus();
@@ -114,6 +122,8 @@ class GridNioSslHandler extends ReentrantLock {
appBuf = ByteBuffer.allocate(appBufSize);
+ appBuf.order(ByteOrder.nativeOrder());
+
if (log.isDebugEnabled())
log.debug("Started SSL session [netBufSize=" + netBufSize + ", appBufSize=" + appBufSize + ']');
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 4ca2995..b72299e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -29,6 +29,7 @@ import org.apache.ignite.internal.util.ipc.*;
import org.apache.ignite.internal.util.ipc.shmem.*;
import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.nio.*;
+import org.apache.ignite.internal.util.nio.ssl.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.internal.util.worker.*;
@@ -41,6 +42,7 @@ import org.apache.ignite.thread.*;
import org.jetbrains.annotations.*;
import org.jsr166.*;
+import javax.net.ssl.*;
import java.io.*;
import java.net.*;
import java.nio.*;
@@ -747,6 +749,13 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
};
/**
+ * @return {@code True} if ssl enabled.
+ */
+ private boolean isSslEnabled() {
+ return ignite.configuration().getSslContextFactory() != null;
+ }
+
+ /**
* Sets address resolver.
*
* @param addrRslvr Address resolver.
@@ -1465,6 +1474,26 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
} :
null;
+ GridNioFilter[] filters;
+
+ if (isSslEnabled()) {
+ GridNioSslFilter sslFilter =
+ new GridNioSslFilter(ignite.configuration().getSslContextFactory().create(), log);
+
+ sslFilter.directMode(true);
+
+ filters = new GridNioFilter[] {
+ new GridNioCodecFilter(parser, log, true),
+ new GridConnectionBytesVerifyFilter(log),
+ sslFilter
+ };
+ }
+ else
+ filters = new GridNioFilter[] {
+ new GridNioCodecFilter(parser, log, true),
+ new GridConnectionBytesVerifyFilter(log)
+ };
+
GridNioServer<Message> srvr =
GridNioServer.<Message>builder()
.address(locHost)
@@ -1482,8 +1511,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
.directMode(true)
.metricsListener(metricsLsnr)
.writeTimeout(sockWriteTimeout)
- .filters(new GridNioCodecFilter(parser, log, true),
- new GridConnectionBytesVerifyFilter(log))
+ .filters(filters)
.messageFormatter(msgFormatter)
.skipRecoveryPredicate(skipRecoveryPred)
.messageQueueSizeListener(queueSizeMonitor)
@@ -1501,6 +1529,10 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
return srvr;
}
catch (IgniteCheckedException e) {
+ if (X.hasCause(e, SSLException.class))
+ throw new IgniteSpiException("Failed to create SSL context. SSL factory: "
+ + ignite.configuration().getSslContextFactory() + '.', e);
+
lastEx = e;
if (log.isDebugEnabled())
@@ -1872,7 +1904,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
}
try {
- safeHandshake(client, null, node.id(), connTimeout0);
+ safeHandshake(client, null, node.id(), connTimeout0, null);
}
catch (HandshakeTimeoutException e) {
if (log.isDebugEnabled())
@@ -2019,10 +2051,11 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
long rcvCnt = -1;
+ GridTuple<SSLEngine> ssl = new GridTuple<>();
try {
ch.socket().connect(addr, (int)connTimeout);
- rcvCnt = safeHandshake(ch, recoveryDesc, node.id(), connTimeout0);
+ rcvCnt = safeHandshake(ch, recoveryDesc, node.id(), connTimeout0, ssl);
if (rcvCnt == -1)
return null;
@@ -2037,6 +2070,12 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
meta.put(NODE_ID_META, node.id());
+ if (isSslEnabled()) {
+ assert ssl != null;
+ assert ssl.get() != null;
+
+ meta.put(GridNioSessionMetaKey.SSL_ENGINE.ordinal(), ssl.get());
+ }
if (recoveryDesc != null) {
recoveryDesc.onHandshake(rcvCnt);
@@ -2161,6 +2200,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
* @param recovery Recovery descriptor if use recovery handshake, otherwise {@code null}.
* @param rmtNodeId Remote node.
* @param timeout Timeout for handshake.
+ * @param ssl SSL engine if used cryptography, otherwise {@code null}.
* @throws IgniteCheckedException If handshake failed or wasn't completed withing timeout.
* @return Handshake response.
*/
@@ -2169,7 +2209,8 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
T client,
@Nullable GridNioRecoveryDescriptor recovery,
UUID rmtNodeId,
- long timeout
+ long timeout,
+ @Nullable GridTuple<SSLEngine> ssl
) throws IgniteCheckedException {
HandshakeTimeoutObject<T> obj = new HandshakeTimeoutObject<>(client, U.currentTimeMillis() + timeout);
@@ -2186,15 +2227,53 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
boolean success = false;
try {
- ByteBuffer buf = ByteBuffer.allocate(17);
+ BlockingSslHandler sslHnd = null;
+
+ ByteBuffer buf;
+
+ if (isSslEnabled()) {
+ GridFutureAdapter<ByteBuffer> handFut = new GridFutureAdapter<>();
- for (int i = 0; i < 17; ) {
- int read = ch.read(buf);
+ SSLEngine sslEngine = ignite.configuration().getSslContextFactory()
+ .create().createSSLEngine();
- if (read == -1)
- throw new IgniteCheckedException("Failed to read remote node ID (connection closed).");
+ sslEngine.setUseClientMode(true);
- i += read;
+ sslHnd = new BlockingSslHandler(sslEngine, ch, handFut, log);
+
+ if (!sslHnd.handshake())
+ throw new IgniteCheckedException("SSL handshake isn't completed.");
+
+ ssl.set(sslEngine);
+
+ ByteBuffer handBuff = handFut.get();
+
+ if (handBuff.limit() < 17) {
+ buf = ByteBuffer.allocate(1000);
+
+ int read = ch.read(buf);
+
+ if (read == -1)
+ throw new IgniteCheckedException("Failed to read remote node ID (connection closed).");
+
+ buf.flip();
+
+ buf = sslHnd.decode(buf);
+ }
+ else
+ buf = handBuff;
+ }
+ else {
+ buf = ByteBuffer.allocate(17);
+
+ for (int i = 0; i < 17; ) {
+ int read = ch.read(buf);
+
+ if (read == -1)
+ throw new IgniteCheckedException("Failed to read remote node ID (connection closed).");
+
+ i += read;
+ }
}
UUID rmtNodeId0 = U.bytesToUuid(buf.array(), 1);
@@ -2205,7 +2284,13 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
else if (log.isDebugEnabled())
log.debug("Received remote node ID: " + rmtNodeId0);
- ch.write(ByteBuffer.wrap(U.IGNITE_HEADER));
+ if (isSslEnabled() ) {
+ assert sslHnd != null;
+
+ ch.write(sslHnd.encrypt(ByteBuffer.wrap(U.IGNITE_HEADER)));
+ }
+ else
+ ch.write(ByteBuffer.wrap(U.IGNITE_HEADER));
if (recovery != null) {
HandshakeMessage msg = new HandshakeMessage(getLocalNodeId(),
@@ -2225,30 +2310,61 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
buf.flip();
- ch.write(buf);
+ if (isSslEnabled()) {
+ assert sslHnd != null;
+
+ ch.write(sslHnd.encrypt(buf));
+ }
+ else
+ ch.write(buf);
+ }
+ else {
+ if (isSslEnabled()) {
+ assert sslHnd != null;
+
+ ch.write(sslHnd.encrypt(ByteBuffer.wrap(nodeIdMsg.nodeIdBytesWithType)));
+ }
+ else
+ ch.write(ByteBuffer.wrap(nodeIdMsg.nodeIdBytesWithType));
}
- else
- ch.write(ByteBuffer.wrap(nodeIdMsg.nodeIdBytesWithType));
if (recovery != null) {
if (log.isDebugEnabled())
log.debug("Waiting for handshake [rmtNode=" + rmtNodeId + ']');
- buf = ByteBuffer.allocate(9);
+ if (isSslEnabled()) {
+ assert sslHnd != null;
- buf.order(ByteOrder.nativeOrder());
+ buf = ByteBuffer.allocate(1000);
+
+ buf.order(ByteOrder.nativeOrder());
- for (int i = 0; i < 9; ) {
int read = ch.read(buf);
if (read == -1)
throw new IgniteCheckedException("Failed to read remote node recovery handshake " +
"(connection closed).");
- i += read;
- }
+ buf.flip();
- rcvCnt = buf.getLong(1);
+ rcvCnt = sslHnd.decode(buf).getLong(1);
+ } else {
+ buf = ByteBuffer.allocate(9);
+
+ buf.order(ByteOrder.nativeOrder());
+
+ for (int i = 0; i < 9; ) {
+ int read = ch.read(buf);
+
+ if (read == -1)
+ throw new IgniteCheckedException("Failed to read remote node recovery handshake " +
+ "(connection closed).");
+
+ i += read;
+ }
+
+ rcvCnt = buf.getLong(1);
+ }
if (log.isDebugEnabled())
log.debug("Received handshake message [rmtNode=" + rmtNodeId + ", rcvCnt=" + rcvCnt + ']');
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index a5ae5a9..97e910a 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -3975,7 +3975,10 @@ class ServerImpl extends TcpDiscoveryImpl {
for (port = spi.locPort; port < spi.locPort + spi.locPortRange; port++) {
try {
- srvrSock = new ServerSocket(port, 0, spi.locHost);
+ if (spi.isSslEnabled())
+ srvrSock = spi.sslSrvSocketFactory.createServerSocket(port, 0, spi.locHost);
+ else
+ srvrSock = new ServerSocket(port, 0, spi.locHost);
break;
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
index 7663fe6..b627010 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
@@ -40,6 +40,7 @@ import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
import org.apache.ignite.spi.discovery.tcp.messages.*;
import org.jetbrains.annotations.*;
+import javax.net.ssl.*;
import java.io.*;
import java.net.*;
import java.util.*;
@@ -305,6 +306,12 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
/** Node authenticator. */
protected DiscoverySpiNodeAuthenticator nodeAuth;
+ /** SSL server socket factory. */
+ protected SSLServerSocketFactory sslSrvSocketFactory;
+
+ /** SSL socket factory. */
+ protected SSLSocketFactory sslSocketFactory;
+
/** Context initialization latch. */
@GridToStringExclude
private final CountDownLatch ctxInitLatch = new CountDownLatch(1);
@@ -1106,7 +1113,12 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
assert addr != null;
- Socket sock = new Socket();
+ Socket sock;
+
+ if (isSslEnabled())
+ sock = sslSocketFactory.createSocket();
+ else
+ sock = new Socket();
sock.bind(new InetSocketAddress(locHost, 0));
@@ -1578,6 +1590,19 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
assertParameter(threadPri > 0, "threadPri > 0");
assertParameter(statsPrintFreq >= 0, "statsPrintFreq >= 0");
+ if (isSslEnabled()) {
+ try {
+ SSLContext sslCtx = ignite().configuration().getSslContextFactory().create();
+
+ sslSocketFactory = sslCtx.getSocketFactory();
+ sslSrvSocketFactory = sslCtx.getServerSocketFactory();
+ }
+ catch (IgniteException e) {
+ throw new IgniteSpiException("Failed to create SSL context. SSL factory: "
+ + ignite.configuration().getSslContextFactory(), e);
+ }
+ }
+
try {
locHost = U.resolveLocalHost(locAddr);
}
@@ -1695,6 +1720,13 @@ public class TcpDiscoverySpi extends IgniteSpiAdapter implements DiscoverySpi, T
}
/**
+ * @return {@code True} if ssl enabled.
+ */
+ boolean isSslEnabled() {
+ return ignite().configuration().getSslContextFactory() != null;
+ }
+
+ /**
* <strong>FOR TEST ONLY!!!</strong>
*/
public int clientWorkerCount() {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java b/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
new file mode 100644
index 0000000..bf09541
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/ssl/SslContextFactory.java
@@ -0,0 +1,455 @@
+/*
+ * 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.ssl;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import javax.cache.configuration.*;
+import javax.net.ssl.*;
+import java.io.*;
+import java.security.*;
+import java.security.cert.*;
+import java.util.*;
+
+/**
+ * This SSL context factory that provides ssl context configuration with specified key
+ * and trust stores.
+ * <p>
+ * In some cases it is useful to disable certificate validation of client side (e.g. when connecting
+ * to a server with self-signed certificate). This can be achieved by setting a disabled trust manager
+ * to this factory, which can be obtained by {@link #getDisabledTrustManager()} method:
+ * <pre>
+ * SslContextFactory factory = new SslContextFactory();
+ * factory.setTrustManagers(SslContextFactory.getDisabledTrustManager());
+ * // Rest of initialization.
+ * </pre>
+ */
+public class SslContextFactory implements Factory<SSLContext> {
+ /** Default key store type. */
+ public static final String DFLT_STORE_TYPE = "JKS";
+
+ /** Default SSL protocol. */
+ public static final String DFLT_SSL_PROTOCOL = "TLS";
+
+ /** Default key manager algorithm. */
+ public static final String DFLT_KEY_ALGORITHM = "SunX509";
+
+ /** SSL protocol. */
+ private String proto = DFLT_SSL_PROTOCOL;
+
+ /** Key manager algorithm. */
+ private String keyAlgorithm = DFLT_KEY_ALGORITHM;
+
+ /** Key store type. */
+ private String keyStoreType = DFLT_STORE_TYPE;
+
+ /** Path to key store file */
+ private String keyStoreFilePath;
+
+ /** Key store password */
+ private char[] keyStorePwd;
+
+ /** Trust store type. */
+ private String trustStoreType = DFLT_STORE_TYPE;
+
+ /** Path to trust store. */
+ private String trustStoreFilePath;
+
+ /** Trust store password */
+ private char[] trustStorePwd;
+
+ /** Trust managers. */
+ private TrustManager[] trustMgrs;
+
+ /**
+ * Gets key store type used for context creation.
+ *
+ * @return Key store type.
+ */
+ public String getKeyStoreType() {
+ return keyStoreType;
+ }
+
+ /**
+ * Sets key store type used in context initialization. If not provided, {@link #DFLT_STORE_TYPE} will
+ * be used.
+ *
+ * @param keyStoreType Key store type.
+ */
+ public void setKeyStoreType(String keyStoreType) {
+ A.notNull(keyStoreType, "keyStoreType");
+
+ this.keyStoreType = keyStoreType;
+ }
+
+ /**
+ * Gets trust store type used for context creation.
+ *
+ * @return trust store type.
+ */
+ public String getTrustStoreType() {
+ return trustStoreType;
+ }
+
+ /**
+ * Sets trust store type used in context initialization. If not provided, {@link #DFLT_STORE_TYPE} will
+ * be used.
+ *
+ * @param trustStoreType Trust store type.
+ */
+ public void setTrustStoreType(String trustStoreType) {
+ A.notNull(trustStoreType, "trustStoreType");
+
+ this.trustStoreType = trustStoreType;
+ }
+
+ /**
+ * Gets protocol for secure transport.
+ *
+ * @return SSL protocol name.
+ */
+ public String getProtocol() {
+ return proto;
+ }
+
+ /**
+ * Sets protocol for secure transport. If not specified, {@link #DFLT_SSL_PROTOCOL} will be used.
+ *
+ * @param proto SSL protocol name.
+ */
+ public void setProtocol(String proto) {
+ A.notNull(proto, "proto");
+
+ this.proto = proto;
+ }
+
+ /**
+ * Gets algorithm that will be used to create a key manager. If not specified, {@link #DFLT_KEY_ALGORITHM}
+ * will be used.
+ *
+ * @return Key manager algorithm.
+ */
+ public String getKeyAlgorithm() {
+ return keyAlgorithm;
+ }
+
+ /**
+ * Sets key manager algorithm that will be used to create a key manager. Notice that in most cased default value
+ * suites well, however, on Android platform this value need to be set to <tt>X509<tt/>.
+ *
+ * @param keyAlgorithm Key algorithm name.
+ */
+ public void setKeyAlgorithm(String keyAlgorithm) {
+ A.notNull(keyAlgorithm, "keyAlgorithm");
+
+ this.keyAlgorithm = keyAlgorithm;
+ }
+
+ /**
+ * Gets path to the key store file.
+ *
+ * @return Path to key store file.
+ */
+ public String getKeyStoreFilePath() {
+ return keyStoreFilePath;
+ }
+
+ /**
+ * Sets path to the key store file. This is a mandatory parameter since
+ * ssl context could not be initialized without key manager.
+ *
+ * @param keyStoreFilePath Path to key store file.
+ */
+ public void setKeyStoreFilePath(String keyStoreFilePath) {
+ A.notNull(keyStoreFilePath, "keyStoreFilePath");
+
+ this.keyStoreFilePath = keyStoreFilePath;
+ }
+
+ /**
+ * Gets key store password.
+ *
+ * @return Key store password.
+ */
+ public char[] getKeyStorePassword() {
+ return keyStorePwd;
+ }
+
+ /**
+ * Sets key store password.
+ *
+ * @param keyStorePwd Key store password.
+ */
+ public void setKeyStorePassword(char[] keyStorePwd) {
+ A.notNull(keyStorePwd, "keyStorePwd");
+
+ this.keyStorePwd = keyStorePwd;
+ }
+
+ /**
+ * Gets path to the trust store file.
+ *
+ * @return Path to the trust store file.
+ */
+ public String getTrustStoreFilePath() {
+ return trustStoreFilePath;
+ }
+
+ /**
+ * Sets path to the trust store file. This is an optional parameter,
+ * however one of the {@code setTrustStoreFilePath(String)}, {@link #setTrustManagers(TrustManager[])}
+ * properties must be set.
+ *
+ * @param trustStoreFilePath Path to the trust store file.
+ */
+ public void setTrustStoreFilePath(String trustStoreFilePath) {
+ this.trustStoreFilePath = trustStoreFilePath;
+ }
+
+ /**
+ * Gets trust store password.
+ *
+ * @return Trust store password.
+ */
+ public char[] getTrustStorePassword() {
+ return trustStorePwd;
+ }
+
+ /**
+ * Sets trust store password.
+ *
+ * @param trustStorePwd Trust store password.
+ */
+ public void setTrustStorePassword(char[] trustStorePwd) {
+ this.trustStorePwd = trustStorePwd;
+ }
+
+ /**
+ * Gets pre-configured trust managers.
+ *
+ * @return Trust managers.
+ */
+ public TrustManager[] getTrustManagers() {
+ return trustMgrs;
+ }
+
+ /**
+ * Sets pre-configured trust managers. This is an optional parameter,
+ * however one of the {@link #setTrustStoreFilePath(String)}, {@code #setTrustManagers(TrustManager[])}
+ *
+ * @param trustMgrs Pre-configured trust managers.
+ */
+ public void setTrustManagers(TrustManager... trustMgrs) {
+ this.trustMgrs = trustMgrs;
+ }
+
+ /**
+ * Returns an instance of trust manager that will always succeed regardless of certificate provided.
+ *
+ * @return Trust manager instance.
+ */
+ public static TrustManager getDisabledTrustManager() {
+ return new DisabledX509TrustManager();
+ }
+
+ /**
+ * Creates SSL context based on factory settings.
+ *
+ * @return Initialized SSL context.
+ * @throws SSLException If SSL context could not be created.
+ */
+ private SSLContext createSslContext() throws SSLException {
+ checkParameters();
+
+ try {
+ KeyManagerFactory keyMgrFactory = KeyManagerFactory.getInstance(keyAlgorithm);
+
+ KeyStore keyStore = loadKeyStore(keyStoreType, keyStoreFilePath, keyStorePwd);
+
+ keyMgrFactory.init(keyStore, keyStorePwd);
+
+ TrustManager[] mgrs = trustMgrs;
+
+ if (mgrs == null) {
+ TrustManagerFactory trustMgrFactory = TrustManagerFactory.getInstance(keyAlgorithm);
+
+ KeyStore trustStore = loadKeyStore(trustStoreType, trustStoreFilePath, trustStorePwd);
+
+ trustMgrFactory.init(trustStore);
+
+ mgrs = trustMgrFactory.getTrustManagers();
+ }
+
+ SSLContext ctx = SSLContext.getInstance(proto);
+
+ ctx.init(keyMgrFactory.getKeyManagers(), mgrs, null);
+
+ return ctx;
+ }
+ catch (GeneralSecurityException e) {
+ throw new SSLException("Failed to initialize SSL context " + parameters(), e);
+ }
+ }
+
+ /**
+ * Builds human-readable string with factory parameters.
+ *
+ * @return Parameters string.
+ */
+ private String parameters() {
+ StringBuilder buf = new StringBuilder("[keyStoreType=").append(keyStoreType);
+
+ buf.append(", proto=").append(proto).append(", keyStoreFile=").append(keyStoreFilePath);
+
+ if (trustMgrs != null)
+ buf.append(", trustMgrs=").append(Arrays.toString(trustMgrs));
+ else
+ buf.append(", trustStoreFile=").append(trustStoreFilePath);
+
+ buf.append(']');
+
+ return buf.toString();
+ }
+
+ /**
+ * Checks that all required parameters are set.
+ *
+ * @throws SSLException If any of required parameters is missing.
+ */
+ private void checkParameters() throws SSLException {
+ assert keyStoreType != null;
+ assert proto != null;
+
+ checkNullParameter(keyStoreFilePath, "keyStoreFilePath");
+ checkNullParameter(keyStorePwd, "keyStorePwd");
+
+ if (trustMgrs == null) {
+ if (trustStoreFilePath == null)
+ throw new SSLException("Failed to initialize SSL context (either trustStoreFilePath or " +
+ "trustManagers must be provided)");
+ else
+ checkNullParameter(trustStorePwd, "trustStorePwd");
+ }
+ }
+
+ /**
+ * @param param Value.
+ * @param name Name.
+ * @throws SSLException If {@code null}.
+ */
+ private void checkNullParameter(Object param, String name) throws SSLException {
+ if (param == null)
+ throw new SSLException("Failed to initialize SSL context (parameter cannot be null): " + name);
+ }
+
+ /**
+ * By default, this method simply opens a raw file input stream. Subclasses may override this method
+ * if some specific location should be handled (this may be a case for Android users).
+ *
+ * @param filePath Path to the file.
+ * @return Opened input stream.
+ * @throws IOException If stream could not be opened.
+ */
+ protected InputStream openFileInputStream(String filePath) throws IOException {
+ return new FileInputStream(filePath);
+ }
+
+ /**
+ * Loads key store with configured parameters.
+ *
+ * @param keyStoreType Type of key store.
+ * @param storeFilePath Path to key store file.
+ * @param keyStorePwd Store password.
+ * @return Initialized key store.
+ * @throws SSLException If key store could not be initialized.
+ */
+ private KeyStore loadKeyStore(String keyStoreType, String storeFilePath, char[] keyStorePwd) throws SSLException {
+ InputStream input = null;
+
+ try {
+ KeyStore keyStore = KeyStore.getInstance(keyStoreType);
+
+ input = openFileInputStream(storeFilePath);
+
+ keyStore.load(input, keyStorePwd);
+
+ return keyStore;
+ }
+ catch (GeneralSecurityException e) {
+ throw new SSLException("Failed to initialize key store (security exception occurred) [type=" +
+ keyStoreType + ", keyStorePath=" + storeFilePath + ']', e);
+ }
+ catch (FileNotFoundException e) {
+ throw new SSLException("Failed to initialize key store (key store file was not found): [path=" +
+ storeFilePath + ", msg=" + e.getMessage() + ']');
+ }
+ catch (IOException e) {
+ throw new SSLException("Failed to initialize key store (I/O error occurred): " + storeFilePath, e);
+ }
+ finally {
+ if (input != null) {
+ try {
+ input.close();
+ }
+ catch (IOException ignored) {
+ }
+ }
+ }
+ }
+
+ /** {@inheritDoc} */
+ public String toString() {
+ return getClass().getSimpleName() + parameters();
+ }
+
+ /**
+ * Disabled trust manager, will skip all certificate checks.
+ */
+ private static class DisabledX509TrustManager implements X509TrustManager {
+ /** Empty certificate array. */
+ private static final X509Certificate[] CERTS = new X509Certificate[0];
+
+ /** {@inheritDoc} */
+ @Override public void checkClientTrusted(X509Certificate[] x509Certificates, String s)
+ throws CertificateException {
+ // No-op, all clients are trusted.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void checkServerTrusted(X509Certificate[] x509Certificates, String s)
+ throws CertificateException {
+ // No-op, all servers are trusted.
+ }
+
+ /** {@inheritDoc} */
+ @Override public X509Certificate[] getAcceptedIssuers() {
+ return CERTS;
+ }
+ }
+
+ /** {@inheritDoc} */
+ @Override public SSLContext create() {
+ try {
+ return createSslContext();
+ }
+ catch (SSLException e) {
+ throw new IgniteException(e);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/main/java/org/apache/ignite/ssl/package-info.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/ssl/package-info.java b/modules/core/src/main/java/org/apache/ignite/ssl/package-info.java
new file mode 100644
index 0000000..7be1910
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/ssl/package-info.java
@@ -0,0 +1,22 @@
+/*
+ * 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 description. -->
+ * Contains classes for working with SSL.
+ */
+package org.apache.ignite.ssl;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/spi/communication/GridAbstractCommunicationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/GridAbstractCommunicationSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/GridAbstractCommunicationSelfTest.java
index bfed977..13ed880 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/communication/GridAbstractCommunicationSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/GridAbstractCommunicationSelfTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.spi.communication;
import org.apache.ignite.*;
import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
import org.apache.ignite.internal.managers.communication.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
@@ -59,6 +60,9 @@ public abstract class GridAbstractCommunicationSelfTest<T extends CommunicationS
/** */
private static final Object mux = new Object();
+ /** */
+ protected boolean useSsl = false;
+
/**
*
*/
@@ -299,6 +303,15 @@ public abstract class GridAbstractCommunicationSelfTest<T extends CommunicationS
rsrcs.inject(spi);
+ if (useSsl) {
+ IgniteMock ignite = GridTestUtils.getFieldValue(spi, IgniteSpiAdapter.class, "ignite");
+
+ IgniteConfiguration cfg = ignite.configuration()
+ .setSslContextFactory(GridTestUtils.sslFactory());
+
+ ignite.setStaticCfg(cfg);
+ }
+
spi.setListener(new MessageListener(rsrcs.getNodeId()));
node.setAttributes(spi.getNodeAttributes());
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSslSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSslSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSslSelfTest.java
new file mode 100644
index 0000000..e5f8bb3
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/GridTcpCommunicationSpiSslSelfTest.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.communication.tcp;
+
+import org.apache.ignite.testframework.junits.spi.*;
+
+/**
+ *
+ */
+@GridSpiTest(spi = TcpCommunicationSpi.class, group = "Communication SPI")
+public class GridTcpCommunicationSpiSslSelfTest extends GridTcpCommunicationSpiAbstractTest {
+ /** */
+ public GridTcpCommunicationSpiSslSelfTest() {
+ super(false);
+
+ this.useSsl = true;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected boolean tcpNoDelay() {
+ return true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
index 61bb944..4bdcf0a 100644
--- a/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/AbstractDiscoverySelfTest.java
@@ -19,6 +19,7 @@ package org.apache.ignite.spi.discovery;
import mx4j.tools.adaptor.http.*;
import org.apache.ignite.cluster.*;
+import org.apache.ignite.configuration.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.marshaller.*;
import org.apache.ignite.spi.*;
@@ -58,6 +59,9 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
private static final String TEST_ATTRIBUTE_NAME = "test.node.prop";
/** */
+ protected boolean useSsl = false;
+
+ /** */
protected AbstractDiscoverySelfTest() {
super(false);
}
@@ -394,6 +398,15 @@ public abstract class AbstractDiscoverySelfTest<T extends IgniteSpi> extends Gri
GridTestUtils.setFieldValue(spi, IgniteSpiAdapter.class, "spiCtx", ctx);
+ if (useSsl) {
+ IgniteMock ignite = GridTestUtils.getFieldValue(spi, IgniteSpiAdapter.class, "ignite");
+
+ IgniteConfiguration cfg = ignite.configuration()
+ .setSslContextFactory(GridTestUtils.sslFactory());
+
+ ignite.setStaticCfg(cfg);
+ }
+
spi.spiStart(getTestGridName() + i);
spis.add(spi);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiSslSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiSslSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiSslSelfTest.java
new file mode 100644
index 0000000..3eb8344
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpiSslSelfTest.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+/**
+ * TCP discovery spi test with SSL.
+ */
+public class TcpDiscoverySpiSslSelfTest extends TcpDiscoverySpiSelfTest {
+ /** */
+ public TcpDiscoverySpiSslSelfTest() {
+ useSsl = true;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySslSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySslSelfTest.java b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySslSelfTest.java
new file mode 100644
index 0000000..314ca01
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySslSelfTest.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.discovery.tcp;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.testframework.*;
+
+/**
+ * Test for {@link TcpDiscoverySpi} with SSL.
+ */
+public class TcpDiscoverySslSelfTest extends TcpDiscoverySelfTest {
+ /**
+ * @throws Exception If fails.
+ */
+ public TcpDiscoverySslSelfTest() throws Exception {
+ super();
+ }
+
+ /** {@inheritDoc} */
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setSslContextFactory(GridTestUtils.sslFactory());
+
+ return cfg;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
index d03d327..964f680 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
@@ -32,10 +32,12 @@ import org.apache.ignite.internal.util.lang.*;
import org.apache.ignite.internal.util.typedef.*;
import org.apache.ignite.internal.util.typedef.internal.*;
import org.apache.ignite.lang.*;
+import org.apache.ignite.ssl.*;
import org.apache.ignite.testframework.config.*;
import org.jetbrains.annotations.*;
import javax.cache.*;
+import javax.cache.configuration.*;
import javax.net.ssl.*;
import java.io.*;
import java.lang.annotation.*;
@@ -1338,6 +1340,24 @@ public final class GridTestUtils {
return factory;
}
+
+ /**
+ * Creates test-purposed SSL context factory from test key store with disabled trust manager.
+ *
+ * @return SSL context factory used in test.
+ */
+ public static Factory<SSLContext> sslFactory() {
+ SslContextFactory factory = new SslContextFactory();
+
+ factory.setKeyStoreFilePath(
+ U.resolveIgnitePath(GridTestProperties.getProperty("ssl.keystore.path")).getAbsolutePath());
+ factory.setKeyStorePassword(GridTestProperties.getProperty("ssl.keystore.password").toCharArray());
+
+ factory.setTrustManagers(GridSslBasicContextFactory.getDisabledTrustManager());
+
+ return factory;
+ }
+
/**
* @param o1 Object 1.
* @param o2 Object 2.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
index 2451f59..1471faa 100644
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/IgniteMock.java
@@ -52,6 +52,9 @@ public class IgniteMock implements Ignite {
/** */
private final String home;
+ /** */
+ private IgniteConfiguration staticCfg;
+
/**
* Mock values
*
@@ -84,6 +87,9 @@ public class IgniteMock implements Ignite {
/** {@inheritDoc} */
@Override public IgniteConfiguration configuration() {
+ if (staticCfg != null)
+ return staticCfg;
+
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setMarshaller(marshaller);
@@ -298,4 +304,11 @@ public class IgniteMock implements Ignite {
@Override public <K> Affinity<K> affinity(String cacheName) {
return null;
}
+
+ /**
+ * @param staticCfg Configuration.
+ */
+ public void setStaticCfg(IgniteConfiguration staticCfg) {
+ this.staticCfg = staticCfg;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/1fd31892/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
index 6f59f14..15797aa 100644
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteSpiDiscoverySelfTestSuite.java
@@ -60,6 +60,9 @@ public class IgniteSpiDiscoverySelfTestSuite extends TestSuite {
suite.addTest(new TestSuite(TcpDiscoveryRestartTest.class));
suite.addTest(new TestSuite(TcpDiscoveryMultiThreadedTest.class));
+ // SSL.
+ suite.addTest(new TestSuite(TcpDiscoverySslSelfTest.class));
+
return suite;
}
}
[14/30] incubator-ignite git commit: minor
Posted by nt...@apache.org.
minor
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/26112a8e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/26112a8e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/26112a8e
Branch: refs/heads/master
Commit: 26112a8ed2dc828b6e47fab7158ee6a5728e7516
Parents: dd92a5a
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jul 22 15:46:20 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jul 22 15:46:20 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/processors/cache/GridCacheAdapter.java | 2 +-
.../apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java | 1 +
2 files changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26112a8e/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 e138520..18f4004 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
@@ -1627,7 +1627,7 @@ public abstract class GridCacheAdapter<K, V> implements IgniteInternalCache<K, V
) {
ctx.checkSecurity(SecurityPermission.CACHE_READ);
- if (keyCheck)
+ if (keyCheck)
validateCacheKeys(keys);
return getAllAsync0(ctx.cacheKeysView(keys),
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/26112a8e/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index b72299e..99ca2b7 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -2052,6 +2052,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
long rcvCnt = -1;
GridTuple<SSLEngine> ssl = new GridTuple<>();
+
try {
ch.socket().connect(addr, (int)connTimeout);
[11/30] incubator-ignite git commit: Added log WARN in discovery when
ssl cfg isn't consistent.
Posted by nt...@apache.org.
Added log WARN in discovery when ssl cfg isn't consistent.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/f6b3b3d3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/f6b3b3d3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/f6b3b3d3
Branch: refs/heads/master
Commit: f6b3b3d37a31dc69d7d9db8fb30a7379f8f042c0
Parents: 2650845
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Wed Jul 22 13:05:21 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Wed Jul 22 13:05:21 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/spi/discovery/tcp/ServerImpl.java | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f6b3b3d3/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 97e910a..34f90f7 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -39,6 +39,7 @@ import org.apache.ignite.spi.discovery.tcp.messages.*;
import org.jetbrains.annotations.*;
import org.jsr166.*;
+import javax.net.ssl.*;
import java.io.*;
import java.net.*;
import java.util.*;
@@ -4123,12 +4124,16 @@ class ServerImpl extends TcpDiscoveryImpl {
if (!Arrays.equals(buf, U.IGNITE_HEADER)) {
if (log.isDebugEnabled())
log.debug("Unknown connection detected (is some other software connecting to " +
- "this Ignite port?) " +
+ "this Ignite port?" +
+ (!spi.isSslEnabled() ? " missed SSL configuration?" : "" ) +
+ ") " +
"[rmtAddr=" + sock.getRemoteSocketAddress() +
", locAddr=" + sock.getLocalSocketAddress() + ']');
LT.warn(log, null, "Unknown connection detected (is some other software connecting to " +
- "this Ignite port?) [rmtAddr=" + sock.getRemoteSocketAddress() +
+ "this Ignite port?" +
+ (!spi.isSslEnabled() ? " missed SSL configuration?" : "" ) +
+ ") [rmtAddr=" + sock.getRemoteSocketAddress() +
", locAddr=" + sock.getLocalSocketAddress() + ']');
return;
@@ -4237,7 +4242,10 @@ class ServerImpl extends TcpDiscoveryImpl {
if (log.isDebugEnabled())
U.error(log, "Caught exception on handshake [err=" + e +", sock=" + sock + ']', e);
- if (X.hasCause(e, ObjectStreamException.class) || !sock.isClosed()) {
+ if (X.hasCause(e, SSLException.class) && spi.isSslEnabled())
+ LT.warn(log, null, "Failed to initialize connection. Not encrypted data received. " +
+ "Missed SSL configuration on node? [sock=" + sock + ']');
+ else if (X.hasCause(e, ObjectStreamException.class) || !sock.isClosed()) {
if (U.isMacInvalidArgumentError(e))
LT.error(log, e, "Failed to initialize connection [sock=" + sock + "]\n\t" +
U.MAC_INVALID_ARG_MSG);
[08/30] incubator-ignite git commit: fixed ack topology message
Posted by nt...@apache.org.
fixed ack topology message
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/4b55407e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/4b55407e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/4b55407e
Branch: refs/heads/master
Commit: 4b55407ee9c8beeacd3cc761fc1c4bd78b1c8c33
Parents: 9cab55a
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jul 22 09:27:46 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jul 22 09:27:46 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/managers/discovery/GridDiscoveryManager.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/4b55407e/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index eae07ed..9f031bf 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -1030,8 +1030,8 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
private String topologySnapshotMessage(int serverNodesNum, int clientNodesNum, int totalCpus, double heap) {
return PREFIX + " [" +
(discoOrdered ? "ver=" + topSnap.get().topVer.topologyVersion() + ", " : "") +
- "server nodes=" + serverNodesNum +
- ", client nodes=" + clientNodesNum +
+ "servers=" + serverNodesNum +
+ ", clients=" + clientNodesNum +
", CPUs=" + totalCpus +
", heap=" + heap + "GB" +
']';
[12/30] incubator-ignite git commit: Merge remote-tracking branch
'origin/ignite-1.3.3' into ignite-1.3.3
Posted by nt...@apache.org.
Merge remote-tracking branch 'origin/ignite-1.3.3' into ignite-1.3.3
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/a749ed80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/a749ed80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/a749ed80
Branch: refs/heads/master
Commit: a749ed80a669c1d770e918f982ec183097eb7783
Parents: f6b3b3d 960164a
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Wed Jul 22 13:22:08 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Wed Jul 22 13:22:08 2015 +0300
----------------------------------------------------------------------
modules/core/src/main/java/org/apache/ignite/Ignite.java | 2 +-
.../internal/managers/discovery/GridDiscoveryManager.java | 7 +++----
2 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
[10/30] incubator-ignite git commit: fixed ack topology message
Posted by nt...@apache.org.
fixed ack topology message
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/960164a5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/960164a5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/960164a5
Branch: refs/heads/master
Commit: 960164a559de97216ec34244f92b1a74d7ae4f29
Parents: 8cfeb8e
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Wed Jul 22 09:31:53 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Wed Jul 22 09:31:53 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/managers/discovery/GridDiscoveryManager.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/960164a5/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
index 9f031bf..fac6f6d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/discovery/GridDiscoveryManager.java
@@ -1033,8 +1033,7 @@ public class GridDiscoveryManager extends GridManagerAdapter<DiscoverySpi> {
"servers=" + serverNodesNum +
", clients=" + clientNodesNum +
", CPUs=" + totalCpus +
- ", heap=" + heap + "GB" +
- ']';
+ ", heap=" + heap + "GB]";
}
/** {@inheritDoc} */
[18/30] incubator-ignite git commit: # HELPDESC-777 Fix javadoc.
Posted by nt...@apache.org.
# HELPDESC-777 Fix javadoc.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c5dc4926
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c5dc4926
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c5dc4926
Branch: refs/heads/master
Commit: c5dc4926aaa44178dad6cdad5fdd7f273d4da6ed
Parents: 4264799
Author: sevdokimov <se...@jetbrains.com>
Authored: Wed Jul 22 20:29:09 2015 +0300
Committer: sevdokimov <se...@jetbrains.com>
Committed: Wed Jul 22 20:30:17 2015 +0300
----------------------------------------------------------------------
.../src/main/java/org/apache/ignite/IgniteSystemProperties.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c5dc4926/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
index b5685b2..d0dd29b 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -318,7 +318,7 @@ public final class IgniteSystemProperties {
/**
* If this property is set to {@code true} then Ignite will append
- * hash code of class loader to bean name returned by {@link RuntimeMXBean#getName()}.
+ * hash code of class loader to MXBean name.
* <p>
* Default is {@code true}.
*/
[24/30] incubator-ignite git commit: Rename variable byte buffer.
Posted by nt...@apache.org.
Rename variable byte buffer.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/58c5a122
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/58c5a122
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/58c5a122
Branch: refs/heads/master
Commit: 58c5a1222b3d2cec413801cb415bb45ffc290f3c
Parents: 65feef6
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jul 23 18:44:41 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jul 23 18:44:41 2015 +0300
----------------------------------------------------------------------
.../ignite/internal/util/nio/GridNioServer.java | 30 +++++++++++++++-----
1 file changed, 23 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/58c5a122/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index d3f439a..b57bf22 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@ -70,6 +70,9 @@ public class GridNioServer<T> {
/** SSL system data buffer metadata key. */
private static final int BUF_SSL_SYSTEM_META_KEY = GridNioSessionMetaKey.nextUniqueKey();
+ /** SSL write buf limit. */
+ private static final int WRITE_BUF_LIMIT = GridNioSessionMetaKey.nextUniqueKey();
+
/** Accept worker thread. */
@GridToStringExclude
private final IgniteThread acceptThread;
@@ -920,6 +923,10 @@ public class GridNioServer<T> {
}
ByteBuffer buf = ses.writeBuffer();
+
+ if (ses.meta(WRITE_BUF_LIMIT) != null)
+ buf.limit((int)ses.meta(WRITE_BUF_LIMIT));
+
NioOperationFuture<?> req = ses.removeMeta(NIO_OPERATION.ordinal());
List<NioOperationFuture<?>> doneFuts = null;
@@ -971,19 +978,24 @@ public class GridNioServer<T> {
writer.reset();
}
+ int sesBufLimit = buf.limit();
+ int sesCap = buf.capacity();
+
buf.flip();
+ buf = sslFilter.encrypt(ses, buf);
+
ByteBuffer sesBuf = ses.writeBuffer();
- buf = sslFilter.encrypt(ses, sesBuf);
+ sesBuf.clear();
- int expand = sesBuf.limit() - buf.limit();
+ if (sesCap - buf.limit() < 0) {
+ int limit = sesBufLimit + (sesCap - buf.limit()) - 100;
- sesBuf.clear();
+ ses.addMeta(WRITE_BUF_LIMIT, limit);
- // SSL data more then socket buffer size
- if (expand < 0)
- sesBuf.limit(sesBuf.limit() + expand - 100);
+ sesBuf.limit(limit);
+ }
assert buf.hasRemaining();
@@ -1022,8 +1034,12 @@ public class GridNioServer<T> {
break;
}
- else
+ else {
buf = ses.writeBuffer();
+
+ if (ses.meta(WRITE_BUF_LIMIT) != null)
+ buf.limit((int)ses.meta(WRITE_BUF_LIMIT));
+ }
}
}
finally {
[19/30] incubator-ignite git commit: GG-10591 Reworked daemon node
stop fix.
Posted by nt...@apache.org.
GG-10591 Reworked daemon node stop fix.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c9ee1dae
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c9ee1dae
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c9ee1dae
Branch: refs/heads/master
Commit: c9ee1dae971f0c5a85efea10b7b2d41170335ea7
Parents: c5dc492
Author: AKuznetsov <ak...@gridgain.com>
Authored: Thu Jul 23 10:29:21 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Thu Jul 23 10:29:21 2015 +0700
----------------------------------------------------------------------
.../visor/commands/open/VisorOpenCommand.scala | 16 +++++-----------
.../main/scala/org/apache/ignite/visor/visor.scala | 3 +++
2 files changed, 8 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c9ee1dae/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
index 5ec4cd0..7d2ee3c 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/open/VisorOpenCommand.scala
@@ -240,11 +240,11 @@ class VisorOpenCommand extends VisorConsoleCommand {
if ("true".equalsIgnoreCase(sys.props.getOrElse(IGNITE_QUIET, "true")))
cfg.setGridLogger(new NullLogger)
- val startedGridName = try {
+ ignite = try {
// We need to stop previous daemon node before to start new one.
- Ignition.stopAll(true)
+ prevIgnite.foreach(g => Ignition.stop(g.name(), true))
- Ignition.start(cfg).name
+ Ignition.start(cfg).asInstanceOf[IgniteEx]
}
finally {
Ignition.setDaemon(daemon)
@@ -252,15 +252,9 @@ class VisorOpenCommand extends VisorConsoleCommand {
System.setProperty(IGNITE_NO_SHUTDOWN_HOOK, shutdownHook)
}
- ignite =
- try
- Ignition.ignite(startedGridName).asInstanceOf[IgniteEx]
- catch {
- case _: IllegalStateException =>
- throw new IgniteException("Named grid unavailable: " + startedGridName)
- }
+ prevIgnite = Some(ignite)
- visor.open(startedGridName, cfgPath)
+ visor.open(ignite.name(), cfgPath)
}
}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c9ee1dae/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
index 67e3d70..7bd6818 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
@@ -228,6 +228,9 @@ object visor extends VisorTag {
/** */
@volatile var ignite: IgniteEx = null
+ /** */
+ @volatile var prevIgnite: Option[IgniteEx] = None
+
private var reader: ConsoleReader = null
def reader(reader: ConsoleReader) {
[20/30] incubator-ignite git commit: Fixed SSL bugs. Added test.
Posted by nt...@apache.org.
Fixed SSL bugs. Added test.
Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/e37efa33
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/e37efa33
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/e37efa33
Branch: refs/heads/master
Commit: e37efa3357d96e7831068eaec29627bd1bcc2ba0
Parents: c5dc492
Author: nikolay_tikhonov <nt...@gridgain.com>
Authored: Thu Jul 23 11:37:26 2015 +0300
Committer: nikolay_tikhonov <nt...@gridgain.com>
Committed: Thu Jul 23 11:38:35 2015 +0300
----------------------------------------------------------------------
.../apache/ignite/internal/IgniteKernal.java | 5 +-
.../util/nio/ssl/BlockingSslHandler.java | 61 ++++++++++++--------
.../communication/tcp/TcpCommunicationSpi.java | 60 ++++++++++---------
.../ignite/spi/discovery/tcp/ServerImpl.java | 5 +-
.../tcp/IgniteCacheSslStartStopSelfTest.java | 46 +++++++++++++++
.../IgniteCacheFailoverTestSuite.java | 4 +-
6 files changed, 125 insertions(+), 56 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e37efa33/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 8a246dc..b746261 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -2064,9 +2064,8 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable {
private void ackSecurity() {
assert log != null;
- if (log.isInfoEnabled())
- log.info("Security status [authentication=" + onOff(ctx.security().enabled())
- + ", communication encrypted=" + onOff(ctx.config().getSslContextFactory() != null) + ']');
+ U.quietAndInfo(log, "Security status [authentication=" + onOff(ctx.security().enabled())
+ + ", communication encrypted=" + onOff(ctx.config().getSslContextFactory() != null) + ']');
}
/**
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e37efa33/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
index eee90d8..9890efe 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/ssl/BlockingSslHandler.java
@@ -39,14 +39,14 @@ public class BlockingSslHandler {
/** Logger. */
private IgniteLogger log;
- /** */
+ /** Socket channel. */
private SocketChannel ch;
- /** */
- private GridFutureAdapter<ByteBuffer> fut;
+ /** Order. */
+ private final ByteOrder order;
/** SSL engine. */
- private SSLEngine sslEngine;
+ private final SSLEngine sslEngine;
/** Handshake completion flag. */
private boolean handshakeFinished;
@@ -69,33 +69,38 @@ public class BlockingSslHandler {
/**
* @param sslEngine SSLEngine.
* @param ch Socket channel.
- * @param fut Future.
+ * @param directBuf Direct buffer flag.
+ * @param order Byte order.
* @param log Logger.
*/
- public BlockingSslHandler(SSLEngine sslEngine, SocketChannel ch, GridFutureAdapter<ByteBuffer> fut,
- IgniteLogger log) throws SSLException {
+ public BlockingSslHandler(SSLEngine sslEngine,
+ SocketChannel ch,
+ boolean directBuf,
+ ByteOrder order,
+ IgniteLogger log)
+ throws SSLException {
this.ch = ch;
- this.fut = fut;
this.log = log;
-
this.sslEngine = sslEngine;
+ this.order = order;
// Allocate a little bit more so SSL engine would not return buffer overflow status.
int netBufSize = sslEngine.getSession().getPacketBufferSize() + 50;
- outNetBuf = ByteBuffer.allocate(netBufSize);
- inNetBuf = ByteBuffer.allocate(netBufSize);
+ outNetBuf = directBuf ? ByteBuffer.allocateDirect(netBufSize) : ByteBuffer.allocate(netBufSize);
+ outNetBuf.order(order);
// Initially buffer is empty.
outNetBuf.position(0);
outNetBuf.limit(0);
+ inNetBuf = directBuf ? ByteBuffer.allocateDirect(netBufSize) : ByteBuffer.allocate(netBufSize);
+ inNetBuf.order(order);
+
appBuf = allocateAppBuff();
handshakeStatus = sslEngine.getHandshakeStatus();
- sslEngine.setUseClientMode(true);
-
if (log.isDebugEnabled())
log.debug("Started SSL session [netBufSize=" + netBufSize + ", appBufSize=" + appBuf.capacity() + ']');
}
@@ -122,12 +127,6 @@ public class BlockingSslHandler {
case FINISHED: {
handshakeFinished = true;
- if (fut != null) {
- appBuf.flip();
-
- fut.onDone(appBuf);
- }
-
loop = false;
break;
@@ -187,6 +186,15 @@ public class BlockingSslHandler {
}
/**
+ * @return Application buffer with decoded data.
+ */
+ public ByteBuffer applicationBuffer() {
+ appBuf.flip();
+
+ return appBuf;
+ }
+
+ /**
* Encrypts data to be written to the network.
*
* @param src data to encrypt.
@@ -439,27 +447,32 @@ public class BlockingSslHandler {
int appBufSize = Math.max(sslEngine.getSession().getApplicationBufferSize() + 50, netBufSize * 2);
- return ByteBuffer.allocate(appBufSize);
+ ByteBuffer buf = ByteBuffer.allocate(appBufSize);
+ buf.order(order);
+
+ return buf;
}
/**
* Read data from net buffer.
*/
- private void readFromNet() {
+ private void readFromNet() throws IgniteCheckedException {
try {
inNetBuf.clear();
- ch.read(inNetBuf);
+ int read = ch.read(inNetBuf);
+
+ if (read == -1)
+ throw new IgniteCheckedException("Failed to read remote node ID (connection closed).");
}
catch (IOException e) {
- e.printStackTrace();
+ throw new IgniteCheckedException("Failed to write byte to socket.", e);
}
}
/**
* Copies data from out net buffer and passes it to the underlying chain.
*
- * @return Nothing.
* @throws GridNioException If send failed.
*/
private void writeNetBuffer() throws IgniteCheckedException {
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e37efa33/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
index 99ca2b7..48dc52e 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java
@@ -2051,12 +2051,18 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
long rcvCnt = -1;
- GridTuple<SSLEngine> ssl = new GridTuple<>();
+ SSLEngine sslEngine = null;
try {
ch.socket().connect(addr, (int)connTimeout);
- rcvCnt = safeHandshake(ch, recoveryDesc, node.id(), connTimeout0, ssl);
+ if (isSslEnabled()) {
+ sslEngine = ignite.configuration().getSslContextFactory().create().createSSLEngine();
+
+ sslEngine.setUseClientMode(true);
+ }
+
+ rcvCnt = safeHandshake(ch, recoveryDesc, node.id(), connTimeout0, sslEngine);
if (rcvCnt == -1)
return null;
@@ -2072,10 +2078,9 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
meta.put(NODE_ID_META, node.id());
if (isSslEnabled()) {
- assert ssl != null;
- assert ssl.get() != null;
+ assert sslEngine != null;
- meta.put(GridNioSessionMetaKey.SSL_ENGINE.ordinal(), ssl.get());
+ meta.put(GridNioSessionMetaKey.SSL_ENGINE.ordinal(), sslEngine);
}
if (recoveryDesc != null) {
recoveryDesc.onHandshake(rcvCnt);
@@ -2211,7 +2216,7 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
@Nullable GridNioRecoveryDescriptor recovery,
UUID rmtNodeId,
long timeout,
- @Nullable GridTuple<SSLEngine> ssl
+ @Nullable SSLEngine ssl
) throws IgniteCheckedException {
HandshakeTimeoutObject<T> obj = new HandshakeTimeoutObject<>(client, U.currentTimeMillis() + timeout);
@@ -2233,23 +2238,14 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
ByteBuffer buf;
if (isSslEnabled()) {
- GridFutureAdapter<ByteBuffer> handFut = new GridFutureAdapter<>();
-
- SSLEngine sslEngine = ignite.configuration().getSslContextFactory()
- .create().createSSLEngine();
-
- sslEngine.setUseClientMode(true);
-
- sslHnd = new BlockingSslHandler(sslEngine, ch, handFut, log);
+ sslHnd = new BlockingSslHandler(ssl, ch, directBuf, ByteOrder.nativeOrder(), log);
if (!sslHnd.handshake())
- throw new IgniteCheckedException("SSL handshake isn't completed.");
-
- ssl.set(sslEngine);
+ throw new IgniteCheckedException("SSL handshake is not completed.");
- ByteBuffer handBuff = handFut.get();
+ ByteBuffer handBuff = sslHnd.applicationBuffer();
- if (handBuff.limit() < 17) {
+ if (handBuff.remaining() < 17) {
buf = ByteBuffer.allocate(1000);
int read = ch.read(buf);
@@ -2338,18 +2334,30 @@ public class TcpCommunicationSpi extends IgniteSpiAdapter
buf = ByteBuffer.allocate(1000);
+ ByteBuffer decode = null;
+
buf.order(ByteOrder.nativeOrder());
- int read = ch.read(buf);
+ for (int i = 0; i < 9; ) {
+ int read = ch.read(buf);
- if (read == -1)
- throw new IgniteCheckedException("Failed to read remote node recovery handshake " +
- "(connection closed).");
+ if (read == -1)
+ throw new IgniteCheckedException("Failed to read remote node recovery handshake " +
+ "(connection closed).");
- buf.flip();
+ buf.flip();
+
+ decode = sslHnd.decode(buf);
- rcvCnt = sslHnd.decode(buf).getLong(1);
- } else {
+ i += decode.remaining();
+
+ buf.flip();
+ buf.compact();
+ }
+
+ rcvCnt = decode.getLong(1);
+ }
+ else {
buf = ByteBuffer.allocate(9);
buf.order(ByteOrder.nativeOrder());
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e37efa33/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
index 34f90f7..68552a6 100644
--- a/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/ServerImpl.java
@@ -4242,10 +4242,11 @@ class ServerImpl extends TcpDiscoveryImpl {
if (log.isDebugEnabled())
U.error(log, "Caught exception on handshake [err=" + e +", sock=" + sock + ']', e);
- if (X.hasCause(e, SSLException.class) && spi.isSslEnabled())
+ if (X.hasCause(e, SSLException.class) && spi.isSslEnabled() && !spi.isNodeStopping0())
LT.warn(log, null, "Failed to initialize connection. Not encrypted data received. " +
"Missed SSL configuration on node? [sock=" + sock + ']');
- else if (X.hasCause(e, ObjectStreamException.class) || !sock.isClosed()) {
+ else if ((X.hasCause(e, ObjectStreamException.class) || !sock.isClosed())
+ && !spi.isNodeStopping0()) {
if (U.isMacInvalidArgumentError(e))
LT.error(log, e, "Failed to initialize connection [sock=" + sock + "]\n\t" +
U.MAC_INVALID_ARG_MSG);
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e37efa33/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
new file mode 100644
index 0000000..9bf6caa
--- /dev/null
+++ b/modules/core/src/test/java/org/apache/ignite/spi/communication/tcp/IgniteCacheSslStartStopSelfTest.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.communication.tcp;
+
+import org.apache.ignite.cache.*;
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.processors.cache.distributed.dht.*;
+import org.apache.ignite.testframework.*;
+
+/**
+ *
+ */
+public class IgniteCacheSslStartStopSelfTest extends IgniteCachePutRetryAbstractSelfTest {
+ @Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
+ IgniteConfiguration cfg = super.getConfiguration(gridName);
+
+ cfg.setSslContextFactory(GridTestUtils.sslFactory());
+
+ return cfg;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected CacheAtomicityMode atomicityMode() {
+ return CacheAtomicityMode.ATOMIC;
+ }
+
+ /** {@inheritDoc} */
+ @Override protected int keysCount() {
+ return 60_000;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/e37efa33/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 80bfbf2..524bfb3 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
@@ -23,7 +23,7 @@ import org.apache.ignite.internal.processors.cache.distributed.*;
import org.apache.ignite.internal.processors.cache.distributed.dht.*;
import org.apache.ignite.internal.processors.cache.distributed.dht.atomic.*;
import org.apache.ignite.internal.processors.cache.distributed.near.*;
-import org.apache.ignite.internal.processors.cache.distributed.replicated.*;
+import org.apache.ignite.spi.communication.tcp.*;
import org.apache.ignite.testframework.*;
import java.util.*;
@@ -75,6 +75,8 @@ public class IgniteCacheFailoverTestSuite extends TestSuite {
suite.addTestSuite(IgniteCachePutRetryAtomicSelfTest.class);
suite.addTestSuite(IgniteCachePutRetryTransactionalSelfTest.class);
+ suite.addTestSuite(IgniteCacheSslStartStopSelfTest.class);
+
return suite;
}
}