You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by se...@apache.org on 2015/02/02 22:56:44 UTC

[01/50] [abbrv] incubator-ignite git commit: Fix IpcSharedMemoryNativeLoaderSelfTest # testLoadWithCorruptedLibFile (add classpath)

Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-132 583e7024a -> 36b439d90


Fix IpcSharedMemoryNativeLoaderSelfTest # testLoadWithCorruptedLibFile (add classpath)


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

Branch: refs/heads/ignite-132
Commit: 746ce78ac39f63374dfe76129bd226b1fa3b2c75
Parents: b6eb388
Author: Artem SHutak <as...@gridgain.com>
Authored: Fri Jan 30 13:21:26 2015 +0300
Committer: Artem SHutak <as...@gridgain.com>
Committed: Fri Jan 30 13:21:26 2015 +0300

----------------------------------------------------------------------
 .../util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java        | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/746ce78a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java
index e70c207..65fa543 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java
@@ -46,7 +46,7 @@ public class IpcSharedMemoryNativeLoaderSelfTest extends TestCase {
             null,
             null,
             Collections.<String>emptyList(),
-            null
+            System.getProperty("surefire.test.class.path")
         ).getProcess();
 
         readStreams(ps);


[15/50] [abbrv] incubator-ignite git commit: #Tests: Fix GridCacheCommandHandlerSelfTest.

Posted by se...@apache.org.
#Tests: Fix GridCacheCommandHandlerSelfTest.


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

Branch: refs/heads/ignite-132
Commit: 8b57933eda84a6e9cbaafdfe5af49f2175c30549
Parents: 0331e7b
Author: ivasilinets <iv...@gridgain.com>
Authored: Fri Jan 30 17:08:20 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Fri Jan 30 17:08:20 2015 +0300

----------------------------------------------------------------------
 .../handlers/cache/GridCacheCommandHandlerSelfTest.java   | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/8b57933e/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
index 7a1765b..f577c21 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/rest/handlers/cache/GridCacheCommandHandlerSelfTest.java
@@ -75,7 +75,7 @@ public class GridCacheCommandHandlerSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testCacheGetFailsSyncNotify() throws Exception {
-        GridRestCommandHandler hnd = new TestableGridCacheCommandHandler(((IgniteKernal)grid()).context(), "getAsync",
+        GridRestCommandHandler hnd = new TestableCacheCommandHandler(((IgniteKernal)grid()).context(), "getAsync",
             true);
 
         GridRestCacheRequest req = new GridRestCacheRequest();
@@ -100,7 +100,7 @@ public class GridCacheCommandHandlerSelfTest extends GridCommonAbstractTest {
      * @throws Exception If failed.
      */
     public void testCacheGetFailsAsyncNotify() throws Exception {
-        GridRestCommandHandler hnd = new TestableGridCacheCommandHandler(((IgniteKernal)grid()).context(), "getAsync",
+        GridRestCommandHandler hnd = new TestableCacheCommandHandler(((IgniteKernal)grid()).context(), "getAsync",
             false);
 
         GridRestCacheRequest req = new GridRestCacheRequest();
@@ -207,7 +207,7 @@ public class GridCacheCommandHandlerSelfTest extends GridCommonAbstractTest {
     /**
      * Test command handler.
      */
-    private static class TestableGridCacheCommandHandler extends GridCacheCommandHandler {
+    private static class TestableCacheCommandHandler extends GridCacheCommandHandler {
         /** */
         private final String failMtd;
 
@@ -221,7 +221,7 @@ public class GridCacheCommandHandlerSelfTest extends GridCommonAbstractTest {
          * @param failMtd Method to fail.
          * @param sync Sync notification flag.
          */
-        TestableGridCacheCommandHandler(final GridKernalContext ctx, final String failMtd, final boolean sync) {
+        TestableCacheCommandHandler(final GridKernalContext ctx, final String failMtd, final boolean sync) {
             super(ctx);
 
             this.failMtd = failMtd;
@@ -249,7 +249,7 @@ public class GridCacheCommandHandlerSelfTest extends GridCommonAbstractTest {
                             return fut;
                         }
                         // Rewriting flagOn result to keep intercepting invocations after it.
-                        else if ("flagOn".equals(mtd.getName()))
+                        else if ("flagsOn".equals(mtd.getName()))
                             return proxy;
                         else if ("forSubjectId".equals(mtd.getName()))
                             return proxy;


[27/50] [abbrv] incubator-ignite git commit: #gg-9757: Removed "GridInteropAware".

Posted by se...@apache.org.
#gg-9757: Removed "GridInteropAware".


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

Branch: refs/heads/ignite-132
Commit: 61a70d9fdbed60103d19a955b37eb6345d78daa5
Parents: 88514f7
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Feb 2 13:18:25 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Feb 2 13:18:25 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheStoreManager.java | 25 ++++++++--
 .../cache/GridCacheWriteBehindStore.java        | 19 +-------
 .../processors/interop/GridInteropAware.java    | 49 --------------------
 3 files changed, 21 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/61a70d9f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
index d89a670..f83c476 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
@@ -27,7 +27,6 @@ import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.transactions.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
@@ -180,16 +179,27 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
         boolean convertPortable = !cctx.config().isKeepPortableInStore();
 
         if (cctx.config().isPortableEnabled()) {
-            if (store instanceof GridInteropAware)
-                ((GridInteropAware)store).configure(cctx.cache().name(), convertPortable);
-            else
-                this.convertPortable = convertPortable;
+            this.convertPortable = convertPortable;
         }
         else if (convertPortable)
             U.warn(log, "GridCacheConfiguration.isKeepPortableInStore() configuration property will " +
                 "be ignored because portable mode is not enabled for cache: " + cctx.namex());
     }
 
+    /**
+     * @return Convert-portable flag.
+     */
+    public boolean convertPortable() {
+        return convertPortable;
+    }
+
+    /**
+     * @param convertPortable Convert-portable flag.
+     */
+    public void convertPortable(boolean convertPortable) {
+        this.convertPortable = convertPortable;
+    }
+
     /** {@inheritDoc} */
     @Override protected void stop0(boolean cancel) {
         if (store instanceof LifecycleAware) {
@@ -246,6 +256,7 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
      * @return Loaded value, possibly <tt>null</tt>.
      * @throws IgniteCheckedException If data loading failed.
      */
+    @SuppressWarnings("unchecked")
     @Nullable private Object loadFromStore(@Nullable IgniteTx tx,
         K key,
         boolean convert)
@@ -300,6 +311,7 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
      * @param val Internal value.
      * @return User value.
      */
+    @SuppressWarnings("unchecked")
     private V convert(Object val) {
         if (val == null)
             return null;
@@ -406,6 +418,7 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
 
             try {
                 CI2<K, Object> c = new CI2<K, Object>() {
+                    @SuppressWarnings("ConstantConditions")
                     @Override public void apply(K k, Object val) {
                         if (convert) {
                             V v = convert(val);
@@ -518,6 +531,7 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
      * @return {@code true} If there is a persistent storage.
      * @throws IgniteCheckedException If storage failed.
      */
+    @SuppressWarnings("unchecked")
     public boolean putToStore(@Nullable IgniteTx tx, K key, V val, GridCacheVersion ver)
         throws IgniteCheckedException {
         if (store != null) {
@@ -628,6 +642,7 @@ public class GridCacheStoreManager<K, V> extends GridCacheManagerAdapter<K, V> {
      * @return {@code True} if there is a persistent storage.
      * @throws IgniteCheckedException If storage failed.
      */
+    @SuppressWarnings("unchecked")
     public boolean removeFromStore(@Nullable IgniteTx tx, K key) throws IgniteCheckedException {
         if (store != null) {
             // Never remove internal key from store as it is never persisted.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/61a70d9f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
index a31d3b5..39d7439 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
@@ -56,7 +56,7 @@ import static javax.cache.Cache.Entry;
  * Since write operations to the cache store are deferred, transaction support is lost; no
  * transaction objects are passed to the underlying store.
  */
-public class GridCacheWriteBehindStore<K, V> extends CacheStore<K, V> implements LifecycleAware, GridInteropAware {
+public class GridCacheWriteBehindStore<K, V> extends CacheStore<K, V> implements LifecycleAware {
     /** Default write cache initial capacity. */
     public static final int DFLT_INITIAL_CAPACITY = 1024;
 
@@ -289,23 +289,6 @@ public class GridCacheWriteBehindStore<K, V> extends CacheStore<K, V> implements
         }
     }
 
-    /** {@inheritDoc} */
-    @Override public void configure(Object... params) {
-        // No-op.
-    }
-
-    /** {@inheritDoc} */
-    @Override public void initialize(GridKernalContext ctx) throws IgniteCheckedException {
-        if (store instanceof GridInteropAware)
-            ((GridInteropAware)store).initialize(ctx);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void destroy(GridKernalContext ctx) throws IgniteCheckedException {
-        if (store instanceof GridInteropAware)
-            ((GridInteropAware)store).destroy(ctx);
-    }
-
     /**
      * Gets count of write buffer overflow events since initialization. Each overflow event causes
      * the ongoing flush operation to be performed synchronously.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/61a70d9f/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java
deleted file mode 100644
index 81035d8..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.interop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
-
-/**
- * Interface for interop-aware components.
- */
-public interface GridInteropAware {
-    /**
-     * Sets configuration parameters.
-     *
-     * @param params Configuration parameters.
-     */
-    public void configure(Object... params);
-
-    /**
-     * Initializes interop-aware component.
-     *
-     * @param ctx Context.
-     * @throws IgniteCheckedException In case of error.
-     */
-    public void initialize(GridKernalContext ctx) throws IgniteCheckedException;
-
-    /**
-     * Destroys interop-aware component.
-     *
-     * @param ctx Context.
-     * @throws IgniteCheckedException In case of error.
-     */
-    public void destroy(GridKernalContext ctx) throws IgniteCheckedException;
-}


[08/50] [abbrv] incubator-ignite git commit: Ignite-71 GridLog4jCorrectFileNameTest fix

Posted by se...@apache.org.
Ignite-71 GridLog4jCorrectFileNameTest 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/9b6f75e2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/9b6f75e2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/9b6f75e2

Branch: refs/heads/ignite-132
Commit: 9b6f75e27be952f9e703824feb65183e0e6b2aa9
Parents: 2690391
Author: avinogradov <av...@gridgain.com>
Authored: Fri Jan 30 14:38:47 2015 +0300
Committer: avinogradov <av...@gridgain.com>
Committed: Fri Jan 30 14:38:47 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/9b6f75e2/modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java
----------------------------------------------------------------------
diff --git a/modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java b/modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java
index dc9cd37..0f76f25 100644
--- a/modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java
+++ b/modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java
@@ -81,7 +81,7 @@ public class GridLog4jCorrectFileNameTest extends TestCase {
     private void checkOneNode(int id) throws Exception {
         try (Ignite ignite = G.start(getConfiguration("grid" + id))) {
             String id8 = U.id8(ignite.cluster().localNode().id());
-            String logPath = "work/log/gridgain-" + id8 + ".log";
+            String logPath = "work/log/ignite-" + id8 + ".log";
             File logFile = U.resolveGridGainPath(logPath);
 
             assertNotNull("Failed to resolve path: " + logPath, logFile);


[04/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'origin/sprint-1' into sprint-1

Posted by se...@apache.org.
Merge remote-tracking branch 'origin/sprint-1' into sprint-1


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

Branch: refs/heads/ignite-132
Commit: c98118f0df4cbdad7b66ffa14501f18a72d8df00
Parents: 2ec1cb2 71442e2
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jan 30 17:36:05 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jan 30 17:36:05 2015 +0700

----------------------------------------------------------------------
 .../util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java      | 2 +-
 .../java/org/apache/ignite/messaging/GridMessagingSelfTest.java  | 2 +-
 .../ignite/internal/processors/hadoop/GridHadoopClassLoader.java | 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------



[03/50] [abbrv] incubator-ignite git commit: # sprint-1: removed unused import.

Posted by se...@apache.org.
# sprint-1: removed unused import.


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

Branch: refs/heads/ignite-132
Commit: 2ec1cb2be1ea27a10d524da984bddf306c4de862
Parents: 9550905
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jan 30 17:35:28 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jan 30 17:35:28 2015 +0700

----------------------------------------------------------------------
 .../src/main/scala/org/apache/ignite/visor/visor.scala              | 1 -
 1 file changed, 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2ec1cb2b/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 764a347..fef1aff 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
@@ -42,7 +42,6 @@ import org.apache.ignite.lang.{IgniteNotPeerDeployable, IgnitePredicate}
 import org.apache.ignite.lifecycle.IgniteListener
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi
 import org.apache.ignite.thread.IgniteThreadPoolExecutor
-import org.apache.ignite.visor.VisorTag
 import org.apache.ignite.visor.commands.{VisorConsoleCommand, VisorTextTable}
 import org.apache.ignite.{IgniteState, IgniteSystemProperties, Ignition, _}
 import org.jetbrains.annotations.Nullable


[33/50] [abbrv] incubator-ignite git commit: Merge branches 'ignite-132' and 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-132

Posted by se...@apache.org.
Merge branches 'ignite-132' and 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-132

Conflicts:
	modules/core/src/main/java/org/apache/ignite/internal/GridEx.java
	modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.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/dadb9c50
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/dadb9c50
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/dadb9c50

Branch: refs/heads/ignite-132
Commit: dadb9c503612909d4e58391a254f64718babe2c0
Parents: 36dc41a
Author: S.Vladykin <sv...@gridgain.com>
Authored: Tue Feb 3 00:30:23 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Tue Feb 3 00:30:23 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/internal/IgniteEx.java   | 8 ++++++++
 .../hadoop/proto/GridHadoopProtocolTaskAdapter.java          | 2 +-
 .../hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java    | 5 +++++
 3 files changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dadb9c50/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
index aa94560..26b1628 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
@@ -19,6 +19,7 @@ package org.apache.ignite.internal;
 
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
+import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.lang.*;
 import org.jetbrains.annotations.*;
@@ -132,4 +133,11 @@ public interface IgniteEx extends Ignite, ClusterGroupEx, IgniteCluster {
      * @return GGFS.
      */
     @Nullable public IgniteFs ggfsx(@Nullable String name);
+
+    /**
+     * Get Hadoop facade.
+     *
+     * @return Hadoop.
+     */
+    public GridHadoop hadoop();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dadb9c50/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
index c06f6a0..01a68e1 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
@@ -88,7 +88,7 @@ public abstract class GridHadoopProtocolTaskAdapter<R> implements ComputeTask<Gr
 
         /** {@inheritDoc} */
         @Nullable @Override public Object execute() throws IgniteCheckedException {
-            return run(jobCtx, ((GridEx)ignite).hadoop(), args);
+            return run(jobCtx, ((IgniteEx)ignite).hadoop(), args);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/dadb9c50/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
index 514c44f..7b5f76b 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
@@ -938,6 +938,11 @@ public class GridHadoopDefaultMapReducePlannerSelfTest extends GridHadoopAbstrac
         }
 
         /** {@inheritDoc} */
+        @Override public GridHadoop hadoop() {
+            return null;
+        }
+
+        /** {@inheritDoc} */
         @Override public String name() {
             return null;
         }


[29/50] [abbrv] incubator-ignite git commit: #ignite-16: Finished.

Posted by se...@apache.org.
#ignite-16: Finished.


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

Branch: refs/heads/ignite-132
Commit: ff7ee6d30460db42c4f1364b135ba21e20a26c60
Parents: 2636e2c
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Feb 2 14:35:01 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Feb 2 14:35:01 2015 +0300

----------------------------------------------------------------------
 .../internal/processors/cache/GridCacheWriteBehindStore.java   | 1 -
 .../hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java      | 6 ------
 2 files changed, 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff7ee6d3/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
index 5159348..d303225 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.cache;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.store.*;
-import org.apache.ignite.internal.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.thread.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff7ee6d3/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
index 65b8ba2..514c44f 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
@@ -28,7 +28,6 @@ import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.planner.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.testframework.*;
@@ -1011,11 +1010,6 @@ public class GridHadoopDefaultMapReducePlannerSelfTest extends GridHadoopAbstrac
         }
 
         /** {@inheritDoc} */
-        @Override public GridInteropProcessor interop() {
-            return null;
-        }
-
-        /** {@inheritDoc} */
         @Override public ClusterNode localNode() {
             return null;
         }


[45/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/art-of-war.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/art-of-war.txt b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/art-of-war.txt
deleted file mode 100644
index 8efd211..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/art-of-war.txt
+++ /dev/null
@@ -1,6982 +0,0 @@
-The Project Gutenberg eBook, The Art of War, by Sun Tzu
-
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever.  You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.org
-
-
-Title: The Art of War
-
-Author: Sun Tzu
-
-Translator: Lionel Giles
-
-Release Date: May 1994  [eBook #132]
-[Last updated: January 14, 2012]
-
-Language: English
-
-Character set encoding: ISO-646-US (US-ASCII)
-
-***START OF THE PROJECT GUTENBERG EBOOK THE ART OF WAR ***
-
-Note: Please see Project Gutenberg's eBook #17405 for a version of
-this eBook without the Giles commentary (that is, with only the
-Sun Tzu text).
-
-
-
-                    SUN TZU ON THE ART OF WAR
-
-            THE OLDEST MILITARY TREATISE IN THE WORLD
-
-          Translated from the Chinese with Introduction
-                       and Critical Notes
-
-                               BY
-
-                       LIONEL GILES, M.A.
-
- Assistant in the Department of Oriental Printed Books and MSS.
-                      in the British Museum
-
-                     First Published in 1910
-
------------------------------------------------------------------
-
-                          To my brother
-                  Captain Valentine Giles, R.G.
-                        in the hope that
-                      a work 2400 years old
-           may yet contain lessons worth consideration
-                     by the soldier of today
-                        this translation
-                  is affectionately dedicated.
-
------------------------------------------------------------------
-
-Preface to the Project Gutenberg Etext
---------------------------------------
-
-     When Lionel Giles began his translation of Sun Tzu's ART OF
-WAR, the work was virtually unknown in Europe.  Its introduction
-to Europe began in 1782 when a French Jesuit Father living in
-China, Joseph Amiot, acquired a copy of it, and translated it
-into French.  It was not a good translation because, according to
-Dr. Giles, "[I]t contains a great deal that Sun Tzu did not
-write, and very little indeed of what he did."
-     The first translation into English was published in 1905 in
-Tokyo by Capt. E. F. Calthrop, R.F.A.  However, this translation
-is, in the words of Dr. Giles, "excessively bad."  He goes
-further in this criticism:  "It is not merely a question of
-downright blunders, from which none can hope to be wholly exempt.
-Omissions were frequent; hard passages were willfully distorted
-or slurred over.  Such offenses are less pardonable.  They would
-not be tolerated in any edition of a Latin or Greek classic, and
-a similar standard of honesty ought to be insisted upon in
-translations from Chinese."  In 1908 a new edition of Capt.
-Calthrop's translation was published in London.  It was an
-improvement on the first -- omissions filled up and numerous
-mistakes corrected -- but new errors were created in the process.
-Dr. Giles, in justifying his translation, wrote:  "It was not
-undertaken out of any inflated estimate of my own powers; but I
-could not help feeling that Sun Tzu deserved a better fate than
-had befallen him, and I knew that, at any rate, I could hardly
-fail to improve on the work of my predecessors."
-     Clearly, Dr. Giles' work established much of the groundwork
-for the work of later translators who published their own
-editions.  Of the later editions of the ART OF WAR I have
-examined;  two feature Giles' edited translation and notes,  the
-other two present the same basic information from the ancient
-Chinese commentators found in the Giles edition.  Of these four,
-Giles' 1910 edition is the most scholarly and presents the reader
-an incredible amount of information concerning Sun Tzu's text,
-much more than any other translation.
-     The Giles' edition of the ART OF WAR, as stated above, was a
-scholarly work.  Dr. Giles was a leading sinologue at the time
-and an assistant in the Department of Oriental Printed Books and
-Manuscripts in the British Museum.  Apparently he wanted to
-produce a definitive edition, superior to anything else that
-existed and perhaps something that would become a standard
-translation.  It was the best translation available for 50 years.
-But apparently there was not much interest in Sun Tzu in English-
-speaking countries since it took the start of the Second
-World War to renew interest in his work.  Several people
-published unsatisfactory English translations of Sun Tzu.  In
-1944,  Dr. Giles' translation was edited and published in the
-United States in a series of military science books.  But it
-wasn't until 1963 that a good English translation (by Samuel B.
-Griffith and still in print) was published that was an equal to
-Giles' translation.  While this translation is more lucid than
-Dr. Giles' translation, it lacks his copious notes that make his
-so interesting.
-     Dr. Giles produced a work primarily intended for scholars of
-the Chinese civilization and language.  It contains the Chinese
-text of Sun Tzu, the English translation, and voluminous notes
-along with numerous footnotes.  Unfortunately, some of his notes
-and footnotes contain Chinese characters; some are completely
-Chinese.  Thus,  a conversion to a Latin alphabet etext was
-difficult.  I did the conversion in complete ignorance of Chinese
-(except for what I learned while doing the conversion).  Thus, I
-faced the difficult task of paraphrasing it while retaining as
-much of the important text as I could.  Every paraphrase
-represents a loss; thus I did what I could to retain as much of
-the text as possible.  Because the 1910 text contains a Chinese
-concordance, I was able to transliterate proper names, books, and
-the like at the risk of making the text more obscure.  However,
-the text, on the whole, is quite satisfactory for the casual
-reader, a transformation made possible by conversion to an etext.
-However, I come away from this task with the feeling of loss
-because I know that someone with a background in Chinese can do a
-better job than I did; any such attempt would be welcomed.
-
-                              Bob Sutton
-                              al876@cleveland.freenet.edu
-                              bobs@gnu.ai.mit.edu
-
------------------------------------------------------------------
-INTRODUCTION
-
-
-Sun Wu and his Book
--------------------
-
-
-     Ssu-ma Ch`ien gives the following biography of Sun Tzu:  [1]
---
-
-       Sun Tzu Wu was a native of the Ch`i State.  His ART OF
-  WAR brought him to the notice of Ho Lu, [2] King of Wu.  Ho
-  Lu said to him:  "I have carefully perused your 13 chapters.
-  May I submit your theory of managing soldiers to a slight
-  test?"
-       Sun Tzu replied:  "You may."
-       Ho Lu asked:  "May the test be applied to women?"
-       The answer was again in the affirmative, so arrangements
-  were made to bring 180 ladies out of the Palace.  Sun Tzu
-  divided them into two companies, and placed one of the King's
-  favorite concubines at the head of each.  He then bade them
-  all take spears in their hands, and addressed them thus:   "I
-  presume you know the difference between front and back, right
-  hand and left hand?"
-       The girls replied:  Yes.
-       Sun Tzu went on:  "When I say "Eyes front,"  you must
-  look straight ahead.  When I say "Left turn," you must face
-  towards your left hand.  When I say "Right turn,"  you must
-  face towards your right hand.  When I say "About turn,"  you
-  must face right round towards your back."
-       Again the girls assented.  The words of command having
-  been thus explained, he set up the halberds and battle-axes
-  in order to begin the drill.  Then, to the sound of drums, he
-  gave the order "Right turn."  But the girls only burst out
-  laughing.  Sun Tzu said:  "If words of command are not clear
-  and distinct, if orders are not thoroughly understood, then
-  the general is to blame."
-       So he started drilling them again, and this time gave
-  the order "Left turn," whereupon the girls once more burst
-  into fits of laughter.  Sun Tzu:  "If words of command are
-  not clear and distinct, if orders are not thoroughly
-  understood, the general is to blame.  But if his orders ARE
-  clear, and the soldiers nevertheless disobey, then it is the
-  fault of their officers."
-       So saying, he ordered the leaders of the two companies
-  to be beheaded.  Now the king of Wu was watching the scene
-  from the top of a raised pavilion; and when he saw that his
-  favorite concubines were about to be executed, he was greatly
-  alarmed and hurriedly sent down the following message:   "We
-  are now quite satisfied as to our general's ability to handle
-  troops.  If We are bereft of these two concubines, our meat
-  and drink will lose their savor.  It is our wish that they
-  shall not be beheaded."
-       Sun Tzu replied:  "Having once received His Majesty's
-  commission to be the general of his forces, there are certain
-  commands of His Majesty which, acting in that capacity, I am
-  unable to accept."
-       Accordingly,  he had the two leaders beheaded,  and
-  straightway installed the pair next in order as leaders in
-  their place.  When this had been done, the drum was sounded
-  for the drill once more; and the girls went through all the
-  evolutions, turning to the right or to the left, marching
-  ahead or wheeling back, kneeling or standing, with perfect
-  accuracy and precision, not venturing to utter a sound.  Then
-  Sun Tzu sent a messenger to the King saying:  "Your soldiers,
-  Sire, are now properly drilled and disciplined, and ready for
-  your majesty's inspection.  They can be put to any use that
-  their sovereign may desire; bid them go through fire and
-  water, and they will not disobey."
-       But the King replied:  "Let our general cease drilling
-  and return to camp.  As for us, We have no wish to come down
-  and inspect the troops."
-       Thereupon Sun Tzu said:  "The King is only fond of
-  words, and cannot translate them into deeds."
-       After that, Ho Lu saw that Sun Tzu was one who knew how
-  to handle an army, and finally appointed him general.  In the
-  west, he defeated the Ch`u State and forced his way into
-  Ying, the capital; to the north he put fear into the States
-  of Ch`i and Chin, and spread his fame abroad amongst the
-  feudal princes.  And Sun Tzu shared in the might of the King.
-
-     About Sun Tzu himself this is all that Ssu-ma Ch`ien has to
-tell us in this chapter.  But he proceeds to give a biography of
-his descendant,  Sun Pin, born about a hundred years after his
-famous ancestor's death, and also the outstanding military genius
-of his time.  The historian speaks of him too as Sun Tzu, and in
-his preface we read:  "Sun Tzu had his feet cut off and yet
-continued to discuss the art of war." [3]  It seems likely, then,
-that  "Pin" was a nickname bestowed on him after his mutilation,
-unless the story was invented in order to account for the name.
-The crowning incident of his career, the crushing defeat of his
-treacherous rival P`ang Chuan, will be found briefly related in
-Chapter V. ss. 19, note.
-     To return to the elder Sun Tzu.  He is mentioned in two
-other passages of the SHIH CHI: --
-
-       In the third year of his reign [512 B.C.] Ho Lu, king of
-  Wu, took the field with Tzu-hsu [i.e. Wu Yuan] and Po P`ei,
-  and attacked Ch`u.  He captured the town of Shu and slew the
-  two prince's sons who had formerly been generals of Wu.  He
-  was then meditating a descent on Ying [the capital]; but the
-  general Sun Wu said:  "The army is exhausted.  It is not yet
-  possible.  We must wait"....  [After further successful
-  fighting,]  "in the ninth year  [506 B.C.],  King Ho Lu
-  addressed Wu Tzu-hsu and Sun Wu, saying:   "Formerly, you
-  declared that it was not yet possible for us to enter Ying.
-  Is the time ripe now?"  The two men replied:  "Ch`u's general
-  Tzu-ch`ang, [4] is grasping and covetous, and the princes of
-  T`ang and Ts`ai both have a grudge against him.  If Your
-  Majesty has resolved to make a grand attack, you must win
-  over T`ang and Ts`ai, and then you may succeed."   Ho Lu
-  followed this advice, [beat Ch`u in five pitched battles and
-  marched into Ying.] [5]
-
-     This is the latest date at which anything is recorded of Sun
-Wu.  He does not appear to have survived his patron, who died
-from the effects of a wound in 496.
-     In another chapter there occurs this passage:  [6]
-
-       From this time onward, a number of famous soldiers
-  arose, one after the other:  Kao-fan, [7] who was employed by
-  the Chin State; Wang-tzu, [8] in the service of Ch`i; and Sun
-  Wu, in the service of Wu.  These men developed and threw
-  light upon the principles of war.
-
-     It is obvious enough that Ssu-ma Ch`ien at least had no
-doubt about the reality of Sun Wu as an historical personage; and
-with one exception, to be noticed presently, he is by far the
-most important authority on the period in question.  It will not
-be necessary, therefore, to say much of such a work as the WU
-YUEH CH`UN CH`IU, which is supposed to have been written by Chao
-Yeh of the 1st century A.D.  The attribution is somewhat
-doubtful; but even if it were otherwise, his account would be of
-little value, based as it is on the SHIH CHI and expanded with
-romantic details.  The story of Sun Tzu will be found, for what
-it is worth, in chapter 2.  The only new points in it worth
-noting are:  (1)  Sun Tzu was first recommended to Ho Lu by Wu
-Tzu-hsu.  (2) He is called a native of Wu.  (3) He had previously
-lived a retired life, and his contemporaries were unaware of his
-ability.
-     The following passage occurs in the Huai-nan Tzu:   "When
-sovereign and ministers show perversity of mind, it is impossible
-even for a Sun Tzu to encounter the foe."  Assuming that this
-work is genuine (and hitherto no doubt has been cast upon it), we
-have here the earliest direct reference for Sun Tzu, for Huai-nan
-Tzu died in 122 B.C., many years before the SHIH CHI was given to
-the world.
-     Liu Hsiang (80-9 B.C.) says:  "The reason why Sun Tzu at the
-head of 30,000 men beat Ch`u with 200,000 is that the latter were
-undisciplined."
-     Teng Ming-shih informs us that the surname "Sun" was
-bestowed on Sun Wu's grandfather by Duke Ching of Ch`i [547-490
-B.C.].  Sun Wu's father Sun P`ing, rose to be a Minister of State
-in Ch`i, and Sun Wu himself, whose style was Ch`ang-ch`ing,  fled
-to Wu on account of the rebellion which was being fomented by the
-kindred of T`ien Pao.  He had three sons, of whom the second,
-named Ming, was the father of Sun Pin.  According to this account
-then, Pin was the grandson of Wu, which, considering that Sun
-Pin's victory over Wei was gained in 341 B.C., may be dismissed
-as chronological impossible.  Whence these data were obtained by
-Teng Ming-shih I do not know, but of course no reliance whatever
-can be placed in them.
-     An interesting document which has survived from the close of
-the Han period is the short preface written by the Great Ts`ao
-Ts`ao, or Wei Wu Ti, for his edition of Sun Tzu.  I shall give it
-in full:  --
-
-       I have heard that the ancients used bows and arrows to
-  their advantage. [10]  The SHU CHU mentions "the army" among
-  the "eight objects of government."  The I CHING says:
-  "'army' indicates firmness and justice;  the experienced
-  leader will have good fortune."  The SHIH CHING says:  "The
-  King rose majestic in his wrath, and he marshaled his
-  troops."  The Yellow Emperor, T`ang the Completer and Wu Wang
-  all used spears and battle-axes in order to succor their
-  generation.  The SSU-MA FA says:  "If one man slay another of
-  set purpose, he himself may rightfully be slain."  He who
-  relies solely on warlike measures shall be exterminated; he
-  who relies solely on peaceful measures shall perish.
-  Instances of this are Fu Ch`ai [11] on the one hand and Yen
-  Wang on the other. [12]  In military matters, the Sage's rule
-  is normally to keep the peace, and to move his forces only
-  when occasion requires.  He will not use armed force unless
-  driven to it by necessity.
-       Many books have I read on the subject of war and
-  fighting; but the work composed by Sun Wu is the profoundest
-  of them all.  [Sun Tzu was a native of the Ch`i state,  his
-  personal name was Wu.  He wrote the ART OF WAR in 13 chapters
-  for Ho Lu, King of Wu.  Its principles were tested on women,
-  and he was subsequently made a general.  He led an army
-  westwards,  crushed the Ch`u state and entered Ying the
-  capital.  In the north, he kept Ch`i and Chin in awe.  A
-  hundred years and more after his time, Sun Pin lived. He was
-  a descendant of Wu.] [13]  In his treatment of deliberation
-  and planning, the importance of rapidity in taking the field,
-  [14] clearness of conception, and depth of design,  Sun Tzu
-  stands beyond the reach of carping criticism.  My
-  contemporaries, however, have failed to grasp the full
-  meaning of his instructions, and while putting into practice
-  the smaller details in which his work abounds,  they have
-  overlooked its essential purport.  That is the motive which
-  has led me to outline a rough explanation of the whole.
-
-     One thing to be noticed in the above is the explicit
-statement that the 13 chapters were specially composed for King
-Ho Lu.  This is supported by the internal evidence of I. ss. 15,
-in which it seems clear that some ruler is addressed.
-     In the bibliographic section of the HAN SHU, there is an
-entry which has given rise to much discussion:  "The works of Sun
-Tzu of Wu in 82 P`IEN (or chapters), with diagrams in 9 CHUAN."
-It is evident that this cannot be merely the 13 chapters known to
-Ssu-ma Ch`ien,  or those we possess today.  Chang Shou-chieh
-refers to an edition of Sun Tzu's ART OF WAR of which the "13
-chapters" formed the first CHUAN, adding that there were two
-other CHUAN besides.  This has brought forth a theory, that the
-bulk of these 82 chapters consisted of other writings of Sun Tzu
---  we should call them apocryphal -- similar to the WEN TA, of
-which a specimen dealing with the Nine Situations [15] is
-preserved in the T`UNG TIEN, and another in Ho Shin's commentary.
-It is suggested that before his interview with Ho Lu, Sun Tzu had
-only written the 13 chapters, but afterwards composed a sort of
-exegesis in the form of question and answer between himself and
-the King.  Pi I-hsun, the author of the SUN TZU HSU LU, backs
-this up with a quotation from the WU YUEH CH`UN CH`IU:  "The King
-of Wu summoned Sun Tzu, and asked him questions about the art of
-war.  Each time he set forth a chapter of his work, the King
-could not find words enough to praise him."  As he points out, if
-the whole work was expounded on the same scale as in the above-
-mentioned fragments, the total number of chapters could not fail
-to be considerable.  Then the numerous other treatises attributed
-to Sun Tzu might be included.  The fact that the HAN CHIH
-mentions no work of Sun Tzu except the 82 P`IEN, whereas the Sui
-and T`ang bibliographies give the titles of others in addition to
-the "13 chapters," is good proof, Pi I-hsun thinks, that all of
-these were contained in the 82 P`IEN.  Without pinning our faith
-to the accuracy of details supplied by the WU YUEH CH`UN CH`IU,
-or admitting the genuineness of any of the treatises cited by Pi
-I-hsun,  we may see in this theory a probable solution of the
-mystery.  Between Ssu-ma Ch`ien and Pan Ku there was plenty of
-time for a luxuriant crop of forgeries to have grown up under the
-magic name of Sun Tzu, and the 82 P`IEN may very well represent a
-collected edition of these lumped together with the original
-work.  It is also possible, though less likely, that some of them
-existed in the time of the earlier historian and were purposely
-ignored by him. [16]
-     Tu Mu's conjecture seems to be based on a passage which
-states:  "Wei Wu Ti strung together Sun Wu's Art of War," which
-in turn may have resulted from a misunderstanding of the final
-words of Ts`ao King's preface.  This, as Sun Hsing-yen points
-out, is only a modest way of saying that he made an explanatory
-paraphrase, or in other words, wrote a commentary on it.  On the
-whole, this theory has met with very little acceptance.  Thus,
-the SSU K`U CH`UAN SHU says:  "The mention of the 13 chapters in
-the SHIH CHI shows that they were in existence before the HAN
-CHIH, and that latter accretions are not to be considered part of
-the original work.  Tu Mu's assertion can certainly not be taken
-as proof."
-     There is every reason to suppose, then, that the 13 chapters
-existed in the time of Ssu-ma Ch`ien practically as we have them
-now.  That the work was then well known he tells us in so many
-words.  "Sun Tzu's 13 Chapters and Wu Ch`i's Art of War are the
-two books that people commonly refer to on the subject of
-military matters.  Both of them are widely distributed, so I will
-not discuss them here."  But as we go further back, serious
-difficulties begin to arise.  The salient fact which has to be
-faced is that the TSO CHUAN, the greatest contemporary record,
-makes no mention whatsoever of Sun Wu, either as a general or as
-a writer.  It is natural, in view of this awkward circumstance,
-that many scholars should not only cast doubt on the story of Sun
-Wu as given in the SHIH CHI, but even show themselves frankly
-skeptical as to the existence of the man at all.  The most
-powerful presentment of this side of the case is to be found in
-the following disposition by Yeh Shui-hsin: [17] --
-
-       It is stated in Ssu-ma Ch`ien's history that Sun Wu was
-  a native of the Ch`i State, and employed by Wu; and that in
-  the reign of Ho Lu he crushed Ch`u, entered Ying, and was a
-  great general.  But in Tso's Commentary no Sun Wu appears at
-  all.  It is true that Tso's Commentary need not contain
-  absolutely everything that other histories contain.  But Tso
-  has not omitted to mention vulgar plebeians and hireling
-  ruffians such as Ying K`ao-shu, [18] Ts`ao Kuei,  [19],  Chu
-  Chih-wu and Chuan She-chu [20].  In the case of Sun Wu, whose
-  fame and achievements were so brilliant, the omission is much
-  more glaring.  Again, details are given, in their due order,
-  about his contemporaries Wu Yuan and the Minister P`ei.  [21]
-  Is it credible that Sun Wu alone should have been passed
-  over?
-       In point of literary style, Sun Tzu's work belongs to
-  the same school as KUAN TZU, [22] LIU T`AO, [23] and the YUEH
-  YU [24] and may have been the production of some private
-  scholar living towards the end of the "Spring and Autumn" or
-  the beginning of the "Warring States" period. [25]  The story
-  that his precepts were actually applied by the Wu State, is
-  merely the outcome of big talk on the part of his followers.
-       From the flourishing period of the Chou dynasty [26]
-  down to the time of the "Spring and Autumn," all military
-  commanders were statesmen as well, and the class of
-  professional generals, for conducting external campaigns, did
-  not then exist.  It was not until the period of the "Six
-  States" [27] that this custom changed.  Now although Wu was
-  an uncivilized State, it is conceivable that Tso should have
-  left unrecorded the fact that Sun Wu was a great general and
-  yet held no civil office?  What we are told, therefore, about
-  Jang-chu [28] and Sun Wu, is not authentic matter,  but the
-  reckless fabrication of theorizing pundits.  The story of Ho
-  Lu's experiment on the women, in particular, is utterly
-  preposterous and incredible.
-
-     Yeh Shui-hsin represents Ssu-ma Ch`ien as having said that
-Sun Wu crushed Ch`u and entered Ying.  This is not quite correct.
-No doubt the impression left on the reader's mind is that he at
-least shared in these exploits.  The fact may or may not be
-significant; but it is nowhere explicitly stated in the SHIH CHI
-either that Sun Tzu was general on the occasion of the taking of
-Ying, or that he even went there at all.  Moreover, as we know
-that Wu Yuan and Po P`ei both took part in the expedition, and
-also that its success was largely due to the dash and enterprise
-of Fu Kai, Ho Lu's younger brother, it is not easy to see how yet
-another general could have played a very prominent part in the
-same campaign.
-     Ch`en Chen-sun of the Sung dynasty has the note: --
-
-       Military writers look upon Sun Wu as the father of their
-  art.  But the fact that he does not appear in the TSO CHUAN,
-  although he is said to have served under Ho Lu King of Wu,
-  makes it uncertain what period he really belonged to.
-
-He also says: --
-
-       The works of Sun Wu and Wu Ch`i may be of genuine
-  antiquity.
-
-     It is noticeable that both Yeh Shui-hsin and Ch`en Chen-sun,
-while rejecting the personality of Sun Wu as he figures in Ssu-ma
-Ch`ien's history, are inclined to accept the date traditionally
-assigned to the work which passes under his name.  The author of
-the HSU LU fails to appreciate this distinction, and consequently
-his bitter attack on Ch`en Chen-sun really misses its mark.  He
-makes one of two points, however, which certainly tell in favor
-of the high antiquity of our "13 chapters."  "Sun Tzu," he says,
-"must have lived in the age of Ching Wang [519-476], because he
-is frequently plagiarized in subsequent works of the Chou, Ch`in
-and Han dynasties."  The two most shameless offenders in this
-respect are Wu Ch`i and Huai-nan Tzu, both of them important
-historical personages in their day.  The former lived only a
-century after the alleged date of Sun Tzu, and his death is known
-to have taken place in 381 B.C.  It was to him, according to Liu
-Hsiang,  that Tseng Shen delivered the TSO CHUAN, which had been
-entrusted to him by its author.  [29]   Now the fact that
-quotations from the ART OF WAR, acknowledged or otherwise, are to
-be found in so many authors of different epochs, establishes a
-very strong anterior to them all, -- in other words, that Sun
-Tzu's treatise was already in existence towards the end of the
-5th century B.C.  Further proof of Sun Tzu's antiquity is
-furnished by the archaic or wholly obsolete meanings attaching to
-a number of the words he uses.  A list of these, which might
-perhaps be extended, is given in the HSU LU; and though some of
-the interpretations are doubtful, the main argument is hardly
-affected thereby.  Again, it must not be forgotten that Yeh Shui-
-hsin, a scholar and critic of the first rank, deliberately
-pronounces the style of the 13 chapters to belong to the early
-part of the fifth century.  Seeing that he is actually engaged in
-an attempt to disprove the existence of Sun Wu himself, we may be
-sure that he would not have hesitated to assign the work to a
-later date had he not honestly believed the contrary.  And it is
-precisely on such a point that the judgment of an educated
-Chinaman will carry most weight.  Other internal evidence is not
-far to seek.  Thus in XIII. ss. 1, there is an unmistakable
-allusion to the ancient system of land-tenure which had already
-passed away by the time of Mencius, who was anxious to see it
-revived in a modified form. [30]  The only warfare Sun Tzu knows
-is that carried on between the various feudal princes, in which
-armored chariots play a large part.  Their use seems to have
-entirely died out before the end of the Chou dynasty.  He speaks
-as a man of Wu, a state which ceased to exist as early as 473
-B.C.  On this I shall touch presently.
-
-     But once refer the work to the 5th century or earlier,  and
-the chances of its being other than a bona fide production are
-sensibly diminished.  The great age of forgeries did not come
-until long after.  That it should have been forged in the period
-immediately following 473 is particularly unlikely, for no one,
-as a rule, hastens to identify himself with a lost cause.  As for
-Yeh Shui-hsin's theory, that the author was a literary recluse,
-that seems to me quite untenable.  If one thing is more apparent
-than another after reading the maxims of Sun Tzu, it is that
-their essence has been distilled from a large store of personal
-observation and experience.  They reflect the mind not only of a
-born strategist, gifted with a rare faculty of generalization,
-but also of a practical soldier closely acquainted with the
-military conditions of his time.  To say nothing of the fact that
-these sayings have been accepted and endorsed by all the greatest
-captains of Chinese history, they offer a combination of
-freshness and sincerity, acuteness and common sense, which quite
-excludes the idea that they were artificially concocted in the
-study.  If we admit, then, that the 13 chapters were the genuine
-production of a military man living towards the end of the "CH`UN
-CH`IU" period, are we not bound, in spite of the silence of the
-TSO CHUAN, to accept Ssu-ma Ch`ien's account in its entirety?  In
-view of his high repute as a sober historian,  must we not
-hesitate to assume that the records he drew upon for Sun Wu's
-biography were false and untrustworthy?  The answer, I fear, must
-be in the negative.  There is still one grave, if not fatal,
-objection to the chronology involved in the story as told in the
-SHIH CHI, which, so far as I am aware, nobody has yet pointed
-out.  There are two passages in Sun Tzu in which he alludes to
-contemporary affairs.  The first in in VI. ss. 21: --
-
-       Though according to my estimate the soldiers of Yueh
-  exceed our own in number, that shall advantage them nothing
-  in the matter of victory.  I say then that victory can be
-  achieved.
-
-The other is in XI. ss. 30: --
-
-       Asked if an army can be made to imitate the SHUAI-JAN, I
-  should answer, Yes.  For the men of Wu and the men of Yueh
-  are enemies;  yet if they are crossing a river in the same
-  boat and are caught by a storm, they will come to each
-  other's assistance just as the left hand helps the right.
-
-     These two paragraphs are extremely valuable as evidence of
-the date of composition.  They assign the work to the period of
-the struggle between Wu and Yueh.  So much has been observed by
-Pi I-hsun.  But what has hitherto escaped notice is that they
-also seriously impair the credibility of Ssu-ma Ch`ien's
-narrative.  As we have seen above, the first positive date given
-in connection with Sun Wu is 512 B.C.  He is then spoken of as a
-general,  acting as confidential adviser to Ho Lu, so that his
-alleged introduction to that monarch had already taken place, and
-of course the 13 chapters must have been written earlier still.
-But at that time, and for several years after, down to the
-capture of Ying in 506, Ch`u and not Yueh, was the great
-hereditary enemy of Wu.  The two states, Ch`u and Wu, had been
-constantly at war for over half a century, [31] whereas the first
-war between Wu and Yueh was waged only in 510, [32] and even then
-was no more than a short interlude sandwiched in the midst of the
-fierce struggle with Ch`u.  Now Ch`u is not mentioned in the 13
-chapters at all.  The natural inference is that they were written
-at a time when Yueh had become the prime antagonist of Wu, that
-is, after Ch`u had suffered the great humiliation of 506.  At
-this point, a table of dates may be found useful.
-
-B.C. |
-     |
-514  |  Accession of Ho Lu.
-512  |  Ho Lu attacks Ch`u, but is dissuaded from entering Ying,
-     |    the capital.  SHI CHI mentions Sun Wu as general.
-511  |  Another attack on Ch`u.
-510  |  Wu makes a successful attack on Yueh.  This is the first
-     |    war between the two states.
-509  |
- or  |  Ch`u invades Wu, but is signally defeated at Yu-chang.
-508  |
-506  |  Ho Lu attacks Ch`u with the aid of T`ang and Ts`ai.
-     |    Decisive battle of Po-chu, and capture of Ying.  Last
-     |    mention of Sun Wu in SHIH CHI.
-505  |  Yueh makes a raid on Wu in the absence of its army.  Wu
-     |    is beaten by Ch`in and evacuates Ying.
-504  |  Ho Lu sends Fu Ch`ai to attack Ch`u.
-497  |  Kou Chien becomes King of Yueh.
-496  |  Wu attacks Yueh, but is defeated by Kou Chien at Tsui-li.
-     |    Ho Lu is killed.
-494  |  Fu Ch`ai defeats Kou Chien in the great battle of Fu-
-     |    chaio, and enters the capital of Yueh.
-485  |
- or  |  Kou Chien renders homage to Wu.  Death of Wu Tzu-hsu.
-484  |
-482  |  Kou Chien invades Wu in the absence of Fu Ch`ai.
-478  |
- to  |  Further attacks by Yueh on Wu.
-476  |
-475  |  Kou Chien lays siege to the capital of Wu.
-473  |  Final defeat and extinction of Wu.
-
-     The sentence quoted above from VI. ss. 21 hardly strikes me
-as one that could have been written in the full flush of victory.
-It seems rather to imply that, for the moment at least, the tide
-had turned against Wu, and that she was getting the worst of the
-struggle.  Hence we may conclude that our treatise was not in
-existence in 505, before which date Yueh does not appear to have
-scored any notable success against Wu.  Ho Lu died in 496,  so
-that if the book was written for him, it must have been during
-the period 505-496, when there was a lull in the hostilities,  Wu
-having presumably exhausted by its supreme effort against Ch`u.
-On the other hand, if we choose to disregard the tradition
-connecting Sun Wu's name with Ho Lu, it might equally well have
-seen the light between 496 and 494, or possibly in the period
-482-473, when Yueh was once again becoming a very serious menace.
-[33]  We may feel fairly certain that the author, whoever he may
-have been, was not a man of any great eminence in his own day.
-On this point the negative testimony of the TSO CHUAN far
-outweighs any shred of authority still attaching to the SHIH CHI,
-if once its other facts are discredited.  Sun Hsing-yen, however,
-makes a feeble attempt to explain the omission of his name from
-the great commentary.  It was Wu Tzu-hsu, he says, who got all
-the credit of Sun Wu's exploits, because the latter  (being an
-alien) was not rewarded with an office in the State.
-     How then did the Sun Tzu legend originate?  It may be that
-the growing celebrity of the book imparted by degrees a kind of
-factitious renown to its author.  It was felt to be only right
-and proper that one so well versed in the science of war should
-have solid achievements to his credit as well.  Now the capture
-of Ying was undoubtedly the greatest feat of arms in Ho Lu's
-reign;  it made a deep and lasting impression on all the
-surrounding states, and raised Wu to the short-lived zenith of
-her power.  Hence, what more natural, as time went on, than that
-the acknowledged master of strategy, Sun Wu, should be popularly
-identified with that campaign, at first perhaps only in the sense
-that his brain conceived and planned it; afterwards, that it was
-actually carried out by him in conjunction with Wu Yuan, [34]  Po
-P`ei and Fu Kai?
-     It is obvious that any attempt to reconstruct even the
-outline of Sun Tzu's life must be based almost wholly on
-conjecture.  With this necessary proviso, I should say that he
-probably entered the service of Wu about the time of Ho Lu's
-accession,  and gathered experience, though only in the capacity
-of a subordinate officer, during the intense military activity
-which marked the first half of the prince's reign. [35]   If he
-rose to be a general at all, he certainly was never on an equal
-footing with the three above mentioned.  He was doubtless present
-at the investment and occupation of Ying,  and witnessed Wu's
-sudden collapse in the following year.  Yueh's attack at this
-critical juncture, when her rival was embarrassed on every side,
-seems to have convinced him that this upstart kingdom was the
-great enemy against whom every effort would henceforth have to be
-directed.  Sun Wu was thus a well-seasoned warrior when he sat
-down to write his famous book, which according to my reckoning
-must have appeared towards the end, rather than the beginning of
-Ho Lu's reign.  The story of the women may possibly have grown
-out of some real incident occurring about the same time.  As we
-hear no more of Sun Wu after this from any source, he is hardly
-likely to have survived his patron or to have taken part in the
-death-struggle with Yueh, which began with the disaster at Tsui-
-li.
-     If these inferences are approximately correct, there is a
-certain irony in the fate which decreed that China's most
-illustrious man of peace should be contemporary with her greatest
-writer on war.
-
-
-The Text of Sun Tzu
--------------------
-
-
-     I have found it difficult to glean much about the history of
-Sun Tzu's text.  The quotations that occur in early authors go to
-show that the "13 chapters" of which Ssu-ma Ch`ien speaks were
-essentially the same as those now extant.  We have his word for
-it that they were widely circulated in his day,  and can only
-regret that he refrained from discussing them on that account.
-Sun Hsing-yen says in his preface: --
-
-       During the Ch`in and Han dynasties Sun Tzu's ART OF WAR
-  was in general use amongst military commanders, but they seem
-  to have treated it as a work of mysterious import, and were
-  unwilling to expound it for the benefit of posterity.  Thus
-  it came about that Wei Wu was the first to write a commentary
-  on it.
-
-     As we have already seen, there is no reasonable ground to
-suppose that Ts`ao Kung tampered with the text.  But the text
-itself is often so obscure, and the number of editions which
-appeared from that time onward so great, especially during the
-T`ang and Sung dynasties, that it would be surprising if numerous
-corruptions had not managed to creep in.  Towards the middle of
-the Sung period, by which time all the chief commentaries on Sun
-Tzu were in existence, a certain Chi T`ien-pao published a work
-in 15 CHUAN entitled "Sun Tzu with the collected commentaries of
-ten writers."  There was another text, with variant readings put
-forward by Chu Fu of Ta-hsing, which also had supporters among
-the scholars of that period; but in the Ming editions, Sun Hsing-
-yen tells us, these readings were for some reason or other no
-longer put into circulation.  Thus, until the end of the 18th
-century, the text in sole possession of the field was one derived
-from Chi T`ien-pao's edition, although no actual copy of that
-important work was known to have survived.  That, therefore,  is
-the text of Sun Tzu which appears in the War section of the great
-Imperial encyclopedia printed in 1726, the KU CHIN T`U SHU CHI
-CH`ENG.  Another copy at my disposal of what is practically the
-same text,  with slight variations, is that contained in the
-"Eleven philosophers of the Chou and Ch`in dynasties"  [1758].
-And the Chinese printed in Capt. Calthrop's first edition is
-evidently a similar version which has filtered through Japanese
-channels.  So things remained until Sun Hsing-yen [1752-1818],  a
-distinguished antiquarian and classical scholar, who claimed to
-be an actual descendant of Sun Wu, [36] accidentally discovered a
-copy of Chi T`ien-pao's long-lost work, when on a visit to the
-library of the Hua-yin temple. [37]  Appended to it was the I
-SHUO of Cheng Yu-Hsien, mentioned in the T`UNG CHIH,  and also
-believed to have perished.  This is what Sun Hsing-yen designates
-as the "original edition (or text)" -- a rather misleading name,
-for it cannot by any means claim to set before us the text of Sun
-Tzu in its pristine purity.  Chi T`ien-pao was a careless
-compiler,  and appears to have been content to reproduce the
-somewhat debased version current in his day, without troubling to
-collate   it   with the earliest   editions   then   available.
-Fortunately,  two versions of Sun Tzu, even older than the newly
-discovered work, were still extant, one buried in the T`UNG TIEN,
-Tu Yu's great treatise on the Constitution, the other similarly
-enshrined in the T`AI P`ING YU LAN encyclopedia.  In both the
-complete text is to be found, though split up into fragments,
-intermixed with other matter, and scattered piecemeal over a
-number of different sections.  Considering that the YU LAN takes
-us back to the year 983, and the T`UNG TIEN about 200 years
-further still, to the middle of the T`ang dynasty, the value of
-these early transcripts of Sun Tzu can hardly be overestimated.
-Yet the idea of utilizing them does not seem to have occurred to
-anyone until Sun Hsing-yen, acting under Government instructions,
-undertook a thorough recension of the text.  This is his own
-account: --
-
-       Because of the numerous mistakes in the text of Sun Tzu
-  which his editors had handed down, the Government ordered
-  that the ancient edition [of Chi T`ien-pao] should be used,
-  and that the text should be revised and corrected throughout.
-  It happened that Wu Nien-hu, the Governor Pi Kua, and Hsi,  a
-  graduate of the second degree, had all devoted themselves to
-  this study, probably surpassing me therein.  Accordingly,  I
-  have had the whole work cut on blocks as a textbook for
-  military men.
-
-     The three individuals here referred to had evidently been
-occupied on the text of Sun Tzu prior to Sun Hsing-yen's
-commission,  but we are left in doubt as to the work they really
-accomplished.  At any rate, the new edition,  when ultimately
-produced, appeared in the names of Sun Hsing-yen and only one co-
-editor Wu Jen-shi.  They took the "original edition"  as their
-basis, and by careful comparison with older versions, as well as
-the extant commentaries and other sources of information such as
-the I SHUO,  succeeded in restoring a very large number of
-doubtful passages,  and turned out, on the whole, what must be
-accepted as the closes approximation we are ever likely to get to
-Sun Tzu's original work.  This is what will hereafter be
-denominated the "standard text."
-     The copy which I have used belongs to a reissue dated 1877.
-it is in 6 PEN, forming part of a well-printed set of 23 early
-philosophical works in 83 PEN. [38]  It opens with a preface by
-Sun Hsing-yen (largely quoted in this introduction),  vindicating
-the traditional view of Sun Tzu's life and performances,  and
-summing up in remarkably concise fashion the evidence in its
-favor.  This is followed by Ts`ao Kung's preface to his edition,
-and the biography of Sun Tzu from the SHIH CHI, both translated
-above.  Then come, firstly, Cheng Yu-hsien's I SHUO,  [39]  with
-author's preface, and next, a short miscellany of historical and
-bibliographical information entitled SUN TZU HSU LU, compiled by
-Pi I-hsun.  As regards the body of the work,  each separate
-sentence is followed by a note on the text, if required, and then
-by the various commentaries appertaining to it,  arranged in
-chronological order.  These we shall now proceed to discuss
-briefly, one by one.
-
-
-The Commentators
-----------------
-
-
-     Sun Tzu can boast an exceptionally long distinguished roll
-of commentators, which would do honor to any classic.  Ou-yang
-Hsiu remarks on this fact, though he wrote before the tale was
-complete,  and rather ingeniously explains it by saying that the
-artifices   of war,  being inexhaustible,  must therefore   be
-susceptible of treatment in a great variety of ways.
-
-     1.  TS`AO TS`AO or Ts`ao Kung, afterwards known as Wei Wu Ti
-[A.D.  155-220].  There is hardly any room for doubt that the
-earliest commentary on Sun Tzu actually came from the pen of this
-extraordinary man, whose biography in the SAN KUO CHIH reads like
-a romance.  One of the greatest military geniuses that the world
-has seen, and Napoleonic in the scale of his operations, he was
-especially famed for the marvelous rapidity of his marches, which
-has found expression in the line "Talk of Ts`ao Ts`ao, and Ts`ao
-Ts`ao will appear."  Ou-yang Hsiu says of him that he was a great
-captain who "measured his strength against Tung Cho, Lu Pu and
-the two Yuan, father and son, and vanquished them all;  whereupon
-he divided the Empire of Han with Wu and Shu, and made himself
-king.  It is recorded that whenever a council of war was held by
-Wei on the eve of a far-reaching campaign,  he had all his
-calculations ready; those generals who made use of them did not
-lose one battle in ten; those who ran counter to them in any
-particular saw their armies incontinently beaten and put to
-flight."   Ts`ao Kung's notes on Sun Tzu,  models of austere
-brevity, are so thoroughly characteristic of the stern commander
-known to history, that it is hard indeed to conceive of them as
-the work of a mere LITTERATEUR.  Sometimes,  indeed,  owing to
-extreme compression, they are scarcely intelligible and stand no
-less in need of a commentary than the text itself. [40]
-
-     2.  MENG SHIH.  The commentary which has come down to us
-under this name is comparatively meager, and nothing about the
-author is known.  Even his personal name has not been recorded.
-Chi T`ien-pao's edition places him after Chia Lin,and Ch`ao Kung-
-wu also assigns him to the T`ang dynasty, [41] but this is a
-mistake.  In Sun Hsing-yen's preface, he appears as Meng Shih of
-the Liang dynasty [502-557].  Others would identify him with Meng
-K`ang of the 3rd century.  He is named in one work as the last of
-the "Five Commentators," the others being Wei Wu Ti, Tu Mu, Ch`en
-Hao and Chia Lin.
-
-     3.  LI CH`UAN of the 8th century was a well-known writer on
-military tactics.  One of his works has been in constant use down
-to the present day.  The T`UNG CHIH mentions "Lives of famous
-generals from the Chou to the T`ang dynasty" as written by him.
-[42]  According to Ch`ao Kung-wu and the T`IEN-I-KO catalogue, he
-followed a variant of the text of Sun Tzu which differs
-considerably from those now extant.  His notes are mostly short
-and to the point, and he frequently illustrates his remarks by
-anecdotes from Chinese history.
-
-     4.  TU YU (died 812) did not publish a separate commentary
-on Sun Tzu,  his notes being taken from the T`UNG TIEN,  the
-encyclopedic treatise on the Constitution which was his life-
-work.  They are largely repetitions of Ts`ao Kung and Meng Shih,
-besides which it is believed that he drew on the ancient
-commentaries of Wang Ling and others.  Owing to the peculiar
-arrangement of T`UNG TIEN, he has to explain each passage on its
-merits, apart from the context, and sometimes his own explanation
-does not agree with that of Ts`ao Kung, whom he always quotes
-first.  Though not strictly to be reckoned as one of the  "Ten
-Commentators,"  he was added to their number by Chi T`ien-pao,
-being wrongly placed after his grandson Tu Mu.
-
-     5.  TU MU (803-852) is perhaps the best known as a poet -- a
-bright star even in the glorious galaxy of the T`ang period.  We
-learn from Ch`ao Kung-wu that although he had no practical
-experience of war,  he was extremely fond of discussing the
-subject,  and was moreover well read in the military history of
-the CH`UN CH`IU and CHAN KUO eras.  His notes,  therefore,  are
-well worth attention.  They are very copious, and replete with
-historical parallels.  The gist of Sun Tzu's work is thus
-summarized by him:  "Practice benevolence and justice, but on the
-other hand make full use of artifice and measures of expediency."
-He further declared that all the military triumphs and disasters
-of the thousand years which had elapsed since Sun Tzu's death
-would,  upon examination, be found to uphold and corroborate,  in
-every particular,  the maxims contained in his book.  Tu Mu's
-somewhat spiteful charge against Ts`ao Kung has already been
-considered elsewhere.
-
-     6.  CH`EN HAO appears to have been a contemporary of Tu Mu.
-Ch`ao Kung-wu says that he was impelled to write a new commentary
-on Sun Tzu because Ts`ao Kung's on the one hand was too obscure
-and subtle, and that of Tu Mu on the other too long-winded and
-diffuse.  Ou-yang Hsiu,  writing in the middle of the 11th
-century,  calls Ts`ao Kung, Tu Mu and Ch`en Hao the three chief
-commentators on Sun Tzu,  and observes that Ch`en Hao   is
-continually attacking Tu Mu's shortcomings.  His commentary,
-though not lacking in merit, must rank below those of his
-predecessors.
-
-     7.  CHIA LIN is known to have lived under the T`ang dynasty,
-for his commentary on Sun Tzu is mentioned in the T`ang Shu and
-was afterwards republished by Chi Hsieh of the same dynasty
-together with those of Meng Shih and Tu Yu.  It is of somewhat
-scanty texture, and in point of quality, too, perhaps the least
-valuable of the eleven.
-
-     8.  MEI YAO-CH`EN (1002-1060), commonly known by his "style"
-as Mei Sheng-yu, was, like Tu Mu, a poet of distinction.  His
-commentary was published with a laudatory preface by the great
-Ou-yang Hsiu, from which we may cull the following: --
-
-       Later scholars have misread Sun Tzu,  distorting his
-  words and trying to make them square with their own one-sided
-  views.  Thus, though commentators have not been lacking, only
-  a few have proved equal to the task.  My friend Sheng-yu has
-  not fallen into this mistake.  In attempting to provide a
-  critical commentary for Sun Tzu's work, he does not lose
-  sight of the fact that these sayings were intended for states
-  engaged in internecine warfare; that the author is not
-  concerned with the military conditions prevailing under the
-  sovereigns of the three ancient dynasties, [43] nor with the
-  nine punitive measures prescribed to the Minister of War.
-  [44]  Again, Sun Wu loved brevity of diction, but his meaning
-  is always deep.  Whether the subject be marching an army,  or
-  handling soldiers, or estimating the enemy,  or controlling
-  the forces of victory, it is always systematically treated;
-  the sayings are bound together in strict logical sequence,
-  though this has been obscured by commentators who have
-  probably   failed to grasp their meaning.  In his   own
-  commentary, Mei Sheng-yu has brushed aside all the obstinate
-  prejudices of these critics, and has tried to bring out the
-  true meaning of Sun Tzu himself.  In this way, the clouds of
-  confusion have been dispersed and the sayings made clear.  I
-  am convinced that the present work deserves to be handed down
-  side by side with the three great commentaries; and for a
-  great deal that they find in the sayings, coming generations
-  will have constant reason to thank my friend Sheng-yu.
-
-     Making some allowance for the exuberance of friendship, I am
-inclined to endorse this favorable judgment, and would certainly
-place him above Ch`en Hao in order of merit.
-
-     9.  WANG HSI,  also of the Sung dynasty,  is decidedly
-original in some of his interpretations, but much less judicious
-than Mei Yao-ch`en,  and on the whole not a very trustworthy
-guide.  He is fond of comparing his own commentary with that of
-Ts`ao Kung, but the comparison is not often flattering to him.
-We learn from Ch`ao Kung-wu that Wang Hsi revised the ancient
-text of Sun Tzu, filling up lacunae and correcting mistakes. [45]
-
-     10.  HO YEN-HSI of the Sung dynasty.  The personal name of
-this commentator is given as above by Cheng Ch`iao in the TUNG
-CHIH,  written about the middle of the twelfth century,  but he
-appears simply as Ho Shih in the YU HAI, and Ma Tuan-lin quotes
-Ch`ao Kung-wu as saying that his personal name is unknown.  There
-seems to be no reason to doubt Cheng Ch`iao's statement,
-otherwise I should have been inclined to hazard a guess and
-identify him with one Ho Ch`u-fei, the author of a short treatise
-on war,  who lived in the latter part of the 11th century.  Ho
-Shih's commentary,  in the words of the T`IEN-I-KO catalogue,
-"contains helpful additions"  here and there,  but is chiefly
-remarkable for the copious extracts taken, in adapted form,  from
-the dynastic histories and other sources.
-
-     11.  CHANG YU.  The list closes with a commentator of no
-great originality perhaps, but gifted with admirable powers of
-lucid exposition.  His commentator is based on that of Ts`ao
-Kung, whose terse sentences he contrives to expand and develop in
-masterly fashion.  Without Chang Yu, it is safe to say that much
-of Ts`ao Kung's commentary would have remained cloaked in its
-pristine obscurity and therefore valueless.  His work is not
-mentioned in the Sung history, the T`UNG K`AO, or the YU HAI, but
-it finds a niche in the T`UNG CHIH, which also names him as the
-author of the "Lives of Famous Generals." [46]
-     It is rather remarkable that the last-named four should all
-have flourished within so short a space of time.  Ch`ao Kung-wu
-accounts for it by saying:  "During the early years of the Sung
-dynasty the Empire enjoyed a long spell of peace, and men ceased
-to practice the art of war.  but when [Chao] Yuan-hao's rebellion
-came [1038-42] and the frontier generals were defeated time after
-time,  the Court made strenuous inquiry for men skilled in war,
-and military topics became the vogue amongst all the high
-officials.  Hence it is that the commentators of Sun Tzu in our
-dynasty belong mainly to that period. [47]
-
-     Besides these eleven commentators, there are several others
-whose work has not come down to us.  The SUI SHU mentions four,
-namely Wang Ling (often quoted by Tu Yu as Wang Tzu); Chang Tzu-
-shang;  Chia Hsu of Wei; [48] and Shen Yu of Wu.  The T`ANG SHU
-adds Sun Hao, and the T`UNG CHIH Hsiao Chi, while the T`U SHU
-mentions a Ming commentator, Huang Jun-yu.  It is possible that
-some of these may have been merely collectors and editors of
-other commentaries, like Chi T`ien-pao and Chi Hsieh,  mentioned
-above.
-
-
-Appreciations of Sun Tzu
-------------------------
-
-
-     Sun Tzu has exercised a potent fascination over the minds of
-some of China's greatest men.  Among the famous generals who are
-known to have studied his pages with enthusiasm may be mentioned
-Han Hsin (d. 196 B.C.), [49] Feng I (d. 34 A.D.), [50]  Lu Meng
-(d. 219), [51] and Yo Fei (1103-1141). [52]  The opinion of Ts`ao
-Kung,  who disputes with Han Hsin the highest place in Chinese
-military annals,  has already been recorded.  [53]   Still more
-remarkable, in one way, is the testimony of purely literary men,
-such as Su Hsun (the father of Su Tung-p`o), who wrote several
-essays on military topics,  all of which owe their   chief
-inspiration to Sun Tzu.  The following short passage by him is
-preserved in the YU HAI: [54] --
-
-       Sun Wu's saying, that in war one cannot make certain of
-  conquering,  [55]  is very different indeed from what other
-  books tell us. [56]  Wu Ch`i was a man of the same stamp as
-  Sun Wu:  they both wrote books on war, and they are linked
-  together in popular speech as "Sun and Wu."  But Wu Ch`i's
-  remarks on war are less weighty, his rules are rougher and
-  more crudely stated, and there is not the same unity of plan
-  as in Sun Tzu's work, where the style is terse,  but the
-  meaning fully brought out.
-
-     The following is an extract from the "Impartial Judgments in
-the Garden of Literature" by Cheng Hou: --
-
-       Sun Tzu's 13 chapters are not only the staple and base
-  of all military men's training, but also compel the most
-  careful attention of scholars and men of letters.  His
-  sayings   are terse yet elegant,  simple   yet   profound,
-  perspicuous and eminently practical.  Such works as the LUN
-  YU, the I CHING and the great Commentary, [57] as well as the
-  writings of Mencius, Hsun K`uang and Yang Chu, all fall below
-  the level of Sun Tzu.
-
-     Chu Hsi, commenting on this, fully admits the first part of
-the criticism, although he dislikes the audacious comparison with
-the venerated classical works.  Language of this sort, he says,
-"encourages a ruler's bent towards unrelenting warfare and
-reckless militarism."
-
-
-Apologies for War
------------------
-
-
-     Accustomed as we are to think of China as the greatest
-peace-loving nation on earth, we are in some danger of forgetting
-that her experience of war in all its phases has also been such
-as no modern State can parallel.  Her long military annals
-stretch back to a point at which they are lost in the mists of
-time.  She had built the Great Wall and was maintaining a huge
-standing army along her frontier centuries before the first Roman
-legionary was seen on the Danube.  What with the perpetual
-collisions of the ancient feudal States, the grim conflicts with
-Huns,  Turks and other invaders after the centralization of
-government,   the terrific upheavals which   accompanied   the
-overthrow of so many dynasties, besides the countless rebellions
-and minor disturbances that have flamed up and flickered out
-again one by one, it is hardly too much to say that the clash of
-arms has never ceased to resound in one portion or another of the
-Empire.
-     No less remarkable is the succession of illustrious captains
-to whom China can point with pride.  As in all countries,  the
-greatest are fond of emerging at the most fateful crises of her
-history.  Thus, Po Ch`i stands out conspicuous in the period when
-Ch`in was entering upon her final struggle with the remaining
-independent states.  The stormy years which followed the break-up
-of the Ch`in dynasty are illuminated by the transcendent genius
-of Han Hsin.  When the House of Han in turn is tottering to its
-fall,  the great and baleful figure of Ts`ao Ts`ao dominates the
-scene.  And in the establishment of the T`ang dynasty,one of the
-mightiest tasks achieved by man, the superhuman energy of Li
-Shih-min (afterwards the Emperor T`ai Tsung) was seconded by the
-brilliant strategy of Li Ching.  None of these generals need fear
-comparison with the greatest names in the military history of
-Europe.
-     In spite of all this, the great body of Chinese sentiment,
-from Lao Tzu downwards, and especially as reflected in the
-standard literature of Confucianism,  has been   consistently
-pacific and intensely opposed to militarism in any form.  It is
-such an uncommon thing to find any of the literati defending
-warfare on principle,  that I have thought it worth while to
-collect and translate a few passages in which the unorthodox view
-is upheld.  The following, by Ssu-ma Ch`ien, shows that for all
-his ardent admiration of Confucius, he was yet no advocate of
-peace at any price: --
-
-       Military weapons are the means used by the Sage to
-  punish violence and cruelty, to give peace to troublous
-  times,  to remove difficulties and dangers,  and to succor
-  those who are in peril.  Every animal with blood in its veins
-  and horns on its head will fight when it is attacked.  How
-  much more so will man, who carries in his breast the
-  faculties of love and hatred, joy and anger!   When he is
-  pleased,  a feeling of affection springs up within him;  when
-  angry, his poisoned sting is brought into play.  That is the
-  natural law which governs his being....  What then shall be
-  said of those scholars of our time,  blind to all great
-  issues, and without any appreciation of relative values,  who
-  can only bark out their stale formulas about  "virtue"  and
-  "civilization," condemning the use of military weapons?  They
-  will surely bring our country to impotence and dishonor and
-  the loss of her rightful heritage; or, at the very least,
-  they will bring about invasion and rebellion,  sacrifice of
-  territory and general enfeeblement.  Yet they obstinately
-  refuse to modify the position they have taken up.  The truth
-  is that, just as in the family the teacher must not spare the
-  rod,  and punishments cannot be dispensed with in the State,
-  so military chastisement can never be allowed to fall into
-  abeyance in the Empire.  All one can say is that this power
-  will be exercised wisely by some, foolishly by others,  and
-  that among those who bear arms some will be loyal and others
-  rebellious. [58]
-
-     The next piece is taken from Tu Mu's preface to his
-commentary on Sun Tzu: --
-
-       War may be defined as punishment, which is one of the
-  functions of government.  It was the profession of Chung Yu
-  and Jan Ch`iu, both disciples of Confucius.  Nowadays,  the
-  holding of trials and hearing of litigation, the imprisonment
-  of offenders and their execution by flogging in the market-
-  place,  are all done by officials.  But the wielding of huge
-  armies, the throwing down of fortified cities, the hauling of
-  women and children into captivity, and the beheading of
-  traitors  --  this is also work which is done by officials.
-  The objects of the rack and of military weapons   are
-  essentially the same.  There is no intrinsic difference
-  between the punishment of flogging and cutting off heads in
-  war.  For the lesser infractions of law, which are easily
-  dealt with, only a small amount of force need be employed:
-  hence the use of military weapons and wholesale decapitation.
-  In both cases, however, the end in view is to get rid of
-  wicked people, and to give comfort and relief to the good....
-       Chi-sun asked Jan Yu, saying:  "Have you, Sir,  acquired
-  your military aptitude by study, or is it innate?"   Jan Yu
-  replied:   "It has been acquired by study." [59]   "How can
-  that be so," said Chi-sun, "seeing that you are a disciple of
-  Confucius?"  "It is a fact," replied Jan Yu; "I was taught by
-  Confucius.  It is fitting that the great Sage should exercise
-  both civil and military functions, though to be sure my
-  instruction in the art of fighting has not yet gone very
-  far."
-       Now,  who the author was of this rigid distinction
-  between the "civil" and the "military," and the limitation of
-  each to a separate sphere of action, or in what year of which
-  dynasty it was first introduced, is more than I can say.
-  But,  at any rate, it has come about that the members of the
-  governing class are quite afraid of enlarging on military
-  topics,  or do so only in a shamefaced manner.  If any are
-  bold enough to discuss the subject, they are at once set down
-  as eccentric individuals of coarse and brutal propensities.
-  This is an extraordinary instance in which,  through sheer
-  lack of reasoning, men unhappily lose sight of fundamental
-  principles.
-       When the Duke of Chou was minister under Ch`eng Wang, he
-  regulated ceremonies and made music, and venerated the arts
-  of scholarship and learning; yet when the barbarians of the
-  River Huai revolted, [60] he sallied forth and chastised
-  them.  When Confucius held office under the Duke of Lu, and a
-  meeting was convened at Chia-ku, [61] he said:  "If pacific
-  negotiations are in progress, warlike preparations should
-  have been made beforehand."  He rebuked and shamed the
-  Marquis of Ch`i, who cowered under him and dared not proceed
-  to violence.  How can it be said that these two great Sages
-  had no knowledge of military matters?
-
-     We have seen that the great Chu Hsi held Sun Tzu in high
-esteem.  He also appeals to the authority of the Classics: --
-
-       Our Master Confucius, answering Duke Ling of Wei,  said:
-  "I have never studied matters connected with armies and
-  battalions."  [62]   Replying to K`ung Wen-tzu, he said:   I
-  have not been instructed about buff-coats and weapons."   But
-  if we turn to the meeting at Chia-ku, we find that he used
-  armed force against the men of Lai, so that the marquis of
-  Ch`i was overawed.  Again,  when the inhabitants of Pi
-  revolted, the ordered his officers to attack them,  whereupon
-  they were defeated and fled in confusion.  He once uttered
-  the words:  "If I fight, I conquer." [63]  And Jan Yu also
-  said:    "The   Sage exercises both civil   and   military
-  functions."  [64]   Can it be a fact that Confucius never
-  studied or received instruction in the art of war?   We can
-  only say that he did not specially choose matters connected
-  with armies and fighting to be the subject of his teaching.
-
-     Sun Hsing-yen,  the editor of Sun Tzu,  writes in similar
-strain: --
-
-       Confucius said:  "I am unversed in military matters."
-  [65]  He also said:  "If I fight,  I conquer."   Confucius
-  ordered ceremonies and regulated music.  Now war constitutes
-  one of the five classes of State ceremonial, [66]  and must
-  not be treated as an independent branch of study.  Hence, the
-  words "I am unversed in" must be taken to mean that there are
-  things which even an inspired Teacher does not know.  Those
-  who have to lead an army and devise stratagems,  must learn
-  the art of war.  But if one can command the services of a
-  good general like Sun Tzu, who was employed by Wu Tzu-hsu,
-  there is no need to learn it oneself.  Hence the remark added
-  by Confucius:  "If I fight, I conquer."
-       The men of the present day, however, willfully interpret
-  these words of Confucius in their narrowest sense, as though
-  he meant that books on the art of war were not worth reading.
-  With blind persistency, they adduce the example of Chao Kua,
-  who pored over his father's books to no purpose, [67]  as a
-  proof that all military theory is useless.  Again,  seeing
-  that books on war have to do with such things as opportunism
-  in designing plans, and the conversion of spies,  they hold
-  that the art is immoral and unworthy of a sage.  These people
-  ignore the fact that the studies of our scholars and the
-  civil administration of our officials also require steady
-  application and practice before efficiency is reached.  The
-  ancients were particularly chary of allowing mere novices to
-  botch their work. [68]  Weapons are baneful [69] and fighting
-  perilous;  and useless unless a general is in constant
-  practice, he ought not to hazard other men's lives in battle.
-  [70]  Hence it is essential that Sun Tzu's 13 chapters should
-  be studied.
-      Hsiang Liang used to instruct his nephew Chi [71] in the
-  art of war.  Chi got a rough idea of the art in its general
-  bearings,  but would not pursue his studies to their proper
-  outcome,  the consequence being that he was finally defeated
-  and overthrown.  He did not realize that the tricks and
-  artifices of war are beyond verbal computation.  Duke Hsiang
-  of Sung and King Yen of Hsu were brought to destruction by
-  their misplaced humanity.  The treacherous and underhand
-  nature of war necessitates the use of guile and stratagem
-  suited to the occasion.  There is a case on record of
-  Confucius himself having violated an extorted oath, [72]  and
-  also of his having left the Sung State in disguise. [73]  Can
-  we then recklessly arraign Sun Tzu for disregarding truth and
-  honesty?
-
-
-Bibliography
-------------
-
-
-     The following are the oldest Chinese treatises on war, after
-Sun Tzu.  The notes on each have been drawn principally from the
-SSU K`U CH`UAN SHU CHIEN MING MU LU, ch. 9, fol. 22 sqq.
-
-     1.  WU TZU, in 1 CHUAN or 6 chapters.  By Wu Ch`i  (d.  381
-B.C.).  A genuine work.  See SHIH CHI, ch. 65.
-
-     2.  SSU-MA FA, in 1 CHUAN or 5 chapters.  Wrongly attributed
-to Ssu-ma Jang-chu of the 6th century B.C.  Its date,  however,
-must be early, as the customs of the three ancient dynasties are
-constantly to be met within its pages.  See SHIH CHI, ch. 64.
-     The SSU K`U CH`UAN SHU (ch. 99, f. 1)  remarks that the
-oldest three treatises on war, SUN TZU, WU TZU and SSU-MA FA,
-are,  generally speaking, only concerned with things strictly
-military  --  the art of producing,  collecting,  training and
-drilling troops, and the correct theory with regard to measures
-of expediency, laying plans, transport of goods and the handling
-of soldiers -- in strong contrast to later works, in which the
-science of war is usually blended with metaphysics,  divination
-and magical arts in general.
-
-     3.  LIU T`AO, in 6 CHUAN, or 60 chapters.  Attributed to Lu
-Wang  (or Lu Shang, also known as T`ai Kung) of the 12th century
-B.C. [74]  But its style does not belong to the era of the Three
-Dynasties.  Lu Te-ming (550-625 A.D.) mentions the work,  and
-enumerates the headings of the six sections so that the forgery
-cannot have been later than Sui dynasty.
-
-     4.  WEI LIAO TZU, in 5 CHUAN.  Attributed to Wei Liao  (4th
-cent. B.C.), who studied under the famous Kuei-ku Tzu.  The work
-appears to have been originally in 31 chapters, whereas the text
-we possess contains only 24.  Its matter is sound enough in the
-main,  though the strategical devices differ considerably from
-those of the Warring States period.  It is been furnished with a
-commentary by the well-known Sung philosopher Chang Tsai.
-
-     5.  SAN LUEH, in 3 CHUAN.  Attributed to Huang-shih Kung,  a
-legendary personage who is said to have bestowed it on Chang
-Liang (d. 187 B.C.) in an interview on a bridge.  But here again,
-the style is not that of works dating from the Ch`in or Han
-period.  The Han Emperor Kuang Wu [25-57 A.D.] apparently quotes
-from it in one of his proclamations; but the passage in question
-may have been inserted later on,  in order to prove   the
-genuineness of the work.  We shall not be far out if we refer it
-to the Northern Sung period [420-478 A.D.], or somewhat earlier.
-
-     6.  LI WEI KUNG WEN TUI, in 3 sections.  Written in the form
-of a dialogue between T`ai Tsung and his great general Li Ching,
-it is usually ascribed to the latter.  Competent authorities
-consider it a forgery, though the author was evidently well
-versed in the art of war.
-
-     7.  LI CHING PING FA (not to be confounded with the
-foregoing)  is a short treatise in 8 chapters, preserved in the
-T`ung Tien, but not published separately.  This fact explains its
-omission from the SSU K`U CH`UAN SHU.
-
-     8.  WU CH`I CHING, in 1 CHUAN.  Attributed to the legendary
-minister Feng Hou, with exegetical notes by Kung-sun Hung of the
-Han dynasty (d. 121 B.C.), and said to have been eulogized by the
-celebrated general Ma Lung (d. 300 A.D.).  Yet the earliest
-mention of it is in the SUNG CHIH.  Although a forgery, the work
-is well put together.
-
-     Considering the high popular estimation in which Chu-ko
-Liang has always been held, it is not surprising to find more
-than one work on war ascribed to his pen.  Such are (1) the SHIH
-LIU TS`E (1 CHUAN), preserved in the YUNG LO TA TIEN; (2)  CHIANG
-YUAN  (1 CHUAN);  and  (3) HSIN SHU  (1 CHUAN),  which steals
-wholesale from Sun Tzu.  None of these has the slightest claim to
-be considered genuine.
-     Most of the large Chinese encyclopedias contain extensive
-sections devoted to the literature of war.  The following
-references may be found useful: --
-
-     T`UNG TIEN (circa 800 A.D.), ch. 148-162.
-     T`AI P`ING YU LAN (983), ch. 270-359.
-     WEN HSIEN TUNG K`AO (13th cent.), ch. 221.
-     YU HAI (13th cent.), ch. 140, 141.
-     SAN TS`AI T`U HUI (16th cent).
-     KUANG PO WU CHIH (1607), ch. 31, 32.
-     CH`IEN CH`IO LEI SHU (1632), ch. 75.
-     YUAN CHIEN LEI HAN (1710), ch. 206-229.
-     KU CHIN T`U SHU CHI CH`ENG (1726), section XXX, esp. ch. 81-
-      90.
-     HSU WEN HSIEN T`UNG K`AO (1784), ch. 121-134.
-     HUANG CH`AO CHING SHIH WEN PIEN (1826), ch. 76, 77.
-
-     The bibliographical sections of certain historical works
-also deserve mention: --
-
-     CH`IEN HAN SHU, ch. 30.
-     SUI SHU, ch. 32-35.
-     CHIU T`ANG SHU, ch. 46, 47.
-     HSIN T`ANG SHU, ch. 57,60.
-     SUNG SHIH, ch. 202-209.
-     T`UNG CHIH (circa 1150), ch. 68.
-
-     To these of course must be added the great Catalogue of the
-Imperial Library: --
-
-     SSU K`U CH`UAN SHU TSUNG MU T`I YAO (1790), ch. 99, 100.
-
-
-Footnotes
----------
-
-
-1.  SHI CHI, ch. 65.
-
-2.  He reigned from 514 to 496 B.C.
-
-3.  SHI CHI, ch. 130.
-
-4.  The appellation of Nang Wa.
-
-5.  SHI CHI, ch. 31.
-
-6.  SHI CHI, ch. 25.
-
-7.  The appellation of Hu Yen, mentioned in ch. 39 under the year
-637.
-
-8.  Wang-tzu Ch`eng-fu, ch. 32, year 607.
-
-9.  The mistake is natural enough.  Native critics refer to a
-work of the Han dynasty, which says:  "Ten LI outside the WU gate
-[of the city of Wu, now Soochow in Kiangsu] there is a great
-mound, raised to commemorate the entertainment of Sun Wu of Ch`i,
-who excelled in the art of war, by the King of Wu."
-
-10.  "They attached strings to wood to make bows, and sharpened
-wood to make arrows.  The use of bows and arrows is to keep the
-Empire in awe."
-
-11.  The son and successor of Ho Lu.  He was finally defeated and
-overthrown by Kou chien, King of Yueh, in 473 B.C.  See post.
-
-12.  King Yen of Hsu, a fabulous being, of whom Sun Hsing-yen
-says in his preface:  "His humanity brought him to destruction."
-
-13.  The passage I have put in brackets is omitted in the T`U
-SHU, and may be an interpolation.  It was known, however to Chang
-Shou-chieh of the T`ang dynasty, and appears in the T`AI P`ING YU
-LAN.
-
-14.  Ts`ao Kung seems to be thinking of the first part of chap.
-II, perhaps especially of ss. 8.
-
-15.  See chap. XI.
-
-16.  On the other hand, it is noteworthy that WU TZU, which is
-not in 6 chapters, has 48 assigned to it in the HAN CHIH.
-Likewise, the CHUNG YUNG is credited with 49 chapters, though now
-only in one only.  In the case of very short works, one is
-tempted to think that P`IEN might simply mean "leaves."
-
-17.  Yeh Shih of the Sung dynasty [1151-1223].
-
-18.  He hardly deserves to be bracketed with assassins.
-
-19.  See Chapter 7, ss. 27 and Chapter 11, ss. 28.
-
-20.  See Chapter 11, ss. 28.  Chuan Chu is the abbreviated form
-of his name.
-
-21.  I.e. Po P`ei.  See ante.
-
-22.  The nucleus of this work is probably genuine, though large
-additions have been made by later hands.  Kuan chung died in 645
-B.C.
-
-23.  See infra, beginning of INTRODUCTION.
-
-24.  I do not know what this work, unless it be the last chapter
-of another work.  Why that chapter should be singled out,
-however, is not clear.
-
-25.  About 480 B.C.
-
-26.  That is, I suppose, the age of Wu Wang and Chou Kung.
-
-27.  In the 3rd century B.C.
-
-28.  Ssu-ma Jang-chu, whose family name was T`ien, lived in the
-latter half of the 6th century B.C., and is also believed to have
-written a work on war.  See SHIH CHI, ch. 64, and infra at the
-beginning of the INTRODUCTION.
-
-29.  See Legge's Classics, vol. V, Prolegomena p. 27.  Legge
-thinks that the TSO CHUAN must have been written in the 5th
-century, but not before 424 B.C.
-
-30.  See MENCIUS III. 1. iii. 13-20.
-
-31.  When Wu first appears in the CH`UN CH`IU in 584, it is
-already at variance with its powerful neighbor.  The CH`UN CH`IU
-first mentions Yueh in 537, the TSO CHUAN in 601.
-
-32.  This is explicitly stated in the TSO CHUAN, XXXII, 2.
-
-33.  There is this to be said for the later period, that the feud
-would tend to grow more bitter after each encounter, and thus
-more fully justify the language used in XI. ss. 30.
-
-34.  With Wu Yuan himself the case is just the reverse:  -- a
-spurious treatise on war has been fathered on him simply because
-he was a great general.  Here we have an obvious inducement to
-forgery.  Sun Wu, on the other hand, cannot have been widely
-known to fame in the 5th century.
-
-35.  From TSO CHUAN:  "From the date of King Chao's accession
-[515] there was no year in which Ch`u was not attacked by Wu."
-
-36.  Preface ad fin:  "My family comes from Lo-an, and we are
-really descended from Sun Tzu.  I am ashamed to say that I only
-read my ancestor's work from a literary point of view, without
-comprehending the military technique.  So long have we been
-enjoying the blessings of peace!"
-
-37.  Hoa-yin is about 14 miles from T`ung-kuan on the eastern
-border of Shensi.  The temple in question is still visited by
-those about the ascent of the Western Sacred Mountain.  It is
-mentioned in a text as being "situated five LI east of the
-district city of Hua-yin.  The temple contains the Hua-shan
-tablet inscribed by the T`ang Emperor Hsuan Tsung [713-755]."
-
-38.  See my "Catalogue of Chinese Books" (Luzac & Co., 1908), no.
-40.
-
-39.  This is a discussion of 29 difficult passages in Sun Tzu.
-
-40.  Cf.  Catalogue of the library of Fan family at Ningpo:  "His
-commentary is frequently obscure; it furnishes a clue, but does
-not fully develop the meaning."
-
-41.  WEN HSIEN T`UNG K`AO, ch. 221.
-
-42.  It is interesting to note that M. Pelliot has recently
-discovered chapters 1, 4 and 5 of this lost work in the "Grottos
-of the Thousand Buddhas."  See B.E.F.E.O., t. VIII, nos. 3-4, p.
-525.
-
-43.  The Hsia, the Shang and the Chou.  Although the last-named
-was nominally existent in Sun Tzu's day, it retained hardly a
-vestige of power, and the old military organization had
-practically gone by the board.  I can suggest no other
-explanation of the passage.
-
-44.  See CHOU LI, xxix. 6-10.
-
-45.  T`UNG K`AO, ch. 221.
-
-46.  This appears to be still extant.  See Wylie's "Notes," p. 91
-(new edition).
-
-47.  T`UNG K`AO, loc. cit.
-
-48.  A notable person in his day.  His biography is given in the
-SAN KUO CHIH, ch. 10.
-
-49.  See XI. ss. 58, note.
-
-50.  HOU HAN SHU, ch. 17 ad init.
-
-51.  SAN KUO CHIH, ch. 54.
-
-52.  SUNG SHIH, ch. 365 ad init.
-
-53.  The few Europeans who have yet had an opportunity of
-acquainting themselves with Sun Tzu are not behindhand in their
-praise.  In this connection, I may perhaps be excused for quoting
-from a letter from Lord Roberts, to whom the sheets of the
-present work were submitted previous to publication:  "Many of
-Sun Wu's maxims are perfectly applicable to the present day, and
-no. 11 [in Chapter VIII] is one that the people of this country
-would do well to take to heart."
-
-54.  Ch. 140.
-
-55.  See IV. ss. 3.
-
-56.  The allusion may be to Mencius VI. 2. ix. 2.
-
-57.  The TSO CHUAN.
-
-58.  SHIH CHI, ch. 25, fol. I.
-
-59.  Cf. SHIH CHI, ch 47.
-
-60.  See SHU CHING, preface ss. 55.
-
-61.  See SHIH CHI, ch. 47.
-
-62.  Lun Yu, XV. 1.
-
-63.  I failed to trace this utterance.
-
-64.  Supra.
-
-65.  Supra.
-
-66.  The other four being worship, mourning, entertainment of
-guests, and festive rites.  See SHU CHING, ii. 1. III. 8, and
-CHOU LI, IX. fol. 49.
-
-67.  See XIII. ss. 11, note.
-
-68.  This is a rather obscure allusion to the TSO CHUAN, where
-Tzu-ch`an says:  "If you have a piece of beautiful brocade, you
-will not employ a mere learner to make it up."
-
-69.  Cf.  TAO TE CHING, ch. 31.
-
-70.  Sun Hsing-yen might have quoted Confucius again.  See LUN
-YU, XIII. 29, 30.
-
-71.  Better known as Hsiang Yu [233-202 B.C.].
-
-72.  SHIH CHI, ch. 47.
-
-73.  SHIH CHI, ch. 38.
-
-74.  See XIII. ss. 27, note.  Further details on T`ai Kung will
-be found in the SHIH CHI, ch. 32 ad init.  Besides the tradition
-which makes him a former minister of Chou Hsin, two other
-accounts of him are there given, according to which he would
-appear to have been first raised from a humble private station by
-Wen Wang.
-
------------------------------------------------------------------
-
-I.  LAYING PLANS
-
-     [Ts`ao Kung, in defining the meaning of the Chinese for the
-title of this chapter, says it refers to the deliberations in the
-temple selected by the general for his temporary use, or as we
-should say, in his tent.  See. ss. 26.]
-
-     1.  Sun Tzu said:  The art of war is of vital importance to
-the State.
-     2.  It is a matter of life and death, a road either to
-safety or to ruin.  Hence it is a subject of inquiry which can on
-no account be neglected.
-     3.  The art of war, then, is governed by five constant
-factors,  to be taken into account in one's deliberations,  when
-seeking to determine the conditions obtaining in the field.
-     4.  These are:  (1) The Moral Law; (2) Heaven;  (3)  Earth;
-(4) The Commander; (5) Method and discipline.
-
-     [It appears from what follows that Sun Tzu means by  "Moral
-Law" a principle of harmony, not unlike the Tao of Lao Tzu in its
-moral aspect.  One might be tempted to render it by  "morale,"
-were it not considered as an attribute of the ruler in ss. 13.]
-
-     5,  6.  The MORAL LAW causes the people to be in complete
-accord with their ruler, so that they will follow him regardless
-of their lives, undismayed by any danger.
-
-     [Tu Yu quotes Wang Tzu as saying:   "Without constant
-practice,  the officers will be nervous and undecided when
-mustering for battle; without constant practice, the general will
-be wavering and irresolute when the crisis is at hand."]
-
-     7.  HEAVEN signifies night and day, cold and heat, times and
-seasons.
-
-     [The commentators, I think, make an unnecessary mystery of
-two words here.  Meng Shih refers to "the hard and the soft,
-waxing and waning" of Heaven.  Wang Hsi, however, may be right in
-saying that what is meant is "the general economy of Heaven,"
-including the five elements, the four seasons, wind and clouds,
-and other phenomena.]
-
-     8.  EARTH comprises distances, great and small; danger and
-security; open ground and narrow passes; the chances of life and
-death.
-     9.  The COMMANDER stands for the virtues of   wisdom,
-sincerity, benevolence, courage and strictness.
-
-     [The five cardinal virtues of the Chinese are (1)  humanity
-or benevolence; (2) uprightness of mind; (3) self-respect,  self-
-control,  or "proper feeling;" (4) wisdom; (5) sincerity or good
-faith.  Here "wisdom" and "sincerity" are put before "humanity or
-benevolence,"  and the two military virtues of  "courage"  and
-"strictness"  substituted for "uprightness of mind"  and  "self-
-respect, self-control, or 'proper feeling.'"]
-
-     10.  By METHOD AND DISCIPLINE are to be understood the
-marshaling   of the army in its proper   subdivisions,   the
-graduations of rank among the officers, the maintenance of roads
-by which supplies may reach the army, and the control of military
-expenditure.
-     11.  These five heads should be familiar to every general:
-he who knows them will be victorious; he who knows them not will
-fail.
-     12.  Therefore,  in your deliberations,  when seeking to
-determine the military conditions, let them be made the basis of
-a comparison, in this wise: --
-     13.  (1)   Which of the two sovereigns is imbued with the
-Moral law?
-
-     [I.e., "is in harmony with his subjects."  Cf. ss. 5.]
-
-     (2)  Which of the two generals has most ability?
-     (3)  With whom lie the advantages derived from Heaven and
-Earth?
-
-     [See ss. 7,8]
-
-     (4)  On which side is discipline most rigorously enforced?
-
-     [Tu Mu alludes to the remarkable story of Ts`ao Ts`ao  (A.D.
-155-220),  who was such a strict disciplinarian that once,  in
-accordance with his own severe regulations against injury to
-standing crops, he condemned himself to death for having allowed
-his horse to shy into a field of corn!  However,  in lieu of
-losing his head, he was persuaded to satisfy his sense of justice
-by cutting off his hair.  Ts`ao Ts`ao's own comment on the
-present passage is characteristically curt:  "when you lay down a
-law,  see that it is not disobeyed; if it is disobeyed the
-offender must be put to death."]
-
-     (5)  Which army is stronger?
-
-     [Morally as well as physically.  As Mei Yao-ch`en puts it,
-freely rendered, "ESPIRIT DE CORPS and 'big battalions.'"]
-
-     (6)  On which side are officers and men more highly trained?
-
-     [Tu Yu quotes Wang Tzu as saying:   "Without constant
-practice,  the officers will be nervous and undecided when
-mustering for battle; without constant practice, the general will
-be wavering and irresolute when the crisis is at hand."]
-
-     (7)   In which army is there the greater constancy both in
-reward and punishment?
-
-     [On which side is there the most absolute certainty that
-merit will be properly rewarded and misdeeds summarily punished?]
-
-     14.  By means of these seven considerations I can forecast
-victory or defeat.
-     15.  The general that hearkens to my counsel and acts upon
-it, will conquer:   --let such a one be retained in command!  The
-general that hearkens not to my counsel nor acts upon it,  will
-suffer defeat:  --let such a one be dismissed!
-
-     [The form of this paragraph reminds us that Sun Tzu's
-treatise was composed expressly for the benefit of his patron Ho
-Lu, king of the Wu State.]
-
-     16.  While heading the profit of my counsel, avail yourself
-also of any helpful circumstances over and beyond the ordinary
-rules.
-     17.  According as circumstances are favorable,  one should
-modify one's plans.
-
-     [Sun Tzu,  as a practical soldier, will have none of the
-"bookish theoric."  He cautions us here not to pin our faith to
-abstract principles; "for," as Chang Yu puts it, "while the main
-laws of strategy can be stated clearly enough for the benefit of
-all and sundry, you must be guided by the actions of the enemy in
-attempting to secure a favorable position in actual warfare."  On
-the eve of the battle of Waterloo, Lord Uxbridge, commanding the
-cavalry,  went to the Duke of Wellington in order to learn what
-his plans and calculations were for the morrow, because,  as he
-explained, he might suddenly find himself Commander-in-chief and
-would be unable to frame new plans in a critical moment.  The
-Duke listened quietly and then said:  "Who will attack the first
-tomorrow -- I or Bonaparte?"  "Bonaparte," replied Lord Uxbridge.
-"Well," continued the Duke, "Bonaparte has not given me any idea
-of his projects; and as my plans will depend upon his,  how can
-you expect me to tell you what mine are?" [1] ]
-
-     18.  All warfare is based on deception.
-
-     [The truth of this pithy and profound saying will be
-admitted by every soldier.  Col.  Henderson tells us   that
-Wellington,  great in so many military qualities, was especially
-distinguished by "the extraordinary skill with which he concealed
-his movements and deceived both friend and foe."]
-
-     19.  Hence, when able to attack, we must seem unable;  when
-using our forces, we must seem inactive; when we are near,  we
-must make the enemy believe we are far away; when far away,  we
-must make him believe we are near.
-     20.  Hold out baits to entice the enemy.  Feign disorder,
-and crush him.
-
-     [All commentators,  except Chang Yu, say, "When he is in
-disorder, crush him."  It is more natural to suppose that Sun Tzu
-is still illustrating the uses of deception in war.]
-
-     21.  If he is secure at all points, be prepared for him.  If
-he is in superior strength, evade him.
-     22.  If your opponent is of choleric temper,  seek to
-irritate him.  Pretend to be weak, that he may grow arrogant.
-
-     [Wang Tzu,  quoted by Tu Yu, says that the good tactician
-plays with his adversary as a cat plays with a mouse,  first
-feigning weakness and immobility, and then suddenly pouncing upon
-him.]
-
-     23.  If he is taking his ease, give him no rest.
-
-     [This is probably the meaning though Mei Yao-ch`en has the
-note:  "while we are taking our ease, wait for the enemy to tire
-himself out."  The YU LAN has "Lure him on and tire him out."]
-
-If his forces are united, separate them.
-
-     [Less plausible is the interpretation favored by most of the
-commentators:   "If sovereign and subject are in accord,  put
-division between them."]
-
-     24.  Attack him where he is unprepared, appear where you are
-not expected.
-     25.  These military devices, leading to victory, must not be
-divulged beforehand.
-     26.   Now the general who wins a battle makes   many
-calculations in his temple ere the battle is fought.
-
-     [Chang Yu tells us that in ancient times it was customary
-for a temple to be set apart for the use of a general who was
-about to take the field, in order that he might there elaborate
-his plan of campaign.]
-
-The general who loses a battle makes but few calculations
-beforehand.  Thus do many calculations lead to victory, and few
-calculations to defeat:  how much more no calculation at all!  It
-is by attention to this point that I can foresee who is likely to
-win or lose.
-
-
-[1]  "Words on Wellington," by Sir. W. Fraser.
-
------------------------------------------------------------------
-
-II.  WAGING WAR
-
-
- 

<TRUNCATED>

[06/50] [abbrv] incubator-ignite git commit: # sprint-1: fixed opt class names generator.

Posted by se...@apache.org.
# sprint-1: fixed opt class names generator.


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

Branch: refs/heads/ignite-132
Commit: ff01e66e78cdf836066ec9aaf7eedf2f450c3929
Parents: c98118f
Author: AKuznetsov <ak...@gridgain.com>
Authored: Fri Jan 30 17:42:17 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Fri Jan 30 17:42:17 2015 +0700

----------------------------------------------------------------------
 .../marshaller/optimized/OptimizedClassNamesGenerator.java     | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/ff01e66e/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
----------------------------------------------------------------------
diff --git a/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java b/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
index 39e9a57..f135754 100644
--- a/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
+++ b/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
@@ -210,7 +210,7 @@ public class OptimizedClassNamesGenerator {
     private void checkSerialVersionUid(Class cls) {
         // Check only GridGain classes.
         if (cls.isEnum() || cls.getSimpleName().isEmpty() || (!cls.getName().startsWith("org.gridgain.grid") &&
-            !cls.getName().startsWith("org.gridgain.client")))
+            !cls.getName().startsWith("org.gridgain.client") && !cls.getName().startsWith("org.apache.ignite")))
             return;
 
         try {
@@ -285,14 +285,14 @@ public class OptimizedClassNamesGenerator {
         File dir;
 
         if (args.length > 0 && args[0] != null && !args[0].isEmpty())
-            dir = new File(args[0], "/org/gridgain/grid/marshaller/optimized");
+            dir = new File(args[0], "/org/apache/ignite/marshaller/optimized");
         else {
             String home = home();
 
             if (home == null)
                 throw new Exception("Failed to find GridGain home.");
 
-            dir = new File(home, "/os/modules/core/src/main/java/org/gridgain/grid/marshaller/optimized");
+            dir = new File(home, "/os/modules/core/src/main/java/org/apache/ignite/marshaller/optimized");
         }
 
         if (!dir.exists())


[39/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/art-of-war.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/art-of-war.txt b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/art-of-war.txt
new file mode 100644
index 0000000..8efd211
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/art-of-war.txt
@@ -0,0 +1,6982 @@
+The Project Gutenberg eBook, The Art of War, by Sun Tzu
+
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever.  You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.org
+
+
+Title: The Art of War
+
+Author: Sun Tzu
+
+Translator: Lionel Giles
+
+Release Date: May 1994  [eBook #132]
+[Last updated: January 14, 2012]
+
+Language: English
+
+Character set encoding: ISO-646-US (US-ASCII)
+
+***START OF THE PROJECT GUTENBERG EBOOK THE ART OF WAR ***
+
+Note: Please see Project Gutenberg's eBook #17405 for a version of
+this eBook without the Giles commentary (that is, with only the
+Sun Tzu text).
+
+
+
+                    SUN TZU ON THE ART OF WAR
+
+            THE OLDEST MILITARY TREATISE IN THE WORLD
+
+          Translated from the Chinese with Introduction
+                       and Critical Notes
+
+                               BY
+
+                       LIONEL GILES, M.A.
+
+ Assistant in the Department of Oriental Printed Books and MSS.
+                      in the British Museum
+
+                     First Published in 1910
+
+-----------------------------------------------------------------
+
+                          To my brother
+                  Captain Valentine Giles, R.G.
+                        in the hope that
+                      a work 2400 years old
+           may yet contain lessons worth consideration
+                     by the soldier of today
+                        this translation
+                  is affectionately dedicated.
+
+-----------------------------------------------------------------
+
+Preface to the Project Gutenberg Etext
+--------------------------------------
+
+     When Lionel Giles began his translation of Sun Tzu's ART OF
+WAR, the work was virtually unknown in Europe.  Its introduction
+to Europe began in 1782 when a French Jesuit Father living in
+China, Joseph Amiot, acquired a copy of it, and translated it
+into French.  It was not a good translation because, according to
+Dr. Giles, "[I]t contains a great deal that Sun Tzu did not
+write, and very little indeed of what he did."
+     The first translation into English was published in 1905 in
+Tokyo by Capt. E. F. Calthrop, R.F.A.  However, this translation
+is, in the words of Dr. Giles, "excessively bad."  He goes
+further in this criticism:  "It is not merely a question of
+downright blunders, from which none can hope to be wholly exempt.
+Omissions were frequent; hard passages were willfully distorted
+or slurred over.  Such offenses are less pardonable.  They would
+not be tolerated in any edition of a Latin or Greek classic, and
+a similar standard of honesty ought to be insisted upon in
+translations from Chinese."  In 1908 a new edition of Capt.
+Calthrop's translation was published in London.  It was an
+improvement on the first -- omissions filled up and numerous
+mistakes corrected -- but new errors were created in the process.
+Dr. Giles, in justifying his translation, wrote:  "It was not
+undertaken out of any inflated estimate of my own powers; but I
+could not help feeling that Sun Tzu deserved a better fate than
+had befallen him, and I knew that, at any rate, I could hardly
+fail to improve on the work of my predecessors."
+     Clearly, Dr. Giles' work established much of the groundwork
+for the work of later translators who published their own
+editions.  Of the later editions of the ART OF WAR I have
+examined;  two feature Giles' edited translation and notes,  the
+other two present the same basic information from the ancient
+Chinese commentators found in the Giles edition.  Of these four,
+Giles' 1910 edition is the most scholarly and presents the reader
+an incredible amount of information concerning Sun Tzu's text,
+much more than any other translation.
+     The Giles' edition of the ART OF WAR, as stated above, was a
+scholarly work.  Dr. Giles was a leading sinologue at the time
+and an assistant in the Department of Oriental Printed Books and
+Manuscripts in the British Museum.  Apparently he wanted to
+produce a definitive edition, superior to anything else that
+existed and perhaps something that would become a standard
+translation.  It was the best translation available for 50 years.
+But apparently there was not much interest in Sun Tzu in English-
+speaking countries since it took the start of the Second
+World War to renew interest in his work.  Several people
+published unsatisfactory English translations of Sun Tzu.  In
+1944,  Dr. Giles' translation was edited and published in the
+United States in a series of military science books.  But it
+wasn't until 1963 that a good English translation (by Samuel B.
+Griffith and still in print) was published that was an equal to
+Giles' translation.  While this translation is more lucid than
+Dr. Giles' translation, it lacks his copious notes that make his
+so interesting.
+     Dr. Giles produced a work primarily intended for scholars of
+the Chinese civilization and language.  It contains the Chinese
+text of Sun Tzu, the English translation, and voluminous notes
+along with numerous footnotes.  Unfortunately, some of his notes
+and footnotes contain Chinese characters; some are completely
+Chinese.  Thus,  a conversion to a Latin alphabet etext was
+difficult.  I did the conversion in complete ignorance of Chinese
+(except for what I learned while doing the conversion).  Thus, I
+faced the difficult task of paraphrasing it while retaining as
+much of the important text as I could.  Every paraphrase
+represents a loss; thus I did what I could to retain as much of
+the text as possible.  Because the 1910 text contains a Chinese
+concordance, I was able to transliterate proper names, books, and
+the like at the risk of making the text more obscure.  However,
+the text, on the whole, is quite satisfactory for the casual
+reader, a transformation made possible by conversion to an etext.
+However, I come away from this task with the feeling of loss
+because I know that someone with a background in Chinese can do a
+better job than I did; any such attempt would be welcomed.
+
+                              Bob Sutton
+                              al876@cleveland.freenet.edu
+                              bobs@gnu.ai.mit.edu
+
+-----------------------------------------------------------------
+INTRODUCTION
+
+
+Sun Wu and his Book
+-------------------
+
+
+     Ssu-ma Ch`ien gives the following biography of Sun Tzu:  [1]
+--
+
+       Sun Tzu Wu was a native of the Ch`i State.  His ART OF
+  WAR brought him to the notice of Ho Lu, [2] King of Wu.  Ho
+  Lu said to him:  "I have carefully perused your 13 chapters.
+  May I submit your theory of managing soldiers to a slight
+  test?"
+       Sun Tzu replied:  "You may."
+       Ho Lu asked:  "May the test be applied to women?"
+       The answer was again in the affirmative, so arrangements
+  were made to bring 180 ladies out of the Palace.  Sun Tzu
+  divided them into two companies, and placed one of the King's
+  favorite concubines at the head of each.  He then bade them
+  all take spears in their hands, and addressed them thus:   "I
+  presume you know the difference between front and back, right
+  hand and left hand?"
+       The girls replied:  Yes.
+       Sun Tzu went on:  "When I say "Eyes front,"  you must
+  look straight ahead.  When I say "Left turn," you must face
+  towards your left hand.  When I say "Right turn,"  you must
+  face towards your right hand.  When I say "About turn,"  you
+  must face right round towards your back."
+       Again the girls assented.  The words of command having
+  been thus explained, he set up the halberds and battle-axes
+  in order to begin the drill.  Then, to the sound of drums, he
+  gave the order "Right turn."  But the girls only burst out
+  laughing.  Sun Tzu said:  "If words of command are not clear
+  and distinct, if orders are not thoroughly understood, then
+  the general is to blame."
+       So he started drilling them again, and this time gave
+  the order "Left turn," whereupon the girls once more burst
+  into fits of laughter.  Sun Tzu:  "If words of command are
+  not clear and distinct, if orders are not thoroughly
+  understood, the general is to blame.  But if his orders ARE
+  clear, and the soldiers nevertheless disobey, then it is the
+  fault of their officers."
+       So saying, he ordered the leaders of the two companies
+  to be beheaded.  Now the king of Wu was watching the scene
+  from the top of a raised pavilion; and when he saw that his
+  favorite concubines were about to be executed, he was greatly
+  alarmed and hurriedly sent down the following message:   "We
+  are now quite satisfied as to our general's ability to handle
+  troops.  If We are bereft of these two concubines, our meat
+  and drink will lose their savor.  It is our wish that they
+  shall not be beheaded."
+       Sun Tzu replied:  "Having once received His Majesty's
+  commission to be the general of his forces, there are certain
+  commands of His Majesty which, acting in that capacity, I am
+  unable to accept."
+       Accordingly,  he had the two leaders beheaded,  and
+  straightway installed the pair next in order as leaders in
+  their place.  When this had been done, the drum was sounded
+  for the drill once more; and the girls went through all the
+  evolutions, turning to the right or to the left, marching
+  ahead or wheeling back, kneeling or standing, with perfect
+  accuracy and precision, not venturing to utter a sound.  Then
+  Sun Tzu sent a messenger to the King saying:  "Your soldiers,
+  Sire, are now properly drilled and disciplined, and ready for
+  your majesty's inspection.  They can be put to any use that
+  their sovereign may desire; bid them go through fire and
+  water, and they will not disobey."
+       But the King replied:  "Let our general cease drilling
+  and return to camp.  As for us, We have no wish to come down
+  and inspect the troops."
+       Thereupon Sun Tzu said:  "The King is only fond of
+  words, and cannot translate them into deeds."
+       After that, Ho Lu saw that Sun Tzu was one who knew how
+  to handle an army, and finally appointed him general.  In the
+  west, he defeated the Ch`u State and forced his way into
+  Ying, the capital; to the north he put fear into the States
+  of Ch`i and Chin, and spread his fame abroad amongst the
+  feudal princes.  And Sun Tzu shared in the might of the King.
+
+     About Sun Tzu himself this is all that Ssu-ma Ch`ien has to
+tell us in this chapter.  But he proceeds to give a biography of
+his descendant,  Sun Pin, born about a hundred years after his
+famous ancestor's death, and also the outstanding military genius
+of his time.  The historian speaks of him too as Sun Tzu, and in
+his preface we read:  "Sun Tzu had his feet cut off and yet
+continued to discuss the art of war." [3]  It seems likely, then,
+that  "Pin" was a nickname bestowed on him after his mutilation,
+unless the story was invented in order to account for the name.
+The crowning incident of his career, the crushing defeat of his
+treacherous rival P`ang Chuan, will be found briefly related in
+Chapter V. ss. 19, note.
+     To return to the elder Sun Tzu.  He is mentioned in two
+other passages of the SHIH CHI: --
+
+       In the third year of his reign [512 B.C.] Ho Lu, king of
+  Wu, took the field with Tzu-hsu [i.e. Wu Yuan] and Po P`ei,
+  and attacked Ch`u.  He captured the town of Shu and slew the
+  two prince's sons who had formerly been generals of Wu.  He
+  was then meditating a descent on Ying [the capital]; but the
+  general Sun Wu said:  "The army is exhausted.  It is not yet
+  possible.  We must wait"....  [After further successful
+  fighting,]  "in the ninth year  [506 B.C.],  King Ho Lu
+  addressed Wu Tzu-hsu and Sun Wu, saying:   "Formerly, you
+  declared that it was not yet possible for us to enter Ying.
+  Is the time ripe now?"  The two men replied:  "Ch`u's general
+  Tzu-ch`ang, [4] is grasping and covetous, and the princes of
+  T`ang and Ts`ai both have a grudge against him.  If Your
+  Majesty has resolved to make a grand attack, you must win
+  over T`ang and Ts`ai, and then you may succeed."   Ho Lu
+  followed this advice, [beat Ch`u in five pitched battles and
+  marched into Ying.] [5]
+
+     This is the latest date at which anything is recorded of Sun
+Wu.  He does not appear to have survived his patron, who died
+from the effects of a wound in 496.
+     In another chapter there occurs this passage:  [6]
+
+       From this time onward, a number of famous soldiers
+  arose, one after the other:  Kao-fan, [7] who was employed by
+  the Chin State; Wang-tzu, [8] in the service of Ch`i; and Sun
+  Wu, in the service of Wu.  These men developed and threw
+  light upon the principles of war.
+
+     It is obvious enough that Ssu-ma Ch`ien at least had no
+doubt about the reality of Sun Wu as an historical personage; and
+with one exception, to be noticed presently, he is by far the
+most important authority on the period in question.  It will not
+be necessary, therefore, to say much of such a work as the WU
+YUEH CH`UN CH`IU, which is supposed to have been written by Chao
+Yeh of the 1st century A.D.  The attribution is somewhat
+doubtful; but even if it were otherwise, his account would be of
+little value, based as it is on the SHIH CHI and expanded with
+romantic details.  The story of Sun Tzu will be found, for what
+it is worth, in chapter 2.  The only new points in it worth
+noting are:  (1)  Sun Tzu was first recommended to Ho Lu by Wu
+Tzu-hsu.  (2) He is called a native of Wu.  (3) He had previously
+lived a retired life, and his contemporaries were unaware of his
+ability.
+     The following passage occurs in the Huai-nan Tzu:   "When
+sovereign and ministers show perversity of mind, it is impossible
+even for a Sun Tzu to encounter the foe."  Assuming that this
+work is genuine (and hitherto no doubt has been cast upon it), we
+have here the earliest direct reference for Sun Tzu, for Huai-nan
+Tzu died in 122 B.C., many years before the SHIH CHI was given to
+the world.
+     Liu Hsiang (80-9 B.C.) says:  "The reason why Sun Tzu at the
+head of 30,000 men beat Ch`u with 200,000 is that the latter were
+undisciplined."
+     Teng Ming-shih informs us that the surname "Sun" was
+bestowed on Sun Wu's grandfather by Duke Ching of Ch`i [547-490
+B.C.].  Sun Wu's father Sun P`ing, rose to be a Minister of State
+in Ch`i, and Sun Wu himself, whose style was Ch`ang-ch`ing,  fled
+to Wu on account of the rebellion which was being fomented by the
+kindred of T`ien Pao.  He had three sons, of whom the second,
+named Ming, was the father of Sun Pin.  According to this account
+then, Pin was the grandson of Wu, which, considering that Sun
+Pin's victory over Wei was gained in 341 B.C., may be dismissed
+as chronological impossible.  Whence these data were obtained by
+Teng Ming-shih I do not know, but of course no reliance whatever
+can be placed in them.
+     An interesting document which has survived from the close of
+the Han period is the short preface written by the Great Ts`ao
+Ts`ao, or Wei Wu Ti, for his edition of Sun Tzu.  I shall give it
+in full:  --
+
+       I have heard that the ancients used bows and arrows to
+  their advantage. [10]  The SHU CHU mentions "the army" among
+  the "eight objects of government."  The I CHING says:
+  "'army' indicates firmness and justice;  the experienced
+  leader will have good fortune."  The SHIH CHING says:  "The
+  King rose majestic in his wrath, and he marshaled his
+  troops."  The Yellow Emperor, T`ang the Completer and Wu Wang
+  all used spears and battle-axes in order to succor their
+  generation.  The SSU-MA FA says:  "If one man slay another of
+  set purpose, he himself may rightfully be slain."  He who
+  relies solely on warlike measures shall be exterminated; he
+  who relies solely on peaceful measures shall perish.
+  Instances of this are Fu Ch`ai [11] on the one hand and Yen
+  Wang on the other. [12]  In military matters, the Sage's rule
+  is normally to keep the peace, and to move his forces only
+  when occasion requires.  He will not use armed force unless
+  driven to it by necessity.
+       Many books have I read on the subject of war and
+  fighting; but the work composed by Sun Wu is the profoundest
+  of them all.  [Sun Tzu was a native of the Ch`i state,  his
+  personal name was Wu.  He wrote the ART OF WAR in 13 chapters
+  for Ho Lu, King of Wu.  Its principles were tested on women,
+  and he was subsequently made a general.  He led an army
+  westwards,  crushed the Ch`u state and entered Ying the
+  capital.  In the north, he kept Ch`i and Chin in awe.  A
+  hundred years and more after his time, Sun Pin lived. He was
+  a descendant of Wu.] [13]  In his treatment of deliberation
+  and planning, the importance of rapidity in taking the field,
+  [14] clearness of conception, and depth of design,  Sun Tzu
+  stands beyond the reach of carping criticism.  My
+  contemporaries, however, have failed to grasp the full
+  meaning of his instructions, and while putting into practice
+  the smaller details in which his work abounds,  they have
+  overlooked its essential purport.  That is the motive which
+  has led me to outline a rough explanation of the whole.
+
+     One thing to be noticed in the above is the explicit
+statement that the 13 chapters were specially composed for King
+Ho Lu.  This is supported by the internal evidence of I. ss. 15,
+in which it seems clear that some ruler is addressed.
+     In the bibliographic section of the HAN SHU, there is an
+entry which has given rise to much discussion:  "The works of Sun
+Tzu of Wu in 82 P`IEN (or chapters), with diagrams in 9 CHUAN."
+It is evident that this cannot be merely the 13 chapters known to
+Ssu-ma Ch`ien,  or those we possess today.  Chang Shou-chieh
+refers to an edition of Sun Tzu's ART OF WAR of which the "13
+chapters" formed the first CHUAN, adding that there were two
+other CHUAN besides.  This has brought forth a theory, that the
+bulk of these 82 chapters consisted of other writings of Sun Tzu
+--  we should call them apocryphal -- similar to the WEN TA, of
+which a specimen dealing with the Nine Situations [15] is
+preserved in the T`UNG TIEN, and another in Ho Shin's commentary.
+It is suggested that before his interview with Ho Lu, Sun Tzu had
+only written the 13 chapters, but afterwards composed a sort of
+exegesis in the form of question and answer between himself and
+the King.  Pi I-hsun, the author of the SUN TZU HSU LU, backs
+this up with a quotation from the WU YUEH CH`UN CH`IU:  "The King
+of Wu summoned Sun Tzu, and asked him questions about the art of
+war.  Each time he set forth a chapter of his work, the King
+could not find words enough to praise him."  As he points out, if
+the whole work was expounded on the same scale as in the above-
+mentioned fragments, the total number of chapters could not fail
+to be considerable.  Then the numerous other treatises attributed
+to Sun Tzu might be included.  The fact that the HAN CHIH
+mentions no work of Sun Tzu except the 82 P`IEN, whereas the Sui
+and T`ang bibliographies give the titles of others in addition to
+the "13 chapters," is good proof, Pi I-hsun thinks, that all of
+these were contained in the 82 P`IEN.  Without pinning our faith
+to the accuracy of details supplied by the WU YUEH CH`UN CH`IU,
+or admitting the genuineness of any of the treatises cited by Pi
+I-hsun,  we may see in this theory a probable solution of the
+mystery.  Between Ssu-ma Ch`ien and Pan Ku there was plenty of
+time for a luxuriant crop of forgeries to have grown up under the
+magic name of Sun Tzu, and the 82 P`IEN may very well represent a
+collected edition of these lumped together with the original
+work.  It is also possible, though less likely, that some of them
+existed in the time of the earlier historian and were purposely
+ignored by him. [16]
+     Tu Mu's conjecture seems to be based on a passage which
+states:  "Wei Wu Ti strung together Sun Wu's Art of War," which
+in turn may have resulted from a misunderstanding of the final
+words of Ts`ao King's preface.  This, as Sun Hsing-yen points
+out, is only a modest way of saying that he made an explanatory
+paraphrase, or in other words, wrote a commentary on it.  On the
+whole, this theory has met with very little acceptance.  Thus,
+the SSU K`U CH`UAN SHU says:  "The mention of the 13 chapters in
+the SHIH CHI shows that they were in existence before the HAN
+CHIH, and that latter accretions are not to be considered part of
+the original work.  Tu Mu's assertion can certainly not be taken
+as proof."
+     There is every reason to suppose, then, that the 13 chapters
+existed in the time of Ssu-ma Ch`ien practically as we have them
+now.  That the work was then well known he tells us in so many
+words.  "Sun Tzu's 13 Chapters and Wu Ch`i's Art of War are the
+two books that people commonly refer to on the subject of
+military matters.  Both of them are widely distributed, so I will
+not discuss them here."  But as we go further back, serious
+difficulties begin to arise.  The salient fact which has to be
+faced is that the TSO CHUAN, the greatest contemporary record,
+makes no mention whatsoever of Sun Wu, either as a general or as
+a writer.  It is natural, in view of this awkward circumstance,
+that many scholars should not only cast doubt on the story of Sun
+Wu as given in the SHIH CHI, but even show themselves frankly
+skeptical as to the existence of the man at all.  The most
+powerful presentment of this side of the case is to be found in
+the following disposition by Yeh Shui-hsin: [17] --
+
+       It is stated in Ssu-ma Ch`ien's history that Sun Wu was
+  a native of the Ch`i State, and employed by Wu; and that in
+  the reign of Ho Lu he crushed Ch`u, entered Ying, and was a
+  great general.  But in Tso's Commentary no Sun Wu appears at
+  all.  It is true that Tso's Commentary need not contain
+  absolutely everything that other histories contain.  But Tso
+  has not omitted to mention vulgar plebeians and hireling
+  ruffians such as Ying K`ao-shu, [18] Ts`ao Kuei,  [19],  Chu
+  Chih-wu and Chuan She-chu [20].  In the case of Sun Wu, whose
+  fame and achievements were so brilliant, the omission is much
+  more glaring.  Again, details are given, in their due order,
+  about his contemporaries Wu Yuan and the Minister P`ei.  [21]
+  Is it credible that Sun Wu alone should have been passed
+  over?
+       In point of literary style, Sun Tzu's work belongs to
+  the same school as KUAN TZU, [22] LIU T`AO, [23] and the YUEH
+  YU [24] and may have been the production of some private
+  scholar living towards the end of the "Spring and Autumn" or
+  the beginning of the "Warring States" period. [25]  The story
+  that his precepts were actually applied by the Wu State, is
+  merely the outcome of big talk on the part of his followers.
+       From the flourishing period of the Chou dynasty [26]
+  down to the time of the "Spring and Autumn," all military
+  commanders were statesmen as well, and the class of
+  professional generals, for conducting external campaigns, did
+  not then exist.  It was not until the period of the "Six
+  States" [27] that this custom changed.  Now although Wu was
+  an uncivilized State, it is conceivable that Tso should have
+  left unrecorded the fact that Sun Wu was a great general and
+  yet held no civil office?  What we are told, therefore, about
+  Jang-chu [28] and Sun Wu, is not authentic matter,  but the
+  reckless fabrication of theorizing pundits.  The story of Ho
+  Lu's experiment on the women, in particular, is utterly
+  preposterous and incredible.
+
+     Yeh Shui-hsin represents Ssu-ma Ch`ien as having said that
+Sun Wu crushed Ch`u and entered Ying.  This is not quite correct.
+No doubt the impression left on the reader's mind is that he at
+least shared in these exploits.  The fact may or may not be
+significant; but it is nowhere explicitly stated in the SHIH CHI
+either that Sun Tzu was general on the occasion of the taking of
+Ying, or that he even went there at all.  Moreover, as we know
+that Wu Yuan and Po P`ei both took part in the expedition, and
+also that its success was largely due to the dash and enterprise
+of Fu Kai, Ho Lu's younger brother, it is not easy to see how yet
+another general could have played a very prominent part in the
+same campaign.
+     Ch`en Chen-sun of the Sung dynasty has the note: --
+
+       Military writers look upon Sun Wu as the father of their
+  art.  But the fact that he does not appear in the TSO CHUAN,
+  although he is said to have served under Ho Lu King of Wu,
+  makes it uncertain what period he really belonged to.
+
+He also says: --
+
+       The works of Sun Wu and Wu Ch`i may be of genuine
+  antiquity.
+
+     It is noticeable that both Yeh Shui-hsin and Ch`en Chen-sun,
+while rejecting the personality of Sun Wu as he figures in Ssu-ma
+Ch`ien's history, are inclined to accept the date traditionally
+assigned to the work which passes under his name.  The author of
+the HSU LU fails to appreciate this distinction, and consequently
+his bitter attack on Ch`en Chen-sun really misses its mark.  He
+makes one of two points, however, which certainly tell in favor
+of the high antiquity of our "13 chapters."  "Sun Tzu," he says,
+"must have lived in the age of Ching Wang [519-476], because he
+is frequently plagiarized in subsequent works of the Chou, Ch`in
+and Han dynasties."  The two most shameless offenders in this
+respect are Wu Ch`i and Huai-nan Tzu, both of them important
+historical personages in their day.  The former lived only a
+century after the alleged date of Sun Tzu, and his death is known
+to have taken place in 381 B.C.  It was to him, according to Liu
+Hsiang,  that Tseng Shen delivered the TSO CHUAN, which had been
+entrusted to him by its author.  [29]   Now the fact that
+quotations from the ART OF WAR, acknowledged or otherwise, are to
+be found in so many authors of different epochs, establishes a
+very strong anterior to them all, -- in other words, that Sun
+Tzu's treatise was already in existence towards the end of the
+5th century B.C.  Further proof of Sun Tzu's antiquity is
+furnished by the archaic or wholly obsolete meanings attaching to
+a number of the words he uses.  A list of these, which might
+perhaps be extended, is given in the HSU LU; and though some of
+the interpretations are doubtful, the main argument is hardly
+affected thereby.  Again, it must not be forgotten that Yeh Shui-
+hsin, a scholar and critic of the first rank, deliberately
+pronounces the style of the 13 chapters to belong to the early
+part of the fifth century.  Seeing that he is actually engaged in
+an attempt to disprove the existence of Sun Wu himself, we may be
+sure that he would not have hesitated to assign the work to a
+later date had he not honestly believed the contrary.  And it is
+precisely on such a point that the judgment of an educated
+Chinaman will carry most weight.  Other internal evidence is not
+far to seek.  Thus in XIII. ss. 1, there is an unmistakable
+allusion to the ancient system of land-tenure which had already
+passed away by the time of Mencius, who was anxious to see it
+revived in a modified form. [30]  The only warfare Sun Tzu knows
+is that carried on between the various feudal princes, in which
+armored chariots play a large part.  Their use seems to have
+entirely died out before the end of the Chou dynasty.  He speaks
+as a man of Wu, a state which ceased to exist as early as 473
+B.C.  On this I shall touch presently.
+
+     But once refer the work to the 5th century or earlier,  and
+the chances of its being other than a bona fide production are
+sensibly diminished.  The great age of forgeries did not come
+until long after.  That it should have been forged in the period
+immediately following 473 is particularly unlikely, for no one,
+as a rule, hastens to identify himself with a lost cause.  As for
+Yeh Shui-hsin's theory, that the author was a literary recluse,
+that seems to me quite untenable.  If one thing is more apparent
+than another after reading the maxims of Sun Tzu, it is that
+their essence has been distilled from a large store of personal
+observation and experience.  They reflect the mind not only of a
+born strategist, gifted with a rare faculty of generalization,
+but also of a practical soldier closely acquainted with the
+military conditions of his time.  To say nothing of the fact that
+these sayings have been accepted and endorsed by all the greatest
+captains of Chinese history, they offer a combination of
+freshness and sincerity, acuteness and common sense, which quite
+excludes the idea that they were artificially concocted in the
+study.  If we admit, then, that the 13 chapters were the genuine
+production of a military man living towards the end of the "CH`UN
+CH`IU" period, are we not bound, in spite of the silence of the
+TSO CHUAN, to accept Ssu-ma Ch`ien's account in its entirety?  In
+view of his high repute as a sober historian,  must we not
+hesitate to assume that the records he drew upon for Sun Wu's
+biography were false and untrustworthy?  The answer, I fear, must
+be in the negative.  There is still one grave, if not fatal,
+objection to the chronology involved in the story as told in the
+SHIH CHI, which, so far as I am aware, nobody has yet pointed
+out.  There are two passages in Sun Tzu in which he alludes to
+contemporary affairs.  The first in in VI. ss. 21: --
+
+       Though according to my estimate the soldiers of Yueh
+  exceed our own in number, that shall advantage them nothing
+  in the matter of victory.  I say then that victory can be
+  achieved.
+
+The other is in XI. ss. 30: --
+
+       Asked if an army can be made to imitate the SHUAI-JAN, I
+  should answer, Yes.  For the men of Wu and the men of Yueh
+  are enemies;  yet if they are crossing a river in the same
+  boat and are caught by a storm, they will come to each
+  other's assistance just as the left hand helps the right.
+
+     These two paragraphs are extremely valuable as evidence of
+the date of composition.  They assign the work to the period of
+the struggle between Wu and Yueh.  So much has been observed by
+Pi I-hsun.  But what has hitherto escaped notice is that they
+also seriously impair the credibility of Ssu-ma Ch`ien's
+narrative.  As we have seen above, the first positive date given
+in connection with Sun Wu is 512 B.C.  He is then spoken of as a
+general,  acting as confidential adviser to Ho Lu, so that his
+alleged introduction to that monarch had already taken place, and
+of course the 13 chapters must have been written earlier still.
+But at that time, and for several years after, down to the
+capture of Ying in 506, Ch`u and not Yueh, was the great
+hereditary enemy of Wu.  The two states, Ch`u and Wu, had been
+constantly at war for over half a century, [31] whereas the first
+war between Wu and Yueh was waged only in 510, [32] and even then
+was no more than a short interlude sandwiched in the midst of the
+fierce struggle with Ch`u.  Now Ch`u is not mentioned in the 13
+chapters at all.  The natural inference is that they were written
+at a time when Yueh had become the prime antagonist of Wu, that
+is, after Ch`u had suffered the great humiliation of 506.  At
+this point, a table of dates may be found useful.
+
+B.C. |
+     |
+514  |  Accession of Ho Lu.
+512  |  Ho Lu attacks Ch`u, but is dissuaded from entering Ying,
+     |    the capital.  SHI CHI mentions Sun Wu as general.
+511  |  Another attack on Ch`u.
+510  |  Wu makes a successful attack on Yueh.  This is the first
+     |    war between the two states.
+509  |
+ or  |  Ch`u invades Wu, but is signally defeated at Yu-chang.
+508  |
+506  |  Ho Lu attacks Ch`u with the aid of T`ang and Ts`ai.
+     |    Decisive battle of Po-chu, and capture of Ying.  Last
+     |    mention of Sun Wu in SHIH CHI.
+505  |  Yueh makes a raid on Wu in the absence of its army.  Wu
+     |    is beaten by Ch`in and evacuates Ying.
+504  |  Ho Lu sends Fu Ch`ai to attack Ch`u.
+497  |  Kou Chien becomes King of Yueh.
+496  |  Wu attacks Yueh, but is defeated by Kou Chien at Tsui-li.
+     |    Ho Lu is killed.
+494  |  Fu Ch`ai defeats Kou Chien in the great battle of Fu-
+     |    chaio, and enters the capital of Yueh.
+485  |
+ or  |  Kou Chien renders homage to Wu.  Death of Wu Tzu-hsu.
+484  |
+482  |  Kou Chien invades Wu in the absence of Fu Ch`ai.
+478  |
+ to  |  Further attacks by Yueh on Wu.
+476  |
+475  |  Kou Chien lays siege to the capital of Wu.
+473  |  Final defeat and extinction of Wu.
+
+     The sentence quoted above from VI. ss. 21 hardly strikes me
+as one that could have been written in the full flush of victory.
+It seems rather to imply that, for the moment at least, the tide
+had turned against Wu, and that she was getting the worst of the
+struggle.  Hence we may conclude that our treatise was not in
+existence in 505, before which date Yueh does not appear to have
+scored any notable success against Wu.  Ho Lu died in 496,  so
+that if the book was written for him, it must have been during
+the period 505-496, when there was a lull in the hostilities,  Wu
+having presumably exhausted by its supreme effort against Ch`u.
+On the other hand, if we choose to disregard the tradition
+connecting Sun Wu's name with Ho Lu, it might equally well have
+seen the light between 496 and 494, or possibly in the period
+482-473, when Yueh was once again becoming a very serious menace.
+[33]  We may feel fairly certain that the author, whoever he may
+have been, was not a man of any great eminence in his own day.
+On this point the negative testimony of the TSO CHUAN far
+outweighs any shred of authority still attaching to the SHIH CHI,
+if once its other facts are discredited.  Sun Hsing-yen, however,
+makes a feeble attempt to explain the omission of his name from
+the great commentary.  It was Wu Tzu-hsu, he says, who got all
+the credit of Sun Wu's exploits, because the latter  (being an
+alien) was not rewarded with an office in the State.
+     How then did the Sun Tzu legend originate?  It may be that
+the growing celebrity of the book imparted by degrees a kind of
+factitious renown to its author.  It was felt to be only right
+and proper that one so well versed in the science of war should
+have solid achievements to his credit as well.  Now the capture
+of Ying was undoubtedly the greatest feat of arms in Ho Lu's
+reign;  it made a deep and lasting impression on all the
+surrounding states, and raised Wu to the short-lived zenith of
+her power.  Hence, what more natural, as time went on, than that
+the acknowledged master of strategy, Sun Wu, should be popularly
+identified with that campaign, at first perhaps only in the sense
+that his brain conceived and planned it; afterwards, that it was
+actually carried out by him in conjunction with Wu Yuan, [34]  Po
+P`ei and Fu Kai?
+     It is obvious that any attempt to reconstruct even the
+outline of Sun Tzu's life must be based almost wholly on
+conjecture.  With this necessary proviso, I should say that he
+probably entered the service of Wu about the time of Ho Lu's
+accession,  and gathered experience, though only in the capacity
+of a subordinate officer, during the intense military activity
+which marked the first half of the prince's reign. [35]   If he
+rose to be a general at all, he certainly was never on an equal
+footing with the three above mentioned.  He was doubtless present
+at the investment and occupation of Ying,  and witnessed Wu's
+sudden collapse in the following year.  Yueh's attack at this
+critical juncture, when her rival was embarrassed on every side,
+seems to have convinced him that this upstart kingdom was the
+great enemy against whom every effort would henceforth have to be
+directed.  Sun Wu was thus a well-seasoned warrior when he sat
+down to write his famous book, which according to my reckoning
+must have appeared towards the end, rather than the beginning of
+Ho Lu's reign.  The story of the women may possibly have grown
+out of some real incident occurring about the same time.  As we
+hear no more of Sun Wu after this from any source, he is hardly
+likely to have survived his patron or to have taken part in the
+death-struggle with Yueh, which began with the disaster at Tsui-
+li.
+     If these inferences are approximately correct, there is a
+certain irony in the fate which decreed that China's most
+illustrious man of peace should be contemporary with her greatest
+writer on war.
+
+
+The Text of Sun Tzu
+-------------------
+
+
+     I have found it difficult to glean much about the history of
+Sun Tzu's text.  The quotations that occur in early authors go to
+show that the "13 chapters" of which Ssu-ma Ch`ien speaks were
+essentially the same as those now extant.  We have his word for
+it that they were widely circulated in his day,  and can only
+regret that he refrained from discussing them on that account.
+Sun Hsing-yen says in his preface: --
+
+       During the Ch`in and Han dynasties Sun Tzu's ART OF WAR
+  was in general use amongst military commanders, but they seem
+  to have treated it as a work of mysterious import, and were
+  unwilling to expound it for the benefit of posterity.  Thus
+  it came about that Wei Wu was the first to write a commentary
+  on it.
+
+     As we have already seen, there is no reasonable ground to
+suppose that Ts`ao Kung tampered with the text.  But the text
+itself is often so obscure, and the number of editions which
+appeared from that time onward so great, especially during the
+T`ang and Sung dynasties, that it would be surprising if numerous
+corruptions had not managed to creep in.  Towards the middle of
+the Sung period, by which time all the chief commentaries on Sun
+Tzu were in existence, a certain Chi T`ien-pao published a work
+in 15 CHUAN entitled "Sun Tzu with the collected commentaries of
+ten writers."  There was another text, with variant readings put
+forward by Chu Fu of Ta-hsing, which also had supporters among
+the scholars of that period; but in the Ming editions, Sun Hsing-
+yen tells us, these readings were for some reason or other no
+longer put into circulation.  Thus, until the end of the 18th
+century, the text in sole possession of the field was one derived
+from Chi T`ien-pao's edition, although no actual copy of that
+important work was known to have survived.  That, therefore,  is
+the text of Sun Tzu which appears in the War section of the great
+Imperial encyclopedia printed in 1726, the KU CHIN T`U SHU CHI
+CH`ENG.  Another copy at my disposal of what is practically the
+same text,  with slight variations, is that contained in the
+"Eleven philosophers of the Chou and Ch`in dynasties"  [1758].
+And the Chinese printed in Capt. Calthrop's first edition is
+evidently a similar version which has filtered through Japanese
+channels.  So things remained until Sun Hsing-yen [1752-1818],  a
+distinguished antiquarian and classical scholar, who claimed to
+be an actual descendant of Sun Wu, [36] accidentally discovered a
+copy of Chi T`ien-pao's long-lost work, when on a visit to the
+library of the Hua-yin temple. [37]  Appended to it was the I
+SHUO of Cheng Yu-Hsien, mentioned in the T`UNG CHIH,  and also
+believed to have perished.  This is what Sun Hsing-yen designates
+as the "original edition (or text)" -- a rather misleading name,
+for it cannot by any means claim to set before us the text of Sun
+Tzu in its pristine purity.  Chi T`ien-pao was a careless
+compiler,  and appears to have been content to reproduce the
+somewhat debased version current in his day, without troubling to
+collate   it   with the earliest   editions   then   available.
+Fortunately,  two versions of Sun Tzu, even older than the newly
+discovered work, were still extant, one buried in the T`UNG TIEN,
+Tu Yu's great treatise on the Constitution, the other similarly
+enshrined in the T`AI P`ING YU LAN encyclopedia.  In both the
+complete text is to be found, though split up into fragments,
+intermixed with other matter, and scattered piecemeal over a
+number of different sections.  Considering that the YU LAN takes
+us back to the year 983, and the T`UNG TIEN about 200 years
+further still, to the middle of the T`ang dynasty, the value of
+these early transcripts of Sun Tzu can hardly be overestimated.
+Yet the idea of utilizing them does not seem to have occurred to
+anyone until Sun Hsing-yen, acting under Government instructions,
+undertook a thorough recension of the text.  This is his own
+account: --
+
+       Because of the numerous mistakes in the text of Sun Tzu
+  which his editors had handed down, the Government ordered
+  that the ancient edition [of Chi T`ien-pao] should be used,
+  and that the text should be revised and corrected throughout.
+  It happened that Wu Nien-hu, the Governor Pi Kua, and Hsi,  a
+  graduate of the second degree, had all devoted themselves to
+  this study, probably surpassing me therein.  Accordingly,  I
+  have had the whole work cut on blocks as a textbook for
+  military men.
+
+     The three individuals here referred to had evidently been
+occupied on the text of Sun Tzu prior to Sun Hsing-yen's
+commission,  but we are left in doubt as to the work they really
+accomplished.  At any rate, the new edition,  when ultimately
+produced, appeared in the names of Sun Hsing-yen and only one co-
+editor Wu Jen-shi.  They took the "original edition"  as their
+basis, and by careful comparison with older versions, as well as
+the extant commentaries and other sources of information such as
+the I SHUO,  succeeded in restoring a very large number of
+doubtful passages,  and turned out, on the whole, what must be
+accepted as the closes approximation we are ever likely to get to
+Sun Tzu's original work.  This is what will hereafter be
+denominated the "standard text."
+     The copy which I have used belongs to a reissue dated 1877.
+it is in 6 PEN, forming part of a well-printed set of 23 early
+philosophical works in 83 PEN. [38]  It opens with a preface by
+Sun Hsing-yen (largely quoted in this introduction),  vindicating
+the traditional view of Sun Tzu's life and performances,  and
+summing up in remarkably concise fashion the evidence in its
+favor.  This is followed by Ts`ao Kung's preface to his edition,
+and the biography of Sun Tzu from the SHIH CHI, both translated
+above.  Then come, firstly, Cheng Yu-hsien's I SHUO,  [39]  with
+author's preface, and next, a short miscellany of historical and
+bibliographical information entitled SUN TZU HSU LU, compiled by
+Pi I-hsun.  As regards the body of the work,  each separate
+sentence is followed by a note on the text, if required, and then
+by the various commentaries appertaining to it,  arranged in
+chronological order.  These we shall now proceed to discuss
+briefly, one by one.
+
+
+The Commentators
+----------------
+
+
+     Sun Tzu can boast an exceptionally long distinguished roll
+of commentators, which would do honor to any classic.  Ou-yang
+Hsiu remarks on this fact, though he wrote before the tale was
+complete,  and rather ingeniously explains it by saying that the
+artifices   of war,  being inexhaustible,  must therefore   be
+susceptible of treatment in a great variety of ways.
+
+     1.  TS`AO TS`AO or Ts`ao Kung, afterwards known as Wei Wu Ti
+[A.D.  155-220].  There is hardly any room for doubt that the
+earliest commentary on Sun Tzu actually came from the pen of this
+extraordinary man, whose biography in the SAN KUO CHIH reads like
+a romance.  One of the greatest military geniuses that the world
+has seen, and Napoleonic in the scale of his operations, he was
+especially famed for the marvelous rapidity of his marches, which
+has found expression in the line "Talk of Ts`ao Ts`ao, and Ts`ao
+Ts`ao will appear."  Ou-yang Hsiu says of him that he was a great
+captain who "measured his strength against Tung Cho, Lu Pu and
+the two Yuan, father and son, and vanquished them all;  whereupon
+he divided the Empire of Han with Wu and Shu, and made himself
+king.  It is recorded that whenever a council of war was held by
+Wei on the eve of a far-reaching campaign,  he had all his
+calculations ready; those generals who made use of them did not
+lose one battle in ten; those who ran counter to them in any
+particular saw their armies incontinently beaten and put to
+flight."   Ts`ao Kung's notes on Sun Tzu,  models of austere
+brevity, are so thoroughly characteristic of the stern commander
+known to history, that it is hard indeed to conceive of them as
+the work of a mere LITTERATEUR.  Sometimes,  indeed,  owing to
+extreme compression, they are scarcely intelligible and stand no
+less in need of a commentary than the text itself. [40]
+
+     2.  MENG SHIH.  The commentary which has come down to us
+under this name is comparatively meager, and nothing about the
+author is known.  Even his personal name has not been recorded.
+Chi T`ien-pao's edition places him after Chia Lin,and Ch`ao Kung-
+wu also assigns him to the T`ang dynasty, [41] but this is a
+mistake.  In Sun Hsing-yen's preface, he appears as Meng Shih of
+the Liang dynasty [502-557].  Others would identify him with Meng
+K`ang of the 3rd century.  He is named in one work as the last of
+the "Five Commentators," the others being Wei Wu Ti, Tu Mu, Ch`en
+Hao and Chia Lin.
+
+     3.  LI CH`UAN of the 8th century was a well-known writer on
+military tactics.  One of his works has been in constant use down
+to the present day.  The T`UNG CHIH mentions "Lives of famous
+generals from the Chou to the T`ang dynasty" as written by him.
+[42]  According to Ch`ao Kung-wu and the T`IEN-I-KO catalogue, he
+followed a variant of the text of Sun Tzu which differs
+considerably from those now extant.  His notes are mostly short
+and to the point, and he frequently illustrates his remarks by
+anecdotes from Chinese history.
+
+     4.  TU YU (died 812) did not publish a separate commentary
+on Sun Tzu,  his notes being taken from the T`UNG TIEN,  the
+encyclopedic treatise on the Constitution which was his life-
+work.  They are largely repetitions of Ts`ao Kung and Meng Shih,
+besides which it is believed that he drew on the ancient
+commentaries of Wang Ling and others.  Owing to the peculiar
+arrangement of T`UNG TIEN, he has to explain each passage on its
+merits, apart from the context, and sometimes his own explanation
+does not agree with that of Ts`ao Kung, whom he always quotes
+first.  Though not strictly to be reckoned as one of the  "Ten
+Commentators,"  he was added to their number by Chi T`ien-pao,
+being wrongly placed after his grandson Tu Mu.
+
+     5.  TU MU (803-852) is perhaps the best known as a poet -- a
+bright star even in the glorious galaxy of the T`ang period.  We
+learn from Ch`ao Kung-wu that although he had no practical
+experience of war,  he was extremely fond of discussing the
+subject,  and was moreover well read in the military history of
+the CH`UN CH`IU and CHAN KUO eras.  His notes,  therefore,  are
+well worth attention.  They are very copious, and replete with
+historical parallels.  The gist of Sun Tzu's work is thus
+summarized by him:  "Practice benevolence and justice, but on the
+other hand make full use of artifice and measures of expediency."
+He further declared that all the military triumphs and disasters
+of the thousand years which had elapsed since Sun Tzu's death
+would,  upon examination, be found to uphold and corroborate,  in
+every particular,  the maxims contained in his book.  Tu Mu's
+somewhat spiteful charge against Ts`ao Kung has already been
+considered elsewhere.
+
+     6.  CH`EN HAO appears to have been a contemporary of Tu Mu.
+Ch`ao Kung-wu says that he was impelled to write a new commentary
+on Sun Tzu because Ts`ao Kung's on the one hand was too obscure
+and subtle, and that of Tu Mu on the other too long-winded and
+diffuse.  Ou-yang Hsiu,  writing in the middle of the 11th
+century,  calls Ts`ao Kung, Tu Mu and Ch`en Hao the three chief
+commentators on Sun Tzu,  and observes that Ch`en Hao   is
+continually attacking Tu Mu's shortcomings.  His commentary,
+though not lacking in merit, must rank below those of his
+predecessors.
+
+     7.  CHIA LIN is known to have lived under the T`ang dynasty,
+for his commentary on Sun Tzu is mentioned in the T`ang Shu and
+was afterwards republished by Chi Hsieh of the same dynasty
+together with those of Meng Shih and Tu Yu.  It is of somewhat
+scanty texture, and in point of quality, too, perhaps the least
+valuable of the eleven.
+
+     8.  MEI YAO-CH`EN (1002-1060), commonly known by his "style"
+as Mei Sheng-yu, was, like Tu Mu, a poet of distinction.  His
+commentary was published with a laudatory preface by the great
+Ou-yang Hsiu, from which we may cull the following: --
+
+       Later scholars have misread Sun Tzu,  distorting his
+  words and trying to make them square with their own one-sided
+  views.  Thus, though commentators have not been lacking, only
+  a few have proved equal to the task.  My friend Sheng-yu has
+  not fallen into this mistake.  In attempting to provide a
+  critical commentary for Sun Tzu's work, he does not lose
+  sight of the fact that these sayings were intended for states
+  engaged in internecine warfare; that the author is not
+  concerned with the military conditions prevailing under the
+  sovereigns of the three ancient dynasties, [43] nor with the
+  nine punitive measures prescribed to the Minister of War.
+  [44]  Again, Sun Wu loved brevity of diction, but his meaning
+  is always deep.  Whether the subject be marching an army,  or
+  handling soldiers, or estimating the enemy,  or controlling
+  the forces of victory, it is always systematically treated;
+  the sayings are bound together in strict logical sequence,
+  though this has been obscured by commentators who have
+  probably   failed to grasp their meaning.  In his   own
+  commentary, Mei Sheng-yu has brushed aside all the obstinate
+  prejudices of these critics, and has tried to bring out the
+  true meaning of Sun Tzu himself.  In this way, the clouds of
+  confusion have been dispersed and the sayings made clear.  I
+  am convinced that the present work deserves to be handed down
+  side by side with the three great commentaries; and for a
+  great deal that they find in the sayings, coming generations
+  will have constant reason to thank my friend Sheng-yu.
+
+     Making some allowance for the exuberance of friendship, I am
+inclined to endorse this favorable judgment, and would certainly
+place him above Ch`en Hao in order of merit.
+
+     9.  WANG HSI,  also of the Sung dynasty,  is decidedly
+original in some of his interpretations, but much less judicious
+than Mei Yao-ch`en,  and on the whole not a very trustworthy
+guide.  He is fond of comparing his own commentary with that of
+Ts`ao Kung, but the comparison is not often flattering to him.
+We learn from Ch`ao Kung-wu that Wang Hsi revised the ancient
+text of Sun Tzu, filling up lacunae and correcting mistakes. [45]
+
+     10.  HO YEN-HSI of the Sung dynasty.  The personal name of
+this commentator is given as above by Cheng Ch`iao in the TUNG
+CHIH,  written about the middle of the twelfth century,  but he
+appears simply as Ho Shih in the YU HAI, and Ma Tuan-lin quotes
+Ch`ao Kung-wu as saying that his personal name is unknown.  There
+seems to be no reason to doubt Cheng Ch`iao's statement,
+otherwise I should have been inclined to hazard a guess and
+identify him with one Ho Ch`u-fei, the author of a short treatise
+on war,  who lived in the latter part of the 11th century.  Ho
+Shih's commentary,  in the words of the T`IEN-I-KO catalogue,
+"contains helpful additions"  here and there,  but is chiefly
+remarkable for the copious extracts taken, in adapted form,  from
+the dynastic histories and other sources.
+
+     11.  CHANG YU.  The list closes with a commentator of no
+great originality perhaps, but gifted with admirable powers of
+lucid exposition.  His commentator is based on that of Ts`ao
+Kung, whose terse sentences he contrives to expand and develop in
+masterly fashion.  Without Chang Yu, it is safe to say that much
+of Ts`ao Kung's commentary would have remained cloaked in its
+pristine obscurity and therefore valueless.  His work is not
+mentioned in the Sung history, the T`UNG K`AO, or the YU HAI, but
+it finds a niche in the T`UNG CHIH, which also names him as the
+author of the "Lives of Famous Generals." [46]
+     It is rather remarkable that the last-named four should all
+have flourished within so short a space of time.  Ch`ao Kung-wu
+accounts for it by saying:  "During the early years of the Sung
+dynasty the Empire enjoyed a long spell of peace, and men ceased
+to practice the art of war.  but when [Chao] Yuan-hao's rebellion
+came [1038-42] and the frontier generals were defeated time after
+time,  the Court made strenuous inquiry for men skilled in war,
+and military topics became the vogue amongst all the high
+officials.  Hence it is that the commentators of Sun Tzu in our
+dynasty belong mainly to that period. [47]
+
+     Besides these eleven commentators, there are several others
+whose work has not come down to us.  The SUI SHU mentions four,
+namely Wang Ling (often quoted by Tu Yu as Wang Tzu); Chang Tzu-
+shang;  Chia Hsu of Wei; [48] and Shen Yu of Wu.  The T`ANG SHU
+adds Sun Hao, and the T`UNG CHIH Hsiao Chi, while the T`U SHU
+mentions a Ming commentator, Huang Jun-yu.  It is possible that
+some of these may have been merely collectors and editors of
+other commentaries, like Chi T`ien-pao and Chi Hsieh,  mentioned
+above.
+
+
+Appreciations of Sun Tzu
+------------------------
+
+
+     Sun Tzu has exercised a potent fascination over the minds of
+some of China's greatest men.  Among the famous generals who are
+known to have studied his pages with enthusiasm may be mentioned
+Han Hsin (d. 196 B.C.), [49] Feng I (d. 34 A.D.), [50]  Lu Meng
+(d. 219), [51] and Yo Fei (1103-1141). [52]  The opinion of Ts`ao
+Kung,  who disputes with Han Hsin the highest place in Chinese
+military annals,  has already been recorded.  [53]   Still more
+remarkable, in one way, is the testimony of purely literary men,
+such as Su Hsun (the father of Su Tung-p`o), who wrote several
+essays on military topics,  all of which owe their   chief
+inspiration to Sun Tzu.  The following short passage by him is
+preserved in the YU HAI: [54] --
+
+       Sun Wu's saying, that in war one cannot make certain of
+  conquering,  [55]  is very different indeed from what other
+  books tell us. [56]  Wu Ch`i was a man of the same stamp as
+  Sun Wu:  they both wrote books on war, and they are linked
+  together in popular speech as "Sun and Wu."  But Wu Ch`i's
+  remarks on war are less weighty, his rules are rougher and
+  more crudely stated, and there is not the same unity of plan
+  as in Sun Tzu's work, where the style is terse,  but the
+  meaning fully brought out.
+
+     The following is an extract from the "Impartial Judgments in
+the Garden of Literature" by Cheng Hou: --
+
+       Sun Tzu's 13 chapters are not only the staple and base
+  of all military men's training, but also compel the most
+  careful attention of scholars and men of letters.  His
+  sayings   are terse yet elegant,  simple   yet   profound,
+  perspicuous and eminently practical.  Such works as the LUN
+  YU, the I CHING and the great Commentary, [57] as well as the
+  writings of Mencius, Hsun K`uang and Yang Chu, all fall below
+  the level of Sun Tzu.
+
+     Chu Hsi, commenting on this, fully admits the first part of
+the criticism, although he dislikes the audacious comparison with
+the venerated classical works.  Language of this sort, he says,
+"encourages a ruler's bent towards unrelenting warfare and
+reckless militarism."
+
+
+Apologies for War
+-----------------
+
+
+     Accustomed as we are to think of China as the greatest
+peace-loving nation on earth, we are in some danger of forgetting
+that her experience of war in all its phases has also been such
+as no modern State can parallel.  Her long military annals
+stretch back to a point at which they are lost in the mists of
+time.  She had built the Great Wall and was maintaining a huge
+standing army along her frontier centuries before the first Roman
+legionary was seen on the Danube.  What with the perpetual
+collisions of the ancient feudal States, the grim conflicts with
+Huns,  Turks and other invaders after the centralization of
+government,   the terrific upheavals which   accompanied   the
+overthrow of so many dynasties, besides the countless rebellions
+and minor disturbances that have flamed up and flickered out
+again one by one, it is hardly too much to say that the clash of
+arms has never ceased to resound in one portion or another of the
+Empire.
+     No less remarkable is the succession of illustrious captains
+to whom China can point with pride.  As in all countries,  the
+greatest are fond of emerging at the most fateful crises of her
+history.  Thus, Po Ch`i stands out conspicuous in the period when
+Ch`in was entering upon her final struggle with the remaining
+independent states.  The stormy years which followed the break-up
+of the Ch`in dynasty are illuminated by the transcendent genius
+of Han Hsin.  When the House of Han in turn is tottering to its
+fall,  the great and baleful figure of Ts`ao Ts`ao dominates the
+scene.  And in the establishment of the T`ang dynasty,one of the
+mightiest tasks achieved by man, the superhuman energy of Li
+Shih-min (afterwards the Emperor T`ai Tsung) was seconded by the
+brilliant strategy of Li Ching.  None of these generals need fear
+comparison with the greatest names in the military history of
+Europe.
+     In spite of all this, the great body of Chinese sentiment,
+from Lao Tzu downwards, and especially as reflected in the
+standard literature of Confucianism,  has been   consistently
+pacific and intensely opposed to militarism in any form.  It is
+such an uncommon thing to find any of the literati defending
+warfare on principle,  that I have thought it worth while to
+collect and translate a few passages in which the unorthodox view
+is upheld.  The following, by Ssu-ma Ch`ien, shows that for all
+his ardent admiration of Confucius, he was yet no advocate of
+peace at any price: --
+
+       Military weapons are the means used by the Sage to
+  punish violence and cruelty, to give peace to troublous
+  times,  to remove difficulties and dangers,  and to succor
+  those who are in peril.  Every animal with blood in its veins
+  and horns on its head will fight when it is attacked.  How
+  much more so will man, who carries in his breast the
+  faculties of love and hatred, joy and anger!   When he is
+  pleased,  a feeling of affection springs up within him;  when
+  angry, his poisoned sting is brought into play.  That is the
+  natural law which governs his being....  What then shall be
+  said of those scholars of our time,  blind to all great
+  issues, and without any appreciation of relative values,  who
+  can only bark out their stale formulas about  "virtue"  and
+  "civilization," condemning the use of military weapons?  They
+  will surely bring our country to impotence and dishonor and
+  the loss of her rightful heritage; or, at the very least,
+  they will bring about invasion and rebellion,  sacrifice of
+  territory and general enfeeblement.  Yet they obstinately
+  refuse to modify the position they have taken up.  The truth
+  is that, just as in the family the teacher must not spare the
+  rod,  and punishments cannot be dispensed with in the State,
+  so military chastisement can never be allowed to fall into
+  abeyance in the Empire.  All one can say is that this power
+  will be exercised wisely by some, foolishly by others,  and
+  that among those who bear arms some will be loyal and others
+  rebellious. [58]
+
+     The next piece is taken from Tu Mu's preface to his
+commentary on Sun Tzu: --
+
+       War may be defined as punishment, which is one of the
+  functions of government.  It was the profession of Chung Yu
+  and Jan Ch`iu, both disciples of Confucius.  Nowadays,  the
+  holding of trials and hearing of litigation, the imprisonment
+  of offenders and their execution by flogging in the market-
+  place,  are all done by officials.  But the wielding of huge
+  armies, the throwing down of fortified cities, the hauling of
+  women and children into captivity, and the beheading of
+  traitors  --  this is also work which is done by officials.
+  The objects of the rack and of military weapons   are
+  essentially the same.  There is no intrinsic difference
+  between the punishment of flogging and cutting off heads in
+  war.  For the lesser infractions of law, which are easily
+  dealt with, only a small amount of force need be employed:
+  hence the use of military weapons and wholesale decapitation.
+  In both cases, however, the end in view is to get rid of
+  wicked people, and to give comfort and relief to the good....
+       Chi-sun asked Jan Yu, saying:  "Have you, Sir,  acquired
+  your military aptitude by study, or is it innate?"   Jan Yu
+  replied:   "It has been acquired by study." [59]   "How can
+  that be so," said Chi-sun, "seeing that you are a disciple of
+  Confucius?"  "It is a fact," replied Jan Yu; "I was taught by
+  Confucius.  It is fitting that the great Sage should exercise
+  both civil and military functions, though to be sure my
+  instruction in the art of fighting has not yet gone very
+  far."
+       Now,  who the author was of this rigid distinction
+  between the "civil" and the "military," and the limitation of
+  each to a separate sphere of action, or in what year of which
+  dynasty it was first introduced, is more than I can say.
+  But,  at any rate, it has come about that the members of the
+  governing class are quite afraid of enlarging on military
+  topics,  or do so only in a shamefaced manner.  If any are
+  bold enough to discuss the subject, they are at once set down
+  as eccentric individuals of coarse and brutal propensities.
+  This is an extraordinary instance in which,  through sheer
+  lack of reasoning, men unhappily lose sight of fundamental
+  principles.
+       When the Duke of Chou was minister under Ch`eng Wang, he
+  regulated ceremonies and made music, and venerated the arts
+  of scholarship and learning; yet when the barbarians of the
+  River Huai revolted, [60] he sallied forth and chastised
+  them.  When Confucius held office under the Duke of Lu, and a
+  meeting was convened at Chia-ku, [61] he said:  "If pacific
+  negotiations are in progress, warlike preparations should
+  have been made beforehand."  He rebuked and shamed the
+  Marquis of Ch`i, who cowered under him and dared not proceed
+  to violence.  How can it be said that these two great Sages
+  had no knowledge of military matters?
+
+     We have seen that the great Chu Hsi held Sun Tzu in high
+esteem.  He also appeals to the authority of the Classics: --
+
+       Our Master Confucius, answering Duke Ling of Wei,  said:
+  "I have never studied matters connected with armies and
+  battalions."  [62]   Replying to K`ung Wen-tzu, he said:   I
+  have not been instructed about buff-coats and weapons."   But
+  if we turn to the meeting at Chia-ku, we find that he used
+  armed force against the men of Lai, so that the marquis of
+  Ch`i was overawed.  Again,  when the inhabitants of Pi
+  revolted, the ordered his officers to attack them,  whereupon
+  they were defeated and fled in confusion.  He once uttered
+  the words:  "If I fight, I conquer." [63]  And Jan Yu also
+  said:    "The   Sage exercises both civil   and   military
+  functions."  [64]   Can it be a fact that Confucius never
+  studied or received instruction in the art of war?   We can
+  only say that he did not specially choose matters connected
+  with armies and fighting to be the subject of his teaching.
+
+     Sun Hsing-yen,  the editor of Sun Tzu,  writes in similar
+strain: --
+
+       Confucius said:  "I am unversed in military matters."
+  [65]  He also said:  "If I fight,  I conquer."   Confucius
+  ordered ceremonies and regulated music.  Now war constitutes
+  one of the five classes of State ceremonial, [66]  and must
+  not be treated as an independent branch of study.  Hence, the
+  words "I am unversed in" must be taken to mean that there are
+  things which even an inspired Teacher does not know.  Those
+  who have to lead an army and devise stratagems,  must learn
+  the art of war.  But if one can command the services of a
+  good general like Sun Tzu, who was employed by Wu Tzu-hsu,
+  there is no need to learn it oneself.  Hence the remark added
+  by Confucius:  "If I fight, I conquer."
+       The men of the present day, however, willfully interpret
+  these words of Confucius in their narrowest sense, as though
+  he meant that books on the art of war were not worth reading.
+  With blind persistency, they adduce the example of Chao Kua,
+  who pored over his father's books to no purpose, [67]  as a
+  proof that all military theory is useless.  Again,  seeing
+  that books on war have to do with such things as opportunism
+  in designing plans, and the conversion of spies,  they hold
+  that the art is immoral and unworthy of a sage.  These people
+  ignore the fact that the studies of our scholars and the
+  civil administration of our officials also require steady
+  application and practice before efficiency is reached.  The
+  ancients were particularly chary of allowing mere novices to
+  botch their work. [68]  Weapons are baneful [69] and fighting
+  perilous;  and useless unless a general is in constant
+  practice, he ought not to hazard other men's lives in battle.
+  [70]  Hence it is essential that Sun Tzu's 13 chapters should
+  be studied.
+      Hsiang Liang used to instruct his nephew Chi [71] in the
+  art of war.  Chi got a rough idea of the art in its general
+  bearings,  but would not pursue his studies to their proper
+  outcome,  the consequence being that he was finally defeated
+  and overthrown.  He did not realize that the tricks and
+  artifices of war are beyond verbal computation.  Duke Hsiang
+  of Sung and King Yen of Hsu were brought to destruction by
+  their misplaced humanity.  The treacherous and underhand
+  nature of war necessitates the use of guile and stratagem
+  suited to the occasion.  There is a case on record of
+  Confucius himself having violated an extorted oath, [72]  and
+  also of his having left the Sung State in disguise. [73]  Can
+  we then recklessly arraign Sun Tzu for disregarding truth and
+  honesty?
+
+
+Bibliography
+------------
+
+
+     The following are the oldest Chinese treatises on war, after
+Sun Tzu.  The notes on each have been drawn principally from the
+SSU K`U CH`UAN SHU CHIEN MING MU LU, ch. 9, fol. 22 sqq.
+
+     1.  WU TZU, in 1 CHUAN or 6 chapters.  By Wu Ch`i  (d.  381
+B.C.).  A genuine work.  See SHIH CHI, ch. 65.
+
+     2.  SSU-MA FA, in 1 CHUAN or 5 chapters.  Wrongly attributed
+to Ssu-ma Jang-chu of the 6th century B.C.  Its date,  however,
+must be early, as the customs of the three ancient dynasties are
+constantly to be met within its pages.  See SHIH CHI, ch. 64.
+     The SSU K`U CH`UAN SHU (ch. 99, f. 1)  remarks that the
+oldest three treatises on war, SUN TZU, WU TZU and SSU-MA FA,
+are,  generally speaking, only concerned with things strictly
+military  --  the art of producing,  collecting,  training and
+drilling troops, and the correct theory with regard to measures
+of expediency, laying plans, transport of goods and the handling
+of soldiers -- in strong contrast to later works, in which the
+science of war is usually blended with metaphysics,  divination
+and magical arts in general.
+
+     3.  LIU T`AO, in 6 CHUAN, or 60 chapters.  Attributed to Lu
+Wang  (or Lu Shang, also known as T`ai Kung) of the 12th century
+B.C. [74]  But its style does not belong to the era of the Three
+Dynasties.  Lu Te-ming (550-625 A.D.) mentions the work,  and
+enumerates the headings of the six sections so that the forgery
+cannot have been later than Sui dynasty.
+
+     4.  WEI LIAO TZU, in 5 CHUAN.  Attributed to Wei Liao  (4th
+cent. B.C.), who studied under the famous Kuei-ku Tzu.  The work
+appears to have been originally in 31 chapters, whereas the text
+we possess contains only 24.  Its matter is sound enough in the
+main,  though the strategical devices differ considerably from
+those of the Warring States period.  It is been furnished with a
+commentary by the well-known Sung philosopher Chang Tsai.
+
+     5.  SAN LUEH, in 3 CHUAN.  Attributed to Huang-shih Kung,  a
+legendary personage who is said to have bestowed it on Chang
+Liang (d. 187 B.C.) in an interview on a bridge.  But here again,
+the style is not that of works dating from the Ch`in or Han
+period.  The Han Emperor Kuang Wu [25-57 A.D.] apparently quotes
+from it in one of his proclamations; but the passage in question
+may have been inserted later on,  in order to prove   the
+genuineness of the work.  We shall not be far out if we refer it
+to the Northern Sung period [420-478 A.D.], or somewhat earlier.
+
+     6.  LI WEI KUNG WEN TUI, in 3 sections.  Written in the form
+of a dialogue between T`ai Tsung and his great general Li Ching,
+it is usually ascribed to the latter.  Competent authorities
+consider it a forgery, though the author was evidently well
+versed in the art of war.
+
+     7.  LI CHING PING FA (not to be confounded with the
+foregoing)  is a short treatise in 8 chapters, preserved in the
+T`ung Tien, but not published separately.  This fact explains its
+omission from the SSU K`U CH`UAN SHU.
+
+     8.  WU CH`I CHING, in 1 CHUAN.  Attributed to the legendary
+minister Feng Hou, with exegetical notes by Kung-sun Hung of the
+Han dynasty (d. 121 B.C.), and said to have been eulogized by the
+celebrated general Ma Lung (d. 300 A.D.).  Yet the earliest
+mention of it is in the SUNG CHIH.  Although a forgery, the work
+is well put together.
+
+     Considering the high popular estimation in which Chu-ko
+Liang has always been held, it is not surprising to find more
+than one work on war ascribed to his pen.  Such are (1) the SHIH
+LIU TS`E (1 CHUAN), preserved in the YUNG LO TA TIEN; (2)  CHIANG
+YUAN  (1 CHUAN);  and  (3) HSIN SHU  (1 CHUAN),  which steals
+wholesale from Sun Tzu.  None of these has the slightest claim to
+be considered genuine.
+     Most of the large Chinese encyclopedias contain extensive
+sections devoted to the literature of war.  The following
+references may be found useful: --
+
+     T`UNG TIEN (circa 800 A.D.), ch. 148-162.
+     T`AI P`ING YU LAN (983), ch. 270-359.
+     WEN HSIEN TUNG K`AO (13th cent.), ch. 221.
+     YU HAI (13th cent.), ch. 140, 141.
+     SAN TS`AI T`U HUI (16th cent).
+     KUANG PO WU CHIH (1607), ch. 31, 32.
+     CH`IEN CH`IO LEI SHU (1632), ch. 75.
+     YUAN CHIEN LEI HAN (1710), ch. 206-229.
+     KU CHIN T`U SHU CHI CH`ENG (1726), section XXX, esp. ch. 81-
+      90.
+     HSU WEN HSIEN T`UNG K`AO (1784), ch. 121-134.
+     HUANG CH`AO CHING SHIH WEN PIEN (1826), ch. 76, 77.
+
+     The bibliographical sections of certain historical works
+also deserve mention: --
+
+     CH`IEN HAN SHU, ch. 30.
+     SUI SHU, ch. 32-35.
+     CHIU T`ANG SHU, ch. 46, 47.
+     HSIN T`ANG SHU, ch. 57,60.
+     SUNG SHIH, ch. 202-209.
+     T`UNG CHIH (circa 1150), ch. 68.
+
+     To these of course must be added the great Catalogue of the
+Imperial Library: --
+
+     SSU K`U CH`UAN SHU TSUNG MU T`I YAO (1790), ch. 99, 100.
+
+
+Footnotes
+---------
+
+
+1.  SHI CHI, ch. 65.
+
+2.  He reigned from 514 to 496 B.C.
+
+3.  SHI CHI, ch. 130.
+
+4.  The appellation of Nang Wa.
+
+5.  SHI CHI, ch. 31.
+
+6.  SHI CHI, ch. 25.
+
+7.  The appellation of Hu Yen, mentioned in ch. 39 under the year
+637.
+
+8.  Wang-tzu Ch`eng-fu, ch. 32, year 607.
+
+9.  The mistake is natural enough.  Native critics refer to a
+work of the Han dynasty, which says:  "Ten LI outside the WU gate
+[of the city of Wu, now Soochow in Kiangsu] there is a great
+mound, raised to commemorate the entertainment of Sun Wu of Ch`i,
+who excelled in the art of war, by the King of Wu."
+
+10.  "They attached strings to wood to make bows, and sharpened
+wood to make arrows.  The use of bows and arrows is to keep the
+Empire in awe."
+
+11.  The son and successor of Ho Lu.  He was finally defeated and
+overthrown by Kou chien, King of Yueh, in 473 B.C.  See post.
+
+12.  King Yen of Hsu, a fabulous being, of whom Sun Hsing-yen
+says in his preface:  "His humanity brought him to destruction."
+
+13.  The passage I have put in brackets is omitted in the T`U
+SHU, and may be an interpolation.  It was known, however to Chang
+Shou-chieh of the T`ang dynasty, and appears in the T`AI P`ING YU
+LAN.
+
+14.  Ts`ao Kung seems to be thinking of the first part of chap.
+II, perhaps especially of ss. 8.
+
+15.  See chap. XI.
+
+16.  On the other hand, it is noteworthy that WU TZU, which is
+not in 6 chapters, has 48 assigned to it in the HAN CHIH.
+Likewise, the CHUNG YUNG is credited with 49 chapters, though now
+only in one only.  In the case of very short works, one is
+tempted to think that P`IEN might simply mean "leaves."
+
+17.  Yeh Shih of the Sung dynasty [1151-1223].
+
+18.  He hardly deserves to be bracketed with assassins.
+
+19.  See Chapter 7, ss. 27 and Chapter 11, ss. 28.
+
+20.  See Chapter 11, ss. 28.  Chuan Chu is the abbreviated form
+of his name.
+
+21.  I.e. Po P`ei.  See ante.
+
+22.  The nucleus of this work is probably genuine, though large
+additions have been made by later hands.  Kuan chung died in 645
+B.C.
+
+23.  See infra, beginning of INTRODUCTION.
+
+24.  I do not know what this work, unless it be the last chapter
+of another work.  Why that chapter should be singled out,
+however, is not clear.
+
+25.  About 480 B.C.
+
+26.  That is, I suppose, the age of Wu Wang and Chou Kung.
+
+27.  In the 3rd century B.C.
+
+28.  Ssu-ma Jang-chu, whose family name was T`ien, lived in the
+latter half of the 6th century B.C., and is also believed to have
+written a work on war.  See SHIH CHI, ch. 64, and infra at the
+beginning of the INTRODUCTION.
+
+29.  See Legge's Classics, vol. V, Prolegomena p. 27.  Legge
+thinks that the TSO CHUAN must have been written in the 5th
+century, but not before 424 B.C.
+
+30.  See MENCIUS III. 1. iii. 13-20.
+
+31.  When Wu first appears in the CH`UN CH`IU in 584, it is
+already at variance with its powerful neighbor.  The CH`UN CH`IU
+first mentions Yueh in 537, the TSO CHUAN in 601.
+
+32.  This is explicitly stated in the TSO CHUAN, XXXII, 2.
+
+33.  There is this to be said for the later period, that the feud
+would tend to grow more bitter after each encounter, and thus
+more fully justify the language used in XI. ss. 30.
+
+34.  With Wu Yuan himself the case is just the reverse:  -- a
+spurious treatise on war has been fathered on him simply because
+he was a great general.  Here we have an obvious inducement to
+forgery.  Sun Wu, on the other hand, cannot have been widely
+known to fame in the 5th century.
+
+35.  From TSO CHUAN:  "From the date of King Chao's accession
+[515] there was no year in which Ch`u was not attacked by Wu."
+
+36.  Preface ad fin:  "My family comes from Lo-an, and we are
+really descended from Sun Tzu.  I am ashamed to say that I only
+read my ancestor's work from a literary point of view, without
+comprehending the military technique.  So long have we been
+enjoying the blessings of peace!"
+
+37.  Hoa-yin is about 14 miles from T`ung-kuan on the eastern
+border of Shensi.  The temple in question is still visited by
+those about the ascent of the Western Sacred Mountain.  It is
+mentioned in a text as being "situated five LI east of the
+district city of Hua-yin.  The temple contains the Hua-shan
+tablet inscribed by the T`ang Emperor Hsuan Tsung [713-755]."
+
+38.  See my "Catalogue of Chinese Books" (Luzac & Co., 1908), no.
+40.
+
+39.  This is a discussion of 29 difficult passages in Sun Tzu.
+
+40.  Cf.  Catalogue of the library of Fan family at Ningpo:  "His
+commentary is frequently obscure; it furnishes a clue, but does
+not fully develop the meaning."
+
+41.  WEN HSIEN T`UNG K`AO, ch. 221.
+
+42.  It is interesting to note that M. Pelliot has recently
+discovered chapters 1, 4 and 5 of this lost work in the "Grottos
+of the Thousand Buddhas."  See B.E.F.E.O., t. VIII, nos. 3-4, p.
+525.
+
+43.  The Hsia, the Shang and the Chou.  Although the last-named
+was nominally existent in Sun Tzu's day, it retained hardly a
+vestige of power, and the old military organization had
+practically gone by the board.  I can suggest no other
+explanation of the passage.
+
+44.  See CHOU LI, xxix. 6-10.
+
+45.  T`UNG K`AO, ch. 221.
+
+46.  This appears to be still extant.  See Wylie's "Notes," p. 91
+(new edition).
+
+47.  T`UNG K`AO, loc. cit.
+
+48.  A notable person in his day.  His biography is given in the
+SAN KUO CHIH, ch. 10.
+
+49.  See XI. ss. 58, note.
+
+50.  HOU HAN SHU, ch. 17 ad init.
+
+51.  SAN KUO CHIH, ch. 54.
+
+52.  SUNG SHIH, ch. 365 ad init.
+
+53.  The few Europeans who have yet had an opportunity of
+acquainting themselves with Sun Tzu are not behindhand in their
+praise.  In this connection, I may perhaps be excused for quoting
+from a letter from Lord Roberts, to whom the sheets of the
+present work were submitted previous to publication:  "Many of
+Sun Wu's maxims are perfectly applicable to the present day, and
+no. 11 [in Chapter VIII] is one that the people of this country
+would do well to take to heart."
+
+54.  Ch. 140.
+
+55.  See IV. ss. 3.
+
+56.  The allusion may be to Mencius VI. 2. ix. 2.
+
+57.  The TSO CHUAN.
+
+58.  SHIH CHI, ch. 25, fol. I.
+
+59.  Cf. SHIH CHI, ch 47.
+
+60.  See SHU CHING, preface ss. 55.
+
+61.  See SHIH CHI, ch. 47.
+
+62.  Lun Yu, XV. 1.
+
+63.  I failed to trace this utterance.
+
+64.  Supra.
+
+65.  Supra.
+
+66.  The other four being worship, mourning, entertainment of
+guests, and festive rites.  See SHU CHING, ii. 1. III. 8, and
+CHOU LI, IX. fol. 49.
+
+67.  See XIII. ss. 11, note.
+
+68.  This is a rather obscure allusion to the TSO CHUAN, where
+Tzu-ch`an says:  "If you have a piece of beautiful brocade, you
+will not employ a mere learner to make it up."
+
+69.  Cf.  TAO TE CHING, ch. 31.
+
+70.  Sun Hsing-yen might have quoted Confucius again.  See LUN
+YU, XIII. 29, 30.
+
+71.  Better known as Hsiang Yu [233-202 B.C.].
+
+72.  SHIH CHI, ch. 47.
+
+73.  SHIH CHI, ch. 38.
+
+74.  See XIII. ss. 27, note.  Further details on T`ai Kung will
+be found in the SHIH CHI, ch. 32 ad init.  Besides the tradition
+which makes him a former minister of Chou Hsin, two other
+accounts of him are there given, according to which he would
+appear to have been first raised from a humble private station by
+Wen Wang.
+
+-----------------------------------------------------------------
+
+I.  LAYING PLANS
+
+     [Ts`ao Kung, in defining the meaning of the Chinese for the
+title of this chapter, says it refers to the deliberations in the
+temple selected by the general for his temporary use, or as we
+should say, in his tent.  See. ss. 26.]
+
+     1.  Sun Tzu said:  The art of war is of vital importance to
+the State.
+     2.  It is a matter of life and death, a road either to
+safety or to ruin.  Hence it is a subject of inquiry which can on
+no account be neglected.
+     3.  The art of war, then, is governed by five constant
+factors,  to be taken into account in one's deliberations,  when
+seeking to determine the conditions obtaining in the field.
+     4.  These are:  (1) The Moral Law; (2) Heaven;  (3)  Earth;
+(4) The Commander; (5) Method and discipline.
+
+     [It appears from what follows that Sun Tzu means by  "Moral
+Law" a principle of harmony, not unlike the Tao of Lao Tzu in its
+moral aspect.  One might be tempted to render it by  "morale,"
+were it not considered as an attribute of the ruler in ss. 13.]
+
+     5,  6.  The MORAL LAW causes the people to be in complete
+accord with their ruler, so that they will follow him regardless
+of their lives, undismayed by any danger.
+
+     [Tu Yu quotes Wang Tzu as saying:   "Without constant
+practice,  the officers will be nervous and undecided when
+mustering for battle; without constant practice, the general will
+be wavering and irresolute when the crisis is at hand."]
+
+     7.  HEAVEN signifies night and day, cold and heat, times and
+seasons.
+
+     [The commentators, I think, make an unnecessary mystery of
+two words here.  Meng Shih refers to "the hard and the soft,
+waxing and waning" of Heaven.  Wang Hsi, however, may be right in
+saying that what is meant is "the general economy of Heaven,"
+including the five elements, the four seasons, wind and clouds,
+and other phenomena.]
+
+     8.  EARTH comprises distances, great and small; danger and
+security; open ground and narrow passes; the chances of life and
+death.
+     9.  The COMMANDER stands for the virtues of   wisdom,
+sincerity, benevolence, courage and strictness.
+
+     [The five cardinal virtues of the Chinese are (1)  humanity
+or benevolence; (2) uprightness of mind; (3) self-respect,  self-
+control,  or "proper feeling;" (4) wisdom; (5) sincerity or good
+faith.  Here "wisdom" and "sincerity" are put before "humanity or
+benevolence,"  and the two military virtues of  "courage"  and
+"strictness"  substituted for "uprightness of mind"  and  "self-
+respect, self-control, or 'proper feeling.'"]
+
+     10.  By METHOD AND DISCIPLINE are to be understood the
+marshaling   of the army in its proper   subdivisions,   the
+graduations of rank among the officers, the maintenance of roads
+by which supplies may reach the army, and the control of military
+expenditure.
+     11.  These five heads should be familiar to every general:
+he who knows them will be victorious; he who knows them not will
+fail.
+     12.  Therefore,  in your deliberations,  when seeking to
+determine the military conditions, let them be made the basis of
+a comparison, in this wise: --
+     13.  (1)   Which of the two sovereigns is imbued with the
+Moral law?
+
+     [I.e., "is in harmony with his subjects."  Cf. ss. 5.]
+
+     (2)  Which of the two generals has most ability?
+     (3)  With whom lie the advantages derived from Heaven and
+Earth?
+
+     [See ss. 7,8]
+
+     (4)  On which side is discipline most rigorously enforced?
+
+     [Tu Mu alludes to the remarkable story of Ts`ao Ts`ao  (A.D.
+155-220),  who was such a strict disciplinarian that once,  in
+accordance with his own severe regulations against injury to
+standing crops, he condemned himself to death for having allowed
+his horse to shy into a field of corn!  However,  in lieu of
+losing his head, he was persuaded to satisfy his sense of justice
+by cutting off his hair.  Ts`ao Ts`ao's own comment on the
+present passage is characteristically curt:  "when you lay down a
+law,  see that it is not disobeyed; if it is disobeyed the
+offender must be put to death."]
+
+     (5)  Which army is stronger?
+
+     [Morally as well as physically.  As Mei Yao-ch`en puts it,
+freely rendered, "ESPIRIT DE CORPS and 'big battalions.'"]
+
+     (6)  On which side are officers and men more highly trained?
+
+     [Tu Yu quotes Wang Tzu as saying:   "Without constant
+practice,  the officers will be nervous and undecided when
+mustering for battle; without constant practice, the general will
+be wavering and irresolute when the crisis is at hand."]
+
+     (7)   In which army is there the greater constancy both in
+reward and punishment?
+
+     [On which side is there the most absolute certainty that
+merit will be properly rewarded and misdeeds summarily punished?]
+
+     14.  By means of these seven considerations I can forecast
+victory or defeat.
+     15.  The general that hearkens to my counsel and acts upon
+it, will conquer:   --let such a one be retained in command!  The
+general that hearkens not to my counsel nor acts upon it,  will
+suffer defeat:  --let such a one be dismissed!
+
+     [The form of this paragraph reminds us that Sun Tzu's
+treatise was composed expressly for the benefit of his patron Ho
+Lu, king of the Wu State.]
+
+     16.  While heading the profit of my counsel, avail yourself
+also of any helpful circumstances over and beyond the ordinary
+rules.
+     17.  According as circumstances are favorable,  one should
+modify one's plans.
+
+     [Sun Tzu,  as a practical soldier, will have none of the
+"bookish theoric."  He cautions us here not to pin our faith to
+abstract principles; "for," as Chang Yu puts it, "while the main
+laws of strategy can be stated clearly enough for the benefit of
+all and sundry, you must be guided by the actions of the enemy in
+attempting to secure a favorable position in actual warfare."  On
+the eve of the battle of Waterloo, Lord Uxbridge, commanding the
+cavalry,  went to the Duke of Wellington in order to learn what
+his plans and calculations were for the morrow, because,  as he
+explained, he might suddenly find himself Commander-in-chief and
+would be unable to frame new plans in a critical moment.  The
+Duke listened quietly and then said:  "Who will attack the first
+tomorrow -- I or Bonaparte?"  "Bonaparte," replied Lord Uxbridge.
+"Well," continued the Duke, "Bonaparte has not given me any idea
+of his projects; and as my plans will depend upon his,  how can
+you expect me to tell you what mine are?" [1] ]
+
+     18.  All warfare is based on deception.
+
+     [The truth of this pithy and profound saying will be
+admitted by every soldier.  Col.  Henderson tells us   that
+Wellington,  great in so many military qualities, was especially
+distinguished by "the extraordinary skill with which he concealed
+his movements and deceived both friend and foe."]
+
+     19.  Hence, when able to attack, we must seem unable;  when
+using our forces, we must seem inactive; when we are near,  we
+must make the enemy believe we are far away; when far away,  we
+must make him believe we are near.
+     20.  Hold out baits to entice the enemy.  Feign disorder,
+and crush him.
+
+     [All commentators,  except Chang Yu, say, "When he is in
+disorder, crush him."  It is more natural to suppose that Sun Tzu
+is still illustrating the uses of deception in war.]
+
+     21.  If he is secure at all points, be prepared for him.  If
+he is in superior strength, evade him.
+     22.  If your opponent is of choleric temper,  seek to
+irritate him.  Pretend to be weak, that he may grow arrogant.
+
+     [Wang Tzu,  quoted by Tu Yu, says that the good tactician
+plays with his adversary as a cat plays with a mouse,  first
+feigning weakness and immobility, and then suddenly pouncing upon
+him.]
+
+     23.  If he is taking his ease, give him no rest.
+
+     [This is probably the meaning though Mei Yao-ch`en has the
+note:  "while we are taking our ease, wait for the enemy to tire
+himself out."  The YU LAN has "Lure him on and tire him out."]
+
+If his forces are united, separate them.
+
+     [Less plausible is the interpretation favored by most of the
+commentators:   "If sovereign and subject are in accord,  put
+division between them."]
+
+     24.  Attack him where he is unprepared, appear where you are
+not expected.
+     25.  These military devices, leading to victory, must not be
+divulged beforehand.
+     26.   Now the general who wins a battle makes   many
+calculations in his temple ere the battle is fought.
+
+     [Chang Yu tells us that in ancient times it was customary
+for a temple to be set apart for the use of a general who was
+about to take the field, in order that he might there elaborate
+his plan of campaign.]
+
+The general who loses a battle makes but few calculations
+beforehand.  Thus do many calculations lead to victory, and few
+calculations to defeat:  how much more no calculation at all!  It
+is by attention to this point that I can foresee who is likely to
+win or lose.
+
+
+[1]  "Words on Wellington," by Sir. W. Fraser.
+
+---------------

<TRUNCATED>

[19/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-67' into sprint-1

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-67' into sprint-1

Conflicts:
	config/ignite-log4j.xml
	config/java.util.logging.properties
	modules/core/src/test/config/log4j-test.xml
	modules/log4j/src/main/java/org/apache/ignite/logger/log4j/IgniteLog4jNodeIdFilePath.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/115f5979
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/115f5979
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/115f5979

Branch: refs/heads/ignite-132
Commit: 115f59799edf7038475002553891700d77c0ce03
Parents: f64485b ac05bb9
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Fri Jan 30 22:01:50 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Fri Jan 30 22:01:50 2015 +0300

----------------------------------------------------------------------
 bin/ggrouter.sh                                 |  10 +-
 bin/ggstart.bat                                 |  42 ++--
 bin/ggstart.sh                                  |  36 ++--
 bin/ggvisorcmd.bat                              |  36 ++--
 bin/ggvisorcmd.sh                               |  22 +--
 bin/include/functions.sh                        |  42 ++--
 bin/include/hadoop-classpath.bat                |   2 +-
 bin/include/hadoop-classpath.sh                 |   4 +-
 bin/include/parseargs.bat                       |   2 +-
 bin/include/parseargs.sh                        |   6 +-
 bin/include/service.sh                          |  12 +-
 bin/include/setenv.bat                          |  28 +--
 bin/include/setenv.sh                           |  34 ++--
 bin/include/target-classpath.bat                |   8 +-
 bin/include/target-classpath.sh                 |  14 +-
 bin/setup-hadoop.sh                             |  10 +-
 config/hadoop/default-config.xml                |   2 +-
 config/ignite-log4j.xml                         |   4 +-
 config/java.util.logging.properties             |   2 +-
 config/router/default-router.xml                |   2 +-
 docs/mapred-site.ignite.xml                     |   2 +-
 examples/config/example-cache.xml               |   2 +-
 examples/config/example-streamer.xml            |   8 +-
 examples/config/filesystem/example-ggfs.xml     |   2 +-
 examples/config/servlet/WEB-INF/web.xml         |   2 +-
 examples/rest/http-rest-example.php             |   2 +-
 examples/rest/memcache-rest-example.php         |   2 +-
 .../hibernate/HibernateL2CacheExample.java      |   2 +-
 .../streaming/StreamingCheckInExample.java      |   6 +-
 .../StreamingPopularNumbersExample.java         |   6 +-
 .../streaming/StreamingPriceBarsExample.java    |   6 +-
 .../StreamingRunningAverageExample.java         |   6 +-
 .../scalar/examples/ScalarPrimeExample.scala    |   2 +-
 .../GridMonteCarloExamplesSelfTest.java         |   4 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |   2 +-
 .../ScalarExamplesSelfTestSuite.scala           |   2 +-
 .../GridifySetToXXXNonSpringAopSelfTest.java    |  20 +-
 .../GridifySetToXXXSpringAopSelfTest.java       |  20 +-
 .../ignite/gridify/NonSpringAopSelfTest.java    |  20 +-
 .../optimized/OptimizedMarshallerAopTest.java   |   4 +-
 .../testsuites/IgniteAopSelfTestSuite.java      |   2 +-
 .../gridify/ExternalNonSpringAopSelfTest.java   |  20 +-
 modules/clients/src/test/bin/start-nodes-ssh.sh |   2 +-
 modules/clients/src/test/bin/start-nodes.cmd    |  24 +--
 modules/clients/src/test/bin/start-nodes.sh     |  26 +--
 .../client/ClientDefaultCacheSelfTest.java      |   4 +-
 .../client/ClientTopologyCacheSelfTest.java     |   2 +-
 .../integration/ClientAbstractSelfTest.java     |   4 +-
 .../client/router/ClientFailedInitSelfTest.java |   4 +-
 .../client/router/RouterFactorySelfTest.java    |   4 +-
 .../JettyRestProcessorAbstractSelfTest.java     |   4 +-
 .../rest/TaskCommandHandlerSelfTest.java        |   4 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |   6 +-
 .../src/test/resources/jetty/rest-jetty-ssl.xml |  10 +-
 .../src/test/resources/jetty/rest-jetty.xml     |   8 +-
 .../test/resources/jetty/router-jetty-ssl.xml   |   8 +-
 .../src/test/resources/jetty/router-jetty.xml   |   8 +-
 modules/clients/src/test/resources/log4j.xml    |   4 +-
 .../clients/src/test/resources/spring-cache.xml |   2 +-
 .../src/test/resources/spring-router-ssl.xml    |   4 +-
 .../src/test/resources/spring-router.xml        |   4 +-
 .../src/test/resources/spring-server-node.xml   |   2 +-
 .../test/resources/spring-server-ssl-node.xml   |   2 +-
 .../apache/ignite/IgniteBasicWarmupClosure.java |   6 +-
 .../java/org/apache/ignite/IgniteCluster.java   |   2 +-
 .../java/org/apache/ignite/IgniteLogger.java    |   4 +-
 .../apache/ignite/IgniteSystemProperties.java   | 190 +++++++++----------
 .../main/java/org/apache/ignite/Ignition.java   |   6 +-
 .../apache/ignite/cache/CacheConfiguration.java |   3 +-
 .../CacheConsistentHashAffinityFunction.java    |   2 +-
 .../apache/ignite/client/GridClientCompute.java |   8 +-
 .../ignite/client/router/GridRouterFactory.java |   4 +-
 .../impl/GridRouterCommandLineStartup.java      |   2 +-
 .../router/impl/GridTcpRouterNioParser.java     |   4 +-
 .../apache/ignite/compute/gridify/Gridify.java  |   2 +-
 .../ignite/compute/gridify/GridifySetToSet.java |   2 +-
 .../compute/gridify/GridifySetToValue.java      |   2 +-
 .../ClientConnectionConfiguration.java          |  16 +-
 .../configuration/IgniteConfiguration.java      |  72 +++----
 .../configuration/IgniteDeploymentMode.java     |   4 +-
 .../apache/ignite/fs/IgniteFsConfiguration.java |   2 +-
 .../ignite/internal/GridKernalContextImpl.java  |   2 +-
 .../apache/ignite/internal/GridLoggerProxy.java |   4 +-
 .../internal/GridPerformanceSuggestions.java    |   4 +-
 .../ignite/internal/IgniteInternalFuture.java   |   8 +-
 .../apache/ignite/internal/IgniteKernal.java    |  20 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |  46 ++---
 .../processors/cache/GridCacheAdapter.java      |   2 +-
 .../GridCachePartitionExchangeManager.java      |   2 +-
 .../processors/cache/GridCacheProcessor.java    |   4 +-
 .../processors/cache/GridCacheUtils.java        |   2 +-
 .../distributed/dht/GridDhtLocalPartition.java  |   2 +-
 .../dht/GridPartitionedGetFuture.java           |   2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   4 +-
 .../distributed/near/GridNearAtomicCache.java   |   2 +-
 .../distributed/near/GridNearGetFuture.java     |   2 +-
 .../cache/transactions/IgniteTxManager.java     |  10 +-
 .../processors/fs/IgniteFsProcessor.java        |   8 +-
 .../processors/job/GridJobProcessor.java        |   2 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |   4 +-
 .../handlers/log/GridLogCommandHandler.java     |   2 +-
 .../handlers/task/GridTaskCommandHandler.java   |   2 +-
 .../protocols/tcp/GridClientPacketType.java     |   4 +-
 .../protocols/tcp/GridMemcachedMessage.java     |   4 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |  18 +-
 .../streamer/GridStreamProcessor.java           |   6 +-
 .../internal/util/GridConcurrentFactory.java    |   3 +-
 .../internal/util/GridConfigurationFinder.java  |   4 +-
 .../internal/util/GridReflectionCache.java      |   3 +-
 .../ignite/internal/util/IgniteUtils.java       |  50 ++---
 .../util/future/GridFinishedFuture.java         |   2 +-
 .../internal/util/future/GridFutureAdapter.java |   4 +-
 .../internal/util/io/GridUnsafeDataInput.java   |   2 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |   2 +-
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   4 +-
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |   2 +-
 .../internal/util/nio/GridBufferedParser.java   |   2 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |  18 +-
 .../util/nodestart/GridNodeStartUtils.java      |  10 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |   2 +-
 .../util/portscanner/GridJmxPortFinder.java     |   4 +-
 .../apache/ignite/internal/util/typedef/X.java  |   4 +-
 .../visor/node/VisorBasicConfiguration.java     |  26 +--
 .../visor/node/VisorEmailConfiguration.java     |  14 +-
 .../visor/node/VisorLifecycleConfiguration.java |   2 +-
 .../visor/node/VisorRestConfiguration.java      |   4 +-
 .../apache/ignite/jdbc/IgniteJdbcDriver.java    |   2 +-
 .../apache/ignite/lifecycle/LifecycleBean.java  |   4 +-
 .../ignite/logger/java/IgniteJavaLogger.java    |   4 +-
 .../java/IgniteJavaLoggerFileHandler.java       |   2 +-
 .../optimized/IgniteOptimizedMarshaller.java    |   2 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |   4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |   2 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |   6 +-
 .../communication/tcp/TcpCommunicationSpi.java  |  12 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   2 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |   2 +-
 .../TcpDiscoveryMulticastIpFinder.java          |  18 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |   2 +-
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |   2 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |   4 +-
 .../ignite/startup/BasicWarmupClosure.java      |   6 +-
 .../startup/cmdline/CommandLineStartup.java     |  12 +-
 .../startup/cmdline/CommandLineTransformer.java |   2 +-
 .../spring-cache-client-benchmark-1.xml         |   2 +-
 .../spring-cache-client-benchmark-2.xml         |   2 +-
 .../spring-cache-client-benchmark-3.xml         |   2 +-
 modules/core/src/test/config/example-cache.xml  |   2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |   2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |   2 +-
 modules/core/src/test/config/log4j-test.xml     |   2 +-
 .../core/src/test/config/spring-cache-load.xml  |   2 +-
 .../core/src/test/config/spring-multicache.xml  |   2 +-
 .../average/spring-streamer-average-base.xml    |   2 +-
 .../average/spring-streamer-average-local.xml   |   2 +-
 .../average/spring-streamer-average-random.xml  |   2 +-
 .../config/streamer/spring-streamer-base.xml    |   2 +-
 modules/core/src/test/config/tests.properties   |  10 +-
 .../internal/GridFactoryVmShutdownTest.java     |   2 +-
 .../ignite/internal/GridHomePathSelfTest.java   |   2 +-
 .../GridNodeVisorAttributesSelfTest.java        |   4 +-
 .../ignite/internal/GridStartStopSelfTest.java  |   2 +-
 .../ignite/internal/GridVersionSelfTest.java    |   8 +-
 .../GridCacheAbstractRemoveFailureTest.java     |   6 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |   6 +-
 .../cache/GridCacheSlowTxWarnTest.java          |   2 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |   6 +-
 .../GridCacheNodeFailureAbstractTest.java       |   2 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |   6 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |   2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |   6 +-
 ...GridUnsafeDataOutputArraySizingSelfTest.java |   2 +-
 .../loadtest/GridSingleExecutionTest.java       |   4 +-
 .../cache/GridCacheAbstractLoadTest.java        |   2 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |   2 +-
 .../loadtests/cache/GridCacheLoadTest.java      |   2 +-
 .../capacity/spring-capacity-cache.xml          |   2 +-
 .../loadtests/colocation/spring-colocation.xml  |   2 +-
 .../GridContinuousOperationsLoadTest.java       |  18 +-
 .../streamer/GridStreamerIndexLoadTest.java     |   2 +-
 .../ignite/loadtests/util/GridLoadTestArgs.java |   8 +-
 .../startup/GridRandomCommandLineLoader.java    |   8 +-
 .../ignite/startup/GridVmNodesStarter.java      |   8 +-
 .../GridCommandLineTransformerSelfTest.java     |   6 +-
 .../ignite/testframework/GridTestUtils.java     |  10 +-
 .../config/GridTestProperties.java              |  16 +-
 .../testframework/junits/GridAbstractTest.java  |   2 +-
 .../logger/GridLog4jRollingFileAppender.java    |   2 +-
 .../junits/logger/GridTestLog4jLogger.java      |   6 +-
 .../core/src/test/webapp/META-INF/gg-config.xml |   2 +-
 .../fs/hadoop/v1/GridGgfsHadoopFileSystem.java  |   6 +-
 .../fs/hadoop/v2/GridGgfsHadoopFileSystem.java  |   6 +-
 .../apache/ignite/hadoop/GridHadoopSetup.java   |  16 +-
 .../GridHadoopExternalTaskExecutor.java         |   2 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |   6 +-
 .../processors/query/h2/IgniteH2Indexing.java   |   2 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |   6 +-
 .../logger/log4j/IgniteLog4jNodeIdFilePath.java |   6 +-
 .../http/jetty/GridJettyRestProtocol.java       |  16 +-
 .../processors/schedule/ScheduleFutureImpl.java |   4 +-
 .../java/org/apache/ignite/IgniteSpring.java    |   2 +-
 .../ignite/cache/spring/SpringCacheManager.java |   2 +-
 .../spring/IgniteSpringProcessorImpl.java       |  10 +-
 .../ignite/internal/GridFactorySelfTest.java    |   2 +-
 .../util/nodestart/GridNodeCallableImpl.java    |  10 +-
 .../internal/GridNodeStartUtilsSelfTest.java    |   6 +-
 .../GridProjectionStartStopRestartSelfTest.java |   4 +-
 .../optimized/OptimizedClassNamesGenerator.java |  12 +-
 .../spi/deployment/uri/UriDeploymentSpi.java    |   8 +-
 .../file/GridFileDeploymentSelfTest.java        |   4 +-
 .../scala/org/apache/ignite/visor/Packet.scala  |   2 +-
 .../ignite/visor/commands/deploy/Packet.scala   |   4 +-
 .../commands/deploy/VisorDeployCommand.scala    |  18 +-
 .../ignite/visor/commands/start/Packet.scala    |   2 +-
 .../commands/start/VisorStartCommand.scala      |   4 +-
 .../scala/org/apache/ignite/visor/visor.scala   |  14 +-
 .../testsuites/VisorConsoleSelfTestSuite.scala  |   2 +-
 .../cache/websession/GridWebSessionFilter.java  |  22 +--
 .../IgniteServletContextListenerStartup.java    |  18 +-
 .../startup/servlet/IgniteServletStartup.java   |   6 +-
 .../internal/websession/WebSessionSelfTest.java |   8 +-
 .../websession/WebSessionServerStart.java       |   2 +-
 pom.xml                                         |  10 +-
 223 files changed, 883 insertions(+), 896 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/config/ignite-log4j.xml
----------------------------------------------------------------------
diff --cc config/ignite-log4j.xml
index d8fefb7,0000000..3f171bf
mode 100644,000000..100644
--- a/config/ignite-log4j.xml
+++ b/config/ignite-log4j.xml
@@@ -1,152 -1,0 +1,152 @@@
 +<?xml version="1.0" encoding="UTF-8"?>
 +
 +<!--
 +  Licensed to the Apache Software Foundation (ASF) under one or more
 +  contributor license agreements.  See the NOTICE file distributed with
 +  this work for additional information regarding copyright ownership.
 +  The ASF licenses this file to You under the Apache License, Version 2.0
 +  (the "License"); you may not use this file except in compliance with
 +  the License.  You may obtain a copy of the License at
 +
 +       http://www.apache.org/licenses/LICENSE-2.0
 +
 +  Unless required by applicable law or agreed to in writing, software
 +  distributed under the License is distributed on an "AS IS" BASIS,
 +  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 +  See the License for the specific language governing permissions and
 +  limitations under the License.
 +  -->
 +
 +<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN"
 +    "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
 +
 +<!--
 +    Default log4j configuration for GridGain.
 +-->
 +<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
 +    <!--
 +        Logs System.out messages to console.
 +
 +        Note, this appender is disabled by default.
 +        To enable, uncomment the section below and also CONSOLE appender in the <root> element.
 +    -->
 +    <!--
 +    <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
 +        <param name="Target" value="System.out"/>
 +
 +        <param name="Threshold" value="DEBUG"/>
 +
 +        <layout class="org.apache.log4j.PatternLayout">
 +            <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
 +        </layout>
 +
 +        <filter class="org.apache.log4j.varia.LevelRangeFilter">
 +            <param name="levelMin" value="DEBUG"/>
 +            <param name="levelMax" value="WARN"/>
 +        </filter>
 +    </appender>
 +    -->
 +
 +    <!--
 +        Logs all ERROR messages to console.
 +    -->
 +    <appender name="CONSOLE_ERR" class="org.apache.log4j.ConsoleAppender">
 +        <!-- Log to STDERR. -->
 +        <param name="Target" value="System.err"/>
 +
 +        <!-- Log from ERROR and higher (change to WARN if needed). -->
 +        <param name="Threshold" value="ERROR"/>
 +
 +        <!-- The default pattern: Date Priority [Category] Message\n -->
 +        <layout class="org.apache.log4j.PatternLayout">
 +            <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
 +        </layout>
 +    </appender>
 +
 +    <!--
 +        Logs all output to specified file.
-         By default, the logging goes to GRIDGAIN_HOME/work/log folder
++        By default, the logging goes to IGNITE_HOME/work/log folder
 +    -->
 +    <appender name="FILE" class="org.gridgain.grid.logger.log4j.GridLog4jRollingFileAppender">
 +        <param name="Threshold" value="DEBUG"/>
-         <param name="File" value="${GRIDGAIN_HOME}/work/log/ignite.log"/>
++        <param name="File" value="${IGNITE_HOME}/work/log/ignite.log"/>
 +        <param name="Append" value="true"/>
 +        <param name="MaxFileSize" value="10MB"/>
 +        <param name="MaxBackupIndex" value="10"/>
 +        <layout class="org.apache.log4j.PatternLayout">
 +            <param name="ConversionPattern" value="[%d{ABSOLUTE}][%-5p][%t][%c{1}] %m%n"/>
 +        </layout>
 +    </appender>
 +
 +    <!--
 +    <category name="org.gridgain">
 +        <level value="DEBUG"/>
 +    </category>
 +    -->
 +
 +    <!--
 +        Uncomment this category to enable cache
 +        query execution tracing.
 +    -->
 +    <!--
 +    <category name="org.gridgain.cache.queries">
 +        <level value="DEBUG"/>
 +    </category>
 +    -->
 +
 +    <!--
 +        Uncomment to enable DGC tracing.
 +    -->
 +    <!--
 +    <category name="org.gridgain.grid.kernal.processors.cache.GridCacheDgcManager.trace">
 +        <level value="DEBUG"/>
 +    </category>
 +    -->
 +
 +    <!--
 +        Uncomment to disable courtesy notices, such as SPI configuration
 +        consistency warnings.
 +    -->
 +    <!--
 +    <category name="org.gridgain.grid.CourtesyConfigNotice">
 +        <level value="OFF"/>
 +    </category>
 +    -->
 +
 +    <category name="org.springframework">
 +        <level value="WARN"/>
 +    </category>
 +
 +    <category name="org.eclipse.jetty">
 +        <level value="WARN"/>
 +    </category>
 +
 +    <!--
 +        Avoid warnings about failed bind attempt when multiple nodes running on the same host.
 +    -->
 +    <category name="org.eclipse.jetty.util.log">
 +        <level value="ERROR"/>
 +    </category>
 +
 +    <category name="org.eclipse.jetty.util.component">
 +        <level value="ERROR"/>
 +    </category>
 +
 +    <category name="com.amazonaws">
 +        <level value="WARN"/>
 +    </category>
 +
 +    <!-- Default settings. -->
 +    <root>
 +        <!-- Print out all info by default. -->
 +        <level value="INFO"/>
 +
 +        <!-- Uncomment to enable logging to console. -->
 +        <!--
 +        <appender-ref ref="CONSOLE"/>
 +        -->
 +
 +        <appender-ref ref="CONSOLE_ERR"/>
 +        <appender-ref ref="FILE"/>
 +    </root>
 +</log4j:configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/config/java.util.logging.properties
----------------------------------------------------------------------
diff --cc config/java.util.logging.properties
index 19dddb4,3e11d63..f30e028
--- a/config/java.util.logging.properties
+++ b/config/java.util.logging.properties
@@@ -64,11 -64,11 +64,11 @@@ java.util.logging.ConsoleHandler.format
  java.util.logging.ConsoleHandler.level=INFO
  
  #
 -# File handler logs all messages into files with pattern `gridgain-%{id8}.%g.log`
 +# File handler logs all messages into files with pattern `ignite-%{id8}.%g.log`
- # under `$GRIDGAIN_HOME/work/log/` directory. The placeholder `%{id8}` is a truncated node ID.
+ # under `$IGNITE_HOME/work/log/` directory. The placeholder `%{id8}` is a truncated node ID.
  #
 -org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.formatter=org.apache.ignite.logger.java.IgniteJavaLoggerFormatter
 -org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.pattern=gridgain-%{id8}.%g.log
 -org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.level=INFO
 -org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.limit=10485760
 -org.gridgain.grid.logger.java.GridJavaLoggerFileHandler.count=10
 +org.apache.ignite.logger.java.IgniteJavaLoggerFileHandler.formatter=org.apache.ignite.logger.java.IgniteJavaLoggerFormatter
 +org.apache.ignite.logger.java.IgniteJavaLoggerFileHandler.pattern=ignite-%{id8}.%g.log
 +org.apache.ignite.logger.java.IgniteJavaLoggerFileHandler.level=INFO
 +org.apache.ignite.logger.java.IgniteJavaLoggerFileHandler.limit=10485760
 +org.apache.ignite.logger.java.IgniteJavaLoggerFileHandler.count=10

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/examples/config/servlet/WEB-INF/web.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/clients/src/test/java/org/apache/ignite/client/integration/ClientAbstractSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/IgniteLogger.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/Ignition.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/client/router/impl/GridRouterCommandLineStartup.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/compute/gridify/GridifySetToSet.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/compute/gridify/GridifySetToValue.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/internal/processors/rest/handlers/log/GridLogCommandHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/logger/java/IgniteJavaLoggerFileHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/main/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySpi.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/test/config/log4j-test.xml
----------------------------------------------------------------------
diff --cc modules/core/src/test/config/log4j-test.xml
index 0f29c37,a1332f3..984e973
--- a/modules/core/src/test/config/log4j-test.xml
+++ b/modules/core/src/test/config/log4j-test.xml
@@@ -66,7 -66,7 +66,7 @@@
      -->
      <appender name="FILE" class="org.apache.log4j.RollingFileAppender">
          <param name="Threshold" value="DEBUG"/>
-         <param name="File" value="${GRIDGAIN_HOME}/work/log/ignite.log"/>
 -        <param name="File" value="${IGNITE_HOME}/work/log/gridgain.log"/>
++        <param name="File" value="${IGNITE_HOME}/work/log/ignite.log"/>
          <param name="Append" value="true"/>
          <param name="MaxFileSize" value="10MB"/>
          <param name="MaxBackupIndex" value="10"/>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
index d959f55,aa5808e..f8629d6
--- a/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
+++ b/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
@@@ -47,10 -47,10 +47,10 @@@ import static org.apache.ignite.IgniteS
   */
  public final class GridRandomCommandLineLoader {
      /** Name of the system property defining name of command line program. */
-     private static final String GRIDGAIN_PROG_NAME = "GRIDGAIN_PROG_NAME";
+     private static final String IGNITE_PROG_NAME = "IGNITE_PROG_NAME";
  
      /** Copyright text. Ant processed. */
 -    private static final String COPYRIGHT = "Copyright (C) 2014 GridGain Systems.";
 +    private static final String COPYRIGHT = "2015 Copyright(C) Apache Software Foundation.";
  
      /** Version. Ant processed. */
      private static final String VER = "x.x.x";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridLog4jRollingFileAppender.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/core/src/test/java/org/apache/ignite/testframework/junits/logger/GridTestLog4jLogger.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/IgniteLog4jLogger.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/IgniteLog4jNodeIdFilePath.java
----------------------------------------------------------------------
diff --cc modules/log4j/src/main/java/org/apache/ignite/logger/log4j/IgniteLog4jNodeIdFilePath.java
index 63945a0,a12bf5e..4423ace
--- a/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/IgniteLog4jNodeIdFilePath.java
+++ b/modules/log4j/src/main/java/org/apache/ignite/logger/log4j/IgniteLog4jNodeIdFilePath.java
@@@ -46,10 -46,10 +46,10 @@@ class IgniteLog4jNodeIdFilePath impleme
  
      /** {@inheritDoc} */
      @Override public String apply(String oldPath) {
-         if (!F.isEmpty(U.GRIDGAIN_LOG_DIR))
-             return U.nodeIdLogFileName(nodeId, new File(U.GRIDGAIN_LOG_DIR, "ignite.log").getAbsolutePath());
+         if (!F.isEmpty(U.IGNITE_LOG_DIR))
 -            return U.nodeIdLogFileName(nodeId, new File(U.IGNITE_LOG_DIR, "gridgain.log").getAbsolutePath());
++            return U.nodeIdLogFileName(nodeId, new File(U.IGNITE_LOG_DIR, "ignite.log").getAbsolutePath());
  
-         if (oldPath != null) // fileName could be null if GRIDGAIN_HOME is not defined.
+         if (oldPath != null) // fileName could be null if IGNITE_HOME is not defined.
              return U.nodeIdLogFileName(nodeId, oldPath);
  
          String tmpDir = IgniteSystemProperties.getString("java.io.tmpdir");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCacheManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/GridNodeCallableImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/tools/src/main/java/org/apache/ignite/tools/marshaller/optimized/OptimizedClassNamesGenerator.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.java
----------------------------------------------------------------------
diff --cc modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.java
index e25752b,0000000..7c72243
mode 100644,000000..100644
--- a/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.java
+++ b/modules/urideploy/src/main/java/org/apache/ignite/spi/deployment/uri/UriDeploymentSpi.java
@@@ -1,1367 -1,0 +1,1367 @@@
 +/*
 + * 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.deployment.uri;
 +
 +import org.apache.ignite.*;
 +import org.apache.ignite.compute.*;
 +import org.apache.ignite.lang.*;
 +import org.apache.ignite.resources.*;
 +import org.apache.ignite.spi.*;
 +import org.apache.ignite.spi.deployment.*;
 +import org.apache.ignite.spi.deployment.uri.scanners.*;
 +import org.apache.ignite.spi.deployment.uri.scanners.file.*;
 +import org.apache.ignite.spi.deployment.uri.scanners.ftp.*;
 +import org.apache.ignite.spi.deployment.uri.scanners.http.*;
 +import org.apache.ignite.internal.util.typedef.*;
 +import org.apache.ignite.internal.util.typedef.internal.*;
 +import org.jetbrains.annotations.*;
 +
 +import java.io.*;
 +import java.net.*;
 +import java.util.*;
 +import java.util.Map.*;
 +
 +/**
 + * Implementation of {@link org.apache.ignite.spi.deployment.DeploymentSpi} which can deploy tasks from
 + * different sources like file system folders, FTP, email and HTTP.
 + * There are different ways to deploy tasks in grid and every deploy method
 + * depends on selected source protocol. This SPI is configured to work
 + * with a list of URI's. Every URI contains all data about protocol/transport
 + * plus configuration parameters like credentials, scan frequency, and others.
 + * <p>
 + * When SPI establishes a connection with an URI, it downloads deployable units
 + * to the temporary directory in order to prevent it from any changes while
 + * scanning. Use method {@link #setTemporaryDirectoryPath(String) setTemporaryDirectoryPath(String)})
 + * to set custom temporary folder for downloaded deployment units. SPI will
 + * create folder under the path with name identical to local node ID.
 + * <p>
 + * SPI tracks all changes of every given URI. This means that if any file is
 + * changed or deleted, SPI will re-deploy or delete corresponding tasks.
 + * Note that the very first apply to {@link #findResource(String)} findClassLoader(String)}
 + * is blocked until SPI finishes scanning all URI's at least once.
 + * <p>
 + * There are several deployable unit types supported:
 + * <ul>
 + * <li>GAR file.</li>
 + * <li>Local disk folder with structure of unpacked GAR file.</li>
 + * <li>Local disk folder containing only compiled Java classes.</li>
 + * </ul>
 + * <h1 class="header">GAR file</h1>
 + * GAR file is a deployable unit. GAR file is based on <a href="http://www.gzip.org/zlib/">ZLIB</a>
 + * compression format like simple JAR file and its structure is similar to WAR archive.
 + * GAR file has {@code '.gar'} extension.
 + * <p>
 + * GAR file structure (file or directory ending with {@code '.gar'}):
 + *   <pre class="snippet">
 + *      META-INF/
 + *              |
 + *               - gridgain.xml
 + *               - ...
 + *      lib/
 + *         |
 + *          -some-lib.jar
 + *          - ...
 + *      xyz.class
 + *      ...</pre>
 + * <ul>
 + * <li>
 + * {@code META-INF/} entry may contain {@code gridgain.xml} file which is a
 + * task descriptor file. The purpose of task descriptor XML file is to specify
 + * all tasks to be deployed. This file is a regular
 + * <a href="http://www.springframework.org/documentation">Spring</a> XML
 + * definition file.  {@code META-INF/} entry may also contain any other file
 + * specified by JAR format.
 + * </li>
 + * <li>
 + * {@code lib/} entry contains all library dependencies.
 + * </li>
 + * <li>Compiled Java classes must be placed in the root of a GAR file.</li>
 + * </ul>
 + * GAR file may be deployed without descriptor file. If there is no descriptor file, SPI
 + * will scan all classes in archive and instantiate those that implement
 + * {@link org.apache.ignite.compute.ComputeTask} interface. In that case, all grid task classes must have a
 + * public no-argument constructor. Use {@link org.apache.ignite.compute.ComputeTaskAdapter} adapter for
 + * convenience when creating grid tasks.
 + * <p>
 + * By default, all downloaded GAR files that have digital signature in {@code META-INF}
 + * folder will be verified and deployed only if signature is valid.
 + * <p>
 + * <h1 class="header">URI</h1>
 + * This SPI uses a hierarchical URI definition. For more information about standard URI
 + * syntax refer to {@link URI java.net.URI} documentation.
 + * <blockquote class="snippet">
 + * [<i>scheme</i><tt><b>:</b></tt>][<tt><b>//</b></tt><i>authority</i>][<i>path</i>][<tt><b>?</b></tt><i>query</i>][<tt><b>#</b></tt><i>fragment</i>]
 + * </blockquote>
 + * <p>
 + * Every URI defines its own deployment repository which will be scanned for any changes.
 + * URI itself has all information about protocol, connectivity, scan intervals and other
 + * parameters.
 + * <p>
 + * URI's may contain special characters, like spaces. If {@code encodeUri}
 + * flag is set to {@code true} (see {@link #setEncodeUri(boolean)}), then
 + * URI 'path' field will be automatically encoded. By default this flag is
 + * set to {@code true}.
 + * <p>
 + * <h1 class="header">Configuration</h1>
 + * {@code UriDeploymentSpi} has the following optional configuration
 + * parameters (there are no mandatory parameters):
 + * <ul>
 + * <li>
 + * Temporary directory path where scanned GAR files and directories are
 + * copied to (see {@link #setTemporaryDirectoryPath(String) setTemporaryDirectoryPath(String)}).
 + * </li>
 + * <li>
 + * List of URIs to scan (see {@link #setUriList(List)}). If not
 + * specified, then URI specified by {@link #DFLT_DEPLOY_DIR DFLT_DEPLOY_DIR} is used.
 + * </li>
 + * <li>
 + * Flag to control encoding of the {@code 'path'} portion of URI
 + * (see {@link #setEncodeUri(boolean) setEncodeUri(boolean)}).
 + * </li>
 + * </ul>
 + * <h1 class="header">Protocols</h1>
 + * Following protocols are supported in SPI:
 + * <ul>
 + * <li><a href="#file">file://</a> - File protocol</li>
 + * <li><a href="#classes">classes://</a> - Custom File protocol.</li>
 + * <li><a href="#ftp">ftp://</a> - File transfer protocol</li>
 + * <li><a href="#http">http://</a> - HTTP protocol</li>
 + * <li><a href="#http">https://</a> - Secure HTTP protocol</li>
 + * </ul>
 + * In addition to SPI configuration parameters, all necessary configuration
 + * parameters for selected URI should be defined in URI. Different protocols
 + * have different configuration parameters described below. Parameters are
 + * separated by '{@code ;}' character.
 + * <p>
 + * <a name="file"></a>
 + * <h1 class="header">File</h1>
 + * For this protocol SPI will scan folder specified by URI on file system and
 + * download any GAR files or directories that end with .gar from source
 + * directory defined in URI. For file system URI must have scheme equal to {@code file}.
 + * <p>
 + * Following parameters are supported for FILE protocol:
 + * <table class="doctable">
 + *  <tr>
 + *      <th>Parameter</th>
 + *      <th>Description</th>
 + *      <th>Optional</th>
 + *      <th>Default</th>
 + *  </tr>
 + *  <tr>
 + *      <td>freq</td>
 + *      <td>File directory scan frequency in milliseconds.</td>
 + *      <td>Yes</td>
 + *      <td>{@code 5000} ms specified in {@link #DFLT_DISK_SCAN_FREQUENCY DFLT_DISK_SCAN_FREQUENCY}.</td>
 + *  </tr>
 + * </table>
 + * <h2 class="header">File URI Example</h2>
 + * The following example will scan {@code 'c:/Program files/gridgain/deployment'}
 + * folder on local box every {@code '5000'} milliseconds. Note that since path
 + * has spaces, {@link #setEncodeUri(boolean) setEncodeUri(boolean)} parameter must
 + * be set to {@code true} (which is default behavior).
 + * <blockquote class="snippet">
 + * {@code file://freq=5000@localhost/c:/Program files/gridgain/deployment}
 + * </blockquote>
 + * <a name="classes"></a>
 + * <h1 class="header">Classes</h1>
 + * For this protocol SPI will scan folder specified by URI on file system
 + * looking for compiled classes that implement {@link org.apache.ignite.compute.ComputeTask} interface.
 + * This protocol comes very handy during development, as it allows developer
 + * to specify IDE compilation output folder as URI and all task classes
 + * in that folder will be deployed automatically.
 + * <p>
 + * Following parameters are supported for CLASSES protocol:
 + * <table class="doctable">
 + *  <tr>
 + *      <th>Parameter</th>
 + *      <th>Description</th>
 + *      <th>Optional</th>
 + *      <th>Default</th>
 + *  </tr>
 + *  <tr>
 + *      <td>freq</td>
 + *      <td>File directory scan frequency in milliseconds.</td>
 + *      <td>Yes</td>
 + *      <td>{@code 5000} ms specified in {@link #DFLT_DISK_SCAN_FREQUENCY DFLT_DISK_SCAN_FREQUENCY}.</td>
 + *  </tr>
 + * </table>
 + * <h2 class="header">Classes URI Example</h2>
 + * The following example will scan {@code 'c:/Program files/gridgain/deployment'}
 + * folder on local box every {@code '5000'} milliseconds. Note that since path
 + * has spaces, {@link #setEncodeUri(boolean) setEncodeUri(boolean)} parameter must
 + * be set to {@code true} (which is default behavior).
 + * <blockquote class="snippet">
 + * {@code classes://freq=5000@localhost/c:/Program files/gridgain/deployment}
 + * </blockquote>
 + * <a name="ftp"></a>
 + * <h1 class="header">FTP</h1>
 + * For FTP protocol SPI will scan and download only GAR files from source
 + * directory defined in URI. SPI doesn't scan FTP folders recursively.
 + * The following parameters are supported for FTP protocol:
 + * <table class="doctable">
 + *  <tr>
 + *      <th>Parameter</th>
 + *      <th>Description</th>
 + *      <th>Optional</th>
 + *      <th>Default</th>
 + *  </tr>
 + *  <tr>
 + *      <td>freq</td>
 + *      <td>FTP location scan frequency in milliseconds.</td>
 + *      <td>Yes</td>
 + *      <td>{@code 300000} ms specified in {@link #DFLT_FTP_SCAN_FREQUENCY DFLT_FTP_SCAN_FREQUENCY}.</td>
 + *  </tr>
 + *  <tr>
 + *      <td>username:password</td>
 + *      <td>
 + *          FTP username and password specified in standard URI server-based
 + *          authority format.
 + *      </td>
 + *      <td>No</td>
 + *      <td>---</td>
 + *  </tr>
 + * </table>
 + * <h2 class="header">FTP URI Example</h2>
 + * Here is an example of an FTP URI that connects identified as
 + * {@code username:password} to {@code 'localhost'} on port {@code '21'},
 + * with initial path set to {@code 'gridgain/deployment'}
 + * <blockquote class="snippet">
 + * ftp://username:password;freq=10000@localhost:21/gridgain/deployment
 + * </blockquote>
 + * <p>
 + * <h2 class="header">HTTP URI Example</h2>
 + * The following example will scan {@code 'gridgain/deployment'} folder with
 + * on site {@code 'www.mysite.com'} using authentication
 + * {@code 'username:password'} every {@code '10000'} milliseconds.
 + * <blockquote class="snippet">
 + * {@code http://username:password;freq=10000@www.mysite.com:110/gridgain/deployment}
 + * </blockquote>
 + * <h2 class="header">Java Example</h2>
 + * UriDeploymentSpi needs to be explicitly configured to override default local deployment SPI.
 + * <pre name="code" class="java">
 + * UriDeploymentSpi deploySpi = new UriDeploymentSpi();
 + *
 + * GridConfiguration cfg = new GridConfiguration();
 + *
 + * List&lt;String&gt; uris = new ArrayList&lt;String&gt;(5);
 + *
 + * uris.add("http://www.site.com/tasks");
 + * uris.add("ftp://ftpuser:password;freq=10000@localhost:21/gg-test/deployment");
 + * uris.add("file://freq=20000@localhost/c:/Program files/gg-deployment");
 + * uris.add("classes:///c:/Java_Projects/myproject/out");
 + *
 + * // Set URIs.
 + * deploySpi.setUriList(uris);
 + *
 + * // Override temporary directory path.
 + * deploySpi.setTemporaryDirectoryPath("c:/tmp/grid");
 + *
 + * //  Override default deployment SPI.
 + * cfg.setDeploymentSpi(deploySpi);
 + *
 + * //  Start grid.
 + * G.start(cfg);
 + * </pre>
 + * <p>
 + * <h2 class="header">Spring Example</h2>
 + * UriDeploymentSpi can be configured from Spring XML configuration file:
 + * <pre name="code" class="xml">
 + * &lt;bean id="grid.custom.cfg" class="org.gridgain.grid.GridConfiguration" singleton="true"&gt;
 + *         ...
 + *         &lt;property name="deploymentSpi"&gt;
 + *             &lt;bean class="org.gridgain.grid.spi.deployment.uri.UriDeploymentSpi"&gt;
 + *                 &lt;property name="temporaryDirectoryPath" value="c:/tmp/grid"/&gt;
 + *                 &lt;property name="uriList"&gt;
 + *                     &lt;list&gt;
 + *                         &lt;value&gt;http://www.site.com/tasks&lt;/value&gt;
 + *                         &lt;value&gt;ftp://ftpuser:password;freq=10000@localhost:21/gg-test/deployment&lt;/value&gt;
 + *                         &lt;value&gt;file://freq=20000@localhost/c:/Program files/gg-deployment&lt;/value&gt;
 + *                         &lt;value&gt;classes:///c:/Java_Projects/myproject/out&lt;/value&gt;
 + *                     &lt;/list&gt;
 + *                 &lt;/property&gt;
 + *             &lt;/bean&gt;
 + *         &lt;/property&gt;
 + *         ...
 + * &lt;/bean&gt;
 + * </pre>
 + * <p>
 + * <img src="http://www.gridgain.com/images/spring-small.png">
 + * <br>
 + * For information about Spring framework visit <a href="http://www.springframework.org/">www.springframework.org</a>
 + * @see org.apache.ignite.spi.deployment.DeploymentSpi
 + */
 +@IgniteSpiMultipleInstancesSupport(true)
 +@IgniteSpiConsistencyChecked(optional = false)
 +@SuppressWarnings({"FieldAccessedSynchronizedAndUnsynchronized"})
 +public class UriDeploymentSpi extends IgniteSpiAdapter implements DeploymentSpi, UriDeploymentSpiMBean {
 +    /**
 +     * Default deployment directory where SPI will pick up GAR files. Note that this path is relative to
-      * {@code GRIDGAIN_HOME/work} folder if {@code GRIDGAIN_HOME} system or environment variable specified,
++     * {@code IGNITE_HOME/work} folder if {@code IGNITE_HOME} system or environment variable specified,
 +     * otherwise it is relative to {@code work} folder under system {@code java.io.tmpdir} folder.
 +     *
 +     * @see org.apache.ignite.configuration.IgniteConfiguration#getWorkDirectory()
 +     */
 +    public static final String DFLT_DEPLOY_DIR = "deployment/file";
 +
 +    /** Default scan frequency for {@code file://} and {@code classes://} protocols (value is {@code 5000}). */
 +    public static final int DFLT_DISK_SCAN_FREQUENCY = 5000;
 +
 +    /** Default scan frequency for {@code ftp://} protocol (value is {@code 300000}). */
 +    public static final int DFLT_FTP_SCAN_FREQUENCY = 300000;
 +
 +    /** Default scan frequency for {@code http://} protocol (value is {@code 300000}). */
 +    public static final int DFLT_HTTP_SCAN_FREQUENCY = 300000;
 +
 +    /** Default task description file path and name (value is {@code META-INF/gridgain.xml}). */
 +    public static final String XML_DESCRIPTOR_PATH = "META-INF/gridgain.xml";
 +
 +    /**
 +     * Default temporary directory name relative to file path
 +     * {@link #setTemporaryDirectoryPath(String)}} (value is {@code gg.uri.deployment.tmp}).
 +     */
 +    public static final String DEPLOY_TMP_ROOT_NAME = "gg.uri.deployment.tmp";
 +
 +    /** Temporary directory name. */
 +    private String tmpDirPath;
 +
 +    /** Sub-folder of 'tmpDirPath'. */
 +    private String deployTmpDirPath;
 +
 +    /** List of URIs to be scanned. */
 +    private List<String> uriList = new ArrayList<>();
 +
 +    /** List of encoded URIs. */
 +    private Collection<URI> uriEncodedList = new ArrayList<>();
 +
 +    /** Indicates whether md5 digest should be checked by this SPI before file deployment. */
 +    private boolean checkMd5;
 +
 +    /** */
 +    @SuppressWarnings({"CollectionDeclaredAsConcreteClass"})
 +    private final LinkedList<GridUriDeploymentUnitDescriptor> unitLoaders =
 +        new LinkedList<>();
 +
 +    /** */
 +    @SuppressWarnings({"TypeMayBeWeakened"})
 +    private final LastTimeUnitDescriptorComparator unitComp = new LastTimeUnitDescriptorComparator();
 +
 +    /** List of scanners. Every URI has it's own scanner. */
 +    private final Collection<GridUriDeploymentScanner> scanners = new ArrayList<>();
 +
 +    /** Whether URIs should be encoded or not. */
 +    private boolean encodeUri = true;
 +
 +    /** Whether first scan cycle is completed or not. */
 +    private int firstScanCntr;
 +
 +    /** Deployment listener which processes all notifications from scanners. */
 +    private volatile DeploymentListener lsnr;
 +
 +    /** */
 +    private final Object mux = new Object();
 +
 +    /** */
 +    @IgniteLoggerResource
 +    private IgniteLogger log;
 +
 +    /** NOTE: flag for test purposes only. */
 +    @SuppressWarnings("UnusedDeclaration")
 +    private boolean delayOnNewOrUpdatedFile;
 +
 +    /**
 +     * Sets absolute path to temporary directory which will be used by
 +     * deployment SPI to keep all deployed classes in.
 +     * <p>
 +     * If not provided, default value is {@code java.io.tmpdir} system property value.
 +     *
 +     * @param tmpDirPath Temporary directory path.
 +     */
 +    @IgniteSpiConfiguration(optional = true)
 +    public void setTemporaryDirectoryPath(String tmpDirPath) {
 +        this.tmpDirPath = tmpDirPath;
 +    }
 +
 +    /**
 +     * Sets list of URI which point to GAR file and which should be
 +     * scanned by SPI for the new tasks.
 +     * <p>
 +     * If not provided, default value is list with
-      * {@code file://${GRIDGAIN_HOME}/work/deployment/file} element.
-      * Note that system property {@code GRIDGAIN_HOME} must be set.
-      * For unknown {@code GRIDGAIN_HOME} list of URI must be provided explicitly.
++     * {@code file://${IGNITE_HOME}/work/deployment/file} element.
++     * Note that system property {@code IGNITE_HOME} must be set.
++     * For unknown {@code IGNITE_HOME} list of URI must be provided explicitly.
 +     *
 +     * @param uriList GAR file URIs.
 +     */
 +    @IgniteSpiConfiguration(optional = true)
 +    public void setUriList(List<String> uriList) {
 +        this.uriList = uriList;
 +    }
 +
 +    /**
 +     * If set to {@code true} then SPI should exclude files with same md5s from deployment.
 +     * Otherwise it should try to load new unit regardless to possible file duplication.
 +     *
 +     * @param checkMd5 new value for the property
 +     */
 +    @IgniteSpiConfiguration(optional = true)
 +    public void setCheckMd5(boolean checkMd5) {
 +        this.checkMd5 = checkMd5;
 +    }
 +
 +    /**
 +     * Gets {@code checkMd5} property.
 +     *
 +     * @return value of the {@code checkMd5} property.
 +     */
 +    @Override public boolean isCheckMd5() {
 +        return checkMd5;
 +    }
 +
 +    /**
 +     * Indicates that URI must be encoded before usage. Encoding means replacing
 +     * all occurrences of space with '%20', percent sign with '%25'
 +     * and semicolon with '%3B'.
 +     * <p>
 +     * If not provided, default value is {@code true}.
 +     *
 +     * @param encodeUri {@code true} if every URI should be encoded and
 +     *      {@code false} otherwise.
 +     */
 +    @IgniteSpiConfiguration(optional = true)
 +    public void setEncodeUri(boolean encodeUri) {
 +        this.encodeUri = encodeUri;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String getTemporaryDirectoryPath() {
 +        return tmpDirPath;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public List<String> getUriList() {
 +        return Collections.unmodifiableList(uriList);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void setListener(@Nullable DeploymentListener lsnr) {
 +        this.lsnr = lsnr;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void spiStop() throws IgniteSpiException {
 +        for (GridUriDeploymentScanner scanner : scanners)
 +            scanner.cancel();
 +
 +        for (GridUriDeploymentScanner scanner : scanners)
 +            scanner.join();
 +
 +        // Clear inner collections.
 +        uriEncodedList.clear();
 +        scanners.clear();
 +
 +        List<ClassLoader> tmpClsLdrs;
 +
 +        // Release all class loaders.
 +        synchronized (mux) {
 +            tmpClsLdrs = new ArrayList<>(unitLoaders.size());
 +
 +            for (GridUriDeploymentUnitDescriptor desc : unitLoaders)
 +                tmpClsLdrs.add(desc.getClassLoader());
 +        }
 +
 +        for (ClassLoader ldr : tmpClsLdrs)
 +            onUnitReleased(ldr);
 +
 +        // Delete temp directory.
 +        if (deployTmpDirPath != null)
 +            U.delete(new File(deployTmpDirPath));
 +
 +        unregisterMBean();
 +
 +        // Ack ok stop.
 +        if (log.isDebugEnabled())
 +            log.debug(stopInfo());
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void spiStart(String gridName) throws IgniteSpiException {
 +        // Start SPI start stopwatch.
 +        startStopwatch();
 +
 +        assertParameter(uriList != null, "uriList != null");
 +
 +        initializeUriList();
 +
 +        if (uriEncodedList.isEmpty())
 +            addDefaultUri();
 +
 +        initializeTemporaryDirectoryPath();
 +
 +        registerMBean(gridName, this, UriDeploymentSpiMBean.class);
 +
 +        FilenameFilter filter = new FilenameFilter() {
 +            @Override public boolean accept(File dir, String name) {
 +                assert name != null;
 +
 +                return name.toLowerCase().endsWith(".gar");
 +            }
 +        };
 +
 +        firstScanCntr = 0;
 +
 +        GridUriDeploymentScannerListener lsnr = new GridUriDeploymentScannerListener() {
 +            @Override public void onNewOrUpdatedFile(File file, String uri, long tstamp) {
 +                if (log.isInfoEnabled())
 +                    log.info("Found new or updated GAR units [uri=" + U.hidePassword(uri) +
 +                        ", file=" + file.getAbsolutePath() + ", tstamp=" + tstamp + ']');
 +
 +                if (delayOnNewOrUpdatedFile) {
 +                    U.warn(log, "Delaying onNewOrUpdatedFile() by 10000 ms since 'delayOnNewOrUpdatedFile' " +
 +                        "is set to true (is this intentional?).");
 +
 +                    try {
 +                        U.sleep(10000);
 +                    }
 +                    catch (IgniteInterruptedException ignored) {
 +                        // No-op
 +                    }
 +
 +                    U.warn(log, "Delay finished.");
 +                }
 +
 +                try {
 +                    GridUriDeploymentFileProcessorResult fileRes = GridUriDeploymentFileProcessor.processFile(file, uri,
 +                        new File(deployTmpDirPath), log);
 +
 +                    if (fileRes != null)
 +                        newUnitReceived(uri, fileRes.getFile(), tstamp, fileRes.getClassLoader(),
 +                            fileRes.getTaskClasses(), fileRes.getMd5());
 +                }
 +                catch (IgniteSpiException e) {
 +                    U.error(log, "Error when processing file: " + file.getAbsolutePath(), e);
 +                }
 +            }
 +
 +            /** {@inheritDoc} */
 +            @Override public void onDeletedFiles(List<String> uris) {
 +                if (log.isInfoEnabled()) {
 +                    List<String> uriList = null;
 +
 +                    if (uris != null) {
 +                        uriList = new ArrayList<>();
 +
 +                        for (String uri : uris)
 +                            uriList.add(U.hidePassword(uri));
 +                    }
 +
 +                    log.info("Found deleted GAR units [uris=" + uriList + ']');
 +                }
 +
 +                processDeletedFiles(uris);
 +            }
 +
 +            /** {@inheritDoc} */
 +            @Override public void onFirstScanFinished() {
 +                synchronized (mux) {
 +                    firstScanCntr++;
 +
 +                    if (isFirstScanFinished(firstScanCntr))
 +                        mux.notifyAll();
 +                }
 +            }
 +        };
 +
 +        for (URI uri : uriEncodedList) {
 +            String proto = uri.getScheme();
 +
 +            File file = new File(deployTmpDirPath);
 +
 +            long freq = -1;
 +
 +            try {
 +                freq = getFrequencyFromUri(uri);
 +            }
 +            catch (NumberFormatException e) {
 +                U.error(log, "Error parsing parameter value for frequency.", e);
 +            }
 +
 +            assert proto != null;
 +
 +            GridUriDeploymentScanner scanner;
 +
 +            switch (proto) {
 +                case "file":
 +                    scanner = new GridUriDeploymentFileScanner(gridName, uri, file, freq > 0 ? freq :
 +                        DFLT_DISK_SCAN_FREQUENCY, filter, lsnr, log);
 +                    break;
 +
 +                case "http":
 +                case "https":
 +                    scanner = new GridUriDeploymentHttpScanner(gridName, uri, file, freq > 0 ? freq :
 +                        DFLT_HTTP_SCAN_FREQUENCY, filter, lsnr, log);
 +                    break;
 +
 +                case "ftp":
 +                    scanner = new GridUriDeploymentFtpScanner(gridName, uri, file, freq > 0 ? freq :
 +                        DFLT_FTP_SCAN_FREQUENCY, filter, lsnr, log);
 +                    break;
 +
 +                default:
 +                    throw new IgniteSpiException("Unsupported protocol: " + proto);
 +            }
 +
 +            scanners.add(scanner);
 +
 +            scanner.start();
 +        }
 +
 +        // Ack parameters.
 +        if (log.isDebugEnabled()) {
 +            log.debug(configInfo("tmpDirPath", tmpDirPath));
 +            log.debug(configInfo("uriList", uriList));
 +            log.debug(configInfo("encodeUri", encodeUri));
 +            log.debug(configInfo("scanners", scanners));
 +        }
 +
 +        // Ack ok start.
 +        if (log.isDebugEnabled())
 +            log.debug(startInfo());
 +    }
 +
 +    /**
 +     * Gets URI refresh frequency.
 +     * URI is parsed and {@code freq} parameter value returned.
 +     *
 +     * @param uri URI to be parsed.
 +     * @return {@code -1} if there if no {@code freq} parameter otherwise
 +     *      returns frequency.
 +     * @throws NumberFormatException Thrown if {@code freq} parameter value
 +     *      is not a number.
 +     */
 +    private long getFrequencyFromUri(URI uri) throws NumberFormatException {
 +        assert uri != null;
 +
 +        String userInfo = uri.getUserInfo();
 +
 +        if (userInfo != null) {
 +            String[] arr = userInfo.split(";");
 +
 +            if (arr != null && arr.length > 0)
 +                for (String el : arr)
 +                    if (el.startsWith("freq="))
 +                        return Long.parseLong(el.substring(5));
 +        }
 +
 +        return -1;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Nullable
 +    @Override public DeploymentResource findResource(String rsrcName) {
 +        assert rsrcName != null;
 +
 +        // Wait until all scanners finish their first scanning.
 +        try {
 +            synchronized (mux) {
 +                while (!isFirstScanFinished(firstScanCntr))
 +                    mux.wait(5000);
 +            }
 +        }
 +        catch (InterruptedException e) {
 +            U.error(log, "Failed to wait while all scanners finish their first scanning.", e);
 +
 +            Thread.currentThread().interrupt();
 +
 +            return null;
 +        }
 +
 +        synchronized (mux) {
 +            // Last updated class loader has highest priority in search.
 +            for (GridUriDeploymentUnitDescriptor unitDesc : unitLoaders) {
 +                // Try to find resource for current class loader.
 +                String clsName = rsrcName;
 +                Class<?> clsByAlias = unitDesc.getResourcesByAlias().get(rsrcName);
 +
 +                if (clsByAlias != null)
 +                    clsName = clsByAlias.getName();
 +
 +                try {
 +                    ClassLoader ldr = unitDesc.getClassLoader();
 +
 +                    Class<?> cls = ldr instanceof GridUriDeploymentClassLoader ?
 +                        ((GridUriDeploymentClassLoader)ldr).loadClassGarOnly(clsName) :
 +                        ldr.loadClass(clsName);
 +
 +                    assert cls != null;
 +
 +                    IgniteBiTuple<Class<?>, String> rsrc = unitDesc.findResource(rsrcName);
 +
 +                    if (rsrc != null) {
 +                        // Recalculate resource name in case if access is performed by
 +                        // class name and not the resource name.
 +                        String alias = rsrc.get2();
 +
 +                        return new DeploymentResourceAdapter(
 +                            alias != null ? alias : rsrcName,
 +                            cls,
 +                            unitDesc.getClassLoader());
 +                    }
 +                    // Ignore invalid tasks.
 +                    else if (!ComputeTask.class.isAssignableFrom(cls)) {
 +                        unitDesc.addResource(cls);
 +
 +                        return new DeploymentResourceAdapter(rsrcName, cls, unitDesc.getClassLoader());
 +                    }
 +                }
 +                catch (ClassNotFoundException ignored) {
 +                    // No-op.
 +                }
 +            }
 +
 +            return null;
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean register(ClassLoader ldr, Class<?> rsrc) throws IgniteSpiException {
 +        A.notNull(ldr, "ldr");
 +        A.notNull(rsrc, "rsrc");
 +
 +        long tstamp = U.currentTimeMillis();
 +
 +        Collection<ClassLoader> rmvClsLdrs = new ArrayList<>();
 +
 +        Map<String, String> newRsrcs;
 +
 +        synchronized (mux) {
 +            GridUriDeploymentUnitDescriptor desc = null;
 +
 +            // Find existing class loader.
 +            for (GridUriDeploymentUnitDescriptor unitDesc : unitLoaders)
 +                if (unitDesc.getClassLoader().equals(ldr)) {
 +                    desc = unitDesc;
 +
 +                    break;
 +                }
 +
 +            if (desc == null) {
 +                desc = new GridUriDeploymentUnitDescriptor(tstamp, ldr);
 +
 +                // New unit has largest timestamp.
 +                assert unitLoaders.size() <= 0 || unitComp.compare(desc, unitLoaders.getFirst()) <= 0;
 +
 +                unitLoaders.addFirst(desc);
 +            }
 +
 +            newRsrcs = addResources(ldr, desc, new Class<?>[]{rsrc});
 +
 +            if (!F.isEmpty(newRsrcs))
 +                removeResources(ldr, newRsrcs, rmvClsLdrs);
 +        }
 +
 +        for (ClassLoader cldLdr : rmvClsLdrs)
 +            onUnitReleased(cldLdr);
 +
 +        return !F.isEmpty(newRsrcs);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public boolean unregister(String rsrcName) {
 +        assert rsrcName != null;
 +
 +        Collection<ClassLoader> rmvClsLdrs = new ArrayList<>();
 +
 +        boolean rmv;
 +
 +        synchronized (mux) {
 +            Map<String, String> rsrcs = U.newHashMap(1);
 +
 +            rsrcs.put(rsrcName, rsrcName);
 +
 +            rmv = removeResources(null, rsrcs, rmvClsLdrs);
 +        }
 +
 +        for (ClassLoader cldLdr : rmvClsLdrs)
 +            onUnitReleased(cldLdr);
 +
 +        return rmv;
 +    }
 +
 +    /**
 +     * Add new classes in class loader resource map.
 +     * Note that resource map may contain two entries for one added class:
 +     * task name -> class name and class name -> class name.
 +     *
 +     * @param ldr Registered class loader.
 +     * @param desc Deployment descriptor.
 +     * @param clss Registered classes array.
 +     * @return Map of new resources added for registered class loader.
 +     * @throws org.apache.ignite.spi.IgniteSpiException If resource already registered. Exception thrown
 +     * if registered resources conflicts with rule when all task classes must be
 +     * annotated with different task names.
 +     */
 +    @Nullable
 +    private Map<String, String> addResources(ClassLoader ldr, GridUriDeploymentUnitDescriptor desc, Class<?>[] clss)
 +        throws IgniteSpiException {
 +        assert ldr != null;
 +        assert desc != null;
 +        assert clss != null;
 +
 +        // Maps resources to classes.
 +        // Map may contain 2 entries for one class.
 +        Map<String, Class<?>> alias2Cls = new HashMap<>(clss.length * 2, 1.0f);
 +
 +        // Check alias collision between added classes.
 +        for (Class<?> cls : clss) {
 +            String alias = null;
 +
 +            if (ComputeTask.class.isAssignableFrom(cls)) {
 +                ComputeTaskName nameAnn = U.getAnnotation(cls, ComputeTaskName.class);
 +
 +                if (nameAnn != null)
 +                    alias = nameAnn.value();
 +            }
 +
 +            // If added classes maps to one alias.
 +            if (alias != null && alias2Cls.containsKey(alias) && !alias2Cls.get(alias).equals(cls))
 +                throw new IgniteSpiException("Failed to register resources with given task name " +
 +                    "(found another class with same task name) [taskName=" + alias +
 +                    ", cls1=" + cls.getName() + ", cls2=" + alias2Cls.get(alias).getName() + ", ldr=" + ldr + ']');
 +
 +            if (alias != null) {
 +                alias2Cls.put(alias, cls);
 +
 +                desc.addResource(alias, cls);
 +            }
 +            else
 +                desc.addResource(cls);
 +        }
 +
 +        Map<String, String> newRsrcs = null;
 +
 +        // Check collisions between added and exist classes.
 +        for (Entry<String, Class<?>> entry : alias2Cls.entrySet()) {
 +            String newAlias = entry.getKey();
 +            String newName = entry.getValue().getName();
 +            Class<?> cls = desc.getResourceByAlias(newAlias);
 +
 +            if (cls != null) {
 +                // Different classes for the same resource name.
 +                if (!cls.getName().equals(newName))
 +                    throw new IgniteSpiException("Failed to register resources with given task name " +
 +                        "(found another class with same task name in the same class loader) [taskName=" + newAlias +
 +                        ", existingCls=" + cls.getName() + ", newCls=" + newName + ", ldr=" + ldr + ']');
 +            }
 +            // Add resources that should be removed for another class loaders.
 +            else {
 +                if (newRsrcs == null)
 +                    newRsrcs = U.newHashMap(alias2Cls.size() + clss.length);
 +
 +                newRsrcs.put(newAlias, newName);
 +                newRsrcs.put(newName, newName);
 +            }
 +        }
 +
 +        return newRsrcs;
 +    }
 +
 +    /**
 +     * Remove resources for all class loaders except {@code ignoreClsLdr}.
 +     *
 +     * @param ignoreClsLdr Ignored class loader or {@code null} to remove for all class loaders.
 +     * @param rsrcs Resources that should be used in search for class loader to remove.
 +     * @param rmvClsLdrs Class loaders to remove.
 +     * @return {@code True} if resource was removed.
 +     */
 +    private boolean removeResources(@Nullable ClassLoader ignoreClsLdr, Map<String, String> rsrcs,
 +        Collection<ClassLoader> rmvClsLdrs) {
 +        assert Thread.holdsLock(mux);
 +        assert rsrcs != null;
 +
 +        boolean res = false;
 +
 +        for (Iterator<GridUriDeploymentUnitDescriptor> iter = unitLoaders.iterator(); iter.hasNext();) {
 +            GridUriDeploymentUnitDescriptor desc = iter.next();
 +            ClassLoader ldr = desc.getClassLoader();
 +
 +            if (ignoreClsLdr == null || !ldr.equals(ignoreClsLdr)) {
 +                boolean isRmv = false;
 +
 +                // Check class loader's registered resources.
 +                for (String rsrcName : rsrcs.keySet()) {
 +                    IgniteBiTuple<Class<?>, String> rsrc = desc.findResource(rsrcName);
 +
 +                    // Remove class loader if resource found.
 +                    if (rsrc != null) {
 +                        iter.remove();
 +
 +                        // Add class loaders in collection to notify listener outside synchronization block.
 +                        rmvClsLdrs.add(ldr);
 +
 +                        isRmv = true;
 +                        res = true;
 +
 +                        break;
 +                    }
 +                }
 +
 +                if (isRmv)
 +                    continue;
 +
 +                // Check is possible to load resources with classloader.
 +                for (Entry<String, String> entry : rsrcs.entrySet()) {
 +                    // Check classes with class loader only when classes points to classes to avoid redundant check.
 +                    // Resources map contains two entries for class with task name(alias).
 +                    if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, entry.getKey())) {
 +                        iter.remove();
 +
 +                        // Add class loaders in collection to notify listener outside synchronization block.
 +                        rmvClsLdrs.add(ldr);
 +
 +                        res = true;
 +
 +                        break;
 +                    }
 +                }
 +            }
 +        }
 +
 +        return res;
 +    }
 +
 +    /**
 +     * Gets resource name for a given class name.
 +     *
 +     * @param clsName Class name.
 +     * @param rsrcs Map of resources.
 +     * @return Resource name.
 +     */
 +    private String getResourceName(String clsName, Map<String, String> rsrcs) {
 +        assert Thread.holdsLock(mux);
 +
 +        String rsrcName = clsName;
 +
 +        for (Entry<String, String> e : rsrcs.entrySet())
 +            if (e.getValue().equals(clsName) && !e.getKey().equals(clsName)) {
 +                rsrcName = e.getKey();
 +
 +                break;
 +            }
 +
 +        return rsrcName;
 +    }
 +
 +    /**
 +     * Check is class can be reached.
 +     *
 +     * @param ldr Class loader.
 +     * @param clsName Class name.
 +     * @return {@code true} if class can be loaded.
 +     */
 +    private boolean isResourceExist(ClassLoader ldr, String clsName) {
 +        String rsrc = clsName.replaceAll("\\.", "/") + ".class";
 +
 +        InputStream in = null;
 +
 +        try {
 +            in = ldr instanceof GridUriDeploymentClassLoader ?
 +                ((GridUriDeploymentClassLoader)ldr).getResourceAsStreamGarOnly(rsrc) :
 +                ldr.getResourceAsStream(rsrc);
 +
 +            return in != null;
 +        }
 +        finally {
 +            U.close(in, log);
 +        }
 +    }
 +
 +    /**
 +     * Tests whether first scan is finished or not.
 +     *
 +     * @param cntr Number of already scanned URIs.
 +     * @return {@code true} if all URIs have been scanned at least once and
 +     *      {@code false} otherwise.
 +     */
 +    private boolean isFirstScanFinished(int cntr) {
 +        assert uriEncodedList != null;
 +
 +        return cntr >= uriEncodedList.size();
 +    }
 +
 +    /**
 +     * Fills in list of URIs with all available URIs and encodes them if
 +     * encoding is enabled.
 +     *
 +     * @throws org.apache.ignite.spi.IgniteSpiException Thrown if at least one URI has incorrect syntax.
 +     */
 +    private void initializeUriList() throws IgniteSpiException {
 +        for (String uri : uriList) {
 +            assertParameter(uri != null, "uriList.get(X) != null");
 +
 +            assert uri != null;
 +
 +            String encUri = encodeUri(uri.replaceAll("\\\\", "/"));
 +
 +            URI uriObj;
 +
 +            try {
 +                uriObj = new URI(encUri);
 +            }
 +            catch (URISyntaxException e) {
 +                throw new IgniteSpiException("Failed to parse URI [uri=" + U.hidePassword(uri) +
 +                    ", encodedUri=" + U.hidePassword(encUri) + ']', e);
 +            }
 +
 +            if (uriObj.getScheme() == null || uriObj.getScheme().trim().isEmpty())
 +                throw new IgniteSpiException("Failed to get 'scheme' from URI [uri=" +
 +                    U.hidePassword(uri) +
 +                    ", encodedUri=" + U.hidePassword(encUri) + ']');
 +
 +            uriEncodedList.add(uriObj);
 +        }
 +    }
 +
 +    /**
 +     * Add configuration for file scanner {@link GridUriDeploymentFileScanner}.
 +     *
 +     * @throws org.apache.ignite.spi.IgniteSpiException Thrown if default URI syntax is incorrect.
 +     */
 +    private void addDefaultUri() throws IgniteSpiException {
 +        assert uriEncodedList != null;
 +
 +        URI uri;
 +
 +        try {
 +            uri = U.resolveWorkDirectory(DFLT_DEPLOY_DIR, false).toURI();
 +        }
 +        catch (IgniteCheckedException e) {
 +            throw new IgniteSpiException("Failed to initialize default file scanner", e);
 +        }
 +
 +        uriEncodedList.add(uri);
 +    }
 +
 +    /**
 +     * Encode URI path if encoding is enabled. Set of encoded characters
 +     * in path is (' ', ';', '%').
 +     *
 +     * @param path URI which should be encoded.
 +     * @return Either encoded URI if encoding is enabled or given one
 +     *      if encoding is disabled.
 +     */
 +    private String encodeUri(String path) {
 +        return encodeUri ? new GridUriDeploymentUriParser(path).parse() : path;
 +    }
 +
 +    /**
 +     * Initializes temporary directory path. Path consists of base path
 +     * (either {@link #tmpDirPath} value or {@code java.io.tmpdir}
 +     * system property value if first is {@code null}) and path relative
 +     * to base one - {@link #DEPLOY_TMP_ROOT_NAME}/{@code local node ID}.
 +     *
 +     * @throws org.apache.ignite.spi.IgniteSpiException Thrown if temporary directory could not be created.
 +     */
 +    private void initializeTemporaryDirectoryPath() throws IgniteSpiException {
 +        String tmpDirPath = this.tmpDirPath == null ? System.getProperty("java.io.tmpdir") : this.tmpDirPath;
 +
 +        if (tmpDirPath == null)
 +            throw new IgniteSpiException("Error initializing temporary deployment directory.");
 +
 +        File dir = new File(tmpDirPath + File.separator + DEPLOY_TMP_ROOT_NAME + File.separator +
 +            ignite.configuration().getNodeId());
 +
 +        if (!U.mkdirs(dir))
 +            throw new IgniteSpiException("Error initializing temporary deployment directory: " + dir);
 +
 +        if (!dir.isDirectory())
 +            throw new IgniteSpiException("Temporary deployment directory path is not a valid directory: " + dir);
 +
 +        if (!dir.canRead() || !dir.canWrite())
 +            throw new IgniteSpiException("Can not write to or read from temporary deployment directory: " + dir);
 +
 +        this.tmpDirPath = tmpDirPath;
 +
 +        deployTmpDirPath = dir.getPath();
 +    }
 +
 +    /**
 +     * Deploys all tasks that correspond to given descriptor.
 +     * First method checks tasks versions and stops processing tasks that
 +     * have both versioned and unversioned instances.
 +     * <p>
 +     * Than it deletes tasks with lower version and deploys newest tasks.
 +     *
 +     * @param newDesc Tasks deployment descriptor.
 +     * @param clss Registered classes.
 +     */
 +    private void newUnitReceived(GridUriDeploymentUnitDescriptor newDesc, Collection<Class<?>> clss) {
 +        assert newDesc != null;
 +        assert newDesc.getType() == GridUriDeploymentUnitDescriptor.Type.FILE;
 +
 +        if (clss != null && !clss.isEmpty()) {
 +            try {
 +                addResources(newDesc.getClassLoader(), newDesc, clss.toArray(new Class<?>[clss.size()]));
 +            }
 +            catch (IgniteSpiException e) {
 +                U.warn(log, "Failed to register GAR class loader [newDesc=" + newDesc +
 +                    ", msg=" + e.getMessage() + ']');
 +            }
 +        }
 +
 +        Collection<ClassLoader> rmvClsLdrs = new ArrayList<>();
 +
 +        synchronized (mux) {
 +            if (checkMd5 && unitDeployed(newDesc.getMd5())) {
 +                if (log.isInfoEnabled())
 +                    LT.info(log, "Skipping new deployment unit because of md5 match " +
 +                        "[uri='" + U.hidePassword(newDesc.getUri()) +
 +                        "', file=" + (newDesc.getFile() == null ? "N/A" : newDesc.getFile()) + ']');
 +
 +                return;
 +            }
 +
 +            boolean isAdded = false;
 +            boolean ignoreNewUnit = false;
 +
 +            for (ListIterator<GridUriDeploymentUnitDescriptor> iter = unitLoaders.listIterator();
 +                 iter.hasNext();) {
 +                GridUriDeploymentUnitDescriptor desc = iter.next();
 +
 +                assert !newDesc.getClassLoader().equals(desc.getClassLoader()) :
 +                    "Uri scanners always create new class loader for every GAR file: " + newDesc;
 +
 +                // Only for GAR files. Undeploy all for overwritten GAR files.
 +                if (desc.getType() == GridUriDeploymentUnitDescriptor.Type.FILE &&
 +                    newDesc.getUri().equals(desc.getUri()) && !newDesc.getFile().equals(desc.getFile())) {
 +                    // Remove descriptor.
 +                    iter.remove();
 +
 +                    // Add class loaders in collection to notify listener outside synchronization block.
 +                    rmvClsLdrs.add(desc.getClassLoader());
 +
 +                    // Last descriptor.
 +                    if (!iter.hasNext())
 +                        // New descriptor will be added after loop.
 +                        break;
 +
 +                    continue;
 +                }
 +
 +                if (!isAdded) {
 +                    // Unit with largest timestamp win.
 +                    // Insert it before current element.
 +                    if (unitComp.compare(newDesc, desc) <= 0) {
 +                        // Remove current class loader if found collisions.
 +                        if (checkUnitCollision(desc, newDesc)) {
 +                            iter.remove();
 +                            iter.add(newDesc);
 +
 +                            // Add class loaders in collection to notify listener outside synchronization block.
 +                            rmvClsLdrs.add(desc.getClassLoader());
 +                        }
 +                        // Or add new class loader before current class loader.
 +                        else {
 +                            iter.set(newDesc);
 +                            iter.add(desc);
 +                        }
 +
 +                        isAdded = true;
 +                    }
 +                    else if (checkUnitCollision(newDesc, desc)) {
 +                        // Don't add new unit if found collisions with latest class loader.
 +                        ignoreNewUnit = true;
 +                        break;
 +                    }
 +                }
 +                // New descriptor already added and we need to check other class loaders for collisions.
 +                else if (checkUnitCollision(newDesc, desc)) {
 +                    iter.remove();
 +
 +                    // Add class loaders in collection to notify listener outside synchronization block.
 +                    rmvClsLdrs.add(desc.getClassLoader());
 +                }
 +            }
 +
 +            if (!ignoreNewUnit) {
 +                if (!isAdded)
 +                    unitLoaders.add(newDesc);
 +
 +                if (log.isDebugEnabled())
 +                    LT.info(log, "Class loader (re)registered [clsLdr=" + newDesc.getClassLoader() +
 +                        ", tstamp=" + newDesc.getTimestamp() +
 +                        ", uri='" + U.hidePassword(newDesc.getUri()) +
 +                        "', file=" + (newDesc.getFile() == null ? "N/A" : newDesc.getFile()) + ']');
 +            }
 +        }
 +
 +        for (ClassLoader cldLdr : rmvClsLdrs)
 +            onUnitReleased(cldLdr);
 +    }
 +
 +    /**
 +     * Check task resource collisions in added descriptor {@code newDesc} with another
 +     * descriptor {@code existDesc}.
 +     *
 +     * @param newDesc New added descriptor.
 +     * @param existDesc Exist descriptor.
 +     * @return {@code True} if collisions found.
 +     */
 +    private boolean checkUnitCollision(GridUriDeploymentUnitDescriptor newDesc,
 +        GridUriDeploymentUnitDescriptor existDesc) {
 +        assert newDesc != null;
 +        assert existDesc != null;
 +
 +        Map<String, Class<?>> rsrcsByAlias = newDesc.getResourcesByAlias();
 +
 +        for (Entry<String, Class<?>> entry : existDesc.getResourcesByAlias().entrySet()) {
 +            String rsrcName = entry.getKey();
 +
 +            if (rsrcsByAlias.containsKey(rsrcName)) {
 +                U.warn(log, "Found collision with task name in different GAR files. " +
 +                    "Class loader will be removed [taskName=" + rsrcName + ", cls1=" + rsrcsByAlias.get(rsrcName) +
 +                    ", cls2=" + entry.getValue() + ", newDesc=" + newDesc + ", existDesc=" + existDesc + ']');
 +
 +                return true;
 +            }
 +        }
 +
 +        for (Class<?> rsrcCls : existDesc.getResources()) {
 +            if (!ComputeTask.class.isAssignableFrom(rsrcCls) &&
 +                isResourceExist(newDesc.getClassLoader(), rsrcCls.getName())) {
 +                U.warn(log, "Found collision with task class in different GAR files. " +
 +                    "Class loader will be removed [taskCls=" + rsrcCls +
 +                    ", removedDesc=" + newDesc + ", existDesc=" + existDesc + ']');
 +
 +                return true;
 +            }
 +        }
 +
 +        return false;
 +    }
 +
 +    /**
 +     * Deploys or redeploys given tasks.
 +     *
 +     * @param uri GAR file deployment URI.
 +     * @param file GAR file.
 +     * @param tstamp File modification date.
 +     * @param ldr Class loader.
 +     * @param clss List of tasks which were found in GAR file.
 +     * @param md5 md5 of the new unit.
 +     */
 +    private void newUnitReceived(String uri, File file, long tstamp, ClassLoader ldr,
 +        Collection<Class<? extends ComputeTask<?, ?>>> clss, @Nullable String md5) {
 +        assert uri != null;
 +        assert file != null;
 +        assert tstamp > 0;
 +
 +        // To avoid units with incorrect timestamp.
 +        tstamp = Math.min(tstamp, U.currentTimeMillis());
 +
 +        // Create descriptor.
 +        GridUriDeploymentUnitDescriptor desc = new GridUriDeploymentUnitDescriptor(uri, file, tstamp, ldr, md5);
 +
 +        newUnitReceived(desc, clss != null && !clss.isEmpty() ? new ArrayList<Class<?>>(clss) : null);
 +    }
 +
 +    /**
 +     * Removes all tasks that belong to GAR files which are on list
 +     * of removed files.
 +     *
 +     * @param uris List of removed files.
 +     */
 +    @SuppressWarnings({"TypeMayBeWeakened"})
 +    private void processDeletedFiles(List<String> uris) {
 +        assert uris != null;
 +
 +        if (uris.isEmpty())
 +            return;
 +
 +        synchronized (mux) {
 +            Set<String> uriSet = new HashSet<>(uris);
 +
 +            for (Iterator<GridUriDeploymentUnitDescriptor> iter = unitLoaders.iterator(); iter.hasNext();) {
 +                GridUriDeploymentUnitDescriptor desc = iter.next();
 +
 +                if (desc.getType() == GridUriDeploymentUnitDescriptor.Type.FILE && uriSet.contains(desc.getUri())) {
 +                    // Remove descriptor.
 +                    iter.remove();
 +
 +                    onUnitReleased(desc.getClassLoader());
 +                }
 +            }
 +        }
 +    }
 +
 +    /**
 +     * Notifies listener about released class loader.
 +     *
 +     * @param clsLdr Released class loader.
 +     */
 +    private void onUnitReleased(ClassLoader clsLdr) {
 +        // Make sure we don't remove system class loader.
 +        if (!clsLdr.equals(getClass().getClassLoader()))
 +            GridUriDeploymentFileProcessor.cleanupUnit(clsLdr, log);
 +
 +        DeploymentListener tmp = lsnr;
 +
 +        if (tmp != null)
 +            tmp.onUnregistered(clsLdr);
 +    }
 +
 +    /**
 +     * Checks if a nut with the same md5 ai already deployed with this SPI.
 +     *
 +     * @param md5 md5 of a new unit.
 +     * @return {@code true} if this unit deployed, {@code false} otherwise.
 +     */
 +    private boolean unitDeployed(String md5) {
 +        assert Thread.holdsLock(mux);
 +
 +        if (md5 != null) {
 +            for (GridUriDeploymentUnitDescriptor d: unitLoaders)
 +                if (md5.equals(d.getMd5()))
 +                    return true;
 +        }
 +
 +        return false;
 +    }
 +
 +    /**
 +     * Task deployment descriptor comparator.
 +     * The greater descriptor is those one that has less timestamp.
 +     */
 +    private static class LastTimeUnitDescriptorComparator implements Comparator<GridUriDeploymentUnitDescriptor>,
 +        Serializable {
 +        /** */
 +        private static final long serialVersionUID = 0L;
 +
 +        /** {@inheritDoc} */
 +        @Override public int compare(GridUriDeploymentUnitDescriptor o1, GridUriDeploymentUnitDescriptor o2) {
 +            if (o1.getTimestamp() < o2.getTimestamp())
 +                return 1;
 +
 +            return o1.getTimestamp() == o2.getTimestamp() ? 0 : -1;
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String toString() {
 +        return S.toString(UriDeploymentSpi.class, this);
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/urideploy/src/test/java/org/apache/ignite/spi/deployment/uri/scanners/file/GridFileDeploymentSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/visor-console/src/main/scala/org/apache/ignite/visor/visor.scala
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/web/src/main/java/org/apache/ignite/cache/websession/GridWebSessionFilter.java
----------------------------------------------------------------------


[50/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
ignite-132 - pkg rename


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

Branch: refs/heads/ignite-132
Commit: 36b439d905317f871ba9d60e020a4bc7dfd42fb0
Parents: 9afd27a
Author: S.Vladykin <sv...@gridgain.com>
Authored: Tue Feb 3 00:51:46 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Tue Feb 3 00:51:47 2015 +0300

----------------------------------------------------------------------
 config/hadoop/default-config.xml                |     2 +-
 .../configuration/IgniteConfiguration.java      |     4 +-
 .../org/apache/ignite/hadoop/GridHadoop.java    |    86 -
 .../ignite/hadoop/GridHadoopConfiguration.java  |   172 -
 .../apache/ignite/hadoop/GridHadoopCounter.java |    44 -
 .../ignite/hadoop/GridHadoopCounterWriter.java  |    36 -
 .../ignite/hadoop/GridHadoopCounters.java       |    49 -
 .../ignite/hadoop/GridHadoopFileBlock.java      |   162 -
 .../ignite/hadoop/GridHadoopInputSplit.java     |    54 -
 .../org/apache/ignite/hadoop/GridHadoopJob.java |   102 -
 .../apache/ignite/hadoop/GridHadoopJobId.java   |   102 -
 .../apache/ignite/hadoop/GridHadoopJobInfo.java |    83 -
 .../ignite/hadoop/GridHadoopJobPhase.java       |    38 -
 .../ignite/hadoop/GridHadoopJobProperty.java    |   138 -
 .../ignite/hadoop/GridHadoopJobStatus.java      |   207 -
 .../ignite/hadoop/GridHadoopMapReducePlan.java  |    80 -
 .../hadoop/GridHadoopMapReducePlanner.java      |    40 -
 .../ignite/hadoop/GridHadoopPartitioner.java    |    33 -
 .../ignite/hadoop/GridHadoopSerialization.java  |    54 -
 .../apache/ignite/hadoop/GridHadoopTask.java    |    72 -
 .../ignite/hadoop/GridHadoopTaskContext.java    |   189 -
 .../ignite/hadoop/GridHadoopTaskInfo.java       |   153 -
 .../ignite/hadoop/GridHadoopTaskInput.java      |    55 -
 .../ignite/hadoop/GridHadoopTaskOutput.java     |    40 -
 .../ignite/hadoop/GridHadoopTaskType.java       |    56 -
 .../java/org/apache/ignite/hadoop/package.html  |    24 -
 .../org/apache/ignite/internal/IgniteEx.java    |     2 +-
 .../apache/ignite/internal/IgniteKernal.java    |     7 +-
 .../internal/processors/hadoop/GridHadoop.java  |    86 +
 .../hadoop/GridHadoopConfiguration.java         |   172 +
 .../processors/hadoop/GridHadoopCounter.java    |    44 +
 .../hadoop/GridHadoopCounterWriter.java         |    36 +
 .../processors/hadoop/GridHadoopCounters.java   |    49 +
 .../processors/hadoop/GridHadoopFileBlock.java  |   162 +
 .../processors/hadoop/GridHadoopInputSplit.java |    54 +
 .../processors/hadoop/GridHadoopJob.java        |   102 +
 .../processors/hadoop/GridHadoopJobId.java      |   102 +
 .../processors/hadoop/GridHadoopJobInfo.java    |    83 +
 .../processors/hadoop/GridHadoopJobPhase.java   |    38 +
 .../hadoop/GridHadoopJobProperty.java           |   138 +
 .../processors/hadoop/GridHadoopJobStatus.java  |   207 +
 .../hadoop/GridHadoopMapReducePlan.java         |    80 +
 .../hadoop/GridHadoopMapReducePlanner.java      |    40 +
 .../hadoop/GridHadoopPartitioner.java           |    33 +
 .../hadoop/GridHadoopSerialization.java         |    54 +
 .../processors/hadoop/GridHadoopTask.java       |    72 +
 .../hadoop/GridHadoopTaskContext.java           |   189 +
 .../processors/hadoop/GridHadoopTaskInfo.java   |   153 +
 .../processors/hadoop/GridHadoopTaskInput.java  |    55 +
 .../processors/hadoop/GridHadoopTaskOutput.java |    40 +
 .../processors/hadoop/GridHadoopTaskType.java   |    56 +
 .../hadoop/IgniteHadoopNoopProcessor.java       |     1 -
 .../hadoop/IgniteHadoopProcessorAdapter.java    |     1 -
 .../internal/processors/hadoop/package.html     |    24 +
 .../client/hadoop/GridHadoopClientProtocol.java |     2 +-
 .../GridHadoopClientProtocolProvider.java       |     2 +-
 .../counter/GridHadoopClientCounters.java       |     2 +-
 .../fs/hadoop/v1/GridGgfsHadoopFileSystem.java  |     2 +-
 .../fs/hadoop/v2/GridGgfsHadoopFileSystem.java  |     2 +-
 .../ignite/hadoop/GridHadoopDefaultJobInfo.java |   163 -
 .../apache/ignite/hadoop/GridHadoopSetup.java   |   506 -
 .../fs/hadoop/GridGgfsHadoopEndpoint.java       |     2 +-
 .../hadoop/GridGgfsHadoopFileSystemWrapper.java |    10 +-
 .../internal/fs/hadoop/GridGgfsHadoopIpcIo.java |     2 +-
 .../fs/hadoop/GridGgfsHadoopReader.java         |     1 +
 .../processors/hadoop/GridHadoopContext.java    |     1 -
 .../hadoop/GridHadoopDefaultJobInfo.java        |   162 +
 .../processors/hadoop/GridHadoopImpl.java       |     1 -
 .../processors/hadoop/GridHadoopSetup.java      |   506 +
 .../processors/hadoop/GridHadoopUtils.java      |     6 +-
 .../hadoop/IgniteHadoopProcessor.java           |     1 -
 .../counter/GridHadoopCounterAdapter.java       |     2 +-
 .../hadoop/counter/GridHadoopCountersImpl.java  |     2 +-
 .../counter/GridHadoopFSCounterWriter.java      |     3 +-
 .../hadoop/counter/GridHadoopLongCounter.java   |     3 +-
 .../counter/GridHadoopPerformanceCounter.java   |     2 +-
 .../jobtracker/GridHadoopJobMetadata.java       |     4 +-
 .../hadoop/jobtracker/GridHadoopJobTracker.java |    11 +-
 .../planner/GridHadoopDefaultMapReducePlan.java |     2 +-
 .../GridHadoopDefaultMapReducePlanner.java      |     6 +-
 .../GridHadoopProtocolJobCountersTask.java      |     2 +-
 .../proto/GridHadoopProtocolJobStatusTask.java  |     4 +-
 .../proto/GridHadoopProtocolKillJobTask.java    |     2 +-
 .../proto/GridHadoopProtocolNextTaskIdTask.java |     2 +-
 .../proto/GridHadoopProtocolSubmitJobTask.java  |     4 +-
 .../proto/GridHadoopProtocolTaskAdapter.java    |     4 +-
 .../hadoop/shuffle/GridHadoopShuffle.java       |     3 +-
 .../hadoop/shuffle/GridHadoopShuffleAck.java    |     2 +-
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |     8 +-
 .../shuffle/GridHadoopShuffleMessage.java       |     2 +-
 .../GridHadoopConcurrentHashMultimap.java       |     2 +-
 .../collections/GridHadoopHashMultimap.java     |     2 +-
 .../collections/GridHadoopHashMultimapBase.java |     2 +-
 .../shuffle/collections/GridHadoopMultimap.java |     2 +-
 .../collections/GridHadoopMultimapBase.java     |     6 +-
 .../shuffle/collections/GridHadoopSkipList.java |     2 +-
 .../GridHadoopEmbeddedTaskExecutor.java         |     4 +-
 .../taskexecutor/GridHadoopExecutorService.java |     4 +-
 .../taskexecutor/GridHadoopRunnableTask.java    |     5 +-
 .../GridHadoopTaskExecutorAdapter.java          |     1 -
 .../taskexecutor/GridHadoopTaskStatus.java      |     2 +-
 .../GridHadoopExternalTaskExecutor.java         |     7 +-
 .../GridHadoopJobInfoUpdateRequest.java         |     2 +-
 .../GridHadoopPrepareForJobRequest.java         |     2 +-
 .../GridHadoopTaskExecutionRequest.java         |     2 +-
 .../external/GridHadoopTaskFinishedMessage.java |     2 +-
 .../child/GridHadoopChildProcessRunner.java     |     4 +-
 .../child/GridHadoopExternalProcessStarter.java |     6 +-
 .../GridHadoopExternalCommunication.java        |     6 +-
 .../GridHadoopMarshallerFilter.java             |     2 +-
 .../hadoop/v1/GridHadoopV1CleanupTask.java      |     2 +-
 .../hadoop/v1/GridHadoopV1MapTask.java          |     1 -
 .../hadoop/v1/GridHadoopV1OutputCollector.java  |     5 +-
 .../hadoop/v1/GridHadoopV1Partitioner.java      |     2 +-
 .../hadoop/v1/GridHadoopV1ReduceTask.java       |     1 -
 .../hadoop/v1/GridHadoopV1Reporter.java         |     2 +-
 .../hadoop/v1/GridHadoopV1SetupTask.java        |     2 +-
 .../hadoop/v1/GridHadoopV1Splitter.java         |     1 -
 .../processors/hadoop/v1/GridHadoopV1Task.java  |     4 +-
 .../hadoop/v2/GridHadoopExternalSplit.java      |     2 +-
 .../v2/GridHadoopSerializationWrapper.java      |     6 +-
 .../hadoop/v2/GridHadoopSplitWrapper.java       |     2 +-
 .../hadoop/v2/GridHadoopV2CleanupTask.java      |     8 +-
 .../hadoop/v2/GridHadoopV2Context.java          |     1 -
 .../processors/hadoop/v2/GridHadoopV2Job.java   |     3 +-
 .../v2/GridHadoopV2JobResourceManager.java      |     9 +-
 .../hadoop/v2/GridHadoopV2MapTask.java          |    14 +-
 .../hadoop/v2/GridHadoopV2Partitioner.java      |     2 +-
 .../hadoop/v2/GridHadoopV2ReduceTask.java       |     7 +-
 .../hadoop/v2/GridHadoopV2SetupTask.java        |     7 +-
 .../hadoop/v2/GridHadoopV2Splitter.java         |     1 -
 .../processors/hadoop/v2/GridHadoopV2Task.java  |     2 +-
 .../hadoop/v2/GridHadoopV2TaskContext.java      |     1 -
 .../v2/GridHadoopWritableSerialization.java     |     2 +-
 ...ridHadoopClientProtocolEmbeddedSelfTest.java |     2 +-
 .../apache/ignite/fs/GridFileSystemLoad.java    |     3 +-
 ...dGgfsHadoop20FileSystemAbstractSelfTest.java |     6 +-
 .../fs/GridGgfsHadoopDualAbstractSelfTest.java  |     9 +-
 ...ridGgfsHadoopFileSystemAbstractSelfTest.java |    10 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |     6 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |     2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |     8 +-
 .../GridGgfsHadoopFileSystemLoggerSelfTest.java |     1 -
 ...GgfsHadoopFileSystemLoggerStateSelfTest.java |     8 +-
 ...fsHadoopFileSystemSecondaryModeSelfTest.java |     8 +-
 .../fs/GridGgfsNearOnlyMultiNodeSelfTest.java   |     6 +-
 .../ignite/fs/IgniteFsEventsTestSuite.java      |     2 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |   294 -
 .../ignite/hadoop/GridHadoopTestUtils.java      |   102 -
 .../ignite/hadoop/books/alice-in-wonderland.txt |  3735 -----
 .../apache/ignite/hadoop/books/art-of-war.txt   |  6982 ---------
 .../ignite/hadoop/books/huckleberry-finn.txt    | 11733 ---------------
 .../ignite/hadoop/books/sherlock-holmes.txt     | 13052 -----------------
 .../apache/ignite/hadoop/books/tom-sawyer.txt   |  8858 -----------
 .../hadoop/GridHadoopAbstractSelfTest.java      |     1 -
 .../hadoop/GridHadoopAbstractWordCountTest.java |     2 +-
 .../hadoop/GridHadoopClassLoaderTest.java       |     4 +-
 .../hadoop/GridHadoopCommandLineTest.java       |     3 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java |     3 +-
 .../hadoop/GridHadoopFileSystemsTest.java       |     5 +-
 .../hadoop/GridHadoopGroupingTest.java          |     1 -
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |     5 +-
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |     1 -
 .../hadoop/GridHadoopMapReduceTest.java         |     1 -
 .../hadoop/GridHadoopPopularWordsTest.java      |   294 +
 .../GridHadoopSerializationWrapperSelfTest.java |     1 -
 .../processors/hadoop/GridHadoopSharedMap.java  |     4 +-
 .../hadoop/GridHadoopSortingExternalTest.java   |     2 -
 .../hadoop/GridHadoopSortingTest.java           |     1 -
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |     4 +-
 .../hadoop/GridHadoopTasksAllVersionsTest.java  |     1 -
 .../hadoop/GridHadoopTasksV1Test.java           |     1 -
 .../hadoop/GridHadoopTasksV2Test.java           |     1 -
 .../GridHadoopTestRoundRobinMrPlanner.java      |     3 +-
 .../hadoop/GridHadoopTestTaskContext.java       |     1 -
 .../processors/hadoop/GridHadoopTestUtils.java  |   102 +
 .../hadoop/GridHadoopV2JobSelfTest.java         |     1 -
 .../hadoop/books/alice-in-wonderland.txt        |  3735 +++++
 .../processors/hadoop/books/art-of-war.txt      |  6982 +++++++++
 .../hadoop/books/huckleberry-finn.txt           | 11733 +++++++++++++++
 .../processors/hadoop/books/sherlock-holmes.txt | 13052 +++++++++++++++++
 .../processors/hadoop/books/tom-sawyer.txt      |  8858 +++++++++++
 .../examples/GridHadoopWordCount2Mapper.java    |     6 +-
 .../examples/GridHadoopWordCount2Reducer.java   |     7 +-
 .../collections/GridHadoopAbstractMapTest.java  |     2 +-
 ...ridHadoopConcurrentHashMultimapSelftest.java |     2 +-
 .../collections/GridHadoopHashMapSelfTest.java  |     2 +-
 .../collections/GridHadoopSkipListSelfTest.java |     2 +-
 .../GridHadoopExecutorServiceTest.java          |    12 +-
 ...GridHadoopExternalTaskExecutionSelfTest.java |     3 +-
 ...GridHadoopExternalCommunicationSelfTest.java |     4 +-
 .../ggfs/GridGgfsPerformanceBenchmark.java      |     1 +
 192 files changed, 47695 insertions(+), 47721 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/config/hadoop/default-config.xml
----------------------------------------------------------------------
diff --git a/config/hadoop/default-config.xml b/config/hadoop/default-config.xml
index 1b27ee0..57f3125 100644
--- a/config/hadoop/default-config.xml
+++ b/config/hadoop/default-config.xml
@@ -94,7 +94,7 @@
             Apache Hadoop Accelerator configuration.
         -->
         <property name="hadoopConfiguration">
-            <bean class="org.apache.ignite.hadoop.GridHadoopConfiguration">
+            <bean class="GridHadoopConfiguration">
                 <!-- Information about finished jobs will be kept for 30 seconds. -->
                 <property name="finishedJobInfoTtl" value="30000"/>
             </bean>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/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 924f89c..415b6cb 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
@@ -21,6 +21,7 @@ import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.fs.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.managed.*;
@@ -31,8 +32,6 @@ import org.apache.ignite.spi.authentication.*;
 import org.apache.ignite.spi.indexing.*;
 import org.apache.ignite.streamer.*;
 import org.apache.ignite.client.ssl.*;
-import org.apache.ignite.interop.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.managers.eventstorage.*;
 import org.apache.ignite.plugin.security.*;
 import org.apache.ignite.plugin.segmentation.*;
@@ -47,7 +46,6 @@ import org.apache.ignite.spi.loadbalancing.*;
 import org.apache.ignite.spi.securesession.*;
 import org.apache.ignite.spi.swapspace.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
 
 import javax.management.*;
 import java.lang.management.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoop.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoop.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoop.java
deleted file mode 100644
index bab5496..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoop.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Hadoop facade providing access to GridGain Hadoop features.
- */
-public interface GridHadoop {
-    /**
-     * Gets Hadoop module configuration.
-     *
-     * @return Hadoop module configuration.
-     */
-    public GridHadoopConfiguration configuration();
-
-    /**
-     * Generate next job ID.
-     *
-     * @return Next job ID.
-     */
-    public GridHadoopJobId nextJobId();
-
-    /**
-     * Submits job to job tracker.
-     *
-     * @param jobId Job ID to submit.
-     * @param jobInfo Job info to submit.
-     * @return Execution future.
-     */
-    public IgniteInternalFuture<?> submit(GridHadoopJobId jobId, GridHadoopJobInfo jobInfo);
-
-    /**
-     * Gets Hadoop job execution status.
-     *
-     * @param jobId Job ID to get status for.
-     * @return Job execution status or {@code null} in case job with the given ID is not found.
-     * @throws IgniteCheckedException If failed.
-     */
-    @Nullable public GridHadoopJobStatus status(GridHadoopJobId jobId) throws IgniteCheckedException;
-
-    /**
-     * Returns job counters.
-     *
-     * @param jobId Job ID to get counters for.
-     * @return Job counters object.
-     * @throws IgniteCheckedException If failed.
-     */
-    public GridHadoopCounters counters(GridHadoopJobId jobId) throws IgniteCheckedException;
-
-    /**
-     * Gets Hadoop finish future for particular job.
-     *
-     * @param jobId Job ID.
-     * @return Job finish future or {@code null} in case job with the given ID is not found.
-     * @throws IgniteCheckedException If failed.
-     */
-    @Nullable public IgniteInternalFuture<?> finishFuture(GridHadoopJobId jobId) throws IgniteCheckedException;
-
-    /**
-     * Kills job.
-     *
-     * @param jobId Job ID.
-     * @return {@code True} if job was killed.
-     * @throws IgniteCheckedException If failed.
-     */
-    public boolean kill(GridHadoopJobId jobId) throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopConfiguration.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopConfiguration.java
deleted file mode 100644
index 2f5f1ca..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopConfiguration.java
+++ /dev/null
@@ -1,172 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-/**
- * Hadoop configuration.
- */
-public class GridHadoopConfiguration {
-    /** Default finished job info time-to-live. */
-    public static final long DFLT_FINISHED_JOB_INFO_TTL = 10_000;
-
-    /** Default value for external execution flag. */
-    public static final boolean DFLT_EXTERNAL_EXECUTION = false;
-
-    /** Default value for the max parallel tasks. */
-    public static final int DFLT_MAX_PARALLEL_TASKS = Runtime.getRuntime().availableProcessors();
-
-    /** Default value for the max task queue size. */
-    public static final int DFLT_MAX_TASK_QUEUE_SIZE = 1000;
-
-    /** Map reduce planner. */
-    private GridHadoopMapReducePlanner planner;
-
-    /** */
-    private boolean extExecution = DFLT_EXTERNAL_EXECUTION;
-
-    /** Finished job info TTL. */
-    private long finishedJobInfoTtl = DFLT_FINISHED_JOB_INFO_TTL;
-
-    /** */
-    private int maxParallelTasks = DFLT_MAX_PARALLEL_TASKS;
-
-    /** */
-    private int maxTaskQueueSize = DFLT_MAX_TASK_QUEUE_SIZE;
-
-    /**
-     * Default constructor.
-     */
-    public GridHadoopConfiguration() {
-        // No-op.
-    }
-
-    /**
-     * Copy constructor.
-     *
-     * @param cfg Configuration to copy.
-     */
-    public GridHadoopConfiguration(GridHadoopConfiguration cfg) {
-        // Preserve alphabetic order.
-        extExecution = cfg.isExternalExecution();
-        finishedJobInfoTtl = cfg.getFinishedJobInfoTtl();
-        planner = cfg.getMapReducePlanner();
-        maxParallelTasks = cfg.getMaxParallelTasks();
-        maxTaskQueueSize = cfg.getMaxTaskQueueSize();
-    }
-
-    /**
-     * Gets max number of local tasks that may be executed in parallel.
-     *
-     * @return Max number of local tasks that may be executed in parallel.
-     */
-    public int getMaxParallelTasks() {
-        return maxParallelTasks;
-    }
-
-    /**
-     * Sets max number of local tasks that may be executed in parallel.
-     *
-     * @param maxParallelTasks Max number of local tasks that may be executed in parallel.
-     */
-    public void setMaxParallelTasks(int maxParallelTasks) {
-        this.maxParallelTasks = maxParallelTasks;
-    }
-
-    /**
-     * Gets max task queue size.
-     *
-     * @return Max task queue size.
-     */
-    public int getMaxTaskQueueSize() {
-        return maxTaskQueueSize;
-    }
-
-    /**
-     * Sets max task queue size.
-     *
-     * @param maxTaskQueueSize Max task queue size.
-     */
-    public void setMaxTaskQueueSize(int maxTaskQueueSize) {
-        this.maxTaskQueueSize = maxTaskQueueSize;
-    }
-
-    /**
-     * Gets finished job info time-to-live in milliseconds.
-     *
-     * @return Finished job info time-to-live.
-     */
-    public long getFinishedJobInfoTtl() {
-        return finishedJobInfoTtl;
-    }
-
-    /**
-     * Sets finished job info time-to-live.
-     *
-     * @param finishedJobInfoTtl Finished job info time-to-live.
-     */
-    public void setFinishedJobInfoTtl(long finishedJobInfoTtl) {
-        this.finishedJobInfoTtl = finishedJobInfoTtl;
-    }
-
-    /**
-     * Gets external task execution flag. If {@code true}, hadoop job tasks will be executed in an external
-     * (relative to node) process.
-     *
-     * @return {@code True} if external execution.
-     */
-    public boolean isExternalExecution() {
-        return extExecution;
-    }
-
-    /**
-     * Sets external task execution flag.
-     *
-     * @param extExecution {@code True} if tasks should be executed in an external process.
-     * @see #isExternalExecution()
-     */
-    public void setExternalExecution(boolean extExecution) {
-        this.extExecution = extExecution;
-    }
-
-    /**
-     * Gets Hadoop map-reduce planner, a component which defines job execution plan based on job
-     * configuration and current grid topology.
-     *
-     * @return Map-reduce planner.
-     */
-    public GridHadoopMapReducePlanner getMapReducePlanner() {
-        return planner;
-    }
-
-    /**
-     * Sets Hadoop map-reduce planner, a component which defines job execution plan based on job
-     * configuration and current grid topology.
-     *
-     * @param planner Map-reduce planner.
-     */
-    public void setMapReducePlanner(GridHadoopMapReducePlanner planner) {
-        this.planner = planner;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridHadoopConfiguration.class, this, super.toString());
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounter.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounter.java
deleted file mode 100644
index 5837f13..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounter.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-/**
- * Hadoop counter.
- */
-public interface GridHadoopCounter {
-    /**
-     * Gets name.
-     *
-     * @return Name of the counter.
-     */
-    public String name();
-
-    /**
-     * Gets counter group.
-     *
-     * @return Counter group's name.
-     */
-    public String group();
-
-    /**
-     * Merge the given counter to this counter.
-     *
-     * @param cntr Counter to merge into this counter.
-     */
-    public void merge(GridHadoopCounter cntr);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounterWriter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounterWriter.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounterWriter.java
deleted file mode 100644
index 574a6b9..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounterWriter.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-
-/**
- * The object that writes some system counters to some storage for each running job. This operation is a part of
- * whole statistics collection process.
- */
-public interface GridHadoopCounterWriter {
-    /**
-     * Writes counters of given job to some statistics storage.
-     *
-     * @param jobInfo Job info.
-     * @param jobId Job id.
-     * @param cntrs Counters.
-     * @throws IgniteCheckedException If failed.
-     */
-    public void write(GridHadoopJobInfo jobInfo, GridHadoopJobId jobId, GridHadoopCounters cntrs) throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounters.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounters.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounters.java
deleted file mode 100644
index 3ec130a..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopCounters.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import java.util.*;
-
-/**
- * Counters store.
- */
-public interface GridHadoopCounters {
-    /**
-     * Returns counter for the specified group and counter name. Creates new if it does not exist.
-     *
-     * @param grp Counter group name.
-     * @param name Counter name.
-     * @param cls Class for new instance creation if it's needed.
-     * @return The counter that was found or added or {@code null} if create is false.
-     */
-    <T extends GridHadoopCounter> T counter(String grp, String name, Class<T> cls);
-
-    /**
-     * Returns all existing counters.
-     *
-     * @return Collection of counters.
-     */
-    Collection<GridHadoopCounter> all();
-
-    /**
-     * Merges all counters from another store with existing counters.
-     *
-     * @param other Counters to merge with.
-     */
-    void merge(GridHadoopCounters other);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopFileBlock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopFileBlock.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopFileBlock.java
deleted file mode 100644
index b160685..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopFileBlock.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.tostring.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-/**
- * Hadoop file block.
- */
-public class GridHadoopFileBlock extends GridHadoopInputSplit {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    @GridToStringInclude
-    protected URI file;
-
-    /** */
-    @GridToStringInclude
-    protected long start;
-
-    /** */
-    @GridToStringInclude
-    protected long len;
-
-    /**
-     * Creates new file block.
-     */
-    public GridHadoopFileBlock() {
-        // No-op.
-    }
-
-    /**
-     * Creates new file block.
-     *
-     * @param hosts List of hosts where the block resides.
-     * @param file File URI.
-     * @param start Start position of the block in the file.
-     * @param len Length of the block.
-     */
-    public GridHadoopFileBlock(String[] hosts, URI file, long start, long len) {
-        A.notNull(hosts, "hosts", file, "file");
-
-        this.hosts = hosts;
-        this.file = file;
-        this.start = start;
-        this.len = len;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(file());
-        out.writeLong(start());
-        out.writeLong(length());
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        file = (URI)in.readObject();
-        start = in.readLong();
-        len = in.readLong();
-    }
-
-    /**
-     * @return Length.
-     */
-    public long length() {
-        return len;
-    }
-
-    /**
-     * @param len New length.
-     */
-    public void length(long len) {
-        this.len = len;
-    }
-
-    /**
-     * @return Start.
-     */
-    public long start() {
-        return start;
-    }
-
-    /**
-     * @param start New start.
-     */
-    public void start(long start) {
-        this.start = start;
-    }
-
-    /**
-     * @return File.
-     */
-    public URI file() {
-        return file;
-    }
-
-    /**
-     * @param file New file.
-     */
-    public void file(URI file) {
-        this.file = file;
-    }
-
-    /**
-     * @param hosts New hosts.
-     */
-    public void hosts(String[] hosts) {
-        A.notNull(hosts, "hosts");
-
-        this.hosts = hosts;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        if (this == o)
-            return true;
-
-        if (!(o instanceof GridHadoopFileBlock))
-            return false;
-
-        GridHadoopFileBlock that = (GridHadoopFileBlock)o;
-
-        return len == that.len && start == that.start && file.equals(that.file);
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        int res = file.hashCode();
-
-        res = 31 * res + (int)(start ^ (start >>> 32));
-        res = 31 * res + (int)(len ^ (len >>> 32));
-
-        return res;
-    }
-
-    /** {@inheritDoc} */
-    public String toString() {
-        return S.toString(GridHadoopFileBlock.class, this, "hosts", Arrays.toString(hosts));
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopInputSplit.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopInputSplit.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopInputSplit.java
deleted file mode 100644
index 3ed6359..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopInputSplit.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import java.io.*;
-
-/**
- * Abstract fragment of an input data source.
- */
-public abstract class GridHadoopInputSplit implements Externalizable {
-    /** */
-    protected String[] hosts;
-
-    /**
-     * Array of hosts where this input split resides.
-     *
-     * @return Hosts.
-     */
-    public String[] hosts() {
-        assert hosts != null;
-
-        return hosts;
-    }
-
-    /**
-     * This method must be implemented for purpose of internal implementation.
-     *
-     * @param obj Another object.
-     * @return {@code true} If objects are equal.
-     */
-    @Override public abstract boolean equals(Object obj);
-
-    /**
-     * This method must be implemented for purpose of internal implementation.
-     *
-     * @return Hash code of the object.
-     */
-    @Override public abstract int hashCode();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJob.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJob.java
deleted file mode 100644
index 2ba9c4f..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJob.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-
-import java.util.*;
-
-/**
- * Hadoop job.
- */
-public interface GridHadoopJob {
-    /**
-     * Gets job ID.
-     *
-     * @return Job ID.
-     */
-    public GridHadoopJobId id();
-
-    /**
-     * Gets job information.
-     *
-     * @return Job information.
-     */
-    public GridHadoopJobInfo info();
-
-    /**
-     * Gets collection of input splits for this job.
-     *
-     * @return Input splits.
-     */
-    public Collection<GridHadoopInputSplit> input() throws IgniteCheckedException;
-
-    /**
-     * Returns context for task execution.
-     *
-     * @param info Task info.
-     * @return Task Context.
-     * @throws IgniteCheckedException If failed.
-     */
-    public GridHadoopTaskContext getTaskContext(GridHadoopTaskInfo info) throws IgniteCheckedException;
-
-    /**
-     * Does all the needed initialization for the job. Will be called on each node where tasks for this job must
-     * be executed.
-     * <p>
-     * If job is running in external mode this method will be called on instance in GridGain node with parameter
-     * {@code false} and on instance in external process with parameter {@code true}.
-     *
-     * @param external If {@code true} then this job instance resides in external process.
-     * @param locNodeId Local node ID.
-     * @throws IgniteCheckedException If failed.
-     */
-    public void initialize(boolean external, UUID locNodeId) throws IgniteCheckedException;
-
-    /**
-     * Release all the resources.
-     * <p>
-     * If job is running in external mode this method will be called on instance in GridGain node with parameter
-     * {@code false} and on instance in external process with parameter {@code true}.
-     *
-     * @param external If {@code true} then this job instance resides in external process.
-     * @throws IgniteCheckedException If failed.
-     */
-    public void dispose(boolean external) throws IgniteCheckedException;
-
-    /**
-     * Prepare local environment for the task.
-     *
-     * @param info Task info.
-     * @throws IgniteCheckedException If failed.
-     */
-    public void prepareTaskEnvironment(GridHadoopTaskInfo info) throws IgniteCheckedException;
-
-    /**
-     * Cleans up local environment of the task.
-     *
-     * @param info Task info.
-     * @throws IgniteCheckedException If failed.
-     */
-    public void cleanupTaskEnvironment(GridHadoopTaskInfo info) throws IgniteCheckedException;
-
-    /**
-     * Cleans up the job staging directory.
-     */
-    void cleanupStagingDirectory();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobId.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobId.java
deleted file mode 100644
index dbc96c0..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobId.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Job ID.
- */
-public class GridHadoopJobId implements Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private UUID nodeId;
-
-    /** */
-    private int jobId;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public GridHadoopJobId() {
-        // No-op.
-    }
-
-    /**
-     * @param nodeId Node ID.
-     * @param jobId Job ID.
-     */
-    public GridHadoopJobId(UUID nodeId, int jobId) {
-        this.nodeId = nodeId;
-        this.jobId = jobId;
-    }
-
-    public UUID globalId() {
-        return nodeId;
-    }
-
-    public int localId() {
-        return jobId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeUuid(out, nodeId);
-        out.writeInt(jobId);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        nodeId = U.readUuid(in);
-        jobId = in.readInt();
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        if (this == o)
-            return true;
-
-        if (o == null || getClass() != o.getClass())
-            return false;
-
-        GridHadoopJobId that = (GridHadoopJobId) o;
-
-        if (jobId != that.jobId)
-            return false;
-
-        if (!nodeId.equals(that.nodeId))
-            return false;
-
-        return true;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        return 31 * nodeId.hashCode() + jobId;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return nodeId + "_" + jobId;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobInfo.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobInfo.java
deleted file mode 100644
index fa2a00d..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobInfo.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-
-/**
- * Compact job description.
- */
-public interface GridHadoopJobInfo extends Serializable {
-    /**
-     * Gets optional configuration property for the job.
-     *
-     * @param name Property name.
-     * @return Value or {@code null} if none.
-     */
-    @Nullable public String property(String name);
-
-    /**
-     * Checks whether job has combiner.
-     *
-     * @return {@code true} If job has combiner.
-     */
-    public boolean hasCombiner();
-
-    /**
-     * Checks whether job has reducer.
-     * Actual number of reducers will be in {@link GridHadoopMapReducePlan#reducers()}.
-     *
-     * @return Number of reducer.
-     */
-    public boolean hasReducer();
-
-    /**
-     * Creates new job instance for the given ID.
-     * {@link GridHadoopJobInfo} is reusable for multiple jobs while {@link GridHadoopJob} is for one job execution.
-     * This method will be called once for the same ID on one node, though it can be called on the same host
-     * multiple times from different processes (in case of multiple nodes on the same host or external execution).
-     *
-     * @param jobId Job ID.
-     * @param log Logger.
-     * @return Job.
-     * @throws IgniteCheckedException If failed.
-     */
-    GridHadoopJob createJob(GridHadoopJobId jobId, IgniteLogger log) throws IgniteCheckedException;
-
-    /**
-     * @return Number of reducers configured for job.
-     */
-    public int reducers();
-
-    /**
-     * Gets job name.
-     *
-     * @return Job name.
-     */
-    public String jobName();
-
-    /**
-     * Gets user name.
-     *
-     * @return User name.
-     */
-    public String user();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobPhase.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobPhase.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobPhase.java
deleted file mode 100644
index 0433f41..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobPhase.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-/**
- * Job run phase.
- */
-public enum GridHadoopJobPhase {
-    /** Job is running setup task. */
-    PHASE_SETUP,
-
-    /** Job is running map and combine tasks. */
-    PHASE_MAP,
-
-    /** Job has finished all map tasks and running reduce tasks. */
-    PHASE_REDUCE,
-
-    /** Job is stopping due to exception during any of the phases. */
-    PHASE_CANCELLING,
-
-    /** Job has finished execution. */
-    PHASE_COMPLETE
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobProperty.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobProperty.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobProperty.java
deleted file mode 100644
index 7793c3c..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobProperty.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.jetbrains.annotations.*;
-
-/**
- * Enumeration of optional properties supported by GridGain for Apache Hadoop.
- */
-public enum GridHadoopJobProperty {
-    /**
-     * Initial size for hashmap which stores output of mapper and will be used as input of combiner.
-     * <p>
-     * Setting it right allows to avoid rehashing.
-     */
-    COMBINER_HASHMAP_SIZE,
-
-    /**
-     * Initial size for hashmap which stores output of mapper or combiner and will be used as input of reducer.
-     * <p>
-     * Setting it right allows to avoid rehashing.
-     */
-    PARTITION_HASHMAP_SIZE,
-
-    /**
-     * Specifies number of concurrently running mappers for external execution mode.
-     * <p>
-     * If not specified, defaults to {@code Runtime.getRuntime().availableProcessors()}.
-     */
-    EXTERNAL_CONCURRENT_MAPPERS,
-
-    /**
-     * Specifies number of concurrently running reducers for external execution mode.
-     * <p>
-     * If not specified, defaults to {@code Runtime.getRuntime().availableProcessors()}.
-     */
-    EXTERNAL_CONCURRENT_REDUCERS,
-
-    /**
-     * Delay in milliseconds after which GridGain server will reply job status.
-     */
-    JOB_STATUS_POLL_DELAY,
-
-    /**
-     * Size in bytes of single memory page which will be allocated for data structures in shuffle.
-     * <p>
-     * By default is {@code 32 * 1024}.
-     */
-    SHUFFLE_OFFHEAP_PAGE_SIZE,
-
-    /**
-     * If set to {@code true} then input for combiner will not be sorted by key.
-     * Internally hash-map will be used instead of sorted one, so {@link Object#equals(Object)}
-     * and {@link Object#hashCode()} methods of key must be implemented consistently with
-     * comparator for that type. Grouping comparator is not supported if this setting is {@code true}.
-     * <p>
-     * By default is {@code false}.
-     */
-    SHUFFLE_COMBINER_NO_SORTING,
-
-    /**
-     * If set to {@code true} then input for reducer will not be sorted by key.
-     * Internally hash-map will be used instead of sorted one, so {@link Object#equals(Object)}
-     * and {@link Object#hashCode()} methods of key must be implemented consistently with
-     * comparator for that type. Grouping comparator is not supported if this setting is {@code true}.
-     * <p>
-     * By default is {@code false}.
-     */
-    SHUFFLE_REDUCER_NO_SORTING;
-
-    /** */
-    private final String ptyName;
-
-    /**
-     *
-     */
-    GridHadoopJobProperty() {
-        ptyName = "gridgain." + name().toLowerCase().replace('_', '.');
-    }
-
-    /**
-     * @return Property name.
-     */
-    public String propertyName() {
-        return ptyName;
-    }
-
-    /**
-     * @param jobInfo Job info.
-     * @param pty Property.
-     * @param dflt Default value.
-     * @return Property value.
-     */
-    public static String get(GridHadoopJobInfo jobInfo, GridHadoopJobProperty pty, @Nullable String dflt) {
-        String res = jobInfo.property(pty.propertyName());
-
-        return res == null ? dflt : res;
-    }
-
-    /**
-     * @param jobInfo Job info.
-     * @param pty Property.
-     * @param dflt Default value.
-     * @return Property value.
-     */
-    public static int get(GridHadoopJobInfo jobInfo, GridHadoopJobProperty pty, int dflt) {
-        String res = jobInfo.property(pty.propertyName());
-
-        return res == null ? dflt : Integer.parseInt(res);
-    }
-
-    /**
-     * @param jobInfo Job info.
-     * @param pty Property.
-     * @param dflt Default value.
-     * @return Property value.
-     */
-    public static boolean get(GridHadoopJobInfo jobInfo, GridHadoopJobProperty pty, boolean dflt) {
-        String res = jobInfo.property(pty.propertyName());
-
-        return res == null ? dflt : Boolean.parseBoolean(res);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobStatus.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobStatus.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobStatus.java
deleted file mode 100644
index 18166c5..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopJobStatus.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.io.*;
-
-/**
- * Hadoop job status.
- */
-public class GridHadoopJobStatus implements Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** Job ID. */
-    private GridHadoopJobId jobId;
-
-    /** Job name. */
-    private String jobName;
-
-    /** User. */
-    private String usr;
-
-    /** Pending mappers count. */
-    private int pendingMapperCnt;
-
-    /** Pending reducers count. */
-    private int pendingReducerCnt;
-
-    /** Total mappers count. */
-    private int totalMapperCnt;
-
-    /** Total reducers count. */
-    private int totalReducerCnt;
-    /** Phase. */
-    private GridHadoopJobPhase jobPhase;
-
-    /** */
-    private boolean failed;
-
-    /** Version. */
-    private long ver;
-
-    /**
-     * {@link Externalizable} support.
-     */
-    public GridHadoopJobStatus() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param jobId Job ID.
-     * @param jobName Job name.
-     * @param usr User.
-     * @param pendingMapperCnt Pending mappers count.
-     * @param pendingReducerCnt Pending reducers count.
-     * @param totalMapperCnt Total mappers count.
-     * @param totalReducerCnt Total reducers count.
-     * @param jobPhase Job phase.
-     * @param failed Failed.
-     * @param ver Version.
-     */
-    public GridHadoopJobStatus(
-        GridHadoopJobId jobId,
-        String jobName,
-        String usr,
-        int pendingMapperCnt,
-        int pendingReducerCnt,
-        int totalMapperCnt,
-        int totalReducerCnt,
-        GridHadoopJobPhase jobPhase,
-        boolean failed,
-        long ver
-    ) {
-        this.jobId = jobId;
-        this.jobName = jobName;
-        this.usr = usr;
-        this.pendingMapperCnt = pendingMapperCnt;
-        this.pendingReducerCnt = pendingReducerCnt;
-        this.totalMapperCnt = totalMapperCnt;
-        this.totalReducerCnt = totalReducerCnt;
-        this.jobPhase = jobPhase;
-        this.failed = failed;
-        this.ver = ver;
-    }
-
-    /**
-     * @return Job ID.
-     */
-    public GridHadoopJobId jobId() {
-        return jobId;
-    }
-
-    /**
-     * @return Job name.
-     */
-    public String jobName() {
-        return jobName;
-    }
-
-    /**
-     * @return User.
-     */
-    public String user() {
-        return usr;
-    }
-
-    /**
-     * @return Pending mappers count.
-     */
-    public int pendingMapperCnt() {
-        return pendingMapperCnt;
-    }
-
-    /**
-     * @return Pending reducers count.
-     */
-    public int pendingReducerCnt() {
-        return pendingReducerCnt;
-    }
-
-    /**
-     * @return Total mappers count.
-     */
-    public int totalMapperCnt() {
-        return totalMapperCnt;
-    }
-
-    /**
-     * @return Total reducers count.
-     */
-    public int totalReducerCnt() {
-        return totalReducerCnt;
-    }
-
-    /**
-     * @return Version.
-     */
-    public long version() {
-        return ver;
-    }
-
-    /**
-     * @return Job phase.
-     */
-    public GridHadoopJobPhase jobPhase() {
-        return jobPhase;
-    }
-
-    /**
-     * @return {@code true} If the job failed.
-     */
-    public boolean isFailed() {
-        return failed;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridHadoopJobStatus.class, this);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeObject(jobId);
-        U.writeString(out, jobName);
-        U.writeString(out, usr);
-        out.writeInt(pendingMapperCnt);
-        out.writeInt(pendingReducerCnt);
-        out.writeInt(totalMapperCnt);
-        out.writeInt(totalReducerCnt);
-        out.writeObject(jobPhase);
-        out.writeBoolean(failed);
-        out.writeLong(ver);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        jobId = (GridHadoopJobId)in.readObject();
-        jobName = U.readString(in);
-        usr = U.readString(in);
-        pendingMapperCnt = in.readInt();
-        pendingReducerCnt = in.readInt();
-        totalMapperCnt = in.readInt();
-        totalReducerCnt = in.readInt();
-        jobPhase = (GridHadoopJobPhase)in.readObject();
-        failed = in.readBoolean();
-        ver = in.readLong();
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlan.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlan.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlan.java
deleted file mode 100644
index f0fb00a..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlan.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.util.*;
-
-/**
- * Map-reduce job execution plan.
- */
-public interface GridHadoopMapReducePlan extends Serializable {
-    /**
-     * Gets collection of file blocks for which mappers should be executed.
-     *
-     * @param nodeId Node ID to check.
-     * @return Collection of file blocks or {@code null} if no mappers should be executed on given node.
-     */
-    @Nullable public Collection<GridHadoopInputSplit> mappers(UUID nodeId);
-
-    /**
-     * Gets reducer IDs that should be started on given node.
-     *
-     * @param nodeId Node ID to check.
-     * @return Array of reducer IDs.
-     */
-    @Nullable public int[] reducers(UUID nodeId);
-
-    /**
-     * Gets collection of all node IDs involved in map part of job execution.
-     *
-     * @return Collection of node IDs.
-     */
-    public Collection<UUID> mapperNodeIds();
-
-    /**
-     * Gets collection of all node IDs involved in reduce part of job execution.
-     *
-     * @return Collection of node IDs.
-     */
-    public Collection<UUID> reducerNodeIds();
-
-    /**
-     * Gets overall number of mappers for the job.
-     *
-     * @return Number of mappers.
-     */
-    public int mappers();
-
-    /**
-     * Gets overall number of reducers for the job.
-     *
-     * @return Number of reducers.
-     */
-    public int reducers();
-
-    /**
-     * Gets node ID for reducer.
-     *
-     * @param reducer Reducer.
-     * @return Node ID.
-     */
-    public UUID nodeForReducer(int reducer);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlanner.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlanner.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlanner.java
deleted file mode 100644
index 1b5443c..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopMapReducePlanner.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.cluster.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * Map-reduce execution planner.
- */
-public interface GridHadoopMapReducePlanner {
-    /**
-     * Prepares map-reduce execution plan for the given job and topology.
-     *
-     * @param job Job.
-     * @param top Topology.
-     * @param oldPlan Old plan in case of partial failure.
-     * @return Map reduce plan.
-     */
-    public GridHadoopMapReducePlan preparePlan(GridHadoopJob job, Collection<ClusterNode> top,
-        @Nullable GridHadoopMapReducePlan oldPlan) throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopPartitioner.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopPartitioner.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopPartitioner.java
deleted file mode 100644
index a3d6bd1..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopPartitioner.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-/**
- * Partitioner.
- */
-public interface GridHadoopPartitioner {
-    /**
-     * Gets partition which is actually a reducer index for the given key and value pair.
-     *
-     * @param key Key.
-     * @param val Value.
-     * @param parts Number of partitions.
-     * @return Partition.
-     */
-    public int partition(Object key, Object val, int parts);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopSerialization.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopSerialization.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopSerialization.java
deleted file mode 100644
index 4e3d532..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopSerialization.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-
-/**
- * Hadoop serialization. Not thread safe object, must be created for each thread or correctly synchronized.
- */
-public interface GridHadoopSerialization extends AutoCloseable {
-    /**
-     * Writes the given object to output.
-     *
-     * @param out Output.
-     * @param obj Object to serialize.
-     * @throws IgniteCheckedException If failed.
-     */
-    public void write(DataOutput out, Object obj) throws IgniteCheckedException;
-
-    /**
-     * Reads object from the given input optionally reusing given instance.
-     *
-     * @param in Input.
-     * @param obj Object.
-     * @return New object or reused instance.
-     * @throws IgniteCheckedException If failed.
-     */
-    public Object read(DataInput in, @Nullable Object obj) throws IgniteCheckedException;
-
-    /**
-     * Finalise the internal objects.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    @Override public void close() throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTask.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTask.java
deleted file mode 100644
index 9a99226..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTask.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-
-import java.io.*;
-
-/**
- * Hadoop task.
- */
-public abstract class GridHadoopTask {
-    /** */
-    private GridHadoopTaskInfo taskInfo;
-
-    /**
-     * Creates task.
-     *
-     * @param taskInfo Task info.
-     */
-    protected GridHadoopTask(GridHadoopTaskInfo taskInfo) {
-        assert taskInfo != null;
-
-        this.taskInfo = taskInfo;
-    }
-
-    /**
-     * For {@link Externalizable}.
-     */
-    @SuppressWarnings("ConstructorNotProtectedInAbstractClass")
-    public GridHadoopTask() {
-        // No-op.
-    }
-
-    /**
-     * Gets task info.
-     *
-     * @return Task info.
-     */
-    public GridHadoopTaskInfo info() {
-        return taskInfo;
-    }
-
-    /**
-     * Runs task.
-     *
-     * @param taskCtx Context.
-     * @throws org.apache.ignite.IgniteInterruptedException If interrupted.
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract void run(GridHadoopTaskContext taskCtx) throws IgniteCheckedException;
-
-    /**
-     * Interrupts task execution.
-     */
-    public abstract void cancel();
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskContext.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskContext.java
deleted file mode 100644
index 2bc83bd..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskContext.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-
-import java.util.*;
-
-/**
- * Task context.
- */
-public abstract class GridHadoopTaskContext {
-    /** */
-    private final GridHadoopJob job;
-
-    /** */
-    private GridHadoopTaskInput input;
-
-    /** */
-    private GridHadoopTaskOutput output;
-
-    /** */
-    private GridHadoopTaskInfo taskInfo;
-
-    /**
-     * @param taskInfo Task info.
-     * @param job Job.
-     */
-    protected GridHadoopTaskContext(GridHadoopTaskInfo taskInfo, GridHadoopJob job) {
-        this.taskInfo = taskInfo;
-        this.job = job;
-    }
-
-    /**
-     * Gets task info.
-     *
-     * @return Task info.
-     */
-    public GridHadoopTaskInfo taskInfo() {
-        return taskInfo;
-    }
-
-    /**
-     * Set a new task info.
-     *
-     * @param info Task info.
-     */
-    public void taskInfo(GridHadoopTaskInfo info) {
-        taskInfo = info;
-    }
-
-    /**
-     * Gets task output.
-     *
-     * @return Task output.
-     */
-    public GridHadoopTaskOutput output() {
-        return output;
-    }
-
-    /**
-     * Gets task input.
-     *
-     * @return Task input.
-     */
-    public GridHadoopTaskInput input() {
-        return input;
-    }
-
-    /**
-     * @return Job.
-     */
-    public GridHadoopJob job() {
-        return job;
-    }
-
-    /**
-     * Gets counter for the given name.
-     *
-     * @param grp Counter group's name.
-     * @param name Counter name.
-     * @return Counter.
-     */
-    public abstract <T extends GridHadoopCounter> T counter(String grp, String name, Class<T> cls);
-
-    /**
-     * Gets all known counters.
-     *
-     * @return Unmodifiable collection of counters.
-     */
-    public abstract GridHadoopCounters counters();
-
-    /**
-     * Sets input of the task.
-     *
-     * @param in Input.
-     */
-    public void input(GridHadoopTaskInput in) {
-        input = in;
-    }
-
-    /**
-     * Sets output of the task.
-     *
-     * @param out Output.
-     */
-    public void output(GridHadoopTaskOutput out) {
-        output = out;
-    }
-
-    /**
-     * Gets partitioner.
-     *
-     * @return Partitioner.
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract GridHadoopPartitioner partitioner() throws IgniteCheckedException;
-
-    /**
-     * Gets serializer for values.
-     *
-     * @return Serializer for keys.
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract GridHadoopSerialization keySerialization() throws IgniteCheckedException;
-
-    /**
-     * Gets serializer for values.
-     *
-     * @return Serializer for values.
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract GridHadoopSerialization valueSerialization() throws IgniteCheckedException;
-
-    /**
-     * Gets sorting comparator.
-     *
-     * @return Comparator for sorting.
-     */
-    public abstract Comparator<Object> sortComparator();
-
-    /**
-     * Gets comparator for grouping on combine or reduce operation.
-     *
-     * @return Comparator.
-     */
-    public abstract Comparator<Object> groupComparator();
-
-    /**
-     * Execute current task.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract void run() throws IgniteCheckedException;
-
-    /**
-     * Cancel current task execution.
-     */
-    public abstract void cancel();
-
-    /**
-     * Prepare local environment for the task.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract void prepareTaskEnvironment() throws IgniteCheckedException;
-
-    /**
-     *  Cleans up local environment of the task.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    public abstract void cleanupTaskEnvironment() throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInfo.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInfo.java
deleted file mode 100644
index 0b9509f..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInfo.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-
-/**
- * Task info.
- */
-public class GridHadoopTaskInfo implements Externalizable {
-    /** */
-    private static final long serialVersionUID = 0L;
-
-    /** */
-    private GridHadoopTaskType type;
-
-    /** */
-    private GridHadoopJobId jobId;
-
-    /** */
-    private int taskNum;
-
-    /** */
-    private int attempt;
-
-    /** */
-    private GridHadoopInputSplit inputSplit;
-
-    /**
-     * For {@link Externalizable}.
-     */
-    public GridHadoopTaskInfo() {
-        // No-op.
-    }
-
-    /**
-     * Creates new task info.
-     *
-     * @param type Task type.
-     * @param jobId Job id.
-     * @param taskNum Task number.
-     * @param attempt Attempt for this task.
-     * @param inputSplit Input split.
-     */
-    public GridHadoopTaskInfo(GridHadoopTaskType type, GridHadoopJobId jobId, int taskNum, int attempt,
-        @Nullable GridHadoopInputSplit inputSplit) {
-        this.type = type;
-        this.jobId = jobId;
-        this.taskNum = taskNum;
-        this.attempt = attempt;
-        this.inputSplit = inputSplit;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        out.writeByte(type.ordinal());
-        out.writeObject(jobId);
-        out.writeInt(taskNum);
-        out.writeInt(attempt);
-        out.writeObject(inputSplit);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        type = GridHadoopTaskType.fromOrdinal(in.readByte());
-        jobId = (GridHadoopJobId)in.readObject();
-        taskNum = in.readInt();
-        attempt = in.readInt();
-        inputSplit = (GridHadoopInputSplit)in.readObject();
-    }
-
-    /**
-     * @return Type.
-     */
-    public GridHadoopTaskType type() {
-        return type;
-    }
-
-    /**
-     * @return Job id.
-     */
-    public GridHadoopJobId jobId() {
-        return jobId;
-    }
-
-    /**
-     * @return Task number.
-     */
-    public int taskNumber() {
-        return taskNum;
-    }
-
-    /**
-     * @return Attempt.
-     */
-    public int attempt() {
-        return attempt;
-    }
-
-    /**
-     * @return Input split.
-     */
-    @Nullable public GridHadoopInputSplit inputSplit() {
-        return inputSplit;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean equals(Object o) {
-        if (this == o)
-            return true;
-
-        if (!(o instanceof GridHadoopTaskInfo))
-            return false;
-
-        GridHadoopTaskInfo that = (GridHadoopTaskInfo)o;
-
-        return attempt == that.attempt && taskNum == that.taskNum && jobId.equals(that.jobId) && type == that.type;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int hashCode() {
-        int res = type.hashCode();
-
-        res = 31 * res + jobId.hashCode();
-        res = 31 * res + taskNum;
-        res = 31 * res + attempt;
-
-        return res;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String toString() {
-        return S.toString(GridHadoopTaskInfo.class, this);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInput.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInput.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInput.java
deleted file mode 100644
index cfd7e0c..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskInput.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-
-import java.util.*;
-
-/**
- * Task input.
- */
-public interface GridHadoopTaskInput extends AutoCloseable {
-    /**
-     * Moves cursor to the next element.
-     *
-     * @return {@code false} If input is exceeded.
-     */
-    boolean next();
-
-    /**
-     * Gets current key.
-     *
-     * @return Key.
-     */
-    Object key();
-
-    /**
-     * Gets values for current key.
-     *
-     * @return Values.
-     */
-    Iterator<?> values();
-
-    /**
-     * Closes input.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    @Override public void close() throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskOutput.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskOutput.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskOutput.java
deleted file mode 100644
index 87f9158..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskOutput.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-
-/**
- * Task output.
- */
-public interface GridHadoopTaskOutput extends AutoCloseable {
-    /**
-     * Writes key and value to the output.
-     *
-     * @param key Key.
-     * @param val Value.
-     */
-    public void write(Object key, Object val) throws IgniteCheckedException;
-
-    /**
-     * Closes output.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    @Override public void close() throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskType.java b/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskType.java
deleted file mode 100644
index ae1f572..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/GridHadoopTaskType.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.jetbrains.annotations.*;
-
-/**
-* Task type.
-*/
-public enum GridHadoopTaskType {
-    /** Setup task. */
-    SETUP,
-
-    /** Map task. */
-    MAP,
-
-    /** Reduce task. */
-    REDUCE,
-
-    /** Combine task. */
-    COMBINE,
-
-    /** Commit task. */
-    COMMIT,
-
-    /** Abort task. */
-    ABORT;
-
-    /** Enumerated values. */
-    private static final GridHadoopTaskType[] VALS = values();
-
-    /**
-     * Efficiently gets enumerated value from its ordinal.
-     *
-     * @param ord Ordinal value.
-     * @return Enumerated value.
-     */
-    @Nullable public static GridHadoopTaskType fromOrdinal(byte ord) {
-        return ord >= 0 && ord < VALS.length ? VALS[ord] : null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/hadoop/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/hadoop/package.html b/modules/core/src/main/java/org/apache/ignite/hadoop/package.html
deleted file mode 100644
index 6c751ed..0000000
--- a/modules/core/src/main/java/org/apache/ignite/hadoop/package.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<body>
-    <!-- Package description. -->
-    Contains Hadoop APIs.
-</body>
-</html>


[28/50] [abbrv] incubator-ignite git commit: Merge branch 'sprint-1' into ignite-16

Posted by se...@apache.org.
Merge branch 'sprint-1' into ignite-16

Conflicts:
	modules/yardstick/src/main/java/org/apache/ignite/yardstick/cache/model/SampleValue.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/2636e2c1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/2636e2c1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/2636e2c1

Branch: refs/heads/ignite-132
Commit: 2636e2c1163fac1b86fbcbe0fcec8d4dadaf8aea
Parents: d0444b7 61a70d9
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Mon Feb 2 13:31:31 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Mon Feb 2 13:31:31 2015 +0300

----------------------------------------------------------------------
 assembly/libs/readme.txt                        |     4 +-
 assembly/release-base-fabric.xml                |     4 +-
 assembly/release-base.xml                       |     6 +-
 assembly/release-hadoop.xml                     |     6 +-
 bin/ggrouter.bat                                |    33 -
 bin/ggrouter.sh                                 |    50 -
 bin/ggstart.bat                                 |   228 -
 bin/ggstart.sh                                  |   176 -
 bin/ggvisorcmd.bat                              |   144 -
 bin/ggvisorcmd.sh                               |   124 -
 bin/ignite.bat                                  |   228 +
 bin/ignite.sh                                   |   176 +
 bin/igniterouter.bat                            |    33 +
 bin/igniterouter.sh                             |    50 +
 bin/ignitevisorcmd.bat                          |   144 +
 bin/ignitevisorcmd.sh                           |   124 +
 bin/include/functions.sh                        |    42 +-
 bin/include/hadoop-classpath.bat                |     2 +-
 bin/include/hadoop-classpath.sh                 |     4 +-
 bin/include/parseargs.bat                       |     2 +-
 bin/include/parseargs.sh                        |     6 +-
 bin/include/service.sh                          |    12 +-
 bin/include/setenv.bat                          |    28 +-
 bin/include/setenv.sh                           |    34 +-
 bin/include/target-classpath.bat                |     8 +-
 bin/include/target-classpath.sh                 |    14 +-
 bin/setup-hadoop.bat                            |     2 +-
 bin/setup-hadoop.sh                             |    12 +-
 config/gridgain-log4j.xml                       |   152 -
 config/hadoop/default-config.xml                |     2 +-
 config/ignite-log4j.xml                         |   152 +
 config/java.util.logging.properties             |    16 +-
 config/router/default-router.xml                |     2 +-
 docs/hadoop_readme.md                           |     6 +-
 docs/ignite_readme.md                           |    12 +-
 docs/mapred-site.ignite.xml                     |     2 +-
 examples/config/example-cache.xml               |     2 +-
 examples/config/example-streamer.xml            |     8 +-
 examples/config/filesystem/example-ggfs.xml     |     2 +-
 examples/config/servlet/WEB-INF/web.xml         |     4 +-
 examples/rest/http-rest-example.php             |     2 +-
 examples/rest/memcache-rest-example.php         |     2 +-
 .../compute/ComputeBroadcastExample.java        |     2 +-
 .../compute/ComputeCallableExample.java         |     2 +-
 .../examples/compute/ComputeClosureExample.java |     2 +-
 .../compute/ComputeContinuousMapperExample.java |     2 +-
 .../compute/ComputeExecutorServiceExample.java  |     2 +-
 .../ComputeFibonacciContinuationExample.java    |     2 +-
 .../compute/ComputeProjectionExample.java       |     2 +-
 .../examples/compute/ComputeReducerExample.java |     2 +-
 .../compute/ComputeRunnableExample.java         |     2 +-
 .../compute/ComputeScheduleExample.java         |     2 +-
 .../examples/compute/ComputeTaskMapExample.java |     2 +-
 .../compute/ComputeTaskSplitExample.java        |     2 +-
 .../compute/montecarlo/CreditRiskExample.java   |     2 +-
 .../examples/datagrid/CacheAffinityExample.java |     2 +-
 .../examples/datagrid/CacheApiExample.java      |     2 +-
 .../datagrid/CacheContinuousQueryExample.java   |     2 +-
 .../datagrid/CacheDataLoaderExample.java        |     2 +-
 .../examples/datagrid/CacheEventsExample.java   |     2 +-
 .../datagrid/CachePopularNumbersExample.java    |     2 +-
 .../examples/datagrid/CachePutGetExample.java   |     2 +-
 .../examples/datagrid/CacheQueryExample.java    |     2 +-
 .../datagrid/CacheTransactionExample.java       |     2 +-
 .../datastructures/CacheAtomicLongExample.java  |     2 +-
 .../CacheAtomicReferenceExample.java            |     2 +-
 .../CacheAtomicSequenceExample.java             |     2 +-
 .../CacheAtomicStampedExample.java              |     2 +-
 .../CacheCountDownLatchExample.java             |     2 +-
 .../datastructures/CacheQueueExample.java       |     2 +-
 .../datastructures/CacheSetExample.java         |     2 +-
 .../hibernate/HibernateL2CacheExample.java      |     2 +-
 .../starschema/CacheStarSchemaExample.java      |     2 +-
 .../ignite/examples/events/EventsExample.java   |     2 +-
 .../ignite/examples/ggfs/GgfsExample.java       |     2 +-
 .../examples/ggfs/GgfsMapReduceExample.java     |     2 +-
 .../ignite/examples/ggfs/GgfsNodeStartup.java   |     4 +-
 .../examples/messaging/MessagingExample.java    |     2 +-
 .../messaging/MessagingPingPongExample.java     |     2 +-
 .../MessagingPingPongListenActorExample.java    |     2 +-
 .../misc/deployment/DeploymentExample.java      |     2 +-
 .../misc/springbean/SpringBeanExample.java      |     2 +-
 .../examples/services/ServicesExample.java      |     2 +-
 .../streaming/StreamingCheckInExample.java      |     8 +-
 .../StreamingPopularNumbersExample.java         |     8 +-
 .../streaming/StreamingPriceBarsExample.java    |     8 +-
 .../StreamingRunningAverageExample.java         |     8 +-
 .../apache/ignite/examples/ComputeExample.java  |    59 +
 .../ignite/examples/MessagingExample.java       |   166 +
 .../org/gridgain/examples/ComputeExample.java   |    59 -
 .../org/gridgain/examples/MessagingExample.java |   166 -
 .../examples/ScalarCacheAffinityExample1.scala  |     2 +-
 .../examples/ScalarCacheAffinityExample2.scala  |     2 +-
 .../ScalarCacheAffinitySimpleExample.scala      |     2 +-
 .../scalar/examples/ScalarCacheExample.scala    |     2 +-
 .../ScalarCachePopularNumbersExample.scala      |     2 +-
 .../examples/ScalarCacheQueryExample.scala      |     2 +-
 .../scalar/examples/ScalarClosureExample.scala  |     2 +-
 .../examples/ScalarContinuationExample.scala    |     2 +-
 .../examples/ScalarCreditRiskExample.scala      |     2 +-
 .../examples/ScalarPiCalculationExample.scala   |     2 +-
 .../scalar/examples/ScalarPingPongExample.scala |     2 +-
 .../scalar/examples/ScalarPrimeExample.scala    |     2 +-
 .../scalar/examples/ScalarScheduleExample.scala |     2 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |     2 +-
 .../scalar/examples/ScalarTaskExample.scala     |     2 +-
 .../examples/ScalarWorldShortestMapReduce.scala |     2 +-
 .../GridMonteCarloExamplesSelfTest.java         |     4 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |     2 +-
 .../ScalarExamplesSelfTestSuite.scala           |     2 +-
 ipc/shmem/Makefile.am                           |     2 +-
 ipc/shmem/Makefile.in                           |     2 +-
 ipc/shmem/configure                             |     4 +-
 ipc/shmem/configure.ac                          |     2 +-
 ipc/shmem/ggshmem/Makefile.am                   |    23 -
 ipc/shmem/ggshmem/Makefile.in                   |   589 -
 ..._util_ipc_shmem_GridIpcSharedMemoryUtils.cpp |   882 --
 ipc/shmem/igniteshmem/Makefile.am               |    23 +
 ipc/shmem/igniteshmem/Makefile.in               |   589 +
 ...rnal_util_ipc_shmem_IpcSharedMemoryUtils.cpp |   882 ++
 ipc/shmem/include/Makefile.am                   |     2 +-
 ipc/shmem/include/Makefile.in                   |     2 +-
 ...ternal_util_ipc_shmem_IpcSharedMemoryUtils.h |   117 +
 ...id_util_ipc_shmem_GridIpcSharedMemoryUtils.h |   117 -
 ipc/shmem/readme.txt                            |     9 +-
 modules/aop/readme.txt                          |     2 +-
 .../GridifySetToXXXNonSpringAopSelfTest.java    |    20 +-
 .../GridifySetToXXXSpringAopSelfTest.java       |    20 +-
 .../ignite/gridify/NonSpringAopSelfTest.java    |    20 +-
 .../optimized/OptimizedMarshallerAopTest.java   |     4 +-
 .../testsuites/IgniteAopSelfTestSuite.java      |     2 +-
 .../gridify/ExternalNonSpringAopSelfTest.java   |    20 +-
 modules/aws/readme.txt                          |     2 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |     4 +-
 modules/clients/src/test/bin/start-nodes-ssh.sh |     2 +-
 modules/clients/src/test/bin/start-nodes.cmd    |    24 +-
 modules/clients/src/test/bin/start-nodes.sh     |    34 +-
 .../client/ClientDefaultCacheSelfTest.java      |     4 +-
 .../client/ClientTopologyCacheSelfTest.java     |     2 +-
 .../ClientPropertiesConfigurationSelfTest.java  |     4 +-
 .../integration/ClientAbstractSelfTest.java     |     6 +-
 .../client/router/ClientFailedInitSelfTest.java |     4 +-
 .../client/router/RouterFactorySelfTest.java    |     4 +-
 .../JettyRestProcessorAbstractSelfTest.java     |     4 +-
 .../rest/RestBinaryProtocolSelfTest.java        |     2 +-
 .../rest/TaskCommandHandlerSelfTest.java        |     4 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |     6 +-
 .../src/test/resources/jetty/rest-jetty-ssl.xml |    10 +-
 .../src/test/resources/jetty/rest-jetty.xml     |     8 +-
 .../test/resources/jetty/router-jetty-ssl.xml   |     8 +-
 .../src/test/resources/jetty/router-jetty.xml   |     8 +-
 modules/clients/src/test/resources/log4j.xml    |     4 +-
 .../clients/src/test/resources/spring-cache.xml |     2 +-
 .../src/test/resources/spring-router-ssl.xml    |     4 +-
 .../src/test/resources/spring-router.xml        |     4 +-
 .../src/test/resources/spring-server-node.xml   |     2 +-
 .../test/resources/spring-server-ssl-node.xml   |     2 +-
 .../java/META-INF/native/linux64/libggshmem.so  |   Bin 138023 -> 0 bytes
 .../META-INF/native/linux64/libigniteshmem.so   |   Bin 0 -> 138345 bytes
 .../java/META-INF/native/osx/libggshmem.dylib   |   Bin 32940 -> 0 bytes
 .../META-INF/native/osx/libigniteshmem.dylib    |   Bin 0 -> 33116 bytes
 .../apache/ignite/IgniteBasicWarmupClosure.java |     6 +-
 .../apache/ignite/IgniteCheckedException.java   |     2 +-
 .../java/org/apache/ignite/IgniteCluster.java   |     6 +-
 .../java/org/apache/ignite/IgniteException.java |     2 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |     4 +-
 .../java/org/apache/ignite/IgniteLogger.java    |     6 +-
 .../apache/ignite/IgniteSystemProperties.java   |   192 +-
 .../main/java/org/apache/ignite/Ignition.java   |    16 +-
 .../apache/ignite/cache/CacheConfiguration.java |     3 +-
 .../CacheConsistentHashAffinityFunction.java    |     2 +-
 .../apache/ignite/cache/query/CacheQuery.java   |     3 +-
 .../cache/query/CacheQuerySqlFunction.java      |     4 +-
 .../cache/query/annotations/QuerySqlField.java  |     2 +-
 .../query/annotations/QuerySqlFunction.java     |     2 +-
 .../apache/ignite/cache/store/CacheStore.java   |     2 +-
 .../apache/ignite/client/GridClientCompute.java |     8 +-
 .../ignite/client/router/GridRouterFactory.java |     4 +-
 .../impl/GridRouterCommandLineStartup.java      |     4 +-
 .../router/impl/GridTcpRouterNioParser.java     |     4 +-
 .../apache/ignite/compute/gridify/Gridify.java  |     2 +-
 .../ignite/compute/gridify/GridifySetToSet.java |     4 +-
 .../compute/gridify/GridifySetToValue.java      |     4 +-
 .../ClientConnectionConfiguration.java          |    16 +-
 .../configuration/GridQueryConfiguration.java   |   201 -
 .../configuration/IgniteConfiguration.java      |    80 +-
 .../configuration/IgniteDeploymentMode.java     |     4 +-
 .../configuration/IgniteQueryConfiguration.java |   201 +
 .../apache/ignite/fs/IgniteFsConfiguration.java |     2 +-
 .../ignite/internal/GridKernalContextImpl.java  |     2 +-
 .../apache/ignite/internal/GridLoggerProxy.java |     4 +-
 .../internal/GridPerformanceSuggestions.java    |     4 +-
 .../apache/ignite/internal/GridProductImpl.java |     2 +-
 .../ignite/internal/IgniteInternalFuture.java   |     8 +-
 .../apache/ignite/internal/IgniteKernal.java    |    32 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |    54 +-
 .../GridDeploymentPerLoaderStore.java           |    20 +-
 .../GridDeploymentPerVersionStore.java          |     4 +-
 .../processors/cache/GridCacheAdapter.java      |    23 +-
 .../cache/GridCacheDeploymentManager.java       |   163 +-
 .../cache/GridCacheMvccCandidate.java           |     4 +-
 .../GridCachePartitionExchangeManager.java      |     2 +-
 .../cache/GridCachePreloaderAdapter.java        |     2 +-
 .../processors/cache/GridCacheProcessor.java    |     9 +-
 .../processors/cache/GridCacheStoreManager.java |    49 +-
 .../processors/cache/GridCacheSwapManager.java  |     3 +-
 .../processors/cache/GridCacheUtils.java        |     2 +-
 .../cache/GridCacheWriteBehindStore.java        |    19 +-
 .../processors/cache/IgniteCacheProxy.java      |    24 +-
 .../distributed/dht/GridDhtLocalPartition.java  |     2 +-
 .../dht/GridPartitionedGetFuture.java           |     2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |     4 +-
 .../preloader/GridDhtPartitionDemandPool.java   |     2 +-
 .../distributed/near/GridNearAtomicCache.java   |     2 +-
 .../distributed/near/GridNearGetFuture.java     |     2 +-
 .../transactions/IgniteTxLocalAdapter.java      |    42 +-
 .../cache/transactions/IgniteTxManager.java     |    10 +-
 .../internal/processors/fs/GridGgfsServer.java  |    26 +-
 .../processors/fs/GridGgfsServerManager.java    |     8 +-
 .../processors/fs/IgniteFsNoopProcessor.java    |     2 +-
 .../processors/fs/IgniteFsProcessor.java        |    12 +-
 .../processors/fs/IgniteFsProcessorAdapter.java |     2 +-
 .../processors/job/GridJobProcessor.java        |     2 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |     4 +-
 .../handlers/log/GridLogCommandHandler.java     |     4 +-
 .../handlers/task/GridTaskCommandHandler.java   |     2 +-
 .../protocols/tcp/GridClientPacketType.java     |     4 +-
 .../protocols/tcp/GridMemcachedMessage.java     |     4 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |    18 +-
 .../service/GridServiceProcessor.java           |     2 +-
 .../streamer/GridStreamProcessor.java           |    11 +-
 .../processors/streamer/IgniteStreamerEx.java   |     3 +-
 .../processors/streamer/IgniteStreamerImpl.java |     5 +-
 .../internal/util/GridConcurrentFactory.java    |     3 +-
 .../internal/util/GridConfigurationFinder.java  |     4 +-
 .../internal/util/GridReflectionCache.java      |     3 +-
 .../apache/ignite/internal/util/GridUtils.java  |  9100 -----------
 .../ignite/internal/util/IgniteUtils.java       |  9141 +++++++++++
 .../util/future/GridFinishedFuture.java         |     2 +-
 .../internal/util/future/GridFutureAdapter.java |     4 +-
 .../internal/util/io/GridUnsafeDataInput.java   |     2 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |     2 +-
 .../internal/util/ipc/GridIpcEndpoint.java      |    49 -
 .../util/ipc/GridIpcEndpointBindException.java  |    47 -
 .../util/ipc/GridIpcEndpointFactory.java        |    84 -
 .../internal/util/ipc/GridIpcEndpointType.java  |    29 -
 .../util/ipc/GridIpcServerEndpoint.java         |    73 -
 .../ipc/GridIpcServerEndpointDeserializer.java  |    66 -
 .../internal/util/ipc/GridIpcToNioAdapter.java  |   250 -
 .../ignite/internal/util/ipc/IpcEndpoint.java   |    49 +
 .../util/ipc/IpcEndpointBindException.java      |    47 +
 .../internal/util/ipc/IpcEndpointFactory.java   |    84 +
 .../internal/util/ipc/IpcEndpointType.java      |    29 +
 .../internal/util/ipc/IpcServerEndpoint.java    |    73 +
 .../util/ipc/IpcServerEndpointDeserializer.java |    66 +
 .../internal/util/ipc/IpcToNioAdapter.java      |   250 +
 .../ipc/loopback/GridIpcClientTcpEndpoint.java  |    87 -
 .../ipc/loopback/GridIpcServerTcpEndpoint.java  |   179 -
 .../util/ipc/loopback/IpcClientTcpEndpoint.java |    87 +
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |   179 +
 .../GridIpcOutOfSystemResourcesException.java   |    59 -
 .../GridIpcSharedMemoryClientEndpoint.java      |   336 -
 .../shmem/GridIpcSharedMemoryInitRequest.java   |    67 -
 .../shmem/GridIpcSharedMemoryInitResponse.java  |   171 -
 .../shmem/GridIpcSharedMemoryInputStream.java   |    99 -
 .../shmem/GridIpcSharedMemoryNativeLoader.java  |   242 -
 ...cSharedMemoryOperationTimedoutException.java |    59 -
 .../shmem/GridIpcSharedMemoryOutputStream.java  |    80 -
 .../GridIpcSharedMemoryServerEndpoint.java      |   707 -
 .../ipc/shmem/GridIpcSharedMemorySpace.java     |   374 -
 .../ipc/shmem/GridIpcSharedMemoryUtils.java     |   242 -
 .../shmem/IpcOutOfSystemResourcesException.java |    59 +
 .../shmem/IpcSharedMemoryClientEndpoint.java    |   336 +
 .../ipc/shmem/IpcSharedMemoryInitRequest.java   |    67 +
 .../ipc/shmem/IpcSharedMemoryInitResponse.java  |   171 +
 .../ipc/shmem/IpcSharedMemoryInputStream.java   |    99 +
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |   261 +
 ...cSharedMemoryOperationTimedoutException.java |    59 +
 .../ipc/shmem/IpcSharedMemoryOutputStream.java  |    80 +
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   707 +
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |   374 +
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |   242 +
 .../internal/util/nio/GridBufferedParser.java   |     2 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |    18 +-
 .../util/nio/GridShmemCommunicationClient.java  |     4 +-
 .../util/nodestart/GridNodeStartUtils.java      |    10 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |     2 +-
 .../util/portscanner/GridJmxPortFinder.java     |     4 +-
 .../apache/ignite/internal/util/typedef/X.java  |     4 +-
 .../internal/util/typedef/internal/U.java       |     4 +-
 .../visor/misc/VisorResolveHostNameTask.java    |     2 +-
 .../visor/node/VisorBasicConfiguration.java     |    26 +-
 .../visor/node/VisorEmailConfiguration.java     |    14 +-
 .../visor/node/VisorLifecycleConfiguration.java |     2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |     4 +-
 .../visor/node/VisorRestConfiguration.java      |     4 +-
 .../internal/visor/query/VisorQueryUtils.java   |     4 +-
 .../apache/ignite/jdbc/IgniteJdbcDriver.java    |     2 +-
 .../ignite/lang/IgniteAsyncSupportAdapter.java  |    27 +-
 .../apache/ignite/lifecycle/LifecycleBean.java  |     4 +-
 .../ignite/logger/java/IgniteJavaLogger.java    |     4 +-
 .../java/IgniteJavaLoggerFileHandler.java       |     4 +-
 .../optimized/IgniteOptimizedMarshaller.java    |     4 +-
 .../segmentation/GridSegmentationPolicy.java    |     2 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |     4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |     2 +-
 .../ignite/spi/checkpoint/CheckpointSpi.java    |     2 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |     6 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    36 +-
 .../ignite/spi/deployment/DeploymentSpi.java    |     2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |     4 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |     2 +-
 .../TcpDiscoveryMulticastIpFinder.java          |    18 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |     2 +-
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |     2 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |     4 +-
 .../ignite/startup/BasicWarmupClosure.java      |     6 +-
 .../startup/cmdline/CommandLineStartup.java     |    18 +-
 .../startup/cmdline/CommandLineTransformer.java |     8 +-
 .../ignite/thread/IgniteThreadFactory.java      |     2 +-
 .../apache/ignite/transactions/IgniteTx.java    |     2 +-
 .../core/src/test/bin/start-nodes-custom.bat    |     2 +-
 modules/core/src/test/bin/start-nodes-custom.sh |     2 +-
 .../spring-cache-client-benchmark-1.xml         |     2 +-
 .../spring-cache-client-benchmark-2.xml         |     2 +-
 .../spring-cache-client-benchmark-3.xml         |     2 +-
 modules/core/src/test/config/example-cache.xml  |     2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |     2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |     2 +-
 modules/core/src/test/config/log4j-test.xml     |     2 +-
 .../core/src/test/config/spring-cache-load.xml  |     2 +-
 .../core/src/test/config/spring-multicache.xml  |     2 +-
 .../average/spring-streamer-average-base.xml    |     2 +-
 .../average/spring-streamer-average-local.xml   |     2 +-
 .../average/spring-streamer-average-random.xml  |     2 +-
 .../config/streamer/spring-streamer-base.xml    |     2 +-
 modules/core/src/test/config/tests.properties   |    10 +-
 .../IgniteExceptionHelpLinksSelfTest.java       |     3 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |     2 +-
 .../internal/GridFactoryVmShutdownTest.java     |     2 +-
 .../ignite/internal/GridHomePathSelfTest.java   |     2 +-
 .../GridNodeVisorAttributesSelfTest.java        |     4 +-
 .../ignite/internal/GridStartStopSelfTest.java  |     2 +-
 .../ignite/internal/GridVersionSelfTest.java    |     8 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |    10 +-
 .../GridCacheAbstractProjectionSelfTest.java    |    50 +
 .../GridCacheAbstractRemoveFailureTest.java     |     6 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |     6 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |     4 +-
 .../GridCacheReturnValueTransferSelfTest.java   |     2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |     2 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |     6 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |     4 +-
 .../GridCacheMultiNodeDataStructureTest.java    |     4 +-
 .../GridCacheNodeFailureAbstractTest.java       |     2 +-
 .../IgniteCrossCacheTxStoreSelfTest.java        |   288 +
 ...GridCacheValueConsistencyAtomicSelfTest.java |     2 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |     6 +-
 .../IgniteCacheTxStoreSessionTest.java          |    11 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |     4 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |     4 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |    10 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |     4 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    10 +-
 .../internal/util/GridTestClockTimer.java       |     6 +-
 .../ignite/internal/util/GridUtilsSelfTest.java |   717 -
 .../internal/util/IgniteUtilsSelfTest.java      |   728 +
 ...GridUnsafeDataOutputArraySizingSelfTest.java |     2 +-
 ...idIpcServerEndpointDeserializerSelfTest.java |   160 -
 .../IpcServerEndpointDeserializerSelfTest.java  |   160 +
 .../ipc/shmem/GgfsSharedMemoryTestClient.java   |    76 +
 .../ipc/shmem/GgfsSharedMemoryTestServer.java   |    71 +
 .../shmem/GridGgfsSharedMemoryTestClient.java   |    76 -
 .../shmem/GridGgfsSharedMemoryTestServer.java   |    71 -
 ...idIpcSharedMemoryCrashDetectionSelfTest.java |   500 -
 .../shmem/GridIpcSharedMemoryFakeClient.java    |    36 -
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |    87 -
 .../shmem/GridIpcSharedMemorySpaceSelfTest.java |   267 -
 .../shmem/GridIpcSharedMemoryUtilsSelfTest.java |    84 -
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |   500 +
 .../ipc/shmem/IpcSharedMemoryFakeClient.java    |    36 +
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |    78 +
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |    87 +
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |   267 +
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |    84 +
 .../LoadWithCorruptedLibFileTestRunner.java     |    65 +
 .../GridIpcSharedMemoryBenchmarkParty.java      |    35 -
 .../GridIpcSharedMemoryBenchmarkReader.java     |   133 -
 .../GridIpcSharedMemoryBenchmarkWriter.java     |   125 -
 .../IpcSharedMemoryBenchmarkParty.java          |    35 +
 .../IpcSharedMemoryBenchmarkReader.java         |   133 +
 .../IpcSharedMemoryBenchmarkWriter.java         |   125 +
 .../ignite/lang/GridSetWrapperSelfTest.java     |     2 +-
 .../loadtest/GridSingleExecutionTest.java       |     4 +-
 .../cache/GridCacheAbstractLoadTest.java        |     2 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |     2 +-
 .../loadtests/cache/GridCacheLoadTest.java      |     2 +-
 .../capacity/spring-capacity-cache.xml          |     2 +-
 .../loadtests/colocation/spring-colocation.xml  |     2 +-
 .../GridContinuousOperationsLoadTest.java       |    18 +-
 .../loadtests/mapper/GridNodeStartup.java       |     4 +-
 .../loadtests/nio/GridNioBenchmarkTest.java     |     2 +-
 .../streamer/GridStreamerIndexLoadTest.java     |     2 +-
 .../ignite/loadtests/util/GridLoadTestArgs.java |     8 +-
 .../ignite/messaging/GridMessagingSelfTest.java |     2 +-
 .../startup/GridRandomCommandLineLoader.java    |    10 +-
 .../ignite/startup/GridVmNodesStarter.java      |     8 +-
 .../GridCommandLineTransformerSelfTest.java     |     6 +-
 .../ignite/testframework/GridTestUtils.java     |    10 +-
 .../config/GridTestProperties.java              |    16 +-
 .../testframework/junits/GridAbstractTest.java  |     4 +-
 .../logger/GridLog4jRollingFileAppender.java    |     4 +-
 .../junits/logger/GridTestLog4jLogger.java      |     8 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |     1 +
 .../ignite/testsuites/IgniteFsTestSuite.java    |     2 +-
 .../IgniteIpcSharedMemorySelfTestSuite.java     |     7 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |     2 +-
 .../src/test/resources/log/gridgain.log.tst     | 13706 -----------------
 .../core/src/test/resources/log/ignite.log.tst  | 13706 +++++++++++++++++
 .../core/src/test/webapp/META-INF/gg-config.xml |     2 +-
 modules/core/src/test/webapp/WEB-INF/web.xml    |     2 +-
 modules/email/readme.txt                        |     2 +-
 modules/hadoop/readme.txt                       |     2 +-
 .../fs/hadoop/v1/GridGgfsHadoopFileSystem.java  |     6 +-
 .../fs/hadoop/v2/GridGgfsHadoopFileSystem.java  |     6 +-
 .../apache/ignite/hadoop/GridHadoopSetup.java   |    16 +-
 .../internal/fs/hadoop/GridGgfsHadoopIpcIo.java |    10 +-
 .../hadoop/GridHadoopClassLoader.java           |     4 +-
 .../GridHadoopExternalTaskExecutor.java         |     2 +-
 .../child/GridHadoopExternalProcessStarter.java |     2 +-
 .../GridHadoopExternalCommunication.java        |    26 +-
 .../GridHadoopIpcToNioAdapter.java              |     6 +-
 ...doop20FileSystemLoopbackPrimarySelfTest.java |     2 +-
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |     2 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |     2 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |     2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |     2 +-
 ...adoopFileSystemLoopbackAbstractSelfTest.java |     2 +-
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |     8 +-
 .../fs/GridGgfsNearOnlyMultiNodeSelfTest.java   |     4 +-
 .../ignite/fs/IgniteFsEventsTestSuite.java      |     4 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |     6 +-
 .../hadoop/GridHadoopCommandLineTest.java       |     4 +-
 modules/hibernate/readme.txt                    |     2 +-
 .../hibernate/CacheHibernateBlobStore.java      |   593 +
 .../CacheHibernateBlobStoreEntry.hbm.xml        |    29 +
 .../hibernate/CacheHibernateBlobStoreEntry.java |    86 +
 .../hibernate/GridCacheHibernateBlobStore.java  |   593 -
 .../GridCacheHibernateBlobStoreEntry.hbm.xml    |    29 -
 .../GridCacheHibernateBlobStoreEntry.java       |    86 -
 ...idHibernateL2CacheTransactionalSelfTest.java |     2 +-
 .../CacheHibernateBlobStoreSelfTest.java        |   108 +
 .../GridCacheHibernateBlobStoreSelfTest.java    |   108 -
 .../cache/store/hibernate/hibernate.cfg.xml     |     2 +-
 .../testsuites/IgniteHibernateTestSuite.java    |     2 +-
 modules/indexing/readme.txt                     |     2 +-
 .../processors/query/h2/IgniteH2Indexing.java   |     8 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |     2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |     2 +-
 .../query/h2/sql/GridQueryParsingTest.java      |     2 +-
 modules/jcl/readme.txt                          |     2 +-
 .../apache/ignite/logger/jcl/GridJclLogger.java |     4 +-
 modules/jta/readme.txt                          |     2 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |    50 +
 .../ignite/cache/jta/GridCacheTmLookup.java     |    50 -
 .../cache/jta/jndi/CacheJndiTmLookup.java       |    74 +
 .../cache/jta/jndi/GridCacheJndiTmLookup.java   |    74 -
 .../jta/reflect/CacheReflectionTmLookup.java    |   115 +
 .../reflect/GridCacheReflectionTmLookup.java    |   115 -
 .../processors/cache/jta/CacheJtaManager.java   |     4 +-
 ...CacheJtaConfigurationValidationSelfTest.java |     2 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |     2 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |     4 +-
 modules/log4j/readme.txt                        |     2 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |     8 +-
 .../logger/log4j/IgniteLog4jNodeIdFilePath.java |     8 +-
 .../log4j/GridLog4jCorrectFileNameTest.java     |     4 +-
 modules/rest-http/readme.txt                    |     2 +-
 .../http/jetty/GridJettyRestProtocol.java       |    16 +-
 .../rest/protocols/http/jetty/rest.html         |     6 +-
 modules/scalar/pom.xml                          |     6 +-
 modules/scalar/readme.txt                       |     2 +-
 modules/schedule/readme.txt                     |     2 +-
 .../processors/schedule/ScheduleFutureImpl.java |     4 +-
 modules/slf4j/readme.txt                        |     2 +-
 modules/spring/readme.txt                       |     2 +-
 .../java/org/apache/ignite/IgniteSpring.java    |     2 +-
 .../ignite/cache/spring/SpringCacheManager.java |     6 +-
 .../spring/IgniteSpringProcessorImpl.java       |    10 +-
 .../ignite/internal/GridFactorySelfTest.java    |     2 +-
 modules/ssh/readme.txt                          |     2 +-
 .../util/nodestart/GridNodeCallableImpl.java    |    20 +-
 .../internal/GridNodeStartUtilsSelfTest.java    |     6 +-
 .../GridProjectionStartStopRestartSelfTest.java |     4 +-
 .../ignite/tools/javadoc/GridLinkTaglet.java    |   165 -
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |   165 +
 .../optimized/OptimizedClassNamesGenerator.java |    18 +-
 modules/urideploy/readme.txt                    |     2 +-
 .../uri/GridUriDeploymentFileProcessor.java     |     2 +-
 .../deployment/uri/GridUriDeploymentSpi.java    |  1367 --
 .../uri/GridUriDeploymentSpiMBean.java          |    53 -
 .../spi/deployment/uri/UriDeploymentSpi.java    |  1367 ++
 .../deployment/uri/UriDeploymentSpiMBean.java   |    53 +
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |     2 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |     2 +-
 .../uri/GridUriDeploymentAbstractSelfTest.java  |     2 +-
 .../GridUriDeploymentClassLoaderSelfTest.java   |     2 +-
 ...riDeploymentClassloaderRegisterSelfTest.java |     4 +-
 .../uri/GridUriDeploymentConfigSelfTest.java    |    10 +-
 .../GridUriDeploymentFileProcessorSelfTest.java |     2 +-
 .../uri/GridUriDeploymentMd5CheckSelfTest.java  |     2 +-
 ...loymentMultiScannersErrorThrottlingTest.java |     2 +-
 .../GridUriDeploymentMultiScannersSelfTest.java |     2 +-
 .../uri/GridUriDeploymentSimpleSelfTest.java    |    10 +-
 .../file/GridFileDeploymentSelfTest.java        |     6 +-
 .../GridFileDeploymentUndeploySelfTest.java     |     8 +-
 .../uri/scanners/ftp/GridFtpDeploymentTest.java |     2 +-
 .../http/GridHttpDeploymentSelfTest.java        |     2 +-
 .../IgniteUriDeploymentTestSuite.java           |     3 +-
 .../scala/org/apache/ignite/visor/Packet.scala  |     2 +-
 .../ignite/visor/commands/VisorConsole.scala    |     6 +-
 .../commands/alert/VisorAlertCommand.scala      |     2 +-
 .../config/VisorConfigurationCommand.scala      |     6 +-
 .../ignite/visor/commands/deploy/Packet.scala   |     4 +-
 .../commands/deploy/VisorDeployCommand.scala    |    22 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |     4 +-
 .../commands/events/VisorEventsCommand.scala    |     4 +-
 .../visor/commands/gc/VisorGcCommand.scala      |    13 +-
 .../visor/commands/node/VisorNodeCommand.scala  |     4 +-
 .../ignite/visor/commands/start/Packet.scala    |     6 +-
 .../commands/start/VisorStartCommand.scala      |    16 +-
 .../commands/tasks/VisorTasksCommand.scala      |     4 +-
 .../commands/top/VisorTopologyCommand.scala     |     6 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |     8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |    35 +-
 .../visor/commands/gc/VisorGcCommandSpec.scala  |    25 +-
 .../testsuites/VisorConsoleSelfTestSuite.scala  |     2 +-
 modules/web/readme.txt                          |     2 +-
 .../cache/websession/GridWebSessionFilter.java  |    26 +-
 .../GridServletContextListenerStartup.java      |   181 -
 .../startup/servlet/GridServletStartup.java     |   187 -
 .../IgniteServletContextListenerStartup.java    |   181 +
 .../startup/servlet/IgniteServletStartup.java   |   187 +
 .../internal/websession/WebSessionSelfTest.java |     8 +-
 .../websession/WebSessionServerStart.java       |     2 +-
 modules/yardstick/README.md                     |    67 +
 .../config/benchmark-atomic-win.properties      |    42 +
 .../config/benchmark-atomic.properties          |    48 +
 .../config/benchmark-compute-win.properties     |    45 +
 .../config/benchmark-compute.properties         |    51 +
 .../config/benchmark-query-win.properties       |    43 +
 .../yardstick/config/benchmark-query.properties |    49 +
 .../config/benchmark-tx-win.properties          |    42 +
 .../yardstick/config/benchmark-tx.properties    |    48 +
 .../yardstick/config/benchmark-win.properties   |    50 +
 modules/yardstick/config/benchmark.properties   |    61 +
 modules/yardstick/config/ignite-base-config.xml |   118 +
 .../config/ignite-localhost-config.xml          |    55 +
 .../config/ignite-multicast-config.xml          |    38 +
 modules/yardstick/pom.xml                       |   185 +
 .../yardstick/IgniteAbstractBenchmark.java      |   130 +
 .../yardstick/IgniteBenchmarkArguments.java     |   213 +
 .../org/apache/ignite/yardstick/IgniteNode.java |   191 +
 .../cache/IgniteCacheAbstractBenchmark.java     |    44 +
 .../yardstick/cache/IgniteGetBenchmark.java     |    41 +
 .../yardstick/cache/IgnitePutBenchmark.java     |    42 +
 .../yardstick/cache/IgnitePutGetBenchmark.java  |    47 +
 .../cache/IgnitePutGetTxBenchmark.java          |    52 +
 .../yardstick/cache/IgnitePutTxBenchmark.java   |    43 +
 .../cache/IgniteSqlQueryBenchmark.java          |    94 +
 .../cache/IgniteSqlQueryJoinBenchmark.java      |   118 +
 .../cache/IgniteSqlQueryPutBenchmark.java       |    86 +
 .../yardstick/cache/model/Organization.java     |   110 +
 .../ignite/yardstick/cache/model/Person.java    |   191 +
 .../yardstick/cache/model/SampleValue.java      |    62 +
 .../compute/IgniteAffinityCallBenchmark.java    |    36 +
 .../yardstick/compute/IgniteApplyBenchmark.java |    72 +
 .../compute/IgniteBroadcastBenchmark.java       |    35 +
 .../compute/IgniteExecuteBenchmark.java         |    35 +
 .../yardstick/compute/IgniteRunBenchmark.java   |    71 +
 .../yardstick/compute/model/NoopCallable.java   |    41 +
 .../yardstick/compute/model/NoopTask.java       |    97 +
 pom.xml                                         |    35 +-
 583 files changed, 39143 insertions(+), 35758 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2636e2c1/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2636e2c1/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2636e2c1/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2636e2c1/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/2636e2c1/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
----------------------------------------------------------------------


[24/50] [abbrv] incubator-ignite git commit: # IGNITE-102: Merge with sprint-1.

Posted by se...@apache.org.
# IGNITE-102: Merge with sprint-1.


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

Branch: refs/heads/ignite-132
Commit: 06d9b7d2396a83566a131e3959f894bf9e08e865
Parents: 6f49e95
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Feb 2 15:32:24 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Feb 2 15:32:24 2015 +0700

----------------------------------------------------------------------
 .../src/main/java/org/apache/ignite/yardstick/IgniteNode.java      | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/06d9b7d2/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteNode.java
----------------------------------------------------------------------
diff --git a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteNode.java b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteNode.java
index ad71ca2..b07d1f0 100644
--- a/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteNode.java
+++ b/modules/yardstick/src/main/java/org/apache/ignite/yardstick/IgniteNode.java
@@ -134,7 +134,7 @@ public class IgniteNode implements BenchmarkServer {
             url = new URL(springCfgPath);
         }
         catch (MalformedURLException e) {
-            url = GridUtils.resolveGridGainUrl(springCfgPath);
+            url = IgniteUtils.resolveGridGainUrl(springCfgPath);
 
             if (url == null)
                 throw new IgniteCheckedException("Spring XML configuration path is invalid: " + springCfgPath +


[09/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-69

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-69


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

Branch: refs/heads/ignite-132
Commit: 43d54c27f61691e3e4d15276dd7cf4676929a975
Parents: 5a50356 ff01e66
Author: avinogradov <av...@gridgain.com>
Authored: Fri Jan 30 15:09:09 2015 +0300
Committer: avinogradov <av...@gridgain.com>
Committed: Fri Jan 30 15:09:09 2015 +0300

----------------------------------------------------------------------
 .../util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java    | 2 +-
 .../org/apache/ignite/messaging/GridMessagingSelfTest.java     | 2 +-
 .../internal/processors/hadoop/GridHadoopClassLoader.java      | 4 ++--
 .../marshaller/optimized/OptimizedClassNamesGenerator.java     | 6 +++---
 .../src/main/scala/org/apache/ignite/visor/visor.scala         | 1 -
 5 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



[31/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'origin/sprint-1' into sprint-1

Posted by se...@apache.org.
Merge remote-tracking branch 'origin/sprint-1' into sprint-1


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

Branch: refs/heads/ignite-132
Commit: 43e835b2a6af89bec5efc53b670392520ea59166
Parents: 0ab8a27 ff7ee6d
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Tue Feb 3 00:23:09 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Tue Feb 3 00:23:09 2015 +0300

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |  22 ----
 .../ignite/internal/GridKernalContext.java      |   8 --
 .../ignite/internal/GridKernalContextImpl.java  |  12 --
 .../org/apache/ignite/internal/IgniteEx.java    |   8 --
 .../apache/ignite/internal/IgniteKernal.java    |   7 --
 .../org/apache/ignite/internal/IgnitionEx.java  |   1 -
 .../cache/GridCacheWriteBehindStore.java        |   2 -
 .../interop/GridInteropProcessor.java           |  82 --------------
 .../interop/GridInteropProcessorAdapter.java    |  31 ------
 .../processors/interop/GridInteropTarget.java   | 109 -------------------
 .../interop/os/GridOsInteropProcessor.java      |  80 --------------
 .../internal/processors/interop/os/package.html |  23 ----
 .../internal/processors/interop/package.html    |  23 ----
 .../plugin/IgnitePluginProcessor.java           |  10 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java |   6 -
 15 files changed, 6 insertions(+), 418 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/43e835b2/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------


[23/50] [abbrv] incubator-ignite git commit: Merge branch 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-102

Posted by se...@apache.org.
Merge branch 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-102


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

Branch: refs/heads/ignite-132
Commit: 6f49e95540bcf0be76e82a635e1420d666c7a24d
Parents: b82eea3 7e8ea4f
Author: AKuznetsov <ak...@gridgain.com>
Authored: Mon Feb 2 15:13:37 2015 +0700
Committer: AKuznetsov <ak...@gridgain.com>
Committed: Mon Feb 2 15:13:37 2015 +0700

----------------------------------------------------------------------
 assembly/libs/readme.txt                        |   115 +-
 assembly/release-base-fabric.xml                |     6 +-
 assembly/release-base.xml                       |     6 +-
 assembly/release-hadoop.xml                     |     6 +-
 bin/ggrouter.bat                                |    33 -
 bin/ggrouter.sh                                 |    50 -
 bin/ggstart.bat                                 |   228 -
 bin/ggstart.sh                                  |   176 -
 bin/ggvisorcmd.bat                              |   144 -
 bin/ggvisorcmd.sh                               |   124 -
 bin/ignite.bat                                  |   228 +
 bin/ignite.sh                                   |   176 +
 bin/igniterouter.bat                            |    33 +
 bin/igniterouter.sh                             |    50 +
 bin/ignitevisorcmd.bat                          |   144 +
 bin/ignitevisorcmd.sh                           |   124 +
 bin/include/functions.sh                        |    42 +-
 bin/include/hadoop-classpath.bat                |     2 +-
 bin/include/hadoop-classpath.sh                 |     4 +-
 bin/include/parseargs.bat                       |     2 +-
 bin/include/parseargs.sh                        |     6 +-
 bin/include/service.sh                          |    12 +-
 bin/include/setenv.bat                          |    28 +-
 bin/include/setenv.sh                           |    34 +-
 bin/include/target-classpath.bat                |     8 +-
 bin/include/target-classpath.sh                 |    14 +-
 bin/setup-hadoop.bat                            |     2 +-
 bin/setup-hadoop.sh                             |    12 +-
 config/gridgain-log4j.xml                       |   152 -
 config/hadoop/default-config.xml                |     2 +-
 config/ignite-log4j.xml                         |   152 +
 config/java.util.logging.properties             |    16 +-
 config/router/default-router.xml                |     2 +-
 docs/core-site.gridgain.xml                     |    89 -
 docs/core-site.ignite.xml                       |    89 +
 docs/gridgain_readme.md                         |   149 -
 docs/gridgain_readme.pdf                        |   Bin 407698 -> 0 bytes
 docs/hadoop_readme.md                           |    84 +-
 docs/hadoop_readme.pdf                          |   Bin 411788 -> 82297 bytes
 docs/hive-site.gridgain.xml                     |    36 -
 docs/hive-site.ignite.xml                       |    36 +
 docs/ignite_readme.md                           |   100 +
 docs/ignite_readme.pdf                          |   Bin 0 -> 76810 bytes
 docs/mapred-site.gridgain.xml                   |    79 -
 docs/mapred-site.ignite.xml                     |    79 +
 examples/config/example-cache.xml               |     2 +-
 examples/config/example-streamer.xml            |     8 +-
 examples/config/filesystem/example-ggfs.xml     |     2 +-
 examples/config/filesystem/readme.txt           |     4 +-
 examples/config/hibernate/readme.txt            |     4 +-
 examples/config/servlet/WEB-INF/web.xml         |     4 +-
 examples/config/servlet/readme.txt              |     2 +-
 examples/rest/http-rest-example.php             |     2 +-
 examples/rest/memcache-rest-example.php         |     2 +-
 .../compute/ComputeBroadcastExample.java        |     2 +-
 .../compute/ComputeCallableExample.java         |     2 +-
 .../examples/compute/ComputeClosureExample.java |     2 +-
 .../compute/ComputeContinuousMapperExample.java |     2 +-
 .../compute/ComputeExecutorServiceExample.java  |     2 +-
 .../ComputeFibonacciContinuationExample.java    |    13 +-
 .../compute/ComputeProjectionExample.java       |     2 +-
 .../examples/compute/ComputeReducerExample.java |     2 +-
 .../compute/ComputeRunnableExample.java         |     7 +-
 .../compute/ComputeScheduleExample.java         |     2 +-
 .../examples/compute/ComputeTaskMapExample.java |     2 +-
 .../compute/ComputeTaskSplitExample.java        |     2 +-
 .../compute/montecarlo/CreditRiskExample.java   |     2 +-
 .../examples/datagrid/CacheAffinityExample.java |     2 +-
 .../examples/datagrid/CacheApiExample.java      |     2 +-
 .../datagrid/CacheContinuousQueryExample.java   |     2 +-
 .../datagrid/CacheDataLoaderExample.java        |     2 +-
 .../examples/datagrid/CacheEventsExample.java   |     2 +-
 .../datagrid/CachePopularNumbersExample.java    |     2 +-
 .../examples/datagrid/CachePutGetExample.java   |     2 +-
 .../examples/datagrid/CacheQueryExample.java    |     2 +-
 .../datagrid/CacheTransactionExample.java       |     2 +-
 .../datastructures/CacheAtomicLongExample.java  |     2 +-
 .../CacheAtomicReferenceExample.java            |     2 +-
 .../CacheAtomicSequenceExample.java             |     2 +-
 .../CacheAtomicStampedExample.java              |     2 +-
 .../CacheCountDownLatchExample.java             |     2 +-
 .../datastructures/CacheQueueExample.java       |     2 +-
 .../datastructures/CacheSetExample.java         |     2 +-
 .../hibernate/HibernateL2CacheExample.java      |     2 +-
 .../starschema/CacheStarSchemaExample.java      |     2 +-
 .../ignite/examples/events/EventsExample.java   |     2 +-
 .../ignite/examples/ggfs/GgfsExample.java       |     2 +-
 .../examples/ggfs/GgfsMapReduceExample.java     |     2 +-
 .../ignite/examples/ggfs/GgfsNodeStartup.java   |     4 +-
 .../examples/messaging/MessagingExample.java    |     2 +-
 .../messaging/MessagingPingPongExample.java     |     2 +-
 .../MessagingPingPongListenActorExample.java    |     2 +-
 .../misc/deployment/DeploymentExample.java      |     2 +-
 .../misc/springbean/SpringBeanExample.java      |     2 +-
 .../examples/services/ServicesExample.java      |     2 +-
 .../streaming/StreamingCheckInExample.java      |     8 +-
 .../StreamingPopularNumbersExample.java         |     8 +-
 .../streaming/StreamingPriceBarsExample.java    |     8 +-
 .../StreamingRunningAverageExample.java         |     8 +-
 .../apache/ignite/examples/ComputeExample.java  |    59 +
 .../ignite/examples/MessagingExample.java       |   166 +
 .../org/gridgain/examples/ComputeExample.java   |    59 -
 .../org/gridgain/examples/MessagingExample.java |   166 -
 .../examples/ScalarCacheAffinityExample1.scala  |     2 +-
 .../examples/ScalarCacheAffinityExample2.scala  |     2 +-
 .../ScalarCacheAffinitySimpleExample.scala      |     2 +-
 .../scalar/examples/ScalarCacheExample.scala    |     2 +-
 .../ScalarCachePopularNumbersExample.scala      |     2 +-
 .../examples/ScalarCacheQueryExample.scala      |     2 +-
 .../scalar/examples/ScalarClosureExample.scala  |     2 +-
 .../examples/ScalarContinuationExample.scala    |    11 +-
 .../examples/ScalarCreditRiskExample.scala      |     2 +-
 .../examples/ScalarPiCalculationExample.scala   |     2 +-
 .../scalar/examples/ScalarPingPongExample.scala |     2 +-
 .../scalar/examples/ScalarPrimeExample.scala    |     2 +-
 .../scalar/examples/ScalarScheduleExample.scala |     2 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |     2 +-
 .../scalar/examples/ScalarTaskExample.scala     |     2 +-
 .../examples/ScalarWorldShortestMapReduce.scala |     2 +-
 .../GridMonteCarloExamplesSelfTest.java         |     4 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |     2 +-
 .../ScalarExamplesSelfTestSuite.scala           |     2 +-
 ipc/readme.txt                                  |     4 +-
 ipc/shmem/Makefile.am                           |     2 +-
 ipc/shmem/Makefile.in                           |     2 +-
 ipc/shmem/configure                             |     4 +-
 ipc/shmem/configure.ac                          |     2 +-
 ipc/shmem/ggshmem/Makefile.am                   |    23 -
 ipc/shmem/ggshmem/Makefile.in                   |   589 -
 ..._util_ipc_shmem_GridIpcSharedMemoryUtils.cpp |   882 --
 ipc/shmem/igniteshmem/Makefile.am               |    23 +
 ipc/shmem/igniteshmem/Makefile.in               |   589 +
 ...rnal_util_ipc_shmem_IpcSharedMemoryUtils.cpp |   882 ++
 ipc/shmem/include/Makefile.am                   |     2 +-
 ipc/shmem/include/Makefile.in                   |     2 +-
 ...ternal_util_ipc_shmem_IpcSharedMemoryUtils.h |   117 +
 ...id_util_ipc_shmem_GridIpcSharedMemoryUtils.h |   117 -
 ipc/shmem/readme.txt                            |    17 +-
 modules/aop/readme.txt                          |    14 +-
 .../GridifySetToXXXNonSpringAopSelfTest.java    |    20 +-
 .../GridifySetToXXXSpringAopSelfTest.java       |    20 +-
 .../ignite/gridify/NonSpringAopSelfTest.java    |    20 +-
 .../optimized/OptimizedMarshallerAopTest.java   |     4 +-
 .../testsuites/IgniteAopSelfTestSuite.java      |     2 +-
 .../gridify/ExternalNonSpringAopSelfTest.java   |    20 +-
 modules/aws/readme.txt                          |    14 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |     4 +-
 modules/clients/src/test/bin/start-nodes-ssh.sh |     2 +-
 modules/clients/src/test/bin/start-nodes.cmd    |    24 +-
 modules/clients/src/test/bin/start-nodes.sh     |    34 +-
 .../ClientAbstractMultiThreadedSelfTest.java    |     8 +-
 .../client/ClientDefaultCacheSelfTest.java      |     4 +-
 .../client/ClientTopologyCacheSelfTest.java     |     2 +-
 .../ClientPropertiesConfigurationSelfTest.java  |     4 +-
 .../ClientAbstractMultiNodeSelfTest.java        |     4 +-
 .../integration/ClientAbstractSelfTest.java     |    14 +-
 .../client/router/ClientFailedInitSelfTest.java |     4 +-
 .../client/router/RouterFactorySelfTest.java    |     4 +-
 .../JettyRestProcessorAbstractSelfTest.java     |     4 +-
 .../rest/RestBinaryProtocolSelfTest.java        |     4 +-
 .../rest/RestProcessorStartSelfTest.java        |     3 +-
 .../rest/TaskCommandHandlerSelfTest.java        |     6 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |     6 +-
 .../src/test/resources/jetty/rest-jetty-ssl.xml |    10 +-
 .../src/test/resources/jetty/rest-jetty.xml     |     8 +-
 .../test/resources/jetty/router-jetty-ssl.xml   |     8 +-
 .../src/test/resources/jetty/router-jetty.xml   |     8 +-
 modules/clients/src/test/resources/log4j.xml    |     4 +-
 .../clients/src/test/resources/spring-cache.xml |     2 +-
 .../src/test/resources/spring-router-ssl.xml    |     4 +-
 .../src/test/resources/spring-router.xml        |     4 +-
 .../src/test/resources/spring-server-node.xml   |     2 +-
 .../test/resources/spring-server-ssl-node.xml   |     2 +-
 .../java/META-INF/native/linux64/libggshmem.so  |   Bin 138023 -> 0 bytes
 .../META-INF/native/linux64/libigniteshmem.so   |   Bin 0 -> 138345 bytes
 .../java/META-INF/native/osx/libggshmem.dylib   |   Bin 32940 -> 0 bytes
 .../META-INF/native/osx/libigniteshmem.dylib    |   Bin 0 -> 33116 bytes
 .../apache/ignite/IgniteBasicWarmupClosure.java |     6 +-
 .../apache/ignite/IgniteCheckedException.java   |     2 +-
 .../java/org/apache/ignite/IgniteCluster.java   |     6 +-
 .../org/apache/ignite/IgniteDataLoader.java     |    14 +-
 .../java/org/apache/ignite/IgniteException.java |     2 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |     4 +-
 .../java/org/apache/ignite/IgniteLogger.java    |     6 +-
 .../java/org/apache/ignite/IgniteScheduler.java |     6 +-
 .../apache/ignite/IgniteSystemProperties.java   |   198 +-
 .../main/java/org/apache/ignite/Ignition.java   |    54 +-
 .../apache/ignite/cache/CacheConfiguration.java |     3 +-
 .../org/apache/ignite/cache/CacheEntry.java     |    27 +-
 .../apache/ignite/cache/CacheProjection.java    |    43 +-
 .../apache/ignite/cache/CachingProvider.java    |     2 +-
 .../java/org/apache/ignite/cache/GridCache.java |     5 +-
 .../CacheConsistentHashAffinityFunction.java    |     2 +-
 .../apache/ignite/cache/query/CacheQueries.java |     7 +-
 .../apache/ignite/cache/query/CacheQuery.java   |     3 +-
 .../ignite/cache/query/CacheQueryFuture.java    |     4 +-
 .../cache/query/CacheQuerySqlFunction.java      |     4 +-
 .../cache/query/annotations/QuerySqlField.java  |     2 +-
 .../query/annotations/QuerySqlFunction.java     |     2 +-
 .../apache/ignite/cache/store/CacheStore.java   |     2 +-
 .../apache/ignite/client/GridClientCompute.java |     8 +-
 .../ignite/client/router/GridRouterFactory.java |     4 +-
 .../impl/GridRouterCommandLineStartup.java      |     4 +-
 .../router/impl/GridTcpRouterNioParser.java     |     4 +-
 .../ignite/compute/ComputeTaskFuture.java       |     4 +-
 .../ignite/compute/ComputeTaskSession.java      |     3 +-
 .../apache/ignite/compute/gridify/Gridify.java  |     2 +-
 .../ignite/compute/gridify/GridifySetToSet.java |     4 +-
 .../compute/gridify/GridifySetToValue.java      |     4 +-
 .../ClientConnectionConfiguration.java          |    16 +-
 .../configuration/GridQueryConfiguration.java   |   201 -
 .../configuration/IgniteConfiguration.java      |    80 +-
 .../configuration/IgniteDeploymentMode.java     |     4 +-
 .../configuration/IgniteQueryConfiguration.java |   201 +
 .../apache/ignite/fs/IgniteFsConfiguration.java |     2 +-
 .../ignite/fs/mapreduce/IgniteFsTask.java       |     2 +-
 .../org/apache/ignite/hadoop/GridHadoop.java    |     6 +-
 .../ignite/internal/ClusterGroupAdapter.java    |     2 +-
 .../internal/ClusterNodeLocalMapImpl.java       |     2 +-
 .../java/org/apache/ignite/internal/GridEx.java |   143 -
 .../org/apache/ignite/internal/GridGainEx.java  |  2399 ---
 .../ignite/internal/GridJobSessionImpl.java     |     2 +-
 .../org/apache/ignite/internal/GridKernal.java  |  3322 ----
 .../ignite/internal/GridKernalContext.java      |     2 +-
 .../ignite/internal/GridKernalContextImpl.java  |    10 +-
 .../apache/ignite/internal/GridLoggerProxy.java |     6 +-
 .../internal/GridPerformanceSuggestions.java    |     4 +-
 .../apache/ignite/internal/GridProductImpl.java |     2 +-
 .../ignite/internal/GridTaskSessionImpl.java    |     2 +-
 .../ignite/internal/GridUpdateNotifier.java     |     2 +-
 .../ignite/internal/IgniteClusterAsyncImpl.java |     4 +-
 .../org/apache/ignite/internal/IgniteEx.java    |   143 +
 .../ignite/internal/IgniteInternalFuture.java   |   190 +
 .../apache/ignite/internal/IgniteKernal.java    |  3322 ++++
 .../ignite/internal/IgniteSchedulerImpl.java    |     6 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |  2396 +++
 .../internal/executor/GridExecutorService.java  |    44 +-
 .../discovery/GridDiscoveryManager.java         |     2 +-
 .../eventstorage/GridEventStorageManager.java   |     4 +-
 .../affinity/GridAffinityAssignmentCache.java   |     5 +-
 .../affinity/GridAffinityProcessor.java         |     8 +-
 .../processors/affinity/GridAffinityUtils.java  |     2 +-
 .../processors/cache/CacheLockImpl.java         |     4 +-
 .../processors/cache/GridCacheAdapter.java      |   366 +-
 .../cache/GridCacheAffinityManager.java         |     8 +-
 .../processors/cache/GridCacheContext.java      |    16 +-
 .../cache/GridCacheDeploymentManager.java       |     2 +-
 .../processors/cache/GridCacheEntryImpl.java    |    27 +-
 .../cache/GridCacheEvictionEntry.java           |    27 +-
 .../cache/GridCacheEvictionManager.java         |     4 +-
 .../cache/GridCacheExplicitLockSpan.java        |     4 +-
 .../cache/GridCacheFilterEvaluationEntry.java   |    27 +-
 .../processors/cache/GridCacheFuture.java       |     3 +-
 .../processors/cache/GridCacheIoManager.java    |    15 +-
 .../cache/GridCacheMultiTxFuture.java           |     6 +-
 .../cache/GridCacheMvccCandidate.java           |     4 +-
 .../processors/cache/GridCacheMvccManager.java  |    29 +-
 .../GridCachePartitionExchangeManager.java      |    11 +-
 .../processors/cache/GridCachePreloader.java    |     7 +-
 .../cache/GridCachePreloaderAdapter.java        |     9 +-
 .../processors/cache/GridCacheProcessor.java    |    13 +-
 .../processors/cache/GridCacheProjectionEx.java |    27 +-
 .../cache/GridCacheProjectionImpl.java          |    69 +-
 .../processors/cache/GridCacheProxyImpl.java    |    73 +-
 .../cache/GridCacheSharedContext.java           |    13 +-
 .../processors/cache/GridCacheStoreManager.java |    25 +-
 .../processors/cache/GridCacheUtils.java        |     9 +-
 .../processors/cache/IgniteCacheProxy.java      |    37 +-
 .../GridCacheAtomicSequenceImpl.java            |     3 +-
 .../GridCacheDataStructuresManager.java         |     4 +-
 ...ridCacheOptimisticCheckPreparedTxFuture.java |     7 +-
 ...dCachePessimisticCheckCommittedTxFuture.java |     7 +-
 .../distributed/GridCacheTxFinishSync.java      |     8 +-
 .../GridDistributedCacheAdapter.java            |     7 +-
 .../GridDistributedTxRemoteAdapter.java         |     7 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |    12 +-
 .../distributed/dht/GridDhtCacheEntry.java      |     7 +-
 .../distributed/dht/GridDhtEmbeddedFuture.java  |     8 +-
 .../cache/distributed/dht/GridDhtFuture.java    |     4 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    11 +-
 .../distributed/dht/GridDhtLocalPartition.java  |     7 +-
 .../distributed/dht/GridDhtLockFuture.java      |    11 +-
 .../distributed/dht/GridDhtTopologyFuture.java  |     4 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |    29 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |    11 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |    19 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    11 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    11 +-
 .../dht/GridPartitionedGetFuture.java           |    34 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   122 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |    34 +-
 .../dht/colocated/GridDhtColocatedCache.java    |    24 +-
 .../colocated/GridDhtColocatedLockFuture.java   |    23 +-
 .../dht/preloader/GridDhtForceKeysFuture.java   |     7 +-
 .../preloader/GridDhtPartitionDemandPool.java   |    13 +-
 .../GridDhtPartitionsExchangeFuture.java        |    20 +-
 .../dht/preloader/GridDhtPreloader.java         |    29 +-
 .../distributed/near/GridNearAtomicCache.java   |    47 +-
 .../distributed/near/GridNearCacheAdapter.java  |    15 +-
 .../distributed/near/GridNearGetFuture.java     |    38 +-
 .../distributed/near/GridNearLockFuture.java    |    23 +-
 .../near/GridNearTransactionalCache.java        |     9 +-
 .../near/GridNearTxFinishFuture.java            |    17 +-
 .../cache/distributed/near/GridNearTxLocal.java |    58 +-
 .../near/GridNearTxPrepareFuture.java           |    17 +-
 .../processors/cache/local/GridLocalCache.java  |     7 +-
 .../processors/cache/local/GridLocalTx.java     |    12 +-
 .../local/atomic/GridLocalAtomicCache.java      |   139 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |     4 +-
 .../query/GridCacheDistributedQueryManager.java |     9 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |     3 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |     4 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |     3 +-
 .../cache/query/GridCacheQueriesEx.java         |     6 +-
 .../cache/query/GridCacheQueriesImpl.java       |    11 +-
 .../cache/query/GridCacheQueriesProxy.java      |    11 +-
 .../cache/query/GridCacheQueryManager.java      |    50 +-
 .../query/GridCacheQueryMetadataAware.java      |     4 +-
 .../GridCacheContinuousQueryEntry.java          |    27 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |     2 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |     2 +-
 .../transactions/IgniteTransactionsImpl.java    |     3 +-
 .../cache/transactions/IgniteTxAdapter.java     |     7 +-
 .../cache/transactions/IgniteTxEx.java          |     9 +-
 .../cache/transactions/IgniteTxHandler.java     |    48 +-
 .../transactions/IgniteTxLocalAdapter.java      |   148 +-
 .../cache/transactions/IgniteTxLocalEx.java     |    17 +-
 .../cache/transactions/IgniteTxManager.java     |    25 +-
 .../cache/transactions/IgniteTxProxyImpl.java   |     9 +-
 .../closure/GridClosureProcessor.java           |    56 +-
 .../continuous/GridContinuousProcessor.java     |     4 +-
 .../dataload/GridDataLoaderProcessor.java       |     5 +-
 .../dataload/IgniteDataLoaderImpl.java          |    58 +-
 .../dr/GridDrDataLoadCacheUpdater.java          |     5 +-
 .../email/IgniteEmailProcessorAdapter.java      |     5 +-
 .../email/IgniteNoopEmailProcessor.java         |     5 +-
 .../processors/fs/GridGgfsAsyncImpl.java        |     3 +-
 .../processors/fs/GridGgfsDataManager.java      |    30 +-
 .../internal/processors/fs/GridGgfsEx.java      |     3 +-
 .../internal/processors/fs/GridGgfsImpl.java    |    18 +-
 .../processors/fs/GridGgfsInputStreamImpl.java  |    19 +-
 .../processors/fs/GridGgfsIpcHandler.java       |     4 +-
 .../processors/fs/GridGgfsMetaManager.java      |     9 +-
 .../internal/processors/fs/GridGgfsServer.java  |    34 +-
 .../processors/fs/GridGgfsServerHandler.java    |     4 +-
 .../processors/fs/GridGgfsServerManager.java    |     8 +-
 .../processors/fs/IgniteFsNoopProcessor.java    |     2 +-
 .../processors/fs/IgniteFsOutputStreamImpl.java |     3 +-
 .../processors/fs/IgniteFsProcessor.java        |    12 +-
 .../processors/fs/IgniteFsProcessorAdapter.java |     2 +-
 .../hadoop/IgniteHadoopNoopProcessor.java       |     5 +-
 .../hadoop/IgniteHadoopProcessorAdapter.java    |     5 +-
 .../processors/job/GridJobProcessor.java        |     2 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |     4 +-
 .../processors/query/GridQueryIndexing.java     |     4 +-
 .../processors/query/GridQueryProcessor.java    |    12 +-
 .../resource/GridResourceProcessor.java         |     2 +-
 .../resource/GridSpringResourceContext.java     |     2 +-
 .../processors/rest/GridRestProcessor.java      |    18 +-
 .../rest/GridRestProtocolHandler.java           |     4 +-
 .../rest/handlers/GridRestCommandHandler.java   |     4 +-
 .../handlers/cache/GridCacheCommandHandler.java |    60 +-
 .../cache/GridCacheQueryCommandHandler.java     |    12 +-
 .../handlers/log/GridLogCommandHandler.java     |     7 +-
 .../metadata/GridPortableMetadataHandler.java   |     3 +-
 .../handlers/task/GridTaskCommandHandler.java   |    12 +-
 .../top/GridTopologyCommandHandler.java         |     3 +-
 .../version/GridVersionCommandHandler.java      |     3 +-
 .../protocols/tcp/GridClientPacketType.java     |     4 +-
 .../protocols/tcp/GridMemcachedMessage.java     |     4 +-
 .../tcp/GridTcpMemcachedNioListener.java        |    17 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |     5 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |    18 +-
 .../service/GridServiceProcessor.java           |    22 +-
 .../processors/service/GridServiceProxy.java    |     2 +-
 .../streamer/GridStreamProcessor.java           |     6 +-
 .../processors/streamer/IgniteStreamerImpl.java |     4 +-
 .../internal/util/GridConcurrentFactory.java    |     3 +-
 .../internal/util/GridConfigurationFinder.java  |     4 +-
 .../internal/util/GridReflectionCache.java      |     3 +-
 .../apache/ignite/internal/util/GridUtils.java  |  9100 -----------
 .../ignite/internal/util/IgniteUtils.java       |  9141 +++++++++++
 .../util/future/GridCompoundFuture.java         |    28 +-
 .../util/future/GridCompoundIdentityFuture.java |     2 +-
 .../util/future/GridEmbeddedFuture.java         |    38 +-
 .../util/future/GridFinishedFuture.java         |    10 +-
 .../util/future/GridFinishedFutureEx.java       |     9 +-
 .../internal/util/future/GridFutureAdapter.java |    34 +-
 .../util/future/GridFutureAdapterEx.java        |    31 +-
 .../util/future/GridFutureChainListener.java    |     8 +-
 .../internal/util/io/GridUnsafeDataInput.java   |     2 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |     2 +-
 .../internal/util/ipc/GridIpcEndpoint.java      |    49 -
 .../util/ipc/GridIpcEndpointBindException.java  |    47 -
 .../util/ipc/GridIpcEndpointFactory.java        |    84 -
 .../internal/util/ipc/GridIpcEndpointType.java  |    29 -
 .../util/ipc/GridIpcServerEndpoint.java         |    73 -
 .../ipc/GridIpcServerEndpointDeserializer.java  |    66 -
 .../internal/util/ipc/GridIpcToNioAdapter.java  |   250 -
 .../ignite/internal/util/ipc/IpcEndpoint.java   |    49 +
 .../util/ipc/IpcEndpointBindException.java      |    47 +
 .../internal/util/ipc/IpcEndpointFactory.java   |    84 +
 .../internal/util/ipc/IpcEndpointType.java      |    29 +
 .../internal/util/ipc/IpcServerEndpoint.java    |    73 +
 .../util/ipc/IpcServerEndpointDeserializer.java |    66 +
 .../internal/util/ipc/IpcToNioAdapter.java      |   250 +
 .../ipc/loopback/GridIpcClientTcpEndpoint.java  |    87 -
 .../ipc/loopback/GridIpcServerTcpEndpoint.java  |   179 -
 .../util/ipc/loopback/IpcClientTcpEndpoint.java |    87 +
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |   179 +
 .../GridIpcOutOfSystemResourcesException.java   |    59 -
 .../GridIpcSharedMemoryClientEndpoint.java      |   336 -
 .../shmem/GridIpcSharedMemoryInitRequest.java   |    67 -
 .../shmem/GridIpcSharedMemoryInitResponse.java  |   171 -
 .../shmem/GridIpcSharedMemoryInputStream.java   |    99 -
 .../shmem/GridIpcSharedMemoryNativeLoader.java  |   242 -
 ...cSharedMemoryOperationTimedoutException.java |    59 -
 .../shmem/GridIpcSharedMemoryOutputStream.java  |    80 -
 .../GridIpcSharedMemoryServerEndpoint.java      |   707 -
 .../ipc/shmem/GridIpcSharedMemorySpace.java     |   374 -
 .../ipc/shmem/GridIpcSharedMemoryUtils.java     |   242 -
 .../shmem/IpcOutOfSystemResourcesException.java |    59 +
 .../shmem/IpcSharedMemoryClientEndpoint.java    |   336 +
 .../ipc/shmem/IpcSharedMemoryInitRequest.java   |    67 +
 .../ipc/shmem/IpcSharedMemoryInitResponse.java  |   171 +
 .../ipc/shmem/IpcSharedMemoryInputStream.java   |    99 +
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |   261 +
 ...cSharedMemoryOperationTimedoutException.java |    59 +
 .../ipc/shmem/IpcSharedMemoryOutputStream.java  |    80 +
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   707 +
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |   374 +
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |   242 +
 .../ignite/internal/util/lang/GridFunc.java     |    53 +-
 .../internal/util/nio/GridBufferedParser.java   |     2 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |    18 +-
 .../ignite/internal/util/nio/GridNioFuture.java |     2 +-
 .../util/nio/GridShmemCommunicationClient.java  |     4 +-
 .../util/nodestart/GridNodeStartUtils.java      |    10 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |     2 +-
 .../util/portscanner/GridJmxPortFinder.java     |     4 +-
 .../apache/ignite/internal/util/typedef/X.java  |    10 +-
 .../internal/util/typedef/internal/U.java       |     4 +-
 .../apache/ignite/internal/visor/VisorJob.java  |     2 +-
 .../internal/visor/VisorMultiNodeTask.java      |     2 +-
 .../ignite/internal/visor/cache/VisorCache.java |     2 +-
 .../visor/cache/VisorCachePreloadTask.java      |     6 +-
 .../compute/VisorComputeMonitoringHolder.java   |    10 +-
 .../visor/misc/VisorResolveHostNameTask.java    |     2 +-
 .../visor/node/VisorBasicConfiguration.java     |    28 +-
 .../visor/node/VisorEmailConfiguration.java     |    14 +-
 .../visor/node/VisorGridConfiguration.java      |     2 +-
 .../visor/node/VisorLifecycleConfiguration.java |     2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |     6 +-
 .../visor/node/VisorRestConfiguration.java      |     4 +-
 .../internal/visor/query/VisorQueryTask.java    |     2 +-
 .../internal/visor/query/VisorQueryUtils.java   |     4 +-
 .../apache/ignite/jdbc/IgniteJdbcDriver.java    |     2 +-
 .../apache/ignite/lang/IgniteAsyncSupport.java  |     4 +-
 .../ignite/lang/IgniteAsyncSupportAdapter.java  |    38 +-
 .../org/apache/ignite/lang/IgniteFuture.java    |   189 -
 .../apache/ignite/lifecycle/LifecycleBean.java  |     4 +-
 .../ignite/logger/java/IgniteJavaLogger.java    |     4 +-
 .../java/IgniteJavaLoggerFileHandler.java       |     4 +-
 .../optimized/IgniteOptimizedMarshaller.java    |     4 +-
 .../segmentation/GridSegmentationPolicy.java    |     2 +-
 .../ignite/scheduler/SchedulerFuture.java       |     4 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |     4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |     2 +-
 .../ignite/spi/checkpoint/CheckpointSpi.java    |     2 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |     6 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    36 +-
 .../ignite/spi/deployment/DeploymentSpi.java    |     2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |     8 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |     2 +-
 .../TcpDiscoveryMulticastIpFinder.java          |    18 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |     2 +-
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |     2 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |     4 +-
 .../ignite/startup/BasicWarmupClosure.java      |     6 +-
 .../startup/cmdline/CommandLineStartup.java     |    18 +-
 .../startup/cmdline/CommandLineTransformer.java |     8 +-
 .../StreamerCacheAffinityEventRouter.java       |     2 +-
 .../ignite/thread/IgniteThreadFactory.java      |     2 +-
 .../apache/ignite/transactions/IgniteTx.java    |     2 +-
 .../core/src/test/bin/start-nodes-custom.bat    |     2 +-
 modules/core/src/test/bin/start-nodes-custom.sh |     2 +-
 .../spring-cache-client-benchmark-1.xml         |     2 +-
 .../spring-cache-client-benchmark-2.xml         |     2 +-
 .../spring-cache-client-benchmark-3.xml         |     2 +-
 modules/core/src/test/config/example-cache.xml  |     2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |     2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |     2 +-
 modules/core/src/test/config/log4j-test.xml     |     2 +-
 .../core/src/test/config/spring-cache-load.xml  |     2 +-
 .../core/src/test/config/spring-multicache.xml  |     2 +-
 .../average/spring-streamer-average-base.xml    |     2 +-
 .../average/spring-streamer-average-local.xml   |     2 +-
 .../average/spring-streamer-average-random.xml  |     2 +-
 .../config/streamer/spring-streamer-base.xml    |     2 +-
 modules/core/src/test/config/tests.properties   |    10 +-
 .../ignite/GridExceptionHelpLinksSelfTest.java  |   106 -
 .../ignite/GridExternalizableAbstractTest.java  |    41 -
 .../org/apache/ignite/GridTestTaskSession.java  |     4 +-
 .../IgniteExceptionHelpLinksSelfTest.java       |   105 +
 .../IgniteExternalizableAbstractTest.java       |    41 +
 ...CachePartitionFairAffinityNodesSelfTest.java |     6 +-
 .../store/GridCacheBalancingStoreSelfTest.java  |     3 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |     7 +-
 .../fs/GridGgfsEventsAbstractSelfTest.java      |     2 +-
 .../ignite/fs/GridGgfsFragmentizerSelfTest.java |     2 +-
 .../internal/GridDiscoveryEventSelfTest.java    |     3 +-
 .../ignite/internal/GridDiscoverySelfTest.java  |     4 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |     2 +-
 .../internal/GridExecutorServiceTest.java       |   315 -
 .../GridExplicitImplicitDeploymentSelfTest.java |   476 -
 .../internal/GridFactoryVmShutdownTest.java     |     2 +-
 .../ignite/internal/GridHomePathSelfTest.java   |     2 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |    56 +-
 .../ignite/internal/GridKernalTestUtils.java    |     3 +-
 .../internal/GridListenActorSelfTest.java       |     3 +-
 .../internal/GridMultipleJobsSelfTest.java      |     6 +-
 .../GridNodeVisorAttributesSelfTest.java        |     4 +-
 .../internal/GridProjectionAbstractTest.java    |    20 +-
 .../ignite/internal/GridReduceSelfTest.java     |     2 +-
 .../ignite/internal/GridStartStopSelfTest.java  |     2 +-
 .../GridTaskFutureImplStopGridSelfTest.java     |     5 +-
 .../internal/GridTaskListenerSelfTest.java      |     4 +-
 .../GridTopicExternalizableSelfTest.java        |     3 +-
 .../GridTopologyBuildVersionSelfTest.java       |     2 +-
 .../internal/GridUpdateNotifierSelfTest.java    |     3 +-
 .../ignite/internal/GridVersionSelfTest.java    |     8 +-
 .../internal/IgniteExecutorServiceTest.java     |   315 +
 ...gniteExplicitImplicitDeploymentSelfTest.java |   476 +
 .../GridCheckpointManagerAbstractSelfTest.java  |     4 +-
 .../GridCommunicationSendMessageSelfTest.java   |     4 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |     2 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |     6 +-
 .../events/GridEventStorageManagerSelfTest.java |     3 +-
 .../swapspace/GridSwapSpaceManagerSelfTest.java |     2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |     6 +-
 .../GridCacheAbstractFailoverSelfTest.java      |     3 +-
 .../cache/GridCacheAbstractFlagsTest.java       |     4 +-
 ...cheAbstractFullApiMultithreadedSelfTest.java |     5 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |   381 +-
 .../GridCacheAbstractIteratorsSelfTest.java     |    10 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |    28 +-
 .../GridCacheAbstractProjectionSelfTest.java    |    50 +
 .../GridCacheAbstractRemoveFailureTest.java     |    12 +-
 .../cache/GridCacheAbstractSelfTest.java        |     2 +-
 .../cache/GridCacheAffinityApiSelfTest.java     |     4 +-
 .../GridCacheAsyncOperationsLimitSelfTest.java  |     8 +-
 .../cache/GridCacheConcurrentMapTest.java       |     6 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |     4 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |     4 +-
 .../GridCacheFinishPartitionsSelfTest.java      |    27 +-
 ...CacheFullTextQueryMultithreadedSelfTest.java |     6 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |     4 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |     6 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |     5 +-
 .../cache/GridCacheIncrementTransformTest.java  |     4 +-
 .../processors/cache/GridCacheLeakTest.java     |     2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |    18 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |     9 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |     6 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |     5 +-
 .../cache/GridCacheMvccFlagsTest.java           |     4 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |     4 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |     4 +-
 .../processors/cache/GridCacheMvccSelfTest.java |     4 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |     2 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |     2 +-
 ...HeapMultiThreadedUpdateAbstractSelfTest.java |     5 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |     2 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |     6 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |     2 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |     8 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |    17 +-
 .../GridCacheQueryInternalKeysSelfTest.java     |     2 +-
 .../GridCacheReferenceCleanupSelfTest.java      |     6 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |     4 +-
 .../GridCacheReturnValueTransferSelfTest.java   |     2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |     6 +-
 .../processors/cache/GridCacheStopSelfTest.java |     6 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |     4 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |     4 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |     2 +-
 .../cache/GridCacheTtlManagerLoadTest.java      |     5 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |     2 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |     6 +-
 .../GridCacheVariableTopologySelfTest.java      |     4 +-
 ...idCacheWriteBehindStoreAbstractSelfTest.java |     4 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |     4 +-
 .../GridCacheWriteBehindStoreSelfTest.java      |     6 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |     7 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |    10 +-
 .../processors/cache/IgniteTxAbstractTest.java  |     2 +-
 .../IgniteTxConcurrentGetAbstractTest.java      |     3 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |     2 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |     6 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |     6 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |     2 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |    27 +-
 ...actQueueFailoverDataConsistencySelfTest.java |     9 +-
 .../GridCacheCountDownLatchSelfTest.java        |     8 +-
 .../GridCacheMultiNodeDataStructureTest.java    |     4 +-
 .../GridCacheQueueCleanupSelfTest.java          |     5 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |     7 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |    17 +-
 .../GridCacheSetAbstractSelfTest.java           |    15 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |     6 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |     6 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |     6 +-
 .../GridCacheAbstractJobExecutionTest.java      |     6 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |    11 +-
 .../GridCacheBasicOpAbstractTest.java           |     7 +-
 .../distributed/GridCacheEventAbstractTest.java |     2 +-
 ...heExpiredEntriesPreloadAbstractSelfTest.java |     2 +-
 .../distributed/GridCacheLockAbstractTest.java  |     6 +-
 .../GridCacheMultiNodeAbstractTest.java         |    15 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |     2 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |     4 +-
 .../GridCacheNodeFailureAbstractTest.java       |     8 +-
 .../IgniteCrossCacheTxStoreSelfTest.java        |   288 +
 ...iteTxConsistencyRestartAbstractSelfTest.java |     4 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |    10 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |    22 +-
 .../IgniteTxPreloadAbstractTest.java            |     4 +-
 .../dht/GridCacheAtomicFullApiSelfTest.java     |    11 +-
 .../dht/GridCacheAtomicNearCacheSelfTest.java   |     2 +-
 .../dht/GridCacheColocatedDebugTest.java        |    11 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |     2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |    10 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |    12 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |     2 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |     2 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |     6 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |     5 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |     5 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |    60 +-
 ...itionedTxOriginatingNodeFailureSelfTest.java |     8 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |     5 +-
 .../atomic/GridCacheAtomicPreloadSelfTest.java  |     4 +-
 ...GridCacheValueConsistencyAtomicSelfTest.java |     2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |     6 +-
 .../near/GridCacheNearReadersSelfTest.java      |     4 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |     2 +-
 .../GridCachePartitionedEntryLockSelfTest.java  |     5 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |     6 +-
 .../GridCachePartitionedFullApiSelfTest.java    |     4 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |     2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |     5 +-
 .../GridCachePartitionedProjectionSelfTest.java |     4 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |     6 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |    11 +-
 .../GridCacheReplicatedEvictionSelfTest.java    |     5 +-
 .../GridCacheBatchEvictUnswapSelfTest.java      |     5 +-
 ...heConcurrentEvictionConsistencySelfTest.java |     4 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |     4 +-
 .../cache/eviction/GridCacheMockEntry.java      |    27 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |     4 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |     2 +-
 .../IgniteCacheTxStoreSessionTest.java          |    11 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |     4 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |     6 +-
 .../closure/GridClosureProcessorSelfTest.java   |    27 +-
 .../continuous/GridEventConsumeSelfTest.java    |    10 +-
 .../GridDataLoaderProcessorSelfTest.java        |    23 +-
 .../processors/fs/GridGgfsAbstractSelfTest.java |     6 +-
 .../fs/GridGgfsDataManagerSelfTest.java         |     9 +-
 .../processors/fs/GridGgfsModesSelfTest.java    |     4 +-
 .../fs/GridGgfsProcessorSelfTest.java           |     2 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |     6 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |     4 +-
 .../processors/fs/GridGgfsSizeSelfTest.java     |     8 +-
 .../processors/fs/GridGgfsTaskSelfTest.java     |     5 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |    13 +-
 .../GridServiceProcessorAbstractSelfTest.java   |    20 +-
 .../GridServiceProcessorMultiNodeSelfTest.java  |     8 +-
 .../GridServiceReassignmentSelfTest.java        |     2 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |     4 +-
 .../timeout/GridTimeoutProcessorSelfTest.java   |     5 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |     4 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    10 +-
 .../internal/util/GridTestClockTimer.java       |     6 +-
 .../ignite/internal/util/GridUtilsSelfTest.java |   717 -
 .../internal/util/IgniteUtilsSelfTest.java      |   728 +
 .../util/future/GridCompoundFutureSelfTest.java |     8 +-
 .../util/future/GridEmbeddedFutureSelfTest.java |     7 +-
 .../util/future/GridFinishedFutureSelfTest.java |     9 +-
 .../util/future/GridFutureAdapterSelfTest.java  |    23 +-
 .../future/GridFutureListenPerformanceTest.java |     5 +-
 ...GridUnsafeDataOutputArraySizingSelfTest.java |     2 +-
 ...idIpcServerEndpointDeserializerSelfTest.java |   160 -
 .../IpcServerEndpointDeserializerSelfTest.java  |   160 +
 .../ipc/shmem/GgfsSharedMemoryTestClient.java   |    76 +
 .../ipc/shmem/GgfsSharedMemoryTestServer.java   |    71 +
 .../shmem/GridGgfsSharedMemoryTestClient.java   |    76 -
 .../shmem/GridGgfsSharedMemoryTestServer.java   |    71 -
 ...idIpcSharedMemoryCrashDetectionSelfTest.java |   500 -
 .../shmem/GridIpcSharedMemoryFakeClient.java    |    36 -
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |    87 -
 .../shmem/GridIpcSharedMemorySpaceSelfTest.java |   259 -
 .../shmem/GridIpcSharedMemoryUtilsSelfTest.java |    84 -
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |   500 +
 .../ipc/shmem/IpcSharedMemoryFakeClient.java    |    36 +
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |    78 +
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |    87 +
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |   267 +
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |    84 +
 .../LoadWithCorruptedLibFileTestRunner.java     |    65 +
 .../GridIpcSharedMemoryBenchmarkParty.java      |    35 -
 .../GridIpcSharedMemoryBenchmarkReader.java     |   133 -
 .../GridIpcSharedMemoryBenchmarkWriter.java     |   125 -
 .../IpcSharedMemoryBenchmarkParty.java          |    35 +
 .../IpcSharedMemoryBenchmarkReader.java         |   133 +
 .../IpcSharedMemoryBenchmarkWriter.java         |   125 +
 .../internal/util/nio/GridNioSelfTest.java      |     8 +-
 .../offheap/GridOffHeapMapAbstractSelfTest.java |     7 +-
 ...idOffHeapPartitionedMapAbstractSelfTest.java |     3 +-
 ...apPartitionedMapPerformanceAbstractTest.java |    10 +-
 .../unsafe/GridUnsafeMemorySelfTest.java        |     6 +-
 .../ignite/jvmtest/ConcurrentMapTest.java       |     4 +-
 .../ignite/jvmtest/NetworkFailureTest.java      |    16 +-
 .../QueueSizeCounterMultiThreadedTest.java      |     4 +-
 .../jvmtest/ReadWriteLockMultiThreadedTest.java |    10 +-
 .../ignite/lang/GridBasicPerformanceTest.java   |     5 +-
 .../apache/ignite/lang/GridFuncSelfTest.java    |    13 +-
 .../lang/GridFutureListenPerformanceTest.java   |     5 +-
 .../ignite/lang/GridSetWrapperSelfTest.java     |     2 +-
 .../loadtest/GridSingleExecutionTest.java       |     4 +-
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |     6 +-
 .../cache/GridCacheAbstractLoadTest.java        |     8 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |     2 +-
 .../loadtests/cache/GridCacheLoadTest.java      |     2 +-
 .../cache/GridCachePutRemoveLoadTest.java       |     2 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |    13 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |     4 +-
 .../capacity/spring-capacity-cache.xml          |     2 +-
 .../loadtests/colocation/GridTestMain.java      |    10 +-
 .../loadtests/colocation/spring-colocation.xml  |     2 +-
 .../communication/GridIoManagerBenchmark.java   |    10 +-
 .../communication/GridIoManagerBenchmark0.java  |    22 +-
 .../GridContinuousOperationsLoadTest.java       |    22 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |     2 +-
 ...GridJobExecutionLoadTestClientSemaphore.java |     5 +-
 ...JobExecutionSingleNodeSemaphoreLoadTest.java |     7 +-
 .../loadtests/mapper/GridNodeStartup.java       |     4 +-
 .../mergesort/GridMergeSortLoadTask.java        |     6 +-
 .../loadtests/nio/GridNioBenchmarkTest.java     |     2 +-
 ...apPartitionedMapPerformanceAbstractTest.java |    10 +-
 .../streamer/GridStreamerIndexLoadTest.java     |    10 +-
 .../ignite/loadtests/util/GridLoadTestArgs.java |     8 +-
 .../marshaller/GridMarshallerAbstractTest.java  |    20 +-
 .../ignite/messaging/GridMessagingSelfTest.java |     8 +-
 ...redFsCheckpointSpiMultiThreadedSelfTest.java |     8 +-
 .../collision/GridTestCollisionTaskSession.java |     3 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |     3 +-
 .../tcp/GridTcpCommunicationSpiLanTest.java     |     3 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |     9 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |     7 +-
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |     7 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |    14 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |     7 +-
 .../startup/GridRandomCommandLineLoader.java    |    10 +-
 .../ignite/startup/GridVmNodesStarter.java      |     8 +-
 .../GridCommandLineTransformerSelfTest.java     |     6 +-
 .../GridCacheStoreValueBytesTest.java           |     7 +-
 .../index/GridStreamerIndexSelfTest.java        |     8 +-
 .../window/GridStreamerWindowSelfTest.java      |     4 +-
 .../ignite/testframework/GridTestUtils.java     |    22 +-
 .../config/GridTestProperties.java              |    16 +-
 .../testframework/junits/GridAbstractTest.java  |    26 +-
 .../junits/GridTestKernalContext.java           |     2 +-
 .../cache/GridAbstractCacheStoreSelfTest.java   |     3 +-
 .../junits/common/GridCommonAbstractTest.java   |    26 +-
 .../logger/GridLog4jRollingFileAppender.java    |     4 +-
 .../junits/logger/GridTestLog4jLogger.java      |     8 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |     2 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |     1 +
 .../testsuites/IgniteComputeGridTestSuite.java  |     4 +-
 .../ignite/testsuites/IgniteFsTestSuite.java    |     2 +-
 .../IgniteIpcSharedMemorySelfTestSuite.java     |     7 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |     2 +-
 ...dConcurrentLinkedDequeMultiThreadedTest.java |     6 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |    10 +-
 .../apache/ignite/util/GridIndexFillTest.java   |     4 +-
 .../ignite/util/GridSnapshotLockSelfTest.java   |     6 +-
 .../util/GridSpinReadWriteLockSelfTest.java     |     4 +-
 .../src/test/resources/log/gridgain.log.tst     | 13706 -----------------
 .../core/src/test/resources/log/ignite.log.tst  | 13706 +++++++++++++++++
 modules/core/src/test/resources/readme.txt      |     2 +-
 .../core/src/test/webapp/META-INF/gg-config.xml |     2 +-
 modules/core/src/test/webapp/WEB-INF/web.xml    |     2 +-
 modules/email/readme.txt                        |    14 +-
 .../processors/email/IgniteEmailProcessor.java  |     5 +-
 modules/hadoop/readme.txt                       |    14 +-
 .../GridHadoopClientProtocolProvider.java       |     8 +-
 .../fs/hadoop/v1/GridGgfsHadoopFileSystem.java  |     6 +-
 .../fs/hadoop/v2/GridGgfsHadoopFileSystem.java  |     6 +-
 .../apache/ignite/hadoop/GridHadoopSetup.java   |    16 +-
 .../internal/fs/hadoop/GridGgfsHadoopIpcIo.java |    10 +-
 .../hadoop/GridHadoopClassLoader.java           |     4 +-
 .../processors/hadoop/GridHadoopImpl.java       |     6 +-
 .../hadoop/IgniteHadoopProcessor.java           |     5 +-
 .../hadoop/jobtracker/GridHadoopJobTracker.java |    19 +-
 .../GridHadoopDefaultMapReducePlanner.java      |     2 +-
 .../proto/GridHadoopProtocolJobStatusTask.java  |     7 +-
 .../hadoop/shuffle/GridHadoopShuffle.java       |     2 +-
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |     7 +-
 .../GridHadoopExternalTaskExecutor.java         |    18 +-
 .../child/GridHadoopChildProcessRunner.java     |    18 +-
 .../child/GridHadoopExternalProcessStarter.java |     2 +-
 .../GridHadoopExternalCommunication.java        |    26 +-
 .../GridHadoopIpcToNioAdapter.java              |     6 +-
 ...doop20FileSystemLoopbackPrimarySelfTest.java |     2 +-
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |     2 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |     4 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |     2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |     2 +-
 ...adoopFileSystemLoopbackAbstractSelfTest.java |     2 +-
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |     8 +-
 .../fs/GridGgfsNearOnlyMultiNodeSelfTest.java   |     4 +-
 .../ignite/fs/IgniteFsEventsTestSuite.java      |     4 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |     6 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java |    12 +-
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |     5 +-
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |     4 +-
 .../hadoop/GridHadoopMapReduceTest.java         |     4 +-
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |    12 +-
 .../GridHadoopExecutorServiceTest.java          |     4 +-
 ...GridHadoopExternalTaskExecutionSelfTest.java |     6 +-
 .../ggfs/GridGgfsPerformanceBenchmark.java      |     4 +-
 modules/hibernate/readme.txt                    |    16 +-
 .../hibernate/CacheHibernateBlobStore.java      |   593 +
 .../CacheHibernateBlobStoreEntry.hbm.xml        |    29 +
 .../hibernate/CacheHibernateBlobStoreEntry.java |    86 +
 .../hibernate/GridCacheHibernateBlobStore.java  |   593 -
 .../GridCacheHibernateBlobStoreEntry.hbm.xml    |    29 -
 .../GridCacheHibernateBlobStoreEntry.java       |    86 -
 ...idHibernateL2CacheTransactionalSelfTest.java |     2 +-
 .../CacheHibernateBlobStoreSelfTest.java        |   108 +
 .../GridCacheHibernateBlobStoreSelfTest.java    |   108 -
 .../cache/store/hibernate/hibernate.cfg.xml     |     2 +-
 .../testsuites/IgniteHibernateTestSuite.java    |     2 +-
 modules/indexing/readme.txt                     |    14 +-
 .../processors/query/h2/IgniteH2Indexing.java   |    12 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |     2 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |     8 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |     8 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |     2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |    26 +-
 ...idCacheReduceQueryMultithreadedSelfTest.java |     6 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |     5 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |     2 +-
 .../GridCacheReplicatedQuerySelfTest.java       |     6 +-
 .../query/h2/GridH2IndexRebuildTest.java        |     7 +-
 .../query/h2/GridH2IndexingGeoSelfTest.java     |     6 +-
 .../query/h2/sql/GridQueryParsingTest.java      |     4 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |     4 +-
 modules/jcl/readme.txt                          |    14 +-
 .../apache/ignite/logger/jcl/GridJclLogger.java |     4 +-
 modules/jta/readme.txt                          |    14 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |    50 +
 .../ignite/cache/jta/GridCacheTmLookup.java     |    50 -
 .../cache/jta/jndi/CacheJndiTmLookup.java       |    74 +
 .../cache/jta/jndi/GridCacheJndiTmLookup.java   |    74 -
 .../jta/reflect/CacheReflectionTmLookup.java    |   115 +
 .../reflect/GridCacheReflectionTmLookup.java    |   115 -
 .../processors/cache/jta/CacheJtaManager.java   |     4 +-
 ...CacheJtaConfigurationValidationSelfTest.java |     2 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |     2 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |     6 +-
 modules/log4j/readme.txt                        |    14 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |     8 +-
 .../logger/log4j/IgniteLog4jNodeIdFilePath.java |     8 +-
 .../log4j/GridLog4jCorrectFileNameTest.java     |     4 +-
 modules/rest-http/readme.txt                    |    14 +-
 .../http/jetty/GridJettyRestProtocol.java       |    16 +-
 .../rest/protocols/http/jetty/rest.html         |     6 +-
 modules/scalar/pom.xml                          |     6 +-
 modules/scalar/readme.txt                       |    10 +-
 .../scalar/pimps/ScalarProjectionPimp.scala     |    25 +-
 modules/schedule/readme.txt                     |    14 +-
 .../processors/schedule/ScheduleFutureImpl.java |    26 +-
 .../schedule/GridScheduleSelfTest.java          |    13 +-
 modules/slf4j/readme.txt                        |    14 +-
 modules/spring/readme.txt                       |    14 +-
 .../java/org/apache/ignite/IgniteSpring.java    |    10 +-
 .../ignite/cache/spring/SpringCacheManager.java |     6 +-
 .../cache/spring/SpringDynamicCacheManager.java |     2 +-
 .../spring/IgniteSpringProcessorImpl.java       |    10 +-
 .../ignite/internal/GridFactorySelfTest.java    |     2 +-
 modules/ssh/readme.txt                          |    14 +-
 .../util/nodestart/GridNodeCallableImpl.java    |    20 +-
 .../internal/GridNodeStartUtilsSelfTest.java    |     6 +-
 .../GridProjectionStartStopRestartSelfTest.java |     4 +-
 .../ignite/tools/javadoc/GridLinkTaglet.java    |   165 -
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |   165 +
 .../optimized/OptimizedClassNamesGenerator.java |    18 +-
 modules/urideploy/readme.txt                    |    14 +-
 .../uri/GridUriDeploymentFileProcessor.java     |     2 +-
 .../deployment/uri/GridUriDeploymentSpi.java    |  1367 --
 .../uri/GridUriDeploymentSpiMBean.java          |    53 -
 .../spi/deployment/uri/UriDeploymentSpi.java    |  1367 ++
 .../deployment/uri/UriDeploymentSpiMBean.java   |    53 +
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |     4 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |     2 +-
 .../uri/GridUriDeploymentAbstractSelfTest.java  |     2 +-
 .../GridUriDeploymentClassLoaderSelfTest.java   |     2 +-
 ...riDeploymentClassloaderRegisterSelfTest.java |     4 +-
 .../uri/GridUriDeploymentConfigSelfTest.java    |    10 +-
 .../GridUriDeploymentFileProcessorSelfTest.java |     2 +-
 .../uri/GridUriDeploymentMd5CheckSelfTest.java  |     2 +-
 ...loymentMultiScannersErrorThrottlingTest.java |     2 +-
 .../GridUriDeploymentMultiScannersSelfTest.java |     2 +-
 .../uri/GridUriDeploymentSimpleSelfTest.java    |    10 +-
 .../file/GridFileDeploymentSelfTest.java        |     6 +-
 .../GridFileDeploymentUndeploySelfTest.java     |     8 +-
 .../uri/scanners/ftp/GridFtpDeploymentTest.java |     2 +-
 .../http/GridHttpDeploymentSelfTest.java        |     2 +-
 .../IgniteUriDeploymentTestSuite.java           |     3 +-
 .../scala/org/apache/ignite/visor/Packet.scala  |     2 +-
 .../ignite/visor/commands/VisorConsole.scala    |     6 +-
 .../commands/alert/VisorAlertCommand.scala      |     2 +-
 .../config/VisorConfigurationCommand.scala      |     6 +-
 .../ignite/visor/commands/deploy/Packet.scala   |     4 +-
 .../commands/deploy/VisorDeployCommand.scala    |    22 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |     4 +-
 .../commands/events/VisorEventsCommand.scala    |     4 +-
 .../visor/commands/gc/VisorGcCommand.scala      |    13 +-
 .../visor/commands/node/VisorNodeCommand.scala  |     4 +-
 .../ignite/visor/commands/start/Packet.scala    |     6 +-
 .../commands/start/VisorStartCommand.scala      |    16 +-
 .../commands/tasks/VisorTasksCommand.scala      |     4 +-
 .../commands/top/VisorTopologyCommand.scala     |     6 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |     8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |    41 +-
 .../visor/commands/gc/VisorGcCommandSpec.scala  |    25 +-
 .../testsuites/VisorConsoleSelfTestSuite.scala  |     2 +-
 modules/web/readme.txt                          |    18 +-
 .../cache/websession/GridWebSessionFilter.java  |    26 +-
 .../GridServletContextListenerStartup.java      |   181 -
 .../startup/servlet/GridServletStartup.java     |   187 -
 .../IgniteServletContextListenerStartup.java    |   181 +
 .../startup/servlet/IgniteServletStartup.java   |   187 +
 .../internal/websession/WebSessionSelfTest.java |    12 +-
 .../websession/WebSessionServerStart.java       |     2 +-
 pom.xml                                         |    26 +-
 948 files changed, 46464 insertions(+), 45536 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/6f49e955/pom.xml
----------------------------------------------------------------------


[34/50] [abbrv] incubator-ignite git commit: Merge branch 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-132

Posted by se...@apache.org.
Merge branch 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-132


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

Branch: refs/heads/ignite-132
Commit: 9afd27a5d74c755841cd33cd5060e5c4c2f92a3b
Parents: dadb9c5 43e835b
Author: S.Vladykin <sv...@gridgain.com>
Authored: Tue Feb 3 00:31:17 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Tue Feb 3 00:31:17 2015 +0300

----------------------------------------------------------------------
 .gitignore                                      |  1 -
 config/fabric/default-config.xml                |  2 +-
 config/ignite-log4j.xml                         | 27 +++-----------------
 config/java.util.logging.properties             |  6 ++---
 ipc/shmem/readme.txt                            |  2 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |  2 +-
 modules/clients/src/test/resources/log4j.xml    |  2 +-
 .../apache/ignite/IgniteBasicWarmupClosure.java |  2 +-
 .../apache/ignite/cache/CacheConfiguration.java | 24 ++++++++---------
 .../org/apache/ignite/cache/CacheEntry.java     |  2 +-
 .../apache/ignite/cache/CacheProjection.java    | 10 ++++----
 .../cache/CacheWriteSynchronizationMode.java    | 10 ++++----
 .../configuration/IgniteConfiguration.java      |  2 +-
 .../ignite/internal/util/IgniteUtils.java       |  4 +--
 .../main/java/org/apache/ignite/package.html    |  2 +-
 modules/core/src/test/config/example-cache.xml  |  8 +++---
 modules/core/src/test/config/ggfs-loopback.xml  |  8 +++---
 17 files changed, 47 insertions(+), 67 deletions(-)
----------------------------------------------------------------------



[37/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/sherlock-holmes.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/sherlock-holmes.txt b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/sherlock-holmes.txt
new file mode 100644
index 0000000..af52c04
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/sherlock-holmes.txt
@@ -0,0 +1,13052 @@
+Project Gutenberg's The Adventures of Sherlock Holmes, by Arthur Conan Doyle
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever.  You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.net
+
+
+Title: The Adventures of Sherlock Holmes
+
+Author: Arthur Conan Doyle
+
+Posting Date: April 18, 2011 [EBook #1661]
+First Posted: November 29, 2002
+
+Language: English
+
+
+*** START OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES ***
+
+
+
+
+Produced by an anonymous Project Gutenberg volunteer and Jose Menendez
+
+
+
+
+
+
+
+
+
+THE ADVENTURES OF SHERLOCK HOLMES
+
+by
+
+SIR ARTHUR CONAN DOYLE
+
+
+
+   I. A Scandal in Bohemia
+  II. The Red-headed League
+ III. A Case of Identity
+  IV. The Boscombe Valley Mystery
+   V. The Five Orange Pips
+  VI. The Man with the Twisted Lip
+ VII. The Adventure of the Blue Carbuncle
+VIII. The Adventure of the Speckled Band
+  IX. The Adventure of the Engineer's Thumb
+   X. The Adventure of the Noble Bachelor
+  XI. The Adventure of the Beryl Coronet
+ XII. The Adventure of the Copper Beeches
+
+
+
+
+ADVENTURE I. A SCANDAL IN BOHEMIA
+
+I.
+
+To Sherlock Holmes she is always THE woman. I have seldom heard
+him mention her under any other name. In his eyes she eclipses
+and predominates the whole of her sex. It was not that he felt
+any emotion akin to love for Irene Adler. All emotions, and that
+one particularly, were abhorrent to his cold, precise but
+admirably balanced mind. He was, I take it, the most perfect
+reasoning and observing machine that the world has seen, but as a
+lover he would have placed himself in a false position. He never
+spoke of the softer passions, save with a gibe and a sneer. They
+were admirable things for the observer--excellent for drawing the
+veil from men's motives and actions. But for the trained reasoner
+to admit such intrusions into his own delicate and finely
+adjusted temperament was to introduce a distracting factor which
+might throw a doubt upon all his mental results. Grit in a
+sensitive instrument, or a crack in one of his own high-power
+lenses, would not be more disturbing than a strong emotion in a
+nature such as his. And yet there was but one woman to him, and
+that woman was the late Irene Adler, of dubious and questionable
+memory.
+
+I had seen little of Holmes lately. My marriage had drifted us
+away from each other. My own complete happiness, and the
+home-centred interests which rise up around the man who first
+finds himself master of his own establishment, were sufficient to
+absorb all my attention, while Holmes, who loathed every form of
+society with his whole Bohemian soul, remained in our lodgings in
+Baker Street, buried among his old books, and alternating from
+week to week between cocaine and ambition, the drowsiness of the
+drug, and the fierce energy of his own keen nature. He was still,
+as ever, deeply attracted by the study of crime, and occupied his
+immense faculties and extraordinary powers of observation in
+following out those clues, and clearing up those mysteries which
+had been abandoned as hopeless by the official police. From time
+to time I heard some vague account of his doings: of his summons
+to Odessa in the case of the Trepoff murder, of his clearing up
+of the singular tragedy of the Atkinson brothers at Trincomalee,
+and finally of the mission which he had accomplished so
+delicately and successfully for the reigning family of Holland.
+Beyond these signs of his activity, however, which I merely
+shared with all the readers of the daily press, I knew little of
+my former friend and companion.
+
+One night--it was on the twentieth of March, 1888--I was
+returning from a journey to a patient (for I had now returned to
+civil practice), when my way led me through Baker Street. As I
+passed the well-remembered door, which must always be associated
+in my mind with my wooing, and with the dark incidents of the
+Study in Scarlet, I was seized with a keen desire to see Holmes
+again, and to know how he was employing his extraordinary powers.
+His rooms were brilliantly lit, and, even as I looked up, I saw
+his tall, spare figure pass twice in a dark silhouette against
+the blind. He was pacing the room swiftly, eagerly, with his head
+sunk upon his chest and his hands clasped behind him. To me, who
+knew his every mood and habit, his attitude and manner told their
+own story. He was at work again. He had risen out of his
+drug-created dreams and was hot upon the scent of some new
+problem. I rang the bell and was shown up to the chamber which
+had formerly been in part my own.
+
+His manner was not effusive. It seldom was; but he was glad, I
+think, to see me. With hardly a word spoken, but with a kindly
+eye, he waved me to an armchair, threw across his case of cigars,
+and indicated a spirit case and a gasogene in the corner. Then he
+stood before the fire and looked me over in his singular
+introspective fashion.
+
+"Wedlock suits you," he remarked. "I think, Watson, that you have
+put on seven and a half pounds since I saw you."
+
+"Seven!" I answered.
+
+"Indeed, I should have thought a little more. Just a trifle more,
+I fancy, Watson. And in practice again, I observe. You did not
+tell me that you intended to go into harness."
+
+"Then, how do you know?"
+
+"I see it, I deduce it. How do I know that you have been getting
+yourself very wet lately, and that you have a most clumsy and
+careless servant girl?"
+
+"My dear Holmes," said I, "this is too much. You would certainly
+have been burned, had you lived a few centuries ago. It is true
+that I had a country walk on Thursday and came home in a dreadful
+mess, but as I have changed my clothes I can't imagine how you
+deduce it. As to Mary Jane, she is incorrigible, and my wife has
+given her notice, but there, again, I fail to see how you work it
+out."
+
+He chuckled to himself and rubbed his long, nervous hands
+together.
+
+"It is simplicity itself," said he; "my eyes tell me that on the
+inside of your left shoe, just where the firelight strikes it,
+the leather is scored by six almost parallel cuts. Obviously they
+have been caused by someone who has very carelessly scraped round
+the edges of the sole in order to remove crusted mud from it.
+Hence, you see, my double deduction that you had been out in vile
+weather, and that you had a particularly malignant boot-slitting
+specimen of the London slavey. As to your practice, if a
+gentleman walks into my rooms smelling of iodoform, with a black
+mark of nitrate of silver upon his right forefinger, and a bulge
+on the right side of his top-hat to show where he has secreted
+his stethoscope, I must be dull, indeed, if I do not pronounce
+him to be an active member of the medical profession."
+
+I could not help laughing at the ease with which he explained his
+process of deduction. "When I hear you give your reasons," I
+remarked, "the thing always appears to me to be so ridiculously
+simple that I could easily do it myself, though at each
+successive instance of your reasoning I am baffled until you
+explain your process. And yet I believe that my eyes are as good
+as yours."
+
+"Quite so," he answered, lighting a cigarette, and throwing
+himself down into an armchair. "You see, but you do not observe.
+The distinction is clear. For example, you have frequently seen
+the steps which lead up from the hall to this room."
+
+"Frequently."
+
+"How often?"
+
+"Well, some hundreds of times."
+
+"Then how many are there?"
+
+"How many? I don't know."
+
+"Quite so! You have not observed. And yet you have seen. That is
+just my point. Now, I know that there are seventeen steps,
+because I have both seen and observed. By-the-way, since you are
+interested in these little problems, and since you are good
+enough to chronicle one or two of my trifling experiences, you
+may be interested in this." He threw over a sheet of thick,
+pink-tinted note-paper which had been lying open upon the table.
+"It came by the last post," said he. "Read it aloud."
+
+The note was undated, and without either signature or address.
+
+"There will call upon you to-night, at a quarter to eight
+o'clock," it said, "a gentleman who desires to consult you upon a
+matter of the very deepest moment. Your recent services to one of
+the royal houses of Europe have shown that you are one who may
+safely be trusted with matters which are of an importance which
+can hardly be exaggerated. This account of you we have from all
+quarters received. Be in your chamber then at that hour, and do
+not take it amiss if your visitor wear a mask."
+
+"This is indeed a mystery," I remarked. "What do you imagine that
+it means?"
+
+"I have no data yet. It is a capital mistake to theorize before
+one has data. Insensibly one begins to twist facts to suit
+theories, instead of theories to suit facts. But the note itself.
+What do you deduce from it?"
+
+I carefully examined the writing, and the paper upon which it was
+written.
+
+"The man who wrote it was presumably well to do," I remarked,
+endeavouring to imitate my companion's processes. "Such paper
+could not be bought under half a crown a packet. It is peculiarly
+strong and stiff."
+
+"Peculiar--that is the very word," said Holmes. "It is not an
+English paper at all. Hold it up to the light."
+
+I did so, and saw a large "E" with a small "g," a "P," and a
+large "G" with a small "t" woven into the texture of the paper.
+
+"What do you make of that?" asked Holmes.
+
+"The name of the maker, no doubt; or his monogram, rather."
+
+"Not at all. The 'G' with the small 't' stands for
+'Gesellschaft,' which is the German for 'Company.' It is a
+customary contraction like our 'Co.' 'P,' of course, stands for
+'Papier.' Now for the 'Eg.' Let us glance at our Continental
+Gazetteer." He took down a heavy brown volume from his shelves.
+"Eglow, Eglonitz--here we are, Egria. It is in a German-speaking
+country--in Bohemia, not far from Carlsbad. 'Remarkable as being
+the scene of the death of Wallenstein, and for its numerous
+glass-factories and paper-mills.' Ha, ha, my boy, what do you
+make of that?" His eyes sparkled, and he sent up a great blue
+triumphant cloud from his cigarette.
+
+"The paper was made in Bohemia," I said.
+
+"Precisely. And the man who wrote the note is a German. Do you
+note the peculiar construction of the sentence--'This account of
+you we have from all quarters received.' A Frenchman or Russian
+could not have written that. It is the German who is so
+uncourteous to his verbs. It only remains, therefore, to discover
+what is wanted by this German who writes upon Bohemian paper and
+prefers wearing a mask to showing his face. And here he comes, if
+I am not mistaken, to resolve all our doubts."
+
+As he spoke there was the sharp sound of horses' hoofs and
+grating wheels against the curb, followed by a sharp pull at the
+bell. Holmes whistled.
+
+"A pair, by the sound," said he. "Yes," he continued, glancing
+out of the window. "A nice little brougham and a pair of
+beauties. A hundred and fifty guineas apiece. There's money in
+this case, Watson, if there is nothing else."
+
+"I think that I had better go, Holmes."
+
+"Not a bit, Doctor. Stay where you are. I am lost without my
+Boswell. And this promises to be interesting. It would be a pity
+to miss it."
+
+"But your client--"
+
+"Never mind him. I may want your help, and so may he. Here he
+comes. Sit down in that armchair, Doctor, and give us your best
+attention."
+
+A slow and heavy step, which had been heard upon the stairs and
+in the passage, paused immediately outside the door. Then there
+was a loud and authoritative tap.
+
+"Come in!" said Holmes.
+
+A man entered who could hardly have been less than six feet six
+inches in height, with the chest and limbs of a Hercules. His
+dress was rich with a richness which would, in England, be looked
+upon as akin to bad taste. Heavy bands of astrakhan were slashed
+across the sleeves and fronts of his double-breasted coat, while
+the deep blue cloak which was thrown over his shoulders was lined
+with flame-coloured silk and secured at the neck with a brooch
+which consisted of a single flaming beryl. Boots which extended
+halfway up his calves, and which were trimmed at the tops with
+rich brown fur, completed the impression of barbaric opulence
+which was suggested by his whole appearance. He carried a
+broad-brimmed hat in his hand, while he wore across the upper
+part of his face, extending down past the cheekbones, a black
+vizard mask, which he had apparently adjusted that very moment,
+for his hand was still raised to it as he entered. From the lower
+part of the face he appeared to be a man of strong character,
+with a thick, hanging lip, and a long, straight chin suggestive
+of resolution pushed to the length of obstinacy.
+
+"You had my note?" he asked with a deep harsh voice and a
+strongly marked German accent. "I told you that I would call." He
+looked from one to the other of us, as if uncertain which to
+address.
+
+"Pray take a seat," said Holmes. "This is my friend and
+colleague, Dr. Watson, who is occasionally good enough to help me
+in my cases. Whom have I the honour to address?"
+
+"You may address me as the Count Von Kramm, a Bohemian nobleman.
+I understand that this gentleman, your friend, is a man of honour
+and discretion, whom I may trust with a matter of the most
+extreme importance. If not, I should much prefer to communicate
+with you alone."
+
+I rose to go, but Holmes caught me by the wrist and pushed me
+back into my chair. "It is both, or none," said he. "You may say
+before this gentleman anything which you may say to me."
+
+The Count shrugged his broad shoulders. "Then I must begin," said
+he, "by binding you both to absolute secrecy for two years; at
+the end of that time the matter will be of no importance. At
+present it is not too much to say that it is of such weight it
+may have an influence upon European history."
+
+"I promise," said Holmes.
+
+"And I."
+
+"You will excuse this mask," continued our strange visitor. "The
+august person who employs me wishes his agent to be unknown to
+you, and I may confess at once that the title by which I have
+just called myself is not exactly my own."
+
+"I was aware of it," said Holmes dryly.
+
+"The circumstances are of great delicacy, and every precaution
+has to be taken to quench what might grow to be an immense
+scandal and seriously compromise one of the reigning families of
+Europe. To speak plainly, the matter implicates the great House
+of Ormstein, hereditary kings of Bohemia."
+
+"I was also aware of that," murmured Holmes, settling himself
+down in his armchair and closing his eyes.
+
+Our visitor glanced with some apparent surprise at the languid,
+lounging figure of the man who had been no doubt depicted to him
+as the most incisive reasoner and most energetic agent in Europe.
+Holmes slowly reopened his eyes and looked impatiently at his
+gigantic client.
+
+"If your Majesty would condescend to state your case," he
+remarked, "I should be better able to advise you."
+
+The man sprang from his chair and paced up and down the room in
+uncontrollable agitation. Then, with a gesture of desperation, he
+tore the mask from his face and hurled it upon the ground. "You
+are right," he cried; "I am the King. Why should I attempt to
+conceal it?"
+
+"Why, indeed?" murmured Holmes. "Your Majesty had not spoken
+before I was aware that I was addressing Wilhelm Gottsreich
+Sigismond von Ormstein, Grand Duke of Cassel-Felstein, and
+hereditary King of Bohemia."
+
+"But you can understand," said our strange visitor, sitting down
+once more and passing his hand over his high white forehead, "you
+can understand that I am not accustomed to doing such business in
+my own person. Yet the matter was so delicate that I could not
+confide it to an agent without putting myself in his power. I
+have come incognito from Prague for the purpose of consulting
+you."
+
+"Then, pray consult," said Holmes, shutting his eyes once more.
+
+"The facts are briefly these: Some five years ago, during a
+lengthy visit to Warsaw, I made the acquaintance of the well-known
+adventuress, Irene Adler. The name is no doubt familiar to you."
+
+"Kindly look her up in my index, Doctor," murmured Holmes without
+opening his eyes. For many years he had adopted a system of
+docketing all paragraphs concerning men and things, so that it
+was difficult to name a subject or a person on which he could not
+at once furnish information. In this case I found her biography
+sandwiched in between that of a Hebrew rabbi and that of a
+staff-commander who had written a monograph upon the deep-sea
+fishes.
+
+"Let me see!" said Holmes. "Hum! Born in New Jersey in the year
+1858. Contralto--hum! La Scala, hum! Prima donna Imperial Opera
+of Warsaw--yes! Retired from operatic stage--ha! Living in
+London--quite so! Your Majesty, as I understand, became entangled
+with this young person, wrote her some compromising letters, and
+is now desirous of getting those letters back."
+
+"Precisely so. But how--"
+
+"Was there a secret marriage?"
+
+"None."
+
+"No legal papers or certificates?"
+
+"None."
+
+"Then I fail to follow your Majesty. If this young person should
+produce her letters for blackmailing or other purposes, how is
+she to prove their authenticity?"
+
+"There is the writing."
+
+"Pooh, pooh! Forgery."
+
+"My private note-paper."
+
+"Stolen."
+
+"My own seal."
+
+"Imitated."
+
+"My photograph."
+
+"Bought."
+
+"We were both in the photograph."
+
+"Oh, dear! That is very bad! Your Majesty has indeed committed an
+indiscretion."
+
+"I was mad--insane."
+
+"You have compromised yourself seriously."
+
+"I was only Crown Prince then. I was young. I am but thirty now."
+
+"It must be recovered."
+
+"We have tried and failed."
+
+"Your Majesty must pay. It must be bought."
+
+"She will not sell."
+
+"Stolen, then."
+
+"Five attempts have been made. Twice burglars in my pay ransacked
+her house. Once we diverted her luggage when she travelled. Twice
+she has been waylaid. There has been no result."
+
+"No sign of it?"
+
+"Absolutely none."
+
+Holmes laughed. "It is quite a pretty little problem," said he.
+
+"But a very serious one to me," returned the King reproachfully.
+
+"Very, indeed. And what does she propose to do with the
+photograph?"
+
+"To ruin me."
+
+"But how?"
+
+"I am about to be married."
+
+"So I have heard."
+
+"To Clotilde Lothman von Saxe-Meningen, second daughter of the
+King of Scandinavia. You may know the strict principles of her
+family. She is herself the very soul of delicacy. A shadow of a
+doubt as to my conduct would bring the matter to an end."
+
+"And Irene Adler?"
+
+"Threatens to send them the photograph. And she will do it. I
+know that she will do it. You do not know her, but she has a soul
+of steel. She has the face of the most beautiful of women, and
+the mind of the most resolute of men. Rather than I should marry
+another woman, there are no lengths to which she would not
+go--none."
+
+"You are sure that she has not sent it yet?"
+
+"I am sure."
+
+"And why?"
+
+"Because she has said that she would send it on the day when the
+betrothal was publicly proclaimed. That will be next Monday."
+
+"Oh, then we have three days yet," said Holmes with a yawn. "That
+is very fortunate, as I have one or two matters of importance to
+look into just at present. Your Majesty will, of course, stay in
+London for the present?"
+
+"Certainly. You will find me at the Langham under the name of the
+Count Von Kramm."
+
+"Then I shall drop you a line to let you know how we progress."
+
+"Pray do so. I shall be all anxiety."
+
+"Then, as to money?"
+
+"You have carte blanche."
+
+"Absolutely?"
+
+"I tell you that I would give one of the provinces of my kingdom
+to have that photograph."
+
+"And for present expenses?"
+
+The King took a heavy chamois leather bag from under his cloak
+and laid it on the table.
+
+"There are three hundred pounds in gold and seven hundred in
+notes," he said.
+
+Holmes scribbled a receipt upon a sheet of his note-book and
+handed it to him.
+
+"And Mademoiselle's address?" he asked.
+
+"Is Briony Lodge, Serpentine Avenue, St. John's Wood."
+
+Holmes took a note of it. "One other question," said he. "Was the
+photograph a cabinet?"
+
+"It was."
+
+"Then, good-night, your Majesty, and I trust that we shall soon
+have some good news for you. And good-night, Watson," he added,
+as the wheels of the royal brougham rolled down the street. "If
+you will be good enough to call to-morrow afternoon at three
+o'clock I should like to chat this little matter over with you."
+
+
+II.
+
+At three o'clock precisely I was at Baker Street, but Holmes had
+not yet returned. The landlady informed me that he had left the
+house shortly after eight o'clock in the morning. I sat down
+beside the fire, however, with the intention of awaiting him,
+however long he might be. I was already deeply interested in his
+inquiry, for, though it was surrounded by none of the grim and
+strange features which were associated with the two crimes which
+I have already recorded, still, the nature of the case and the
+exalted station of his client gave it a character of its own.
+Indeed, apart from the nature of the investigation which my
+friend had on hand, there was something in his masterly grasp of
+a situation, and his keen, incisive reasoning, which made it a
+pleasure to me to study his system of work, and to follow the
+quick, subtle methods by which he disentangled the most
+inextricable mysteries. So accustomed was I to his invariable
+success that the very possibility of his failing had ceased to
+enter into my head.
+
+It was close upon four before the door opened, and a
+drunken-looking groom, ill-kempt and side-whiskered, with an
+inflamed face and disreputable clothes, walked into the room.
+Accustomed as I was to my friend's amazing powers in the use of
+disguises, I had to look three times before I was certain that it
+was indeed he. With a nod he vanished into the bedroom, whence he
+emerged in five minutes tweed-suited and respectable, as of old.
+Putting his hands into his pockets, he stretched out his legs in
+front of the fire and laughed heartily for some minutes.
+
+"Well, really!" he cried, and then he choked and laughed again
+until he was obliged to lie back, limp and helpless, in the
+chair.
+
+"What is it?"
+
+"It's quite too funny. I am sure you could never guess how I
+employed my morning, or what I ended by doing."
+
+"I can't imagine. I suppose that you have been watching the
+habits, and perhaps the house, of Miss Irene Adler."
+
+"Quite so; but the sequel was rather unusual. I will tell you,
+however. I left the house a little after eight o'clock this
+morning in the character of a groom out of work. There is a
+wonderful sympathy and freemasonry among horsey men. Be one of
+them, and you will know all that there is to know. I soon found
+Briony Lodge. It is a bijou villa, with a garden at the back, but
+built out in front right up to the road, two stories. Chubb lock
+to the door. Large sitting-room on the right side, well
+furnished, with long windows almost to the floor, and those
+preposterous English window fasteners which a child could open.
+Behind there was nothing remarkable, save that the passage window
+could be reached from the top of the coach-house. I walked round
+it and examined it closely from every point of view, but without
+noting anything else of interest.
+
+"I then lounged down the street and found, as I expected, that
+there was a mews in a lane which runs down by one wall of the
+garden. I lent the ostlers a hand in rubbing down their horses,
+and received in exchange twopence, a glass of half and half, two
+fills of shag tobacco, and as much information as I could desire
+about Miss Adler, to say nothing of half a dozen other people in
+the neighbourhood in whom I was not in the least interested, but
+whose biographies I was compelled to listen to."
+
+"And what of Irene Adler?" I asked.
+
+"Oh, she has turned all the men's heads down in that part. She is
+the daintiest thing under a bonnet on this planet. So say the
+Serpentine-mews, to a man. She lives quietly, sings at concerts,
+drives out at five every day, and returns at seven sharp for
+dinner. Seldom goes out at other times, except when she sings.
+Has only one male visitor, but a good deal of him. He is dark,
+handsome, and dashing, never calls less than once a day, and
+often twice. He is a Mr. Godfrey Norton, of the Inner Temple. See
+the advantages of a cabman as a confidant. They had driven him
+home a dozen times from Serpentine-mews, and knew all about him.
+When I had listened to all they had to tell, I began to walk up
+and down near Briony Lodge once more, and to think over my plan
+of campaign.
+
+"This Godfrey Norton was evidently an important factor in the
+matter. He was a lawyer. That sounded ominous. What was the
+relation between them, and what the object of his repeated
+visits? Was she his client, his friend, or his mistress? If the
+former, she had probably transferred the photograph to his
+keeping. If the latter, it was less likely. On the issue of this
+question depended whether I should continue my work at Briony
+Lodge, or turn my attention to the gentleman's chambers in the
+Temple. It was a delicate point, and it widened the field of my
+inquiry. I fear that I bore you with these details, but I have to
+let you see my little difficulties, if you are to understand the
+situation."
+
+"I am following you closely," I answered.
+
+"I was still balancing the matter in my mind when a hansom cab
+drove up to Briony Lodge, and a gentleman sprang out. He was a
+remarkably handsome man, dark, aquiline, and moustached--evidently
+the man of whom I had heard. He appeared to be in a
+great hurry, shouted to the cabman to wait, and brushed past the
+maid who opened the door with the air of a man who was thoroughly
+at home.
+
+"He was in the house about half an hour, and I could catch
+glimpses of him in the windows of the sitting-room, pacing up and
+down, talking excitedly, and waving his arms. Of her I could see
+nothing. Presently he emerged, looking even more flurried than
+before. As he stepped up to the cab, he pulled a gold watch from
+his pocket and looked at it earnestly, 'Drive like the devil,' he
+shouted, 'first to Gross & Hankey's in Regent Street, and then to
+the Church of St. Monica in the Edgeware Road. Half a guinea if
+you do it in twenty minutes!'
+
+"Away they went, and I was just wondering whether I should not do
+well to follow them when up the lane came a neat little landau,
+the coachman with his coat only half-buttoned, and his tie under
+his ear, while all the tags of his harness were sticking out of
+the buckles. It hadn't pulled up before she shot out of the hall
+door and into it. I only caught a glimpse of her at the moment,
+but she was a lovely woman, with a face that a man might die for.
+
+"'The Church of St. Monica, John,' she cried, 'and half a
+sovereign if you reach it in twenty minutes.'
+
+"This was quite too good to lose, Watson. I was just balancing
+whether I should run for it, or whether I should perch behind her
+landau when a cab came through the street. The driver looked
+twice at such a shabby fare, but I jumped in before he could
+object. 'The Church of St. Monica,' said I, 'and half a sovereign
+if you reach it in twenty minutes.' It was twenty-five minutes to
+twelve, and of course it was clear enough what was in the wind.
+
+"My cabby drove fast. I don't think I ever drove faster, but the
+others were there before us. The cab and the landau with their
+steaming horses were in front of the door when I arrived. I paid
+the man and hurried into the church. There was not a soul there
+save the two whom I had followed and a surpliced clergyman, who
+seemed to be expostulating with them. They were all three
+standing in a knot in front of the altar. I lounged up the side
+aisle like any other idler who has dropped into a church.
+Suddenly, to my surprise, the three at the altar faced round to
+me, and Godfrey Norton came running as hard as he could towards
+me.
+
+"'Thank God,' he cried. 'You'll do. Come! Come!'
+
+"'What then?' I asked.
+
+"'Come, man, come, only three minutes, or it won't be legal.'
+
+"I was half-dragged up to the altar, and before I knew where I was
+I found myself mumbling responses which were whispered in my ear,
+and vouching for things of which I knew nothing, and generally
+assisting in the secure tying up of Irene Adler, spinster, to
+Godfrey Norton, bachelor. It was all done in an instant, and
+there was the gentleman thanking me on the one side and the lady
+on the other, while the clergyman beamed on me in front. It was
+the most preposterous position in which I ever found myself in my
+life, and it was the thought of it that started me laughing just
+now. It seems that there had been some informality about their
+license, that the clergyman absolutely refused to marry them
+without a witness of some sort, and that my lucky appearance
+saved the bridegroom from having to sally out into the streets in
+search of a best man. The bride gave me a sovereign, and I mean
+to wear it on my watch-chain in memory of the occasion."
+
+"This is a very unexpected turn of affairs," said I; "and what
+then?"
+
+"Well, I found my plans very seriously menaced. It looked as if
+the pair might take an immediate departure, and so necessitate
+very prompt and energetic measures on my part. At the church
+door, however, they separated, he driving back to the Temple, and
+she to her own house. 'I shall drive out in the park at five as
+usual,' she said as she left him. I heard no more. They drove
+away in different directions, and I went off to make my own
+arrangements."
+
+"Which are?"
+
+"Some cold beef and a glass of beer," he answered, ringing the
+bell. "I have been too busy to think of food, and I am likely to
+be busier still this evening. By the way, Doctor, I shall want
+your co-operation."
+
+"I shall be delighted."
+
+"You don't mind breaking the law?"
+
+"Not in the least."
+
+"Nor running a chance of arrest?"
+
+"Not in a good cause."
+
+"Oh, the cause is excellent!"
+
+"Then I am your man."
+
+"I was sure that I might rely on you."
+
+"But what is it you wish?"
+
+"When Mrs. Turner has brought in the tray I will make it clear to
+you. Now," he said as he turned hungrily on the simple fare that
+our landlady had provided, "I must discuss it while I eat, for I
+have not much time. It is nearly five now. In two hours we must
+be on the scene of action. Miss Irene, or Madame, rather, returns
+from her drive at seven. We must be at Briony Lodge to meet her."
+
+"And what then?"
+
+"You must leave that to me. I have already arranged what is to
+occur. There is only one point on which I must insist. You must
+not interfere, come what may. You understand?"
+
+"I am to be neutral?"
+
+"To do nothing whatever. There will probably be some small
+unpleasantness. Do not join in it. It will end in my being
+conveyed into the house. Four or five minutes afterwards the
+sitting-room window will open. You are to station yourself close
+to that open window."
+
+"Yes."
+
+"You are to watch me, for I will be visible to you."
+
+"Yes."
+
+"And when I raise my hand--so--you will throw into the room what
+I give you to throw, and will, at the same time, raise the cry of
+fire. You quite follow me?"
+
+"Entirely."
+
+"It is nothing very formidable," he said, taking a long cigar-shaped
+roll from his pocket. "It is an ordinary plumber's smoke-rocket,
+fitted with a cap at either end to make it self-lighting.
+Your task is confined to that. When you raise your cry of fire,
+it will be taken up by quite a number of people. You may then
+walk to the end of the street, and I will rejoin you in ten
+minutes. I hope that I have made myself clear?"
+
+"I am to remain neutral, to get near the window, to watch you,
+and at the signal to throw in this object, then to raise the cry
+of fire, and to wait you at the corner of the street."
+
+"Precisely."
+
+"Then you may entirely rely on me."
+
+"That is excellent. I think, perhaps, it is almost time that I
+prepare for the new role I have to play."
+
+He disappeared into his bedroom and returned in a few minutes in
+the character of an amiable and simple-minded Nonconformist
+clergyman. His broad black hat, his baggy trousers, his white
+tie, his sympathetic smile, and general look of peering and
+benevolent curiosity were such as Mr. John Hare alone could have
+equalled. It was not merely that Holmes changed his costume. His
+expression, his manner, his very soul seemed to vary with every
+fresh part that he assumed. The stage lost a fine actor, even as
+science lost an acute reasoner, when he became a specialist in
+crime.
+
+It was a quarter past six when we left Baker Street, and it still
+wanted ten minutes to the hour when we found ourselves in
+Serpentine Avenue. It was already dusk, and the lamps were just
+being lighted as we paced up and down in front of Briony Lodge,
+waiting for the coming of its occupant. The house was just such
+as I had pictured it from Sherlock Holmes' succinct description,
+but the locality appeared to be less private than I expected. On
+the contrary, for a small street in a quiet neighbourhood, it was
+remarkably animated. There was a group of shabbily dressed men
+smoking and laughing in a corner, a scissors-grinder with his
+wheel, two guardsmen who were flirting with a nurse-girl, and
+several well-dressed young men who were lounging up and down with
+cigars in their mouths.
+
+"You see," remarked Holmes, as we paced to and fro in front of
+the house, "this marriage rather simplifies matters. The
+photograph becomes a double-edged weapon now. The chances are
+that she would be as averse to its being seen by Mr. Godfrey
+Norton, as our client is to its coming to the eyes of his
+princess. Now the question is, Where are we to find the
+photograph?"
+
+"Where, indeed?"
+
+"It is most unlikely that she carries it about with her. It is
+cabinet size. Too large for easy concealment about a woman's
+dress. She knows that the King is capable of having her waylaid
+and searched. Two attempts of the sort have already been made. We
+may take it, then, that she does not carry it about with her."
+
+"Where, then?"
+
+"Her banker or her lawyer. There is that double possibility. But
+I am inclined to think neither. Women are naturally secretive,
+and they like to do their own secreting. Why should she hand it
+over to anyone else? She could trust her own guardianship, but
+she could not tell what indirect or political influence might be
+brought to bear upon a business man. Besides, remember that she
+had resolved to use it within a few days. It must be where she
+can lay her hands upon it. It must be in her own house."
+
+"But it has twice been burgled."
+
+"Pshaw! They did not know how to look."
+
+"But how will you look?"
+
+"I will not look."
+
+"What then?"
+
+"I will get her to show me."
+
+"But she will refuse."
+
+"She will not be able to. But I hear the rumble of wheels. It is
+her carriage. Now carry out my orders to the letter."
+
+As he spoke the gleam of the side-lights of a carriage came round
+the curve of the avenue. It was a smart little landau which
+rattled up to the door of Briony Lodge. As it pulled up, one of
+the loafing men at the corner dashed forward to open the door in
+the hope of earning a copper, but was elbowed away by another
+loafer, who had rushed up with the same intention. A fierce
+quarrel broke out, which was increased by the two guardsmen, who
+took sides with one of the loungers, and by the scissors-grinder,
+who was equally hot upon the other side. A blow was struck, and
+in an instant the lady, who had stepped from her carriage, was
+the centre of a little knot of flushed and struggling men, who
+struck savagely at each other with their fists and sticks. Holmes
+dashed into the crowd to protect the lady; but just as he reached
+her he gave a cry and dropped to the ground, with the blood
+running freely down his face. At his fall the guardsmen took to
+their heels in one direction and the loungers in the other, while
+a number of better-dressed people, who had watched the scuffle
+without taking part in it, crowded in to help the lady and to
+attend to the injured man. Irene Adler, as I will still call her,
+had hurried up the steps; but she stood at the top with her
+superb figure outlined against the lights of the hall, looking
+back into the street.
+
+"Is the poor gentleman much hurt?" she asked.
+
+"He is dead," cried several voices.
+
+"No, no, there's life in him!" shouted another. "But he'll be
+gone before you can get him to hospital."
+
+"He's a brave fellow," said a woman. "They would have had the
+lady's purse and watch if it hadn't been for him. They were a
+gang, and a rough one, too. Ah, he's breathing now."
+
+"He can't lie in the street. May we bring him in, marm?"
+
+"Surely. Bring him into the sitting-room. There is a comfortable
+sofa. This way, please!"
+
+Slowly and solemnly he was borne into Briony Lodge and laid out
+in the principal room, while I still observed the proceedings
+from my post by the window. The lamps had been lit, but the
+blinds had not been drawn, so that I could see Holmes as he lay
+upon the couch. I do not know whether he was seized with
+compunction at that moment for the part he was playing, but I
+know that I never felt more heartily ashamed of myself in my life
+than when I saw the beautiful creature against whom I was
+conspiring, or the grace and kindliness with which she waited
+upon the injured man. And yet it would be the blackest treachery
+to Holmes to draw back now from the part which he had intrusted
+to me. I hardened my heart, and took the smoke-rocket from under
+my ulster. After all, I thought, we are not injuring her. We are
+but preventing her from injuring another.
+
+Holmes had sat up upon the couch, and I saw him motion like a man
+who is in need of air. A maid rushed across and threw open the
+window. At the same instant I saw him raise his hand and at the
+signal I tossed my rocket into the room with a cry of "Fire!" The
+word was no sooner out of my mouth than the whole crowd of
+spectators, well dressed and ill--gentlemen, ostlers, and
+servant-maids--joined in a general shriek of "Fire!" Thick clouds
+of smoke curled through the room and out at the open window. I
+caught a glimpse of rushing figures, and a moment later the voice
+of Holmes from within assuring them that it was a false alarm.
+Slipping through the shouting crowd I made my way to the corner
+of the street, and in ten minutes was rejoiced to find my
+friend's arm in mine, and to get away from the scene of uproar.
+He walked swiftly and in silence for some few minutes until we
+had turned down one of the quiet streets which lead towards the
+Edgeware Road.
+
+"You did it very nicely, Doctor," he remarked. "Nothing could
+have been better. It is all right."
+
+"You have the photograph?"
+
+"I know where it is."
+
+"And how did you find out?"
+
+"She showed me, as I told you she would."
+
+"I am still in the dark."
+
+"I do not wish to make a mystery," said he, laughing. "The matter
+was perfectly simple. You, of course, saw that everyone in the
+street was an accomplice. They were all engaged for the evening."
+
+"I guessed as much."
+
+"Then, when the row broke out, I had a little moist red paint in
+the palm of my hand. I rushed forward, fell down, clapped my hand
+to my face, and became a piteous spectacle. It is an old trick."
+
+"That also I could fathom."
+
+"Then they carried me in. She was bound to have me in. What else
+could she do? And into her sitting-room, which was the very room
+which I suspected. It lay between that and her bedroom, and I was
+determined to see which. They laid me on a couch, I motioned for
+air, they were compelled to open the window, and you had your
+chance."
+
+"How did that help you?"
+
+"It was all-important. When a woman thinks that her house is on
+fire, her instinct is at once to rush to the thing which she
+values most. It is a perfectly overpowering impulse, and I have
+more than once taken advantage of it. In the case of the
+Darlington substitution scandal it was of use to me, and also in
+the Arnsworth Castle business. A married woman grabs at her baby;
+an unmarried one reaches for her jewel-box. Now it was clear to
+me that our lady of to-day had nothing in the house more precious
+to her than what we are in quest of. She would rush to secure it.
+The alarm of fire was admirably done. The smoke and shouting were
+enough to shake nerves of steel. She responded beautifully. The
+photograph is in a recess behind a sliding panel just above the
+right bell-pull. She was there in an instant, and I caught a
+glimpse of it as she half-drew it out. When I cried out that it
+was a false alarm, she replaced it, glanced at the rocket, rushed
+from the room, and I have not seen her since. I rose, and, making
+my excuses, escaped from the house. I hesitated whether to
+attempt to secure the photograph at once; but the coachman had
+come in, and as he was watching me narrowly it seemed safer to
+wait. A little over-precipitance may ruin all."
+
+"And now?" I asked.
+
+"Our quest is practically finished. I shall call with the King
+to-morrow, and with you, if you care to come with us. We will be
+shown into the sitting-room to wait for the lady, but it is
+probable that when she comes she may find neither us nor the
+photograph. It might be a satisfaction to his Majesty to regain
+it with his own hands."
+
+"And when will you call?"
+
+"At eight in the morning. She will not be up, so that we shall
+have a clear field. Besides, we must be prompt, for this marriage
+may mean a complete change in her life and habits. I must wire to
+the King without delay."
+
+We had reached Baker Street and had stopped at the door. He was
+searching his pockets for the key when someone passing said:
+
+"Good-night, Mister Sherlock Holmes."
+
+There were several people on the pavement at the time, but the
+greeting appeared to come from a slim youth in an ulster who had
+hurried by.
+
+"I've heard that voice before," said Holmes, staring down the
+dimly lit street. "Now, I wonder who the deuce that could have
+been."
+
+
+III.
+
+I slept at Baker Street that night, and we were engaged upon our
+toast and coffee in the morning when the King of Bohemia rushed
+into the room.
+
+"You have really got it!" he cried, grasping Sherlock Holmes by
+either shoulder and looking eagerly into his face.
+
+"Not yet."
+
+"But you have hopes?"
+
+"I have hopes."
+
+"Then, come. I am all impatience to be gone."
+
+"We must have a cab."
+
+"No, my brougham is waiting."
+
+"Then that will simplify matters." We descended and started off
+once more for Briony Lodge.
+
+"Irene Adler is married," remarked Holmes.
+
+"Married! When?"
+
+"Yesterday."
+
+"But to whom?"
+
+"To an English lawyer named Norton."
+
+"But she could not love him."
+
+"I am in hopes that she does."
+
+"And why in hopes?"
+
+"Because it would spare your Majesty all fear of future
+annoyance. If the lady loves her husband, she does not love your
+Majesty. If she does not love your Majesty, there is no reason
+why she should interfere with your Majesty's plan."
+
+"It is true. And yet--Well! I wish she had been of my own
+station! What a queen she would have made!" He relapsed into a
+moody silence, which was not broken until we drew up in
+Serpentine Avenue.
+
+The door of Briony Lodge was open, and an elderly woman stood
+upon the steps. She watched us with a sardonic eye as we stepped
+from the brougham.
+
+"Mr. Sherlock Holmes, I believe?" said she.
+
+"I am Mr. Holmes," answered my companion, looking at her with a
+questioning and rather startled gaze.
+
+"Indeed! My mistress told me that you were likely to call. She
+left this morning with her husband by the 5:15 train from Charing
+Cross for the Continent."
+
+"What!" Sherlock Holmes staggered back, white with chagrin and
+surprise. "Do you mean that she has left England?"
+
+"Never to return."
+
+"And the papers?" asked the King hoarsely. "All is lost."
+
+"We shall see." He pushed past the servant and rushed into the
+drawing-room, followed by the King and myself. The furniture was
+scattered about in every direction, with dismantled shelves and
+open drawers, as if the lady had hurriedly ransacked them before
+her flight. Holmes rushed at the bell-pull, tore back a small
+sliding shutter, and, plunging in his hand, pulled out a
+photograph and a letter. The photograph was of Irene Adler
+herself in evening dress, the letter was superscribed to
+"Sherlock Holmes, Esq. To be left till called for." My friend
+tore it open and we all three read it together. It was dated at
+midnight of the preceding night and ran in this way:
+
+"MY DEAR MR. SHERLOCK HOLMES,--You really did it very well. You
+took me in completely. Until after the alarm of fire, I had not a
+suspicion. But then, when I found how I had betrayed myself, I
+began to think. I had been warned against you months ago. I had
+been told that if the King employed an agent it would certainly
+be you. And your address had been given me. Yet, with all this,
+you made me reveal what you wanted to know. Even after I became
+suspicious, I found it hard to think evil of such a dear, kind
+old clergyman. But, you know, I have been trained as an actress
+myself. Male costume is nothing new to me. I often take advantage
+of the freedom which it gives. I sent John, the coachman, to
+watch you, ran up stairs, got into my walking-clothes, as I call
+them, and came down just as you departed.
+
+"Well, I followed you to your door, and so made sure that I was
+really an object of interest to the celebrated Mr. Sherlock
+Holmes. Then I, rather imprudently, wished you good-night, and
+started for the Temple to see my husband.
+
+"We both thought the best resource was flight, when pursued by
+so formidable an antagonist; so you will find the nest empty when
+you call to-morrow. As to the photograph, your client may rest in
+peace. I love and am loved by a better man than he. The King may
+do what he will without hindrance from one whom he has cruelly
+wronged. I keep it only to safeguard myself, and to preserve a
+weapon which will always secure me from any steps which he might
+take in the future. I leave a photograph which he might care to
+possess; and I remain, dear Mr. Sherlock Holmes,
+
+                                      "Very truly yours,
+                                   "IRENE NORTON, n�e ADLER."
+
+"What a woman--oh, what a woman!" cried the King of Bohemia, when
+we had all three read this epistle. "Did I not tell you how quick
+and resolute she was? Would she not have made an admirable queen?
+Is it not a pity that she was not on my level?"
+
+"From what I have seen of the lady she seems indeed to be on a
+very different level to your Majesty," said Holmes coldly. "I am
+sorry that I have not been able to bring your Majesty's business
+to a more successful conclusion."
+
+"On the contrary, my dear sir," cried the King; "nothing could be
+more successful. I know that her word is inviolate. The
+photograph is now as safe as if it were in the fire."
+
+"I am glad to hear your Majesty say so."
+
+"I am immensely indebted to you. Pray tell me in what way I can
+reward you. This ring--" He slipped an emerald snake ring from
+his finger and held it out upon the palm of his hand.
+
+"Your Majesty has something which I should value even more
+highly," said Holmes.
+
+"You have but to name it."
+
+"This photograph!"
+
+The King stared at him in amazement.
+
+"Irene's photograph!" he cried. "Certainly, if you wish it."
+
+"I thank your Majesty. Then there is no more to be done in the
+matter. I have the honour to wish you a very good-morning." He
+bowed, and, turning away without observing the hand which the
+King had stretched out to him, he set off in my company for his
+chambers.
+
+And that was how a great scandal threatened to affect the kingdom
+of Bohemia, and how the best plans of Mr. Sherlock Holmes were
+beaten by a woman's wit. He used to make merry over the
+cleverness of women, but I have not heard him do it of late. And
+when he speaks of Irene Adler, or when he refers to her
+photograph, it is always under the honourable title of the woman.
+
+
+
+ADVENTURE II. THE RED-HEADED LEAGUE
+
+I had called upon my friend, Mr. Sherlock Holmes, one day in the
+autumn of last year and found him in deep conversation with a
+very stout, florid-faced, elderly gentleman with fiery red hair.
+With an apology for my intrusion, I was about to withdraw when
+Holmes pulled me abruptly into the room and closed the door
+behind me.
+
+"You could not possibly have come at a better time, my dear
+Watson," he said cordially.
+
+"I was afraid that you were engaged."
+
+"So I am. Very much so."
+
+"Then I can wait in the next room."
+
+"Not at all. This gentleman, Mr. Wilson, has been my partner and
+helper in many of my most successful cases, and I have no
+doubt that he will be of the utmost use to me in yours also."
+
+The stout gentleman half rose from his chair and gave a bob of
+greeting, with a quick little questioning glance from his small
+fat-encircled eyes.
+
+"Try the settee," said Holmes, relapsing into his armchair and
+putting his fingertips together, as was his custom when in
+judicial moods. "I know, my dear Watson, that you share my love
+of all that is bizarre and outside the conventions and humdrum
+routine of everyday life. You have shown your relish for it by
+the enthusiasm which has prompted you to chronicle, and, if you
+will excuse my saying so, somewhat to embellish so many of my own
+little adventures."
+
+"Your cases have indeed been of the greatest interest to me," I
+observed.
+
+"You will remember that I remarked the other day, just before we
+went into the very simple problem presented by Miss Mary
+Sutherland, that for strange effects and extraordinary
+combinations we must go to life itself, which is always far more
+daring than any effort of the imagination."
+
+"A proposition which I took the liberty of doubting."
+
+"You did, Doctor, but none the less you must come round to my
+view, for otherwise I shall keep on piling fact upon fact on you
+until your reason breaks down under them and acknowledges me to
+be right. Now, Mr. Jabez Wilson here has been good enough to call
+upon me this morning, and to begin a narrative which promises to
+be one of the most singular which I have listened to for some
+time. You have heard me remark that the strangest and most unique
+things are very often connected not with the larger but with the
+smaller crimes, and occasionally, indeed, where there is room for
+doubt whether any positive crime has been committed. As far as I
+have heard it is impossible for me to say whether the present
+case is an instance of crime or not, but the course of events is
+certainly among the most singular that I have ever listened to.
+Perhaps, Mr. Wilson, you would have the great kindness to
+recommence your narrative. I ask you not merely because my friend
+Dr. Watson has not heard the opening part but also because the
+peculiar nature of the story makes me anxious to have every
+possible detail from your lips. As a rule, when I have heard some
+slight indication of the course of events, I am able to guide
+myself by the thousands of other similar cases which occur to my
+memory. In the present instance I am forced to admit that the
+facts are, to the best of my belief, unique."
+
+The portly client puffed out his chest with an appearance of some
+little pride and pulled a dirty and wrinkled newspaper from the
+inside pocket of his greatcoat. As he glanced down the
+advertisement column, with his head thrust forward and the paper
+flattened out upon his knee, I took a good look at the man and
+endeavoured, after the fashion of my companion, to read the
+indications which might be presented by his dress or appearance.
+
+I did not gain very much, however, by my inspection. Our visitor
+bore every mark of being an average commonplace British
+tradesman, obese, pompous, and slow. He wore rather baggy grey
+shepherd's check trousers, a not over-clean black frock-coat,
+unbuttoned in the front, and a drab waistcoat with a heavy brassy
+Albert chain, and a square pierced bit of metal dangling down as
+an ornament. A frayed top-hat and a faded brown overcoat with a
+wrinkled velvet collar lay upon a chair beside him. Altogether,
+look as I would, there was nothing remarkable about the man save
+his blazing red head, and the expression of extreme chagrin and
+discontent upon his features.
+
+Sherlock Holmes' quick eye took in my occupation, and he shook
+his head with a smile as he noticed my questioning glances.
+"Beyond the obvious facts that he has at some time done manual
+labour, that he takes snuff, that he is a Freemason, that he has
+been in China, and that he has done a considerable amount of
+writing lately, I can deduce nothing else."
+
+Mr. Jabez Wilson started up in his chair, with his forefinger
+upon the paper, but his eyes upon my companion.
+
+"How, in the name of good-fortune, did you know all that, Mr.
+Holmes?" he asked. "How did you know, for example, that I did
+manual labour. It's as true as gospel, for I began as a ship's
+carpenter."
+
+"Your hands, my dear sir. Your right hand is quite a size larger
+than your left. You have worked with it, and the muscles are more
+developed."
+
+"Well, the snuff, then, and the Freemasonry?"
+
+"I won't insult your intelligence by telling you how I read that,
+especially as, rather against the strict rules of your order, you
+use an arc-and-compass breastpin."
+
+"Ah, of course, I forgot that. But the writing?"
+
+"What else can be indicated by that right cuff so very shiny for
+five inches, and the left one with the smooth patch near the
+elbow where you rest it upon the desk?"
+
+"Well, but China?"
+
+"The fish that you have tattooed immediately above your right
+wrist could only have been done in China. I have made a small
+study of tattoo marks and have even contributed to the literature
+of the subject. That trick of staining the fishes' scales of a
+delicate pink is quite peculiar to China. When, in addition, I
+see a Chinese coin hanging from your watch-chain, the matter
+becomes even more simple."
+
+Mr. Jabez Wilson laughed heavily. "Well, I never!" said he. "I
+thought at first that you had done something clever, but I see
+that there was nothing in it, after all."
+
+"I begin to think, Watson," said Holmes, "that I make a mistake
+in explaining. 'Omne ignotum pro magnifico,' you know, and my
+poor little reputation, such as it is, will suffer shipwreck if I
+am so candid. Can you not find the advertisement, Mr. Wilson?"
+
+"Yes, I have got it now," he answered with his thick red finger
+planted halfway down the column. "Here it is. This is what began
+it all. You just read it for yourself, sir."
+
+I took the paper from him and read as follows:
+
+"TO THE RED-HEADED LEAGUE: On account of the bequest of the late
+Ezekiah Hopkins, of Lebanon, Pennsylvania, U. S. A., there is now
+another vacancy open which entitles a member of the League to a
+salary of 4 pounds a week for purely nominal services. All
+red-headed men who are sound in body and mind and above the age
+of twenty-one years, are eligible. Apply in person on Monday, at
+eleven o'clock, to Duncan Ross, at the offices of the League, 7
+Pope's Court, Fleet Street."
+
+"What on earth does this mean?" I ejaculated after I had twice
+read over the extraordinary announcement.
+
+Holmes chuckled and wriggled in his chair, as was his habit when
+in high spirits. "It is a little off the beaten track, isn't it?"
+said he. "And now, Mr. Wilson, off you go at scratch and tell us
+all about yourself, your household, and the effect which this
+advertisement had upon your fortunes. You will first make a note,
+Doctor, of the paper and the date."
+
+"It is The Morning Chronicle of April 27, 1890. Just two months
+ago."
+
+"Very good. Now, Mr. Wilson?"
+
+"Well, it is just as I have been telling you, Mr. Sherlock
+Holmes," said Jabez Wilson, mopping his forehead; "I have a small
+pawnbroker's business at Coburg Square, near the City. It's not a
+very large affair, and of late years it has not done more than
+just give me a living. I used to be able to keep two assistants,
+but now I only keep one; and I would have a job to pay him but
+that he is willing to come for half wages so as to learn the
+business."
+
+"What is the name of this obliging youth?" asked Sherlock Holmes.
+
+"His name is Vincent Spaulding, and he's not such a youth,
+either. It's hard to say his age. I should not wish a smarter
+assistant, Mr. Holmes; and I know very well that he could better
+himself and earn twice what I am able to give him. But, after
+all, if he is satisfied, why should I put ideas in his head?"
+
+"Why, indeed? You seem most fortunate in having an employ� who
+comes under the full market price. It is not a common experience
+among employers in this age. I don't know that your assistant is
+not as remarkable as your advertisement."
+
+"Oh, he has his faults, too," said Mr. Wilson. "Never was such a
+fellow for photography. Snapping away with a camera when he ought
+to be improving his mind, and then diving down into the cellar
+like a rabbit into its hole to develop his pictures. That is his
+main fault, but on the whole he's a good worker. There's no vice
+in him."
+
+"He is still with you, I presume?"
+
+"Yes, sir. He and a girl of fourteen, who does a bit of simple
+cooking and keeps the place clean--that's all I have in the
+house, for I am a widower and never had any family. We live very
+quietly, sir, the three of us; and we keep a roof over our heads
+and pay our debts, if we do nothing more.
+
+"The first thing that put us out was that advertisement.
+Spaulding, he came down into the office just this day eight
+weeks, with this very paper in his hand, and he says:
+
+"'I wish to the Lord, Mr. Wilson, that I was a red-headed man.'
+
+"'Why that?' I asks.
+
+"'Why,' says he, 'here's another vacancy on the League of the
+Red-headed Men. It's worth quite a little fortune to any man who
+gets it, and I understand that there are more vacancies than
+there are men, so that the trustees are at their wits' end what
+to do with the money. If my hair would only change colour, here's
+a nice little crib all ready for me to step into.'
+
+"'Why, what is it, then?' I asked. You see, Mr. Holmes, I am a
+very stay-at-home man, and as my business came to me instead of
+my having to go to it, I was often weeks on end without putting
+my foot over the door-mat. In that way I didn't know much of what
+was going on outside, and I was always glad of a bit of news.
+
+"'Have you never heard of the League of the Red-headed Men?' he
+asked with his eyes open.
+
+"'Never.'
+
+"'Why, I wonder at that, for you are eligible yourself for one
+of the vacancies.'
+
+"'And what are they worth?' I asked.
+
+"'Oh, merely a couple of hundred a year, but the work is slight,
+and it need not interfere very much with one's other
+occupations.'
+
+"Well, you can easily think that that made me prick up my ears,
+for the business has not been over-good for some years, and an
+extra couple of hundred would have been very handy.
+
+"'Tell me all about it,' said I.
+
+"'Well,' said he, showing me the advertisement, 'you can see for
+yourself that the League has a vacancy, and there is the address
+where you should apply for particulars. As far as I can make out,
+the League was founded by an American millionaire, Ezekiah
+Hopkins, who was very peculiar in his ways. He was himself
+red-headed, and he had a great sympathy for all red-headed men;
+so when he died it was found that he had left his enormous
+fortune in the hands of trustees, with instructions to apply the
+interest to the providing of easy berths to men whose hair is of
+that colour. From all I hear it is splendid pay and very little to
+do.'
+
+"'But,' said I, 'there would be millions of red-headed men who
+would apply.'
+
+"'Not so many as you might think,' he answered. 'You see it is
+really confined to Londoners, and to grown men. This American had
+started from London when he was young, and he wanted to do the
+old town a good turn. Then, again, I have heard it is no use your
+applying if your hair is light red, or dark red, or anything but
+real bright, blazing, fiery red. Now, if you cared to apply, Mr.
+Wilson, you would just walk in; but perhaps it would hardly be
+worth your while to put yourself out of the way for the sake of a
+few hundred pounds.'
+
+"Now, it is a fact, gentlemen, as you may see for yourselves,
+that my hair is of a very full and rich tint, so that it seemed
+to me that if there was to be any competition in the matter I
+stood as good a chance as any man that I had ever met. Vincent
+Spaulding seemed to know so much about it that I thought he might
+prove useful, so I just ordered him to put up the shutters for
+the day and to come right away with me. He was very willing to
+have a holiday, so we shut the business up and started off for
+the address that was given us in the advertisement.
+
+"I never hope to see such a sight as that again, Mr. Holmes. From
+north, south, east, and west every man who had a shade of red in
+his hair had tramped into the city to answer the advertisement.
+Fleet Street was choked with red-headed folk, and Pope's Court
+looked like a coster's orange barrow. I should not have thought
+there were so many in the whole country as were brought together
+by that single advertisement. Every shade of colour they
+were--straw, lemon, orange, brick, Irish-setter, liver, clay;
+but, as Spaulding said, there were not many who had the real
+vivid flame-coloured tint. When I saw how many were waiting, I
+would have given it up in despair; but Spaulding would not hear
+of it. How he did it I could not imagine, but he pushed and
+pulled and butted until he got me through the crowd, and right up
+to the steps which led to the office. There was a double stream
+upon the stair, some going up in hope, and some coming back
+dejected; but we wedged in as well as we could and soon found
+ourselves in the office."
+
+"Your experience has been a most entertaining one," remarked
+Holmes as his client paused and refreshed his memory with a huge
+pinch of snuff. "Pray continue your very interesting statement."
+
+"There was nothing in the office but a couple of wooden chairs
+and a deal table, behind which sat a small man with a head that
+was even redder than mine. He said a few words to each candidate
+as he came up, and then he always managed to find some fault in
+them which would disqualify them. Getting a vacancy did not seem
+to be such a very easy matter, after all. However, when our turn
+came the little man was much more favourable to me than to any of
+the others, and he closed the door as we entered, so that he
+might have a private word with us.
+
+"'This is Mr. Jabez Wilson,' said my assistant, 'and he is
+willing to fill a vacancy in the League.'
+
+"'And he is admirably suited for it,' the other answered. 'He has
+every requirement. I cannot recall when I have seen anything so
+fine.' He took a step backward, cocked his head on one side, and
+gazed at my hair until I felt quite bashful. Then suddenly he
+plunged forward, wrung my hand, and congratulated me warmly on my
+success.
+
+"'It would be injustice to hesitate,' said he. 'You will,
+however, I am sure, excuse me for taking an obvious precaution.'
+With that he seized my hair in both his hands, and tugged until I
+yelled with the pain. 'There is water in your eyes,' said he as
+he released me. 'I perceive that all is as it should be. But we
+have to be careful, for we have twice been deceived by wigs and
+once by paint. I could tell you tales of cobbler's wax which
+would disgust you with human nature.' He stepped over to the
+window and shouted through it at the top of his voice that the
+vacancy was filled. A groan of disappointment came up from below,
+and the folk all trooped away in different directions until there
+was not a red-head to be seen except my own and that of the
+manager.
+
+"'My name,' said he, 'is Mr. Duncan Ross, and I am myself one of
+the pensioners upon the fund left by our noble benefactor. Are
+you a married man, Mr. Wilson? Have you a family?'
+
+"I answered that I had not.
+
+"His face fell immediately.
+
+"'Dear me!' he said gravely, 'that is very serious indeed! I am
+sorry to hear you say that. The fund was, of course, for the
+propagation and spread of the red-heads as well as for their
+maintenance. It is exceedingly unfortunate that you should be a
+bachelor.'
+
+"My face lengthened at this, Mr. Holmes, for I thought that I was
+not to have the vacancy after all; but after thinking it over for
+a few minutes he said that it would be all right.
+
+"'In the case of another,' said he, 'the objection might be
+fatal, but we must stretch a point in favour of a man with such a
+head of hair as yours. When shall you be able to enter upon your
+new duties?'
+
+"'Well, it is a little awkward, for I have a business already,'
+said I.
+
+"'Oh, never mind about that, Mr. Wilson!' said Vincent Spaulding.
+'I should be able to look after that for you.'
+
+"'What would be the hours?' I asked.
+
+"'Ten to two.'
+
+"Now a pawnbroker's business is mostly done of an evening, Mr.
+Holmes, especially Thursday and Friday evening, which is just
+before pay-day; so it would suit me very well to earn a little in
+the mornings. Besides, I knew that my assistant was a good man,
+and that he would see to anything that turned up.
+
+"'That would suit me very well,' said I. 'And the pay?'
+
+"'Is 4 pounds a week.'
+
+"'And the work?'
+
+"'Is purely nominal.'
+
+"'What do you call purely nominal?'
+
+"'Well, you have to be in the office, or at least in the
+building, the whole time. If you leave, you forfeit your whole
+position forever. The will is very clear upon that point. You
+don't comply with the conditions if you budge from the office
+during that time.'
+
+"'It's only four hours a day, and I should not think of leaving,'
+said I.
+
+"'No excuse will avail,' said Mr. Duncan Ross; 'neither sickness
+nor business nor anything else. There you must stay, or you lose
+your billet.'
+
+"'And the work?'
+
+"'Is to copy out the "Encyclopaedia Britannica." There is the first
+volume of it in that press. You must find your own ink, pens, and
+blotting-paper, but we provide this table and chair. Will you be
+ready to-morrow?'
+
+"'Certainly,' I answered.
+
+"'Then, good-bye, Mr. Jabez Wilson, and let me congratulate you
+once more on the important position which you have been fortunate
+enough to gain.' He bowed me out of the room and I went home with
+my assistant, hardly knowing what to say or do, I was so pleased
+at my own good fortune.
+
+"Well, I thought over the matter all day, and by evening I was in
+low spirits again; for I had quite persuaded myself that the
+whole affair must be some great hoax or fraud, though what its
+object might be I could not imagine. It seemed altogether past
+belief that anyone could make such a will, or that they would pay
+such a sum for doing anything so simple as copying out the
+'Encyclopaedia Britannica.' Vincent Spaulding did what he could to
+cheer me up, but by bedtime I had reasoned myself out of the
+whole thing. However, in the morning I determined to have a look
+at it anyhow, so I bought a penny bottle of ink, and with a
+quill-pen, and seven sheets of foolscap paper, I started off for
+Pope's Court.
+
+"Well, to my surprise and delight, everything was as right as
+possible. The table was set out ready for me, and Mr. Duncan Ross
+was there to see that I got fairly to work. He started me off
+upon the letter A, and then he left me; but he would drop in from
+time to time to see that all was right with me. At two o'clock he
+bade me good-day, complimented me upon the amount that I had
+written, and locked the door of the office after me.
+
+"This went on day after day, Mr. Holmes, and on Saturday the
+manager came in and planked down four golden sovereigns for my
+week's work. It was the same next week, and the same the week
+after. Every morning I was there at ten, and every afternoon I
+left at two. By degrees Mr. Duncan Ross took to coming in only
+once of a morning, and then, after a time, he did not come in at
+all. Still, of course, I never dared to leave the room for an
+instant, for I was not sure when he might come, and the billet
+was such a good one, and suited me so well, that I would not risk
+the loss of it.
+
+"Eight weeks passed away like this, and I had written about
+Abbots and Archery and Armour and Architecture and Attica, and
+hoped with diligence that I might get on to the B's before very
+long. It cost me something in foolscap, and I had pretty nearly
+filled a shelf with my writings. And then suddenly the whole
+business came to an end."
+
+"To an end?"
+
+"Yes, sir. And no later than this morning. I went to my work as
+usual at ten o'clock, but the door was shut and locked, with a
+little square of cardboard hammered on to the middle of the
+panel with a tack. Here it is, and you can read for yourself."
+
+He held up a piece of white cardboard about the size of a sheet
+of note-paper. It read in this fashion:
+
+                  THE RED-HEADED LEAGUE
+
+                           IS
+
+                        DISSOLVED.
+
+                     October 9, 1890.
+
+Sherlock Holmes and I surveyed this curt announcement and the
+rueful face behind it, until the comical side of the affair so
+completely overtopped every other consideration that we both
+burst out into a roar of laughter.
+
+"I cannot see that there is anything very funny," cried our
+client, flushing up to the roots of his flaming head. "If you can
+do nothing better than laugh at me, I can go elsewhere."
+
+"No, no," cried Holmes, shoving him back into the chair from
+which he had half risen. "I really wouldn't miss your case for
+the world. It is most refreshingly unusual. But there is, if you
+will excuse my saying so, something just a little funny about it.
+Pray what steps did you take when you found the card upon the
+door?"
+
+"I was staggered, sir. I did not know what to do. Then I called
+at the offices round, but none of them seemed to know anything
+about it. Finally, I went to the landlord, who is an accountant
+living on the ground-floor, and I asked him if he could tell me
+what had become of the Red-headed League. He said that he had
+never heard of any such body. Then I asked him who Mr. Duncan
+Ross was. He answered that the name was new to him.
+
+"'Well,' said I, 'the gentleman at No. 4.'
+
+"'What, the red-headed man?'
+
+"'Yes.'
+
+"'Oh,' said he, 'his name was William Morris. He was a solicitor
+and was using my room as a temporary convenience until his new
+premises were ready. He moved out yesterday.'
+
+"'Where could I find him?'
+
+"'Oh, at his new offices. He did tell me the address. Yes, 17
+King Edward Street, near St. Paul's.'
+
+"I started off, Mr. Holmes, but when I got to that address it was
+a manufactory of artificial knee-caps, and no one in it had ever
+heard of either Mr. William Morris or Mr. Duncan Ross."
+
+"And what did you do then?" asked Holmes.
+
+"I went home to Saxe-Coburg Square, and I took the advice of my
+assistant. But he could not help me in any way. He could only say
+that if I waited I should hear by post. But that was not quite
+good enough, Mr. Holmes. I did not wish to lose such a place
+without a struggle, so, as I had heard that you were good enough
+to give advice to poor folk who were in need of it, I came right
+away to you."
+
+"And you did very wisely," said Holmes. "Your case is an
+exceedingly remarkable one, and I shall be happy to look into it.
+From what you have told me I think that it is possible that
+graver issues hang from it than might at first sight appear."
+
+"Grave enough!" said Mr. Jabez Wilson. "Why, I have lost four
+pound a week."
+
+"As far as you are personally concerned," remarked Holmes, "I do
+not see that you have any grievance against this extraordinary
+league. On the contrary, you are, as I understand, richer by some
+30 pounds, to say nothing of the minute knowledge which you have
+gained on every subject which comes under the letter A. You have
+lost nothing by them."
+
+"No, sir. But I want to find out about them, and who they are,
+and what their object was in playing this prank--if it was a
+prank--upon me. It was a pretty expensive joke for them, for it
+cost them two and thirty pounds."
+
+"We shall endeavour to clear up these points for you. And, first,
+one or two questions, Mr. Wilson. This assistant of yours who
+first called your attention to the advertisement--how long had he
+been with you?"
+
+"About a month then."
+
+"How did he come?"
+
+"In answer to an advertisement."
+
+"Was he the only applicant?"
+
+"No, I had a dozen."
+
+"Why did you pick him?"
+
+"Because he was handy and would come cheap."
+
+"At half-wages, in fact."
+
+"Yes."
+
+"What is he like, this Vincent Spaulding?"
+
+"Small, stout-built, very quick in his ways, no hair on his face,
+though he's not short of thirty. Has a white splash of acid upon
+his forehead."
+
+Holmes sat up in his chair in considerable excitement. "I thought
+as much," said he. "Have you ever observed that his ears are
+pierced for earrings?"
+
+"Yes, sir. He told me that a gipsy had done it for him when he
+was a lad."
+
+"Hum!" said Holmes, sinking back in deep thought. "He is still
+with you?"
+
+"Oh, yes, sir; I have only just left him."
+
+"And has your business been attended to in your absence?"
+
+"Nothing to complain of, sir. There's never very much to do of a
+morning."
+
+"That will do, Mr. Wilson. I shall be happy to give you an
+opinion upon the subject in the course of a day or two. To-day is
+Saturday, and I hope that by Monday we may come to a conclusion."
+
+"Well, Watson," said Holmes when our visitor had left us, "what
+do you make of it all?"
+
+"I make nothing of it," I answered frankly. "It is a most
+mysterious business."
+
+"As a rule," said Holmes, "the more bizarre a thing is the less
+mysterious it proves to be. It is your commonplace, featureless
+crimes which are really puzzling, just as a commonplace face is
+the most difficult to identify. But I must be prompt over this
+matter."
+
+"What are you going to do, then?" I asked.
+
+"To smoke," he answered. "It is quite a three pipe problem, and I
+beg that you won't speak to me for fifty minutes." He curled
+himself up in his chair, with his thin knees drawn up to his
+hawk-like nose, and there he sat with his eyes closed and his
+black clay pipe thrusting out like the bill of some strange bird.
+I had come to the conclusion that he had dropped asleep, and
+indeed was nodding myself, when he suddenly sprang out of his
+chair with the gesture of a man who has made up his mind and put
+his pipe down upon the mantelpiece.
+
+"Sarasate plays at the St. James's Hall this afternoon," he
+remarked. "What do you think, Watson? Could your patients spare
+you for a few hours?"
+
+"I have nothing to do to-day. My practice is never very
+absorbing."
+
+"Then put on your hat and come. I am going through the City
+first, and we can have some lunch on the way. I observe that
+there is a good deal of German music on the programme, which is
+rather more to my taste than Italian or French. It is
+introspective, and I want to introspect. Come along!"
+
+We travelled by the Underground as far as Aldersgate; and a short
+walk took us to Saxe-Coburg Square, the scene of the singular
+story which we had listened to in the morning. It was a poky,
+little, shabby-genteel place, where four lines of dingy
+two-storied brick houses looked out into a small railed-in
+enclosure, where a lawn of weedy grass and a few clumps of faded
+laurel-bushes made a hard fight against a smoke-laden and
+uncongenial atmosphere. Three gilt balls and a brown board with
+"JABEZ WILSON" in white letters, upon a corner house, announced
+the place where our red-headed client carried on his business.
+Sherlock Holmes stopped in front of it with his head on one side
+and looked it all over, with his eyes shining brightly between
+puckered lids. Then he walked slowly up the street, and then down
+again to the corner, still looking keenly at the houses. Finally
+he returned to the pawnbroker's, and, having thumped vigorously
+upon the pavement with his stick two or three times, he went up
+to the door and knocked. It was instantly opened by a
+bright-looking, clean-shaven young fellow, who asked him to step
+in.
+
+"Thank you," said Holmes, "I only wished to ask you how you would
+go from here to the Strand."
+
+"Third right, fourth left," answered the assistant promptly,
+closing the door.
+
+"Smart fellow, that," observed Holmes as we walked away. "He is,
+in my judgment, the fourth smartest man in London, and for daring
+I am not sure that he has not a claim to be third. I have known
+something of him before."
+
+"Evidently," said I, "Mr. Wilson's assistant counts for a good
+deal in this mystery of the Red-headed League. I am sure that you
+inquired your way merely in order that you might see him."
+
+"Not him."
+
+"What then?"
+
+"The knees of his trousers."
+
+"And what did you see?"
+
+"What I expected to see."
+
+"Why did you beat the pavement?"
+
+"My dear doctor, this is a time for observation, not for talk. We
+are spies in an enemy's country. We know something of Saxe-Coburg
+Square. Let us now explore the parts which lie behind it."
+
+The road in which we found ourselves as we turned round the
+corner from the retired Saxe-Coburg Square presented as great a
+contrast to it as the front of a picture does to the back. It was
+one of the main arteries which conveyed the traffic of the City
+to the north and west. The roadway was blocked with the immense
+stream of commerce flowing in a double tide inward and outward,
+while the footpaths were black with the hurrying swarm of
+pedestrians. It was difficult to realise as we looked at the line
+of fine shops and stately business premises that they really
+abutted on the other side upon the faded and stagnant square
+which we had just quitted.
+
+"Let me see," said Holmes, standing at the corner and glancing
+along the line, "I should like just to remember the order of the
+houses here. It is a hobby of mine to have an exact knowledge of
+London. There is Mortimer's, the tobacconist, the little
+newspaper shop, the Coburg branch of the City and Suburban Bank,
+the Vegetarian Restaurant, and McFarlane's carriage-building
+depot. That carries us right on to the other block. And now,
+Doctor, we've done our work, so it's time we had some play. A
+sandwich and a cup of coffee, and then off to violin-land, where
+all is sweetness and delicacy and harmony, and there are no
+red-headed clients to vex us with their conundrums."
+
+My friend was an enthusiastic musician, being himself not only a
+very capable performer but a composer of no ordinary merit. All
+the afternoon he sat in the stalls wrapped in the most perfect
+happiness, gently waving his long, thin fingers in time to the
+music, while his gently smiling face and his languid, dreamy eyes
+were as unlike those of Holmes the sleuth-hound, Holmes the
+relentless, keen-witted, ready-handed criminal agent, as it was
+possible to conceive. In his singular character the dual nature
+alternately asserted itself, and his extreme exactness and
+astuteness represented, as I have often thought, the reaction
+against the poetic and contemplative mood which occasionally
+predominated in him. The swing of his nature took him from
+extreme languor to devouring energy; and, as I knew well, he was
+never so truly formidable as when, for days on end, he had been
+lounging in his armchair amid his improvisations and his
+black-letter editions. Then it was that the lust of the chase
+would suddenly come upon him, and that his brilliant reasoning
+power would rise to the level of intuition, until those who were
+unacquainted with his methods would look askance at him as on a
+man whose knowledge was not that of other mortals. When I saw him
+that afternoon so enwrapped in the music at St. James's Hall I
+felt that an evil time might be coming upon those whom he had set
+himself to hunt down.
+
+"You want to go home, no doubt, Doctor," he remarked as we
+emerged.
+
+"Yes, it would be as well."
+
+"And I have some business to do which will take some hours. This
+business at Coburg Square is serious."
+
+"Why serious?"
+
+"A considerable crime is in contemplation. I have every reason to
+believe that we shall be in time to stop it. But to-day being
+Saturday rather complicates matters. I shall want your help
+to-night."
+
+"At what time?"
+
+"Ten will be early enough."
+
+"I shall be at Baker Street at ten."
+
+"Very well. And, I say, Doctor, there may be some little danger,
+so kindly put your army revolver in your pocket." He waved his
+hand, turned on his heel, and disappeared in an instant among the
+crowd.
+
+I trust that I am not more dense than my neighbours, but I was
+always oppressed with a sense of my own stupidity in my dealings
+with Sherlock Holmes. Here I had heard what he had heard, I had
+seen what he had seen, and yet from his words it was evident that
+he saw clearly not only what had happened but what was about to
+happen, while to me the whole business was still confused and
+grotesque. As I drove home to my house in Kensington I thought
+over it all, from the extraordinary story of the red-headed
+copier of the "Encyclopaedia" down to the visit to Saxe-Coburg
+Square, and the ominous words with which he had parted from me.
+What was this nocturnal expedition, and why should I go armed?
+Where were we going, and what were we to do? I had the hint from
+Holmes that this smooth-faced pawnbroker's assistant was a
+formidable man--a man who might play a deep game. I tried to
+puzzle it out, but gave it up in despair and set the matter aside
+until night should bring an explanation.
+
+It was a quarter-past nine when I started from home and made my
+way across the Park, and so through Oxford Street to Baker
+Street. Two hansoms were standing at the door, and as I entered
+the passage I heard the sound of voices from above. On entering
+his room I found Holmes in animated conversation with two men,
+one of whom I recognised as Peter Jones, the official police
+agent, while the other was a long, thin, sad-faced man, with a
+very shiny hat and oppressively respectable frock-coat.
+
+"Ha! Our party is complete," said Holmes, buttoning up his
+pea-jacket and taking his heavy hunting crop from the rack.
+"Watson, I think you know Mr. Jones, of Scotland Yard? Let me
+introduce you to Mr. Merryweather, who is to be our companion in
+to-night's adventure."
+
+"We're hunting in couples again, Doctor, you see," said Jones in
+his consequential way. "Our friend here is a wonderful man for
+starting a chase. All he wants is an old dog to help him to do
+the running down."
+
+"I hope a wild goose may not prove to be the end of our chase,"
+observed Mr. Merryweather gloomily.
+
+"You may place considerable confidence in Mr. Holmes, sir," said
+the police agent loftily. "He has his own little methods, which
+are, if he won't mind my saying so, just a little too theoretical
+and fantastic, but he has the makings of a detective in him. It
+is not too much to say that once or twice, as in that business of
+the Sholto murder and the Agra treasure, he has been more nearly
+correct than the official force."
+
+"Oh, if you say so, Mr. Jones, it is all right," said the
+stranger with deference. "Still, I confess that I miss my rubber.
+It is the first Saturday night for seven-and-twenty years that I
+have not had my rubber."
+
+"I think you will find," said Sherlock Holmes, "that you will
+play for a higher stake to-night than you have ever done yet, and
+that the play will be more exciting. For you, Mr. Merryweather,
+the stake will be some 30,000 pounds; and for you, Jones, it will
+be the man upon whom you wish to lay your hands."
+
+"John Clay, the murderer, thief, smasher, and forger. He's a
+young man, Mr. Merryweather, but he is at the head of his
+profession, and I would rather have my bracelets on him than on
+any criminal in London. He's a remarkable man, is young John
+Clay. His grandfather was a royal duke, and he himself has been
+to Eton and Oxford. His brain is as cunning as his fingers, and
+though we meet signs of him at every turn, we never know where to
+find the man himself. He'll crack a crib in Scotland one week,
+and be raising money to build an orphanage in Cornwall the next.
+I've been on his track for years and have never set eyes on him
+yet."
+
+"I hope that I may have the pleasure of introducing you to-night.
+I've had one or two little turns also with Mr. John Clay, and I
+agree with you that he is at the head of his profession. It is
+past ten, however, and quite time that we started. If you two
+will take the first hansom, Watson and I will follow in the
+second."
+
+Sherlock Holmes was not very communicative during the long drive
+and lay back in the cab humming the tunes which he had heard in
+the afternoon. We rattled through an endless labyrinth of gas-lit
+streets until we emerged into Farrington Street.
+
+"We are close there now," my friend remarked. "This fellow
+Merryweather is a bank director, and personally interested in the
+matter. I thought it as well to have Jones with us also. He is
+not a bad fellow, though an absolute imbecile in his profession.
+He has one positive virtue. He is as brave as a bulldog and as
+tenacious as a lobster if he gets his claws upon anyone. Here we
+are, and they are waiting for us."
+
+We had reached the same crowded thoroughfare in which we had
+found ourselves in the morning. Our cabs were dismissed, and,
+following the guidance of Mr. Merryweather, we passed down a
+narrow passage and through a side door, which he opened for us.
+Within there was a small corridor, which ended in a very massive
+iron gate. This also was opened, and led down a flight of winding
+stone steps, which terminated at another formidable gate. Mr.
+Merryweather stopped to light a lantern, and then conducted us
+down a dark, earth-smelling passage, and so, after opening a
+third door, into a huge vault or cellar, which was piled all
+round with crates and massive boxes.
+
+"You are not very vulnerable from above," Holmes remarked as he
+held up the lantern and gazed about him.
+
+"Nor from below," said Mr. Merryweather, striking his stick upon
+the flags which lined the floor. "Why, dear me, it sounds quite
+hollow!" he remarked, looking up in surprise.
+
+"I must really ask you to be a little more quiet!" said Holmes
+severely. "You have already imperilled the whole success of our
+expedition. Might I beg that you would have the goodness to sit
+down upon one of those boxes, and not to interfere?"
+
+The solemn Mr. Merryweather perched himself upon a crate, with a
+very injured expression upon his face, while Holmes fell upon his
+knees upon the floor and, with the lantern and a magnifying lens,
+began to examine minutely the cracks between the stones. A few
+seconds sufficed to satisfy him, for he sprang to his feet again
+and put his glass in his pocket.
+
+"We have at least an hour before us," he remarked, "for they can
+hardly take any steps until the good pawnbroker is safely in bed.
+Then they will not lose a minute, for the sooner they do their
+work the longer time they will have for their escape. We are at
+present, Doctor--as no doubt you have divined--in the cellar of
+the City branch of one of the principal London banks. Mr.
+Merryweather is the chairman of directors, and he will explain to
+you that there are reasons why the more daring criminals of
+London should take a considerable interest in this cellar at
+present."
+
+"It is our French gold," whispered the director. "We ha

<TRUNCATED>

[36/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/tom-sawyer.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/tom-sawyer.txt b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/tom-sawyer.txt
new file mode 100644
index 0000000..1806925
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/tom-sawyer.txt
@@ -0,0 +1,8858 @@
+The Project Gutenberg EBook of The Adventures of Tom Sawyer, Complete
+by Mark Twain (Samuel Clemens)
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever.  You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.net
+
+
+Title: The Adventures of Tom Sawyer, Complete
+
+Author: Mark Twain (Samuel Clemens)
+
+Release Date: August 20, 2006 [EBook #74]
+[Last updated: May 3, 2011]
+
+Language: English
+
+
+*** START OF THIS PROJECT GUTENBERG EBOOK TOM SAWYER ***
+
+
+
+
+Produced by David Widger. The previous edition was updated by Jose
+Menendez.
+
+
+
+
+
+                   THE ADVENTURES OF TOM SAWYER
+                                BY
+                            MARK TWAIN
+                     (Samuel Langhorne Clemens)
+
+
+
+
+                           P R E F A C E
+
+MOST of the adventures recorded in this book really occurred; one or
+two were experiences of my own, the rest those of boys who were
+schoolmates of mine. Huck Finn is drawn from life; Tom Sawyer also, but
+not from an individual--he is a combination of the characteristics of
+three boys whom I knew, and therefore belongs to the composite order of
+architecture.
+
+The odd superstitions touched upon were all prevalent among children
+and slaves in the West at the period of this story--that is to say,
+thirty or forty years ago.
+
+Although my book is intended mainly for the entertainment of boys and
+girls, I hope it will not be shunned by men and women on that account,
+for part of my plan has been to try to pleasantly remind adults of what
+they once were themselves, and of how they felt and thought and talked,
+and what queer enterprises they sometimes engaged in.
+
+                                                            THE AUTHOR.
+
+HARTFORD, 1876.
+
+
+
+                          T O M   S A W Y E R
+
+
+
+CHAPTER I
+
+"TOM!"
+
+No answer.
+
+"TOM!"
+
+No answer.
+
+"What's gone with that boy,  I wonder? You TOM!"
+
+No answer.
+
+The old lady pulled her spectacles down and looked over them about the
+room; then she put them up and looked out under them. She seldom or
+never looked THROUGH them for so small a thing as a boy; they were her
+state pair, the pride of her heart, and were built for "style," not
+service--she could have seen through a pair of stove-lids just as well.
+She looked perplexed for a moment, and then said, not fiercely, but
+still loud enough for the furniture to hear:
+
+"Well, I lay if I get hold of you I'll--"
+
+She did not finish, for by this time she was bending down and punching
+under the bed with the broom, and so she needed breath to punctuate the
+punches with. She resurrected nothing but the cat.
+
+"I never did see the beat of that boy!"
+
+She went to the open door and stood in it and looked out among the
+tomato vines and "jimpson" weeds that constituted the garden. No Tom.
+So she lifted up her voice at an angle calculated for distance and
+shouted:
+
+"Y-o-u-u TOM!"
+
+There was a slight noise behind her and she turned just in time to
+seize a small boy by the slack of his roundabout and arrest his flight.
+
+"There! I might 'a' thought of that closet. What you been doing in
+there?"
+
+"Nothing."
+
+"Nothing! Look at your hands. And look at your mouth. What IS that
+truck?"
+
+"I don't know, aunt."
+
+"Well, I know. It's jam--that's what it is. Forty times I've said if
+you didn't let that jam alone I'd skin you. Hand me that switch."
+
+The switch hovered in the air--the peril was desperate--
+
+"My! Look behind you, aunt!"
+
+The old lady whirled round, and snatched her skirts out of danger. The
+lad fled on the instant, scrambled up the high board-fence, and
+disappeared over it.
+
+His aunt Polly stood surprised a moment, and then broke into a gentle
+laugh.
+
+"Hang the boy, can't I never learn anything? Ain't he played me tricks
+enough like that for me to be looking out for him by this time? But old
+fools is the biggest fools there is. Can't learn an old dog new tricks,
+as the saying is. But my goodness, he never plays them alike, two days,
+and how is a body to know what's coming? He 'pears to know just how
+long he can torment me before I get my dander up, and he knows if he
+can make out to put me off for a minute or make me laugh, it's all down
+again and I can't hit him a lick. I ain't doing my duty by that boy,
+and that's the Lord's truth, goodness knows. Spare the rod and spile
+the child, as the Good Book says. I'm a laying up sin and suffering for
+us both, I know. He's full of the Old Scratch, but laws-a-me! he's my
+own dead sister's boy, poor thing, and I ain't got the heart to lash
+him, somehow. Every time I let him off, my conscience does hurt me so,
+and every time I hit him my old heart most breaks. Well-a-well, man
+that is born of woman is of few days and full of trouble, as the
+Scripture says, and I reckon it's so. He'll play hookey this evening, *
+and [* Southwestern for "afternoon"] I'll just be obleeged to make him
+work, to-morrow, to punish him. It's mighty hard to make him work
+Saturdays, when all the boys is having holiday, but he hates work more
+than he hates anything else, and I've GOT to do some of my duty by him,
+or I'll be the ruination of the child."
+
+Tom did play hookey, and he had a very good time. He got back home
+barely in season to help Jim, the small colored boy, saw next-day's
+wood and split the kindlings before supper--at least he was there in
+time to tell his adventures to Jim while Jim did three-fourths of the
+work. Tom's younger brother (or rather half-brother) Sid was already
+through with his part of the work (picking up chips), for he was a
+quiet boy, and had no adventurous, troublesome ways.
+
+While Tom was eating his supper, and stealing sugar as opportunity
+offered, Aunt Polly asked him questions that were full of guile, and
+very deep--for she wanted to trap him into damaging revealments. Like
+many other simple-hearted souls, it was her pet vanity to believe she
+was endowed with a talent for dark and mysterious diplomacy, and she
+loved to contemplate her most transparent devices as marvels of low
+cunning. Said she:
+
+"Tom, it was middling warm in school, warn't it?"
+
+"Yes'm."
+
+"Powerful warm, warn't it?"
+
+"Yes'm."
+
+"Didn't you want to go in a-swimming, Tom?"
+
+A bit of a scare shot through Tom--a touch of uncomfortable suspicion.
+He searched Aunt Polly's face, but it told him nothing. So he said:
+
+"No'm--well, not very much."
+
+The old lady reached out her hand and felt Tom's shirt, and said:
+
+"But you ain't too warm now, though." And it flattered her to reflect
+that she had discovered that the shirt was dry without anybody knowing
+that that was what she had in her mind. But in spite of her, Tom knew
+where the wind lay, now. So he forestalled what might be the next move:
+
+"Some of us pumped on our heads--mine's damp yet. See?"
+
+Aunt Polly was vexed to think she had overlooked that bit of
+circumstantial evidence, and missed a trick. Then she had a new
+inspiration:
+
+"Tom, you didn't have to undo your shirt collar where I sewed it, to
+pump on your head, did you? Unbutton your jacket!"
+
+The trouble vanished out of Tom's face. He opened his jacket. His
+shirt collar was securely sewed.
+
+"Bother! Well, go 'long with you. I'd made sure you'd played hookey
+and been a-swimming. But I forgive ye, Tom. I reckon you're a kind of a
+singed cat, as the saying is--better'n you look. THIS time."
+
+She was half sorry her sagacity had miscarried, and half glad that Tom
+had stumbled into obedient conduct for once.
+
+But Sidney said:
+
+"Well, now, if I didn't think you sewed his collar with white thread,
+but it's black."
+
+"Why, I did sew it with white! Tom!"
+
+But Tom did not wait for the rest. As he went out at the door he said:
+
+"Siddy, I'll lick you for that."
+
+In a safe place Tom examined two large needles which were thrust into
+the lapels of his jacket, and had thread bound about them--one needle
+carried white thread and the other black. He said:
+
+"She'd never noticed if it hadn't been for Sid. Confound it! sometimes
+she sews it with white, and sometimes she sews it with black. I wish to
+geeminy she'd stick to one or t'other--I can't keep the run of 'em. But
+I bet you I'll lam Sid for that. I'll learn him!"
+
+He was not the Model Boy of the village. He knew the model boy very
+well though--and loathed him.
+
+Within two minutes, or even less, he had forgotten all his troubles.
+Not because his troubles were one whit less heavy and bitter to him
+than a man's are to a man, but because a new and powerful interest bore
+them down and drove them out of his mind for the time--just as men's
+misfortunes are forgotten in the excitement of new enterprises. This
+new interest was a valued novelty in whistling, which he had just
+acquired from a negro, and he was suffering to practise it undisturbed.
+It consisted in a peculiar bird-like turn, a sort of liquid warble,
+produced by touching the tongue to the roof of the mouth at short
+intervals in the midst of the music--the reader probably remembers how
+to do it, if he has ever been a boy. Diligence and attention soon gave
+him the knack of it, and he strode down the street with his mouth full
+of harmony and his soul full of gratitude. He felt much as an
+astronomer feels who has discovered a new planet--no doubt, as far as
+strong, deep, unalloyed pleasure is concerned, the advantage was with
+the boy, not the astronomer.
+
+The summer evenings were long. It was not dark, yet. Presently Tom
+checked his whistle. A stranger was before him--a boy a shade larger
+than himself. A new-comer of any age or either sex was an impressive
+curiosity in the poor little shabby village of St. Petersburg. This boy
+was well dressed, too--well dressed on a week-day. This was simply
+astounding. His cap was a dainty thing, his close-buttoned blue cloth
+roundabout was new and natty, and so were his pantaloons. He had shoes
+on--and it was only Friday. He even wore a necktie, a bright bit of
+ribbon. He had a citified air about him that ate into Tom's vitals. The
+more Tom stared at the splendid marvel, the higher he turned up his
+nose at his finery and the shabbier and shabbier his own outfit seemed
+to him to grow. Neither boy spoke. If one moved, the other moved--but
+only sidewise, in a circle; they kept face to face and eye to eye all
+the time. Finally Tom said:
+
+"I can lick you!"
+
+"I'd like to see you try it."
+
+"Well, I can do it."
+
+"No you can't, either."
+
+"Yes I can."
+
+"No you can't."
+
+"I can."
+
+"You can't."
+
+"Can!"
+
+"Can't!"
+
+An uncomfortable pause. Then Tom said:
+
+"What's your name?"
+
+"'Tisn't any of your business, maybe."
+
+"Well I 'low I'll MAKE it my business."
+
+"Well why don't you?"
+
+"If you say much, I will."
+
+"Much--much--MUCH. There now."
+
+"Oh, you think you're mighty smart, DON'T you? I could lick you with
+one hand tied behind me, if I wanted to."
+
+"Well why don't you DO it? You SAY you can do it."
+
+"Well I WILL, if you fool with me."
+
+"Oh yes--I've seen whole families in the same fix."
+
+"Smarty! You think you're SOME, now, DON'T you? Oh, what a hat!"
+
+"You can lump that hat if you don't like it. I dare you to knock it
+off--and anybody that'll take a dare will suck eggs."
+
+"You're a liar!"
+
+"You're another."
+
+"You're a fighting liar and dasn't take it up."
+
+"Aw--take a walk!"
+
+"Say--if you give me much more of your sass I'll take and bounce a
+rock off'n your head."
+
+"Oh, of COURSE you will."
+
+"Well I WILL."
+
+"Well why don't you DO it then? What do you keep SAYING you will for?
+Why don't you DO it? It's because you're afraid."
+
+"I AIN'T afraid."
+
+"You are."
+
+"I ain't."
+
+"You are."
+
+Another pause, and more eying and sidling around each other. Presently
+they were shoulder to shoulder. Tom said:
+
+"Get away from here!"
+
+"Go away yourself!"
+
+"I won't."
+
+"I won't either."
+
+So they stood, each with a foot placed at an angle as a brace, and
+both shoving with might and main, and glowering at each other with
+hate. But neither could get an advantage. After struggling till both
+were hot and flushed, each relaxed his strain with watchful caution,
+and Tom said:
+
+"You're a coward and a pup. I'll tell my big brother on you, and he
+can thrash you with his little finger, and I'll make him do it, too."
+
+"What do I care for your big brother? I've got a brother that's bigger
+than he is--and what's more, he can throw him over that fence, too."
+[Both brothers were imaginary.]
+
+"That's a lie."
+
+"YOUR saying so don't make it so."
+
+Tom drew a line in the dust with his big toe, and said:
+
+"I dare you to step over that, and I'll lick you till you can't stand
+up. Anybody that'll take a dare will steal sheep."
+
+The new boy stepped over promptly, and said:
+
+"Now you said you'd do it, now let's see you do it."
+
+"Don't you crowd me now; you better look out."
+
+"Well, you SAID you'd do it--why don't you do it?"
+
+"By jingo! for two cents I WILL do it."
+
+The new boy took two broad coppers out of his pocket and held them out
+with derision. Tom struck them to the ground. In an instant both boys
+were rolling and tumbling in the dirt, gripped together like cats; and
+for the space of a minute they tugged and tore at each other's hair and
+clothes, punched and scratched each other's nose, and covered
+themselves with dust and glory. Presently the confusion took form, and
+through the fog of battle Tom appeared, seated astride the new boy, and
+pounding him with his fists. "Holler 'nuff!" said he.
+
+The boy only struggled to free himself. He was crying--mainly from rage.
+
+"Holler 'nuff!"--and the pounding went on.
+
+At last the stranger got out a smothered "'Nuff!" and Tom let him up
+and said:
+
+"Now that'll learn you. Better look out who you're fooling with next
+time."
+
+The new boy went off brushing the dust from his clothes, sobbing,
+snuffling, and occasionally looking back and shaking his head and
+threatening what he would do to Tom the "next time he caught him out."
+To which Tom responded with jeers, and started off in high feather, and
+as soon as his back was turned the new boy snatched up a stone, threw
+it and hit him between the shoulders and then turned tail and ran like
+an antelope. Tom chased the traitor home, and thus found out where he
+lived. He then held a position at the gate for some time, daring the
+enemy to come outside, but the enemy only made faces at him through the
+window and declined. At last the enemy's mother appeared, and called
+Tom a bad, vicious, vulgar child, and ordered him away. So he went
+away; but he said he "'lowed" to "lay" for that boy.
+
+He got home pretty late that night, and when he climbed cautiously in
+at the window, he uncovered an ambuscade, in the person of his aunt;
+and when she saw the state his clothes were in her resolution to turn
+his Saturday holiday into captivity at hard labor became adamantine in
+its firmness.
+
+
+
+CHAPTER II
+
+SATURDAY morning was come, and all the summer world was bright and
+fresh, and brimming with life. There was a song in every heart; and if
+the heart was young the music issued at the lips. There was cheer in
+every face and a spring in every step. The locust-trees were in bloom
+and the fragrance of the blossoms filled the air. Cardiff Hill, beyond
+the village and above it, was green with vegetation and it lay just far
+enough away to seem a Delectable Land, dreamy, reposeful, and inviting.
+
+Tom appeared on the sidewalk with a bucket of whitewash and a
+long-handled brush. He surveyed the fence, and all gladness left him and
+a deep melancholy settled down upon his spirit. Thirty yards of board
+fence nine feet high. Life to him seemed hollow, and existence but a
+burden. Sighing, he dipped his brush and passed it along the topmost
+plank; repeated the operation; did it again; compared the insignificant
+whitewashed streak with the far-reaching continent of unwhitewashed
+fence, and sat down on a tree-box discouraged. Jim came skipping out at
+the gate with a tin pail, and singing Buffalo Gals. Bringing water from
+the town pump had always been hateful work in Tom's eyes, before, but
+now it did not strike him so. He remembered that there was company at
+the pump. White, mulatto, and negro boys and girls were always there
+waiting their turns, resting, trading playthings, quarrelling,
+fighting, skylarking. And he remembered that although the pump was only
+a hundred and fifty yards off, Jim never got back with a bucket of
+water under an hour--and even then somebody generally had to go after
+him. Tom said:
+
+"Say, Jim, I'll fetch the water if you'll whitewash some."
+
+Jim shook his head and said:
+
+"Can't, Mars Tom. Ole missis, she tole me I got to go an' git dis
+water an' not stop foolin' roun' wid anybody. She say she spec' Mars
+Tom gwine to ax me to whitewash, an' so she tole me go 'long an' 'tend
+to my own business--she 'lowed SHE'D 'tend to de whitewashin'."
+
+"Oh, never you mind what she said, Jim. That's the way she always
+talks. Gimme the bucket--I won't be gone only a a minute. SHE won't
+ever know."
+
+"Oh, I dasn't, Mars Tom. Ole missis she'd take an' tar de head off'n
+me. 'Deed she would."
+
+"SHE! She never licks anybody--whacks 'em over the head with her
+thimble--and who cares for that, I'd like to know. She talks awful, but
+talk don't hurt--anyways it don't if she don't cry. Jim, I'll give you
+a marvel. I'll give you a white alley!"
+
+Jim began to waver.
+
+"White alley, Jim! And it's a bully taw."
+
+"My! Dat's a mighty gay marvel, I tell you! But Mars Tom I's powerful
+'fraid ole missis--"
+
+"And besides, if you will I'll show you my sore toe."
+
+Jim was only human--this attraction was too much for him. He put down
+his pail, took the white alley, and bent over the toe with absorbing
+interest while the bandage was being unwound. In another moment he was
+flying down the street with his pail and a tingling rear, Tom was
+whitewashing with vigor, and Aunt Polly was retiring from the field
+with a slipper in her hand and triumph in her eye.
+
+But Tom's energy did not last. He began to think of the fun he had
+planned for this day, and his sorrows multiplied. Soon the free boys
+would come tripping along on all sorts of delicious expeditions, and
+they would make a world of fun of him for having to work--the very
+thought of it burnt him like fire. He got out his worldly wealth and
+examined it--bits of toys, marbles, and trash; enough to buy an
+exchange of WORK, maybe, but not half enough to buy so much as half an
+hour of pure freedom. So he returned his straitened means to his
+pocket, and gave up the idea of trying to buy the boys. At this dark
+and hopeless moment an inspiration burst upon him! Nothing less than a
+great, magnificent inspiration.
+
+He took up his brush and went tranquilly to work. Ben Rogers hove in
+sight presently--the very boy, of all boys, whose ridicule he had been
+dreading. Ben's gait was the hop-skip-and-jump--proof enough that his
+heart was light and his anticipations high. He was eating an apple, and
+giving a long, melodious whoop, at intervals, followed by a deep-toned
+ding-dong-dong, ding-dong-dong, for he was personating a steamboat. As
+he drew near, he slackened speed, took the middle of the street, leaned
+far over to starboard and rounded to ponderously and with laborious
+pomp and circumstance--for he was personating the Big Missouri, and
+considered himself to be drawing nine feet of water. He was boat and
+captain and engine-bells combined, so he had to imagine himself
+standing on his own hurricane-deck giving the orders and executing them:
+
+"Stop her, sir! Ting-a-ling-ling!" The headway ran almost out, and he
+drew up slowly toward the sidewalk.
+
+"Ship up to back! Ting-a-ling-ling!" His arms straightened and
+stiffened down his sides.
+
+"Set her back on the stabboard! Ting-a-ling-ling! Chow! ch-chow-wow!
+Chow!" His right hand, meantime, describing stately circles--for it was
+representing a forty-foot wheel.
+
+"Let her go back on the labboard! Ting-a-lingling! Chow-ch-chow-chow!"
+The left hand began to describe circles.
+
+"Stop the stabboard! Ting-a-ling-ling! Stop the labboard! Come ahead
+on the stabboard! Stop her! Let your outside turn over slow!
+Ting-a-ling-ling! Chow-ow-ow! Get out that head-line! LIVELY now!
+Come--out with your spring-line--what're you about there! Take a turn
+round that stump with the bight of it! Stand by that stage, now--let her
+go! Done with the engines, sir! Ting-a-ling-ling! SH'T! S'H'T! SH'T!"
+(trying the gauge-cocks).
+
+Tom went on whitewashing--paid no attention to the steamboat. Ben
+stared a moment and then said: "Hi-YI! YOU'RE up a stump, ain't you!"
+
+No answer. Tom surveyed his last touch with the eye of an artist, then
+he gave his brush another gentle sweep and surveyed the result, as
+before. Ben ranged up alongside of him. Tom's mouth watered for the
+apple, but he stuck to his work. Ben said:
+
+"Hello, old chap, you got to work, hey?"
+
+Tom wheeled suddenly and said:
+
+"Why, it's you, Ben! I warn't noticing."
+
+"Say--I'm going in a-swimming, I am. Don't you wish you could? But of
+course you'd druther WORK--wouldn't you? Course you would!"
+
+Tom contemplated the boy a bit, and said:
+
+"What do you call work?"
+
+"Why, ain't THAT work?"
+
+Tom resumed his whitewashing, and answered carelessly:
+
+"Well, maybe it is, and maybe it ain't. All I know, is, it suits Tom
+Sawyer."
+
+"Oh come, now, you don't mean to let on that you LIKE it?"
+
+The brush continued to move.
+
+"Like it? Well, I don't see why I oughtn't to like it. Does a boy get
+a chance to whitewash a fence every day?"
+
+That put the thing in a new light. Ben stopped nibbling his apple. Tom
+swept his brush daintily back and forth--stepped back to note the
+effect--added a touch here and there--criticised the effect again--Ben
+watching every move and getting more and more interested, more and more
+absorbed. Presently he said:
+
+"Say, Tom, let ME whitewash a little."
+
+Tom considered, was about to consent; but he altered his mind:
+
+"No--no--I reckon it wouldn't hardly do, Ben. You see, Aunt Polly's
+awful particular about this fence--right here on the street, you know
+--but if it was the back fence I wouldn't mind and SHE wouldn't. Yes,
+she's awful particular about this fence; it's got to be done very
+careful; I reckon there ain't one boy in a thousand, maybe two
+thousand, that can do it the way it's got to be done."
+
+"No--is that so? Oh come, now--lemme just try. Only just a little--I'd
+let YOU, if you was me, Tom."
+
+"Ben, I'd like to, honest injun; but Aunt Polly--well, Jim wanted to
+do it, but she wouldn't let him; Sid wanted to do it, and she wouldn't
+let Sid. Now don't you see how I'm fixed? If you was to tackle this
+fence and anything was to happen to it--"
+
+"Oh, shucks, I'll be just as careful. Now lemme try. Say--I'll give
+you the core of my apple."
+
+"Well, here--No, Ben, now don't. I'm afeard--"
+
+"I'll give you ALL of it!"
+
+Tom gave up the brush with reluctance in his face, but alacrity in his
+heart. And while the late steamer Big Missouri worked and sweated in
+the sun, the retired artist sat on a barrel in the shade close by,
+dangled his legs, munched his apple, and planned the slaughter of more
+innocents. There was no lack of material; boys happened along every
+little while; they came to jeer, but remained to whitewash. By the time
+Ben was fagged out, Tom had traded the next chance to Billy Fisher for
+a kite, in good repair; and when he played out, Johnny Miller bought in
+for a dead rat and a string to swing it with--and so on, and so on,
+hour after hour. And when the middle of the afternoon came, from being
+a poor poverty-stricken boy in the morning, Tom was literally rolling
+in wealth. He had besides the things before mentioned, twelve marbles,
+part of a jews-harp, a piece of blue bottle-glass to look through, a
+spool cannon, a key that wouldn't unlock anything, a fragment of chalk,
+a glass stopper of a decanter, a tin soldier, a couple of tadpoles, six
+fire-crackers, a kitten with only one eye, a brass doorknob, a
+dog-collar--but no dog--the handle of a knife, four pieces of
+orange-peel, and a dilapidated old window sash.
+
+He had had a nice, good, idle time all the while--plenty of company
+--and the fence had three coats of whitewash on it! If he hadn't run out
+of whitewash he would have bankrupted every boy in the village.
+
+Tom said to himself that it was not such a hollow world, after all. He
+had discovered a great law of human action, without knowing it--namely,
+that in order to make a man or a boy covet a thing, it is only
+necessary to make the thing difficult to attain. If he had been a great
+and wise philosopher, like the writer of this book, he would now have
+comprehended that Work consists of whatever a body is OBLIGED to do,
+and that Play consists of whatever a body is not obliged to do. And
+this would help him to understand why constructing artificial flowers
+or performing on a tread-mill is work, while rolling ten-pins or
+climbing Mont Blanc is only amusement. There are wealthy gentlemen in
+England who drive four-horse passenger-coaches twenty or thirty miles
+on a daily line, in the summer, because the privilege costs them
+considerable money; but if they were offered wages for the service,
+that would turn it into work and then they would resign.
+
+The boy mused awhile over the substantial change which had taken place
+in his worldly circumstances, and then wended toward headquarters to
+report.
+
+
+
+CHAPTER III
+
+TOM presented himself before Aunt Polly, who was sitting by an open
+window in a pleasant rearward apartment, which was bedroom,
+breakfast-room, dining-room, and library, combined. The balmy summer
+air, the restful quiet, the odor of the flowers, and the drowsing murmur
+of the bees had had their effect, and she was nodding over her knitting
+--for she had no company but the cat, and it was asleep in her lap. Her
+spectacles were propped up on her gray head for safety. She had thought
+that of course Tom had deserted long ago, and she wondered at seeing him
+place himself in her power again in this intrepid way. He said: "Mayn't
+I go and play now, aunt?"
+
+"What, a'ready? How much have you done?"
+
+"It's all done, aunt."
+
+"Tom, don't lie to me--I can't bear it."
+
+"I ain't, aunt; it IS all done."
+
+Aunt Polly placed small trust in such evidence. She went out to see
+for herself; and she would have been content to find twenty per cent.
+of Tom's statement true. When she found the entire fence whitewashed,
+and not only whitewashed but elaborately coated and recoated, and even
+a streak added to the ground, her astonishment was almost unspeakable.
+She said:
+
+"Well, I never! There's no getting round it, you can work when you're
+a mind to, Tom." And then she diluted the compliment by adding, "But
+it's powerful seldom you're a mind to, I'm bound to say. Well, go 'long
+and play; but mind you get back some time in a week, or I'll tan you."
+
+She was so overcome by the splendor of his achievement that she took
+him into the closet and selected a choice apple and delivered it to
+him, along with an improving lecture upon the added value and flavor a
+treat took to itself when it came without sin through virtuous effort.
+And while she closed with a happy Scriptural flourish, he "hooked" a
+doughnut.
+
+Then he skipped out, and saw Sid just starting up the outside stairway
+that led to the back rooms on the second floor. Clods were handy and
+the air was full of them in a twinkling. They raged around Sid like a
+hail-storm; and before Aunt Polly could collect her surprised faculties
+and sally to the rescue, six or seven clods had taken personal effect,
+and Tom was over the fence and gone. There was a gate, but as a general
+thing he was too crowded for time to make use of it. His soul was at
+peace, now that he had settled with Sid for calling attention to his
+black thread and getting him into trouble.
+
+Tom skirted the block, and came round into a muddy alley that led by
+the back of his aunt's cow-stable. He presently got safely beyond the
+reach of capture and punishment, and hastened toward the public square
+of the village, where two "military" companies of boys had met for
+conflict, according to previous appointment. Tom was General of one of
+these armies, Joe Harper (a bosom friend) General of the other. These
+two great commanders did not condescend to fight in person--that being
+better suited to the still smaller fry--but sat together on an eminence
+and conducted the field operations by orders delivered through
+aides-de-camp. Tom's army won a great victory, after a long and
+hard-fought battle. Then the dead were counted, prisoners exchanged,
+the terms of the next disagreement agreed upon, and the day for the
+necessary battle appointed; after which the armies fell into line and
+marched away, and Tom turned homeward alone.
+
+As he was passing by the house where Jeff Thatcher lived, he saw a new
+girl in the garden--a lovely little blue-eyed creature with yellow hair
+plaited into two long-tails, white summer frock and embroidered
+pantalettes. The fresh-crowned hero fell without firing a shot. A
+certain Amy Lawrence vanished out of his heart and left not even a
+memory of herself behind. He had thought he loved her to distraction;
+he had regarded his passion as adoration; and behold it was only a poor
+little evanescent partiality. He had been months winning her; she had
+confessed hardly a week ago; he had been the happiest and the proudest
+boy in the world only seven short days, and here in one instant of time
+she had gone out of his heart like a casual stranger whose visit is
+done.
+
+He worshipped this new angel with furtive eye, till he saw that she
+had discovered him; then he pretended he did not know she was present,
+and began to "show off" in all sorts of absurd boyish ways, in order to
+win her admiration. He kept up this grotesque foolishness for some
+time; but by-and-by, while he was in the midst of some dangerous
+gymnastic performances, he glanced aside and saw that the little girl
+was wending her way toward the house. Tom came up to the fence and
+leaned on it, grieving, and hoping she would tarry yet awhile longer.
+She halted a moment on the steps and then moved toward the door. Tom
+heaved a great sigh as she put her foot on the threshold. But his face
+lit up, right away, for she tossed a pansy over the fence a moment
+before she disappeared.
+
+The boy ran around and stopped within a foot or two of the flower, and
+then shaded his eyes with his hand and began to look down street as if
+he had discovered something of interest going on in that direction.
+Presently he picked up a straw and began trying to balance it on his
+nose, with his head tilted far back; and as he moved from side to side,
+in his efforts, he edged nearer and nearer toward the pansy; finally
+his bare foot rested upon it, his pliant toes closed upon it, and he
+hopped away with the treasure and disappeared round the corner. But
+only for a minute--only while he could button the flower inside his
+jacket, next his heart--or next his stomach, possibly, for he was not
+much posted in anatomy, and not hypercritical, anyway.
+
+He returned, now, and hung about the fence till nightfall, "showing
+off," as before; but the girl never exhibited herself again, though Tom
+comforted himself a little with the hope that she had been near some
+window, meantime, and been aware of his attentions. Finally he strode
+home reluctantly, with his poor head full of visions.
+
+All through supper his spirits were so high that his aunt wondered
+"what had got into the child." He took a good scolding about clodding
+Sid, and did not seem to mind it in the least. He tried to steal sugar
+under his aunt's very nose, and got his knuckles rapped for it. He said:
+
+"Aunt, you don't whack Sid when he takes it."
+
+"Well, Sid don't torment a body the way you do. You'd be always into
+that sugar if I warn't watching you."
+
+Presently she stepped into the kitchen, and Sid, happy in his
+immunity, reached for the sugar-bowl--a sort of glorying over Tom which
+was wellnigh unbearable. But Sid's fingers slipped and the bowl dropped
+and broke. Tom was in ecstasies. In such ecstasies that he even
+controlled his tongue and was silent. He said to himself that he would
+not speak a word, even when his aunt came in, but would sit perfectly
+still till she asked who did the mischief; and then he would tell, and
+there would be nothing so good in the world as to see that pet model
+"catch it." He was so brimful of exultation that he could hardly hold
+himself when the old lady came back and stood above the wreck
+discharging lightnings of wrath from over her spectacles. He said to
+himself, "Now it's coming!" And the next instant he was sprawling on
+the floor! The potent palm was uplifted to strike again when Tom cried
+out:
+
+"Hold on, now, what 'er you belting ME for?--Sid broke it!"
+
+Aunt Polly paused, perplexed, and Tom looked for healing pity. But
+when she got her tongue again, she only said:
+
+"Umf! Well, you didn't get a lick amiss, I reckon. You been into some
+other audacious mischief when I wasn't around, like enough."
+
+Then her conscience reproached her, and she yearned to say something
+kind and loving; but she judged that this would be construed into a
+confession that she had been in the wrong, and discipline forbade that.
+So she kept silence, and went about her affairs with a troubled heart.
+Tom sulked in a corner and exalted his woes. He knew that in her heart
+his aunt was on her knees to him, and he was morosely gratified by the
+consciousness of it. He would hang out no signals, he would take notice
+of none. He knew that a yearning glance fell upon him, now and then,
+through a film of tears, but he refused recognition of it. He pictured
+himself lying sick unto death and his aunt bending over him beseeching
+one little forgiving word, but he would turn his face to the wall, and
+die with that word unsaid. Ah, how would she feel then? And he pictured
+himself brought home from the river, dead, with his curls all wet, and
+his sore heart at rest. How she would throw herself upon him, and how
+her tears would fall like rain, and her lips pray God to give her back
+her boy and she would never, never abuse him any more! But he would lie
+there cold and white and make no sign--a poor little sufferer, whose
+griefs were at an end. He so worked upon his feelings with the pathos
+of these dreams, that he had to keep swallowing, he was so like to
+choke; and his eyes swam in a blur of water, which overflowed when he
+winked, and ran down and trickled from the end of his nose. And such a
+luxury to him was this petting of his sorrows, that he could not bear
+to have any worldly cheeriness or any grating delight intrude upon it;
+it was too sacred for such contact; and so, presently, when his cousin
+Mary danced in, all alive with the joy of seeing home again after an
+age-long visit of one week to the country, he got up and moved in
+clouds and darkness out at one door as she brought song and sunshine in
+at the other.
+
+He wandered far from the accustomed haunts of boys, and sought
+desolate places that were in harmony with his spirit. A log raft in the
+river invited him, and he seated himself on its outer edge and
+contemplated the dreary vastness of the stream, wishing, the while,
+that he could only be drowned, all at once and unconsciously, without
+undergoing the uncomfortable routine devised by nature. Then he thought
+of his flower. He got it out, rumpled and wilted, and it mightily
+increased his dismal felicity. He wondered if she would pity him if she
+knew? Would she cry, and wish that she had a right to put her arms
+around his neck and comfort him? Or would she turn coldly away like all
+the hollow world? This picture brought such an agony of pleasurable
+suffering that he worked it over and over again in his mind and set it
+up in new and varied lights, till he wore it threadbare. At last he
+rose up sighing and departed in the darkness.
+
+About half-past nine or ten o'clock he came along the deserted street
+to where the Adored Unknown lived; he paused a moment; no sound fell
+upon his listening ear; a candle was casting a dull glow upon the
+curtain of a second-story window. Was the sacred presence there? He
+climbed the fence, threaded his stealthy way through the plants, till
+he stood under that window; he looked up at it long, and with emotion;
+then he laid him down on the ground under it, disposing himself upon
+his back, with his hands clasped upon his breast and holding his poor
+wilted flower. And thus he would die--out in the cold world, with no
+shelter over his homeless head, no friendly hand to wipe the
+death-damps from his brow, no loving face to bend pityingly over him
+when the great agony came. And thus SHE would see him when she looked
+out upon the glad morning, and oh! would she drop one little tear upon
+his poor, lifeless form, would she heave one little sigh to see a bright
+young life so rudely blighted, so untimely cut down?
+
+The window went up, a maid-servant's discordant voice profaned the
+holy calm, and a deluge of water drenched the prone martyr's remains!
+
+The strangling hero sprang up with a relieving snort. There was a whiz
+as of a missile in the air, mingled with the murmur of a curse, a sound
+as of shivering glass followed, and a small, vague form went over the
+fence and shot away in the gloom.
+
+Not long after, as Tom, all undressed for bed, was surveying his
+drenched garments by the light of a tallow dip, Sid woke up; but if he
+had any dim idea of making any "references to allusions," he thought
+better of it and held his peace, for there was danger in Tom's eye.
+
+Tom turned in without the added vexation of prayers, and Sid made
+mental note of the omission.
+
+
+
+CHAPTER IV
+
+THE sun rose upon a tranquil world, and beamed down upon the peaceful
+village like a benediction. Breakfast over, Aunt Polly had family
+worship: it began with a prayer built from the ground up of solid
+courses of Scriptural quotations, welded together with a thin mortar of
+originality; and from the summit of this she delivered a grim chapter
+of the Mosaic Law, as from Sinai.
+
+Then Tom girded up his loins, so to speak, and went to work to "get
+his verses." Sid had learned his lesson days before. Tom bent all his
+energies to the memorizing of five verses, and he chose part of the
+Sermon on the Mount, because he could find no verses that were shorter.
+At the end of half an hour Tom had a vague general idea of his lesson,
+but no more, for his mind was traversing the whole field of human
+thought, and his hands were busy with distracting recreations. Mary
+took his book to hear him recite, and he tried to find his way through
+the fog:
+
+"Blessed are the--a--a--"
+
+"Poor"--
+
+"Yes--poor; blessed are the poor--a--a--"
+
+"In spirit--"
+
+"In spirit; blessed are the poor in spirit, for they--they--"
+
+"THEIRS--"
+
+"For THEIRS. Blessed are the poor in spirit, for theirs is the kingdom
+of heaven. Blessed are they that mourn, for they--they--"
+
+"Sh--"
+
+"For they--a--"
+
+"S, H, A--"
+
+"For they S, H--Oh, I don't know what it is!"
+
+"SHALL!"
+
+"Oh, SHALL! for they shall--for they shall--a--a--shall mourn--a--a--
+blessed are they that shall--they that--a--they that shall mourn, for
+they shall--a--shall WHAT? Why don't you tell me, Mary?--what do you
+want to be so mean for?"
+
+"Oh, Tom, you poor thick-headed thing, I'm not teasing you. I wouldn't
+do that. You must go and learn it again. Don't you be discouraged, Tom,
+you'll manage it--and if you do, I'll give you something ever so nice.
+There, now, that's a good boy."
+
+"All right! What is it, Mary, tell me what it is."
+
+"Never you mind, Tom. You know if I say it's nice, it is nice."
+
+"You bet you that's so, Mary. All right, I'll tackle it again."
+
+And he did "tackle it again"--and under the double pressure of
+curiosity and prospective gain he did it with such spirit that he
+accomplished a shining success. Mary gave him a brand-new "Barlow"
+knife worth twelve and a half cents; and the convulsion of delight that
+swept his system shook him to his foundations. True, the knife would
+not cut anything, but it was a "sure-enough" Barlow, and there was
+inconceivable grandeur in that--though where the Western boys ever got
+the idea that such a weapon could possibly be counterfeited to its
+injury is an imposing mystery and will always remain so, perhaps. Tom
+contrived to scarify the cupboard with it, and was arranging to begin
+on the bureau, when he was called off to dress for Sunday-school.
+
+Mary gave him a tin basin of water and a piece of soap, and he went
+outside the door and set the basin on a little bench there; then he
+dipped the soap in the water and laid it down; turned up his sleeves;
+poured out the water on the ground, gently, and then entered the
+kitchen and began to wipe his face diligently on the towel behind the
+door. But Mary removed the towel and said:
+
+"Now ain't you ashamed, Tom. You mustn't be so bad. Water won't hurt
+you."
+
+Tom was a trifle disconcerted. The basin was refilled, and this time
+he stood over it a little while, gathering resolution; took in a big
+breath and began. When he entered the kitchen presently, with both eyes
+shut and groping for the towel with his hands, an honorable testimony
+of suds and water was dripping from his face. But when he emerged from
+the towel, he was not yet satisfactory, for the clean territory stopped
+short at his chin and his jaws, like a mask; below and beyond this line
+there was a dark expanse of unirrigated soil that spread downward in
+front and backward around his neck. Mary took him in hand, and when she
+was done with him he was a man and a brother, without distinction of
+color, and his saturated hair was neatly brushed, and its short curls
+wrought into a dainty and symmetrical general effect. [He privately
+smoothed out the curls, with labor and difficulty, and plastered his
+hair close down to his head; for he held curls to be effeminate, and
+his own filled his life with bitterness.] Then Mary got out a suit of
+his clothing that had been used only on Sundays during two years--they
+were simply called his "other clothes"--and so by that we know the
+size of his wardrobe. The girl "put him to rights" after he had dressed
+himself; she buttoned his neat roundabout up to his chin, turned his
+vast shirt collar down over his shoulders, brushed him off and crowned
+him with his speckled straw hat. He now looked exceedingly improved and
+uncomfortable. He was fully as uncomfortable as he looked; for there
+was a restraint about whole clothes and cleanliness that galled him. He
+hoped that Mary would forget his shoes, but the hope was blighted; she
+coated them thoroughly with tallow, as was the custom, and brought them
+out. He lost his temper and said he was always being made to do
+everything he didn't want to do. But Mary said, persuasively:
+
+"Please, Tom--that's a good boy."
+
+So he got into the shoes snarling. Mary was soon ready, and the three
+children set out for Sunday-school--a place that Tom hated with his
+whole heart; but Sid and Mary were fond of it.
+
+Sabbath-school hours were from nine to half-past ten; and then church
+service. Two of the children always remained for the sermon
+voluntarily, and the other always remained too--for stronger reasons.
+The church's high-backed, uncushioned pews would seat about three
+hundred persons; the edifice was but a small, plain affair, with a sort
+of pine board tree-box on top of it for a steeple. At the door Tom
+dropped back a step and accosted a Sunday-dressed comrade:
+
+"Say, Billy, got a yaller ticket?"
+
+"Yes."
+
+"What'll you take for her?"
+
+"What'll you give?"
+
+"Piece of lickrish and a fish-hook."
+
+"Less see 'em."
+
+Tom exhibited. They were satisfactory, and the property changed hands.
+Then Tom traded a couple of white alleys for three red tickets, and
+some small trifle or other for a couple of blue ones. He waylaid other
+boys as they came, and went on buying tickets of various colors ten or
+fifteen minutes longer. He entered the church, now, with a swarm of
+clean and noisy boys and girls, proceeded to his seat and started a
+quarrel with the first boy that came handy. The teacher, a grave,
+elderly man, interfered; then turned his back a moment and Tom pulled a
+boy's hair in the next bench, and was absorbed in his book when the boy
+turned around; stuck a pin in another boy, presently, in order to hear
+him say "Ouch!" and got a new reprimand from his teacher. Tom's whole
+class were of a pattern--restless, noisy, and troublesome. When they
+came to recite their lessons, not one of them knew his verses
+perfectly, but had to be prompted all along. However, they worried
+through, and each got his reward--in small blue tickets, each with a
+passage of Scripture on it; each blue ticket was pay for two verses of
+the recitation. Ten blue tickets equalled a red one, and could be
+exchanged for it; ten red tickets equalled a yellow one; for ten yellow
+tickets the superintendent gave a very plainly bound Bible (worth forty
+cents in those easy times) to the pupil. How many of my readers would
+have the industry and application to memorize two thousand verses, even
+for a Dore Bible? And yet Mary had acquired two Bibles in this way--it
+was the patient work of two years--and a boy of German parentage had
+won four or five. He once recited three thousand verses without
+stopping; but the strain upon his mental faculties was too great, and
+he was little better than an idiot from that day forth--a grievous
+misfortune for the school, for on great occasions, before company, the
+superintendent (as Tom expressed it) had always made this boy come out
+and "spread himself." Only the older pupils managed to keep their
+tickets and stick to their tedious work long enough to get a Bible, and
+so the delivery of one of these prizes was a rare and noteworthy
+circumstance; the successful pupil was so great and conspicuous for
+that day that on the spot every scholar's heart was fired with a fresh
+ambition that often lasted a couple of weeks. It is possible that Tom's
+mental stomach had never really hungered for one of those prizes, but
+unquestionably his entire being had for many a day longed for the glory
+and the eclat that came with it.
+
+In due course the superintendent stood up in front of the pulpit, with
+a closed hymn-book in his hand and his forefinger inserted between its
+leaves, and commanded attention. When a Sunday-school superintendent
+makes his customary little speech, a hymn-book in the hand is as
+necessary as is the inevitable sheet of music in the hand of a singer
+who stands forward on the platform and sings a solo at a concert
+--though why, is a mystery: for neither the hymn-book nor the sheet of
+music is ever referred to by the sufferer. This superintendent was a
+slim creature of thirty-five, with a sandy goatee and short sandy hair;
+he wore a stiff standing-collar whose upper edge almost reached his
+ears and whose sharp points curved forward abreast the corners of his
+mouth--a fence that compelled a straight lookout ahead, and a turning
+of the whole body when a side view was required; his chin was propped
+on a spreading cravat which was as broad and as long as a bank-note,
+and had fringed ends; his boot toes were turned sharply up, in the
+fashion of the day, like sleigh-runners--an effect patiently and
+laboriously produced by the young men by sitting with their toes
+pressed against a wall for hours together. Mr. Walters was very earnest
+of mien, and very sincere and honest at heart; and he held sacred
+things and places in such reverence, and so separated them from worldly
+matters, that unconsciously to himself his Sunday-school voice had
+acquired a peculiar intonation which was wholly absent on week-days. He
+began after this fashion:
+
+"Now, children, I want you all to sit up just as straight and pretty
+as you can and give me all your attention for a minute or two. There
+--that is it. That is the way good little boys and girls should do. I see
+one little girl who is looking out of the window--I am afraid she
+thinks I am out there somewhere--perhaps up in one of the trees making
+a speech to the little birds. [Applausive titter.] I want to tell you
+how good it makes me feel to see so many bright, clean little faces
+assembled in a place like this, learning to do right and be good." And
+so forth and so on. It is not necessary to set down the rest of the
+oration. It was of a pattern which does not vary, and so it is familiar
+to us all.
+
+The latter third of the speech was marred by the resumption of fights
+and other recreations among certain of the bad boys, and by fidgetings
+and whisperings that extended far and wide, washing even to the bases
+of isolated and incorruptible rocks like Sid and Mary. But now every
+sound ceased suddenly, with the subsidence of Mr. Walters' voice, and
+the conclusion of the speech was received with a burst of silent
+gratitude.
+
+A good part of the whispering had been occasioned by an event which
+was more or less rare--the entrance of visitors: lawyer Thatcher,
+accompanied by a very feeble and aged man; a fine, portly, middle-aged
+gentleman with iron-gray hair; and a dignified lady who was doubtless
+the latter's wife. The lady was leading a child. Tom had been restless
+and full of chafings and repinings; conscience-smitten, too--he could
+not meet Amy Lawrence's eye, he could not brook her loving gaze. But
+when he saw this small new-comer his soul was all ablaze with bliss in
+a moment. The next moment he was "showing off" with all his might
+--cuffing boys, pulling hair, making faces--in a word, using every art
+that seemed likely to fascinate a girl and win her applause. His
+exaltation had but one alloy--the memory of his humiliation in this
+angel's garden--and that record in sand was fast washing out, under
+the waves of happiness that were sweeping over it now.
+
+The visitors were given the highest seat of honor, and as soon as Mr.
+Walters' speech was finished, he introduced them to the school. The
+middle-aged man turned out to be a prodigious personage--no less a one
+than the county judge--altogether the most august creation these
+children had ever looked upon--and they wondered what kind of material
+he was made of--and they half wanted to hear him roar, and were half
+afraid he might, too. He was from Constantinople, twelve miles away--so
+he had travelled, and seen the world--these very eyes had looked upon
+the county court-house--which was said to have a tin roof. The awe
+which these reflections inspired was attested by the impressive silence
+and the ranks of staring eyes. This was the great Judge Thatcher,
+brother of their own lawyer. Jeff Thatcher immediately went forward, to
+be familiar with the great man and be envied by the school. It would
+have been music to his soul to hear the whisperings:
+
+"Look at him, Jim! He's a going up there. Say--look! he's a going to
+shake hands with him--he IS shaking hands with him! By jings, don't you
+wish you was Jeff?"
+
+Mr. Walters fell to "showing off," with all sorts of official
+bustlings and activities, giving orders, delivering judgments,
+discharging directions here, there, everywhere that he could find a
+target. The librarian "showed off"--running hither and thither with his
+arms full of books and making a deal of the splutter and fuss that
+insect authority delights in. The young lady teachers "showed off"
+--bending sweetly over pupils that were lately being boxed, lifting
+pretty warning fingers at bad little boys and patting good ones
+lovingly. The young gentlemen teachers "showed off" with small
+scoldings and other little displays of authority and fine attention to
+discipline--and most of the teachers, of both sexes, found business up
+at the library, by the pulpit; and it was business that frequently had
+to be done over again two or three times (with much seeming vexation).
+The little girls "showed off" in various ways, and the little boys
+"showed off" with such diligence that the air was thick with paper wads
+and the murmur of scufflings. And above it all the great man sat and
+beamed a majestic judicial smile upon all the house, and warmed himself
+in the sun of his own grandeur--for he was "showing off," too.
+
+There was only one thing wanting to make Mr. Walters' ecstasy
+complete, and that was a chance to deliver a Bible-prize and exhibit a
+prodigy. Several pupils had a few yellow tickets, but none had enough
+--he had been around among the star pupils inquiring. He would have given
+worlds, now, to have that German lad back again with a sound mind.
+
+And now at this moment, when hope was dead, Tom Sawyer came forward
+with nine yellow tickets, nine red tickets, and ten blue ones, and
+demanded a Bible. This was a thunderbolt out of a clear sky. Walters
+was not expecting an application from this source for the next ten
+years. But there was no getting around it--here were the certified
+checks, and they were good for their face. Tom was therefore elevated
+to a place with the Judge and the other elect, and the great news was
+announced from headquarters. It was the most stunning surprise of the
+decade, and so profound was the sensation that it lifted the new hero
+up to the judicial one's altitude, and the school had two marvels to
+gaze upon in place of one. The boys were all eaten up with envy--but
+those that suffered the bitterest pangs were those who perceived too
+late that they themselves had contributed to this hated splendor by
+trading tickets to Tom for the wealth he had amassed in selling
+whitewashing privileges. These despised themselves, as being the dupes
+of a wily fraud, a guileful snake in the grass.
+
+The prize was delivered to Tom with as much effusion as the
+superintendent could pump up under the circumstances; but it lacked
+somewhat of the true gush, for the poor fellow's instinct taught him
+that there was a mystery here that could not well bear the light,
+perhaps; it was simply preposterous that this boy had warehoused two
+thousand sheaves of Scriptural wisdom on his premises--a dozen would
+strain his capacity, without a doubt.
+
+Amy Lawrence was proud and glad, and she tried to make Tom see it in
+her face--but he wouldn't look. She wondered; then she was just a grain
+troubled; next a dim suspicion came and went--came again; she watched;
+a furtive glance told her worlds--and then her heart broke, and she was
+jealous, and angry, and the tears came and she hated everybody. Tom
+most of all (she thought).
+
+Tom was introduced to the Judge; but his tongue was tied, his breath
+would hardly come, his heart quaked--partly because of the awful
+greatness of the man, but mainly because he was her parent. He would
+have liked to fall down and worship him, if it were in the dark. The
+Judge put his hand on Tom's head and called him a fine little man, and
+asked him what his name was. The boy stammered, gasped, and got it out:
+
+"Tom."
+
+"Oh, no, not Tom--it is--"
+
+"Thomas."
+
+"Ah, that's it. I thought there was more to it, maybe. That's very
+well. But you've another one I daresay, and you'll tell it to me, won't
+you?"
+
+"Tell the gentleman your other name, Thomas," said Walters, "and say
+sir. You mustn't forget your manners."
+
+"Thomas Sawyer--sir."
+
+"That's it! That's a good boy. Fine boy. Fine, manly little fellow.
+Two thousand verses is a great many--very, very great many. And you
+never can be sorry for the trouble you took to learn them; for
+knowledge is worth more than anything there is in the world; it's what
+makes great men and good men; you'll be a great man and a good man
+yourself, some day, Thomas, and then you'll look back and say, It's all
+owing to the precious Sunday-school privileges of my boyhood--it's all
+owing to my dear teachers that taught me to learn--it's all owing to
+the good superintendent, who encouraged me, and watched over me, and
+gave me a beautiful Bible--a splendid elegant Bible--to keep and have
+it all for my own, always--it's all owing to right bringing up! That is
+what you will say, Thomas--and you wouldn't take any money for those
+two thousand verses--no indeed you wouldn't. And now you wouldn't mind
+telling me and this lady some of the things you've learned--no, I know
+you wouldn't--for we are proud of little boys that learn. Now, no
+doubt you know the names of all the twelve disciples. Won't you tell us
+the names of the first two that were appointed?"
+
+Tom was tugging at a button-hole and looking sheepish. He blushed,
+now, and his eyes fell. Mr. Walters' heart sank within him. He said to
+himself, it is not possible that the boy can answer the simplest
+question--why DID the Judge ask him? Yet he felt obliged to speak up
+and say:
+
+"Answer the gentleman, Thomas--don't be afraid."
+
+Tom still hung fire.
+
+"Now I know you'll tell me," said the lady. "The names of the first
+two disciples were--"
+
+"DAVID AND GOLIAH!"
+
+Let us draw the curtain of charity over the rest of the scene.
+
+
+
+CHAPTER V
+
+ABOUT half-past ten the cracked bell of the small church began to
+ring, and presently the people began to gather for the morning sermon.
+The Sunday-school children distributed themselves about the house and
+occupied pews with their parents, so as to be under supervision. Aunt
+Polly came, and Tom and Sid and Mary sat with her--Tom being placed
+next the aisle, in order that he might be as far away from the open
+window and the seductive outside summer scenes as possible. The crowd
+filed up the aisles: the aged and needy postmaster, who had seen better
+days; the mayor and his wife--for they had a mayor there, among other
+unnecessaries; the justice of the peace; the widow Douglass, fair,
+smart, and forty, a generous, good-hearted soul and well-to-do, her
+hill mansion the only palace in the town, and the most hospitable and
+much the most lavish in the matter of festivities that St. Petersburg
+could boast; the bent and venerable Major and Mrs. Ward; lawyer
+Riverson, the new notable from a distance; next the belle of the
+village, followed by a troop of lawn-clad and ribbon-decked young
+heart-breakers; then all the young clerks in town in a body--for they
+had stood in the vestibule sucking their cane-heads, a circling wall of
+oiled and simpering admirers, till the last girl had run their gantlet;
+and last of all came the Model Boy, Willie Mufferson, taking as heedful
+care of his mother as if she were cut glass. He always brought his
+mother to church, and was the pride of all the matrons. The boys all
+hated him, he was so good. And besides, he had been "thrown up to them"
+so much. His white handkerchief was hanging out of his pocket behind, as
+usual on Sundays--accidentally. Tom had no handkerchief, and he looked
+upon boys who had as snobs.
+
+The congregation being fully assembled, now, the bell rang once more,
+to warn laggards and stragglers, and then a solemn hush fell upon the
+church which was only broken by the tittering and whispering of the
+choir in the gallery. The choir always tittered and whispered all
+through service. There was once a church choir that was not ill-bred,
+but I have forgotten where it was, now. It was a great many years ago,
+and I can scarcely remember anything about it, but I think it was in
+some foreign country.
+
+The minister gave out the hymn, and read it through with a relish, in
+a peculiar style which was much admired in that part of the country.
+His voice began on a medium key and climbed steadily up till it reached
+a certain point, where it bore with strong emphasis upon the topmost
+word and then plunged down as if from a spring-board:
+
+  Shall I be car-ri-ed toe the skies, on flow'ry BEDS of ease,
+
+  Whilst others fight to win the prize, and sail thro' BLOODY seas?
+
+He was regarded as a wonderful reader. At church "sociables" he was
+always called upon to read poetry; and when he was through, the ladies
+would lift up their hands and let them fall helplessly in their laps,
+and "wall" their eyes, and shake their heads, as much as to say, "Words
+cannot express it; it is too beautiful, TOO beautiful for this mortal
+earth."
+
+After the hymn had been sung, the Rev. Mr. Sprague turned himself into
+a bulletin-board, and read off "notices" of meetings and societies and
+things till it seemed that the list would stretch out to the crack of
+doom--a queer custom which is still kept up in America, even in cities,
+away here in this age of abundant newspapers. Often, the less there is
+to justify a traditional custom, the harder it is to get rid of it.
+
+And now the minister prayed. A good, generous prayer it was, and went
+into details: it pleaded for the church, and the little children of the
+church; for the other churches of the village; for the village itself;
+for the county; for the State; for the State officers; for the United
+States; for the churches of the United States; for Congress; for the
+President; for the officers of the Government; for poor sailors, tossed
+by stormy seas; for the oppressed millions groaning under the heel of
+European monarchies and Oriental despotisms; for such as have the light
+and the good tidings, and yet have not eyes to see nor ears to hear
+withal; for the heathen in the far islands of the sea; and closed with
+a supplication that the words he was about to speak might find grace
+and favor, and be as seed sown in fertile ground, yielding in time a
+grateful harvest of good. Amen.
+
+There was a rustling of dresses, and the standing congregation sat
+down. The boy whose history this book relates did not enjoy the prayer,
+he only endured it--if he even did that much. He was restive all
+through it; he kept tally of the details of the prayer, unconsciously
+--for he was not listening, but he knew the ground of old, and the
+clergyman's regular route over it--and when a little trifle of new
+matter was interlarded, his ear detected it and his whole nature
+resented it; he considered additions unfair, and scoundrelly. In the
+midst of the prayer a fly had lit on the back of the pew in front of
+him and tortured his spirit by calmly rubbing its hands together,
+embracing its head with its arms, and polishing it so vigorously that
+it seemed to almost part company with the body, and the slender thread
+of a neck was exposed to view; scraping its wings with its hind legs
+and smoothing them to its body as if they had been coat-tails; going
+through its whole toilet as tranquilly as if it knew it was perfectly
+safe. As indeed it was; for as sorely as Tom's hands itched to grab for
+it they did not dare--he believed his soul would be instantly destroyed
+if he did such a thing while the prayer was going on. But with the
+closing sentence his hand began to curve and steal forward; and the
+instant the "Amen" was out the fly was a prisoner of war. His aunt
+detected the act and made him let it go.
+
+The minister gave out his text and droned along monotonously through
+an argument that was so prosy that many a head by and by began to nod
+--and yet it was an argument that dealt in limitless fire and brimstone
+and thinned the predestined elect down to a company so small as to be
+hardly worth the saving. Tom counted the pages of the sermon; after
+church he always knew how many pages there had been, but he seldom knew
+anything else about the discourse. However, this time he was really
+interested for a little while. The minister made a grand and moving
+picture of the assembling together of the world's hosts at the
+millennium when the lion and the lamb should lie down together and a
+little child should lead them. But the pathos, the lesson, the moral of
+the great spectacle were lost upon the boy; he only thought of the
+conspicuousness of the principal character before the on-looking
+nations; his face lit with the thought, and he said to himself that he
+wished he could be that child, if it was a tame lion.
+
+Now he lapsed into suffering again, as the dry argument was resumed.
+Presently he bethought him of a treasure he had and got it out. It was
+a large black beetle with formidable jaws--a "pinchbug," he called it.
+It was in a percussion-cap box. The first thing the beetle did was to
+take him by the finger. A natural fillip followed, the beetle went
+floundering into the aisle and lit on its back, and the hurt finger
+went into the boy's mouth. The beetle lay there working its helpless
+legs, unable to turn over. Tom eyed it, and longed for it; but it was
+safe out of his reach. Other people uninterested in the sermon found
+relief in the beetle, and they eyed it too. Presently a vagrant poodle
+dog came idling along, sad at heart, lazy with the summer softness and
+the quiet, weary of captivity, sighing for change. He spied the beetle;
+the drooping tail lifted and wagged. He surveyed the prize; walked
+around it; smelt at it from a safe distance; walked around it again;
+grew bolder, and took a closer smell; then lifted his lip and made a
+gingerly snatch at it, just missing it; made another, and another;
+began to enjoy the diversion; subsided to his stomach with the beetle
+between his paws, and continued his experiments; grew weary at last,
+and then indifferent and absent-minded. His head nodded, and little by
+little his chin descended and touched the enemy, who seized it. There
+was a sharp yelp, a flirt of the poodle's head, and the beetle fell a
+couple of yards away, and lit on its back once more. The neighboring
+spectators shook with a gentle inward joy, several faces went behind
+fans and handkerchiefs, and Tom was entirely happy. The dog looked
+foolish, and probably felt so; but there was resentment in his heart,
+too, and a craving for revenge. So he went to the beetle and began a
+wary attack on it again; jumping at it from every point of a circle,
+lighting with his fore-paws within an inch of the creature, making even
+closer snatches at it with his teeth, and jerking his head till his
+ears flapped again. But he grew tired once more, after a while; tried
+to amuse himself with a fly but found no relief; followed an ant
+around, with his nose close to the floor, and quickly wearied of that;
+yawned, sighed, forgot the beetle entirely, and sat down on it. Then
+there was a wild yelp of agony and the poodle went sailing up the
+aisle; the yelps continued, and so did the dog; he crossed the house in
+front of the altar; he flew down the other aisle; he crossed before the
+doors; he clamored up the home-stretch; his anguish grew with his
+progress, till presently he was but a woolly comet moving in its orbit
+with the gleam and the speed of light. At last the frantic sufferer
+sheered from its course, and sprang into its master's lap; he flung it
+out of the window, and the voice of distress quickly thinned away and
+died in the distance.
+
+By this time the whole church was red-faced and suffocating with
+suppressed laughter, and the sermon had come to a dead standstill. The
+discourse was resumed presently, but it went lame and halting, all
+possibility of impressiveness being at an end; for even the gravest
+sentiments were constantly being received with a smothered burst of
+unholy mirth, under cover of some remote pew-back, as if the poor
+parson had said a rarely facetious thing. It was a genuine relief to
+the whole congregation when the ordeal was over and the benediction
+pronounced.
+
+Tom Sawyer went home quite cheerful, thinking to himself that there
+was some satisfaction about divine service when there was a bit of
+variety in it. He had but one marring thought; he was willing that the
+dog should play with his pinchbug, but he did not think it was upright
+in him to carry it off.
+
+
+
+CHAPTER VI
+
+MONDAY morning found Tom Sawyer miserable. Monday morning always found
+him so--because it began another week's slow suffering in school. He
+generally began that day with wishing he had had no intervening
+holiday, it made the going into captivity and fetters again so much
+more odious.
+
+Tom lay thinking. Presently it occurred to him that he wished he was
+sick; then he could stay home from school. Here was a vague
+possibility. He canvassed his system. No ailment was found, and he
+investigated again. This time he thought he could detect colicky
+symptoms, and he began to encourage them with considerable hope. But
+they soon grew feeble, and presently died wholly away. He reflected
+further. Suddenly he discovered something. One of his upper front teeth
+was loose. This was lucky; he was about to begin to groan, as a
+"starter," as he called it, when it occurred to him that if he came
+into court with that argument, his aunt would pull it out, and that
+would hurt. So he thought he would hold the tooth in reserve for the
+present, and seek further. Nothing offered for some little time, and
+then he remembered hearing the doctor tell about a certain thing that
+laid up a patient for two or three weeks and threatened to make him
+lose a finger. So the boy eagerly drew his sore toe from under the
+sheet and held it up for inspection. But now he did not know the
+necessary symptoms. However, it seemed well worth while to chance it,
+so he fell to groaning with considerable spirit.
+
+But Sid slept on unconscious.
+
+Tom groaned louder, and fancied that he began to feel pain in the toe.
+
+No result from Sid.
+
+Tom was panting with his exertions by this time. He took a rest and
+then swelled himself up and fetched a succession of admirable groans.
+
+Sid snored on.
+
+Tom was aggravated. He said, "Sid, Sid!" and shook him. This course
+worked well, and Tom began to groan again. Sid yawned, stretched, then
+brought himself up on his elbow with a snort, and began to stare at
+Tom. Tom went on groaning. Sid said:
+
+"Tom! Say, Tom!" [No response.] "Here, Tom! TOM! What is the matter,
+Tom?" And he shook him and looked in his face anxiously.
+
+Tom moaned out:
+
+"Oh, don't, Sid. Don't joggle me."
+
+"Why, what's the matter, Tom? I must call auntie."
+
+"No--never mind. It'll be over by and by, maybe. Don't call anybody."
+
+"But I must! DON'T groan so, Tom, it's awful. How long you been this
+way?"
+
+"Hours. Ouch! Oh, don't stir so, Sid, you'll kill me."
+
+"Tom, why didn't you wake me sooner? Oh, Tom, DON'T! It makes my
+flesh crawl to hear you. Tom, what is the matter?"
+
+"I forgive you everything, Sid. [Groan.] Everything you've ever done
+to me. When I'm gone--"
+
+"Oh, Tom, you ain't dying, are you? Don't, Tom--oh, don't. Maybe--"
+
+"I forgive everybody, Sid. [Groan.] Tell 'em so, Sid. And Sid, you
+give my window-sash and my cat with one eye to that new girl that's
+come to town, and tell her--"
+
+But Sid had snatched his clothes and gone. Tom was suffering in
+reality, now, so handsomely was his imagination working, and so his
+groans had gathered quite a genuine tone.
+
+Sid flew down-stairs and said:
+
+"Oh, Aunt Polly, come! Tom's dying!"
+
+"Dying!"
+
+"Yes'm. Don't wait--come quick!"
+
+"Rubbage! I don't believe it!"
+
+But she fled up-stairs, nevertheless, with Sid and Mary at her heels.
+And her face grew white, too, and her lip trembled. When she reached
+the bedside she gasped out:
+
+"You, Tom! Tom, what's the matter with you?"
+
+"Oh, auntie, I'm--"
+
+"What's the matter with you--what is the matter with you, child?"
+
+"Oh, auntie, my sore toe's mortified!"
+
+The old lady sank down into a chair and laughed a little, then cried a
+little, then did both together. This restored her and she said:
+
+"Tom, what a turn you did give me. Now you shut up that nonsense and
+climb out of this."
+
+The groans ceased and the pain vanished from the toe. The boy felt a
+little foolish, and he said:
+
+"Aunt Polly, it SEEMED mortified, and it hurt so I never minded my
+tooth at all."
+
+"Your tooth, indeed! What's the matter with your tooth?"
+
+"One of them's loose, and it aches perfectly awful."
+
+"There, there, now, don't begin that groaning again. Open your mouth.
+Well--your tooth IS loose, but you're not going to die about that.
+Mary, get me a silk thread, and a chunk of fire out of the kitchen."
+
+Tom said:
+
+"Oh, please, auntie, don't pull it out. It don't hurt any more. I wish
+I may never stir if it does. Please don't, auntie. I don't want to stay
+home from school."
+
+"Oh, you don't, don't you? So all this row was because you thought
+you'd get to stay home from school and go a-fishing? Tom, Tom, I love
+you so, and you seem to try every way you can to break my old heart
+with your outrageousness." By this time the dental instruments were
+ready. The old lady made one end of the silk thread fast to Tom's tooth
+with a loop and tied the other to the bedpost. Then she seized the
+chunk of fire and suddenly thrust it almost into the boy's face. The
+tooth hung dangling by the bedpost, now.
+
+But all trials bring their compensations. As Tom wended to school
+after breakfast, he was the envy of every boy he met because the gap in
+his upper row of teeth enabled him to expectorate in a new and
+admirable way. He gathered quite a following of lads interested in the
+exhibition; and one that had cut his finger and had been a centre of
+fascination and homage up to this time, now found himself suddenly
+without an adherent, and shorn of his glory. His heart was heavy, and
+he said with a disdain which he did not feel that it wasn't anything to
+spit like Tom Sawyer; but another boy said, "Sour grapes!" and he
+wandered away a dismantled hero.
+
+Shortly Tom came upon the juvenile pariah of the village, Huckleberry
+Finn, son of the town drunkard. Huckleberry was cordially hated and
+dreaded by all the mothers of the town, because he was idle and lawless
+and vulgar and bad--and because all their children admired him so, and
+delighted in his forbidden society, and wished they dared to be like
+him. Tom was like the rest of the respectable boys, in that he envied
+Huckleberry his gaudy outcast condition, and was under strict orders
+not to play with him. So he played with him every time he got a chance.
+Huckleberry was always dressed in the cast-off clothes of full-grown
+men, and they were in perennial bloom and fluttering with rags. His hat
+was a vast ruin with a wide crescent lopped out of its brim; his coat,
+when he wore one, hung nearly to his heels and had the rearward buttons
+far down the back; but one suspender supported his trousers; the seat
+of the trousers bagged low and contained nothing, the fringed legs
+dragged in the dirt when not rolled up.
+
+Huckleberry came and went, at his own free will. He slept on doorsteps
+in fine weather and in empty hogsheads in wet; he did not have to go to
+school or to church, or call any being master or obey anybody; he could
+go fishing or swimming when and where he chose, and stay as long as it
+suited him; nobody forbade him to fight; he could sit up as late as he
+pleased; he was always the first boy that went barefoot in the spring
+and the last to resume leather in the fall; he never had to wash, nor
+put on clean clothes; he could swear wonderfully. In a word, everything
+that goes to make life precious that boy had. So thought every
+harassed, hampered, respectable boy in St. Petersburg.
+
+Tom hailed the romantic outcast:
+
+"Hello, Huckleberry!"
+
+"Hello yourself, and see how you like it."
+
+"What's that you got?"
+
+"Dead cat."
+
+"Lemme see him, Huck. My, he's pretty stiff. Where'd you get him?"
+
+"Bought him off'n a boy."
+
+"What did you give?"
+
+"I give a blue ticket and a bladder that I got at the slaughter-house."
+
+"Where'd you get the blue ticket?"
+
+"Bought it off'n Ben Rogers two weeks ago for a hoop-stick."
+
+"Say--what is dead cats good for, Huck?"
+
+"Good for? Cure warts with."
+
+"No! Is that so? I know something that's better."
+
+"I bet you don't. What is it?"
+
+"Why, spunk-water."
+
+"Spunk-water! I wouldn't give a dern for spunk-water."
+
+"You wouldn't, wouldn't you? D'you ever try it?"
+
+"No, I hain't. But Bob Tanner did."
+
+"Who told you so!"
+
+"Why, he told Jeff Thatcher, and Jeff told Johnny Baker, and Johnny
+told Jim Hollis, and Jim told Ben Rogers, and Ben told a nigger, and
+the nigger told me. There now!"
+
+"Well, what of it? They'll all lie. Leastways all but the nigger. I
+don't know HIM. But I never see a nigger that WOULDN'T lie. Shucks! Now
+you tell me how Bob Tanner done it, Huck."
+
+"Why, he took and dipped his hand in a rotten stump where the
+rain-water was."
+
+"In the daytime?"
+
+"Certainly."
+
+"With his face to the stump?"
+
+"Yes. Least I reckon so."
+
+"Did he say anything?"
+
+"I don't reckon he did. I don't know."
+
+"Aha! Talk about trying to cure warts with spunk-water such a blame
+fool way as that! Why, that ain't a-going to do any good. You got to go
+all by yourself, to the middle of the woods, where you know there's a
+spunk-water stump, and just as it's midnight you back up against the
+stump and jam your hand in and say:
+
+  'Barley-corn, barley-corn, injun-meal shorts,
+   Spunk-water, spunk-water, swaller these warts,'
+
+and then walk away quick, eleven steps, with your eyes shut, and then
+turn around three times and walk home without speaking to anybody.
+Because if you speak the charm's busted."
+
+"Well, that sounds like a good way; but that ain't the way Bob Tanner
+done."
+
+"No, sir, you can bet he didn't, becuz he's the wartiest boy in this
+town; and he wouldn't have a wart on him if he'd knowed how to work
+spunk-water. I've took off thousands of warts off of my hands that way,
+Huck. I play with frogs so much that I've always got considerable many
+warts. Sometimes I take 'em off with a bean."
+
+"Yes, bean's good. I've done that."
+
+"Have you? What's your way?"
+
+"You take and split the bean, and cut the wart so as to get some
+blood, and then you put the blood on one piece of the bean and take and
+dig a hole and bury it 'bout midnight at the crossroads in the dark of
+the moon, and then you burn up the rest of the bean. You see that piece
+that's got the blood on it will keep drawing and drawing, trying to
+fetch the other piece to it, and so that helps the blood to draw the
+wart, and pretty soon off she comes."
+
+"Yes, that's it, Huck--that's it; though when you're burying it if you
+say 'Down bean; off wart; come no more to bother me!' it's better.
+That's the way Joe Harper does, and he's been nearly to Coonville and
+most everywheres. But say--how do you cure 'em with dead cats?"
+
+"Why, you take your cat and go and get in the graveyard 'long about
+midnight when somebody that was wicked has been buried; and when it's
+midnight a devil will come, or maybe two or three, but you can't see
+'em, you can only hear something like the wind, or maybe hear 'em talk;
+and when they're taking that feller away, you heave your cat after 'em
+and say, 'Devil follow corpse, cat follow devil, warts follow cat, I'm
+done with ye!' That'll fetch ANY wart."
+
+"Sounds right. D'you ever try it, Huck?"
+
+"No, but old Mother Hopkins told me."
+
+"Well, I reckon it's so, then. Becuz they say she's a witch."
+
+"Say! Why, Tom, I KNOW she is. She witched pap. Pap says so his own
+self. He come along one day, and he see she was a-witching him, so he
+took up a rock, and if she hadn't dodged, he'd a got her. Well, that
+very night he rolled off'n a shed wher' he was a layin drunk, and broke
+his arm."
+
+"Why, that's awful. How did he know she was a-witching him?"
+
+"Lord, pap can tell, easy. Pap says when they keep looking at you
+right stiddy, they're a-witching you. Specially if they mumble. Becuz
+when they mumble they're saying the Lord's Prayer backards."
+
+"Say, Hucky, when you going to try the cat?"
+
+"To-night. I reckon they'll come after old Hoss Williams to-night."
+
+"But they buried him Saturday. Didn't they get him Saturday night?"
+
+"Why, how you talk! How could their charms work till midnight?--and
+THEN it's Sunday. Devils don't slosh around much of a Sunday, I don't
+reckon."
+
+"I never thought of that. That's so. Lemme go with you?"
+
+"Of course--if you ain't afeard."
+
+"Afeard! 'Tain't likely. Will you meow?"
+
+"Yes--and you meow back, if you get a chance. Last time, you kep' me
+a-meowing around till old Hays went to throwing rocks at me and says
+'Dern that cat!' and so I hove a brick through his window--but don't
+you tell."
+
+"I won't. I couldn't meow that night, becuz auntie was watching me,
+but I'll meow this time. Say--what's that?"
+
+"Nothing but a tick."
+
+"Where'd you get him?"
+
+"Out in the woods."
+
+"What'll you take for him?"
+
+"I don't know. I don't want to sell him."
+
+"All right. It's a mighty small tick, anyway."
+
+"Oh, anybody can run a tick down that don't belong to them. I'm
+satisfied with it. It's a good enough tick for me."
+
+"Sho, there's ticks a plenty. I could have a thousand of 'em if I
+wanted to."
+
+"Well, why don't you? Becuz you know mighty well you can't. This is a
+pretty early tick, I reckon. It's the first one I've seen this year."
+
+"Say, Huck--I'll give you my tooth for him."
+
+"Less see it."
+
+Tom got out a bit of paper and carefully unrolled it. Huckleberry
+viewed it wistfully. The temptation was very strong. At last he said:
+
+"Is it genuwyne?"
+
+Tom lifted his lip and showed the vacancy.
+
+"Well, all right," said Huckleberry, "it's a trade."
+
+Tom enclosed the tick in the percussion-cap box that had lately been
+the pinchbug's prison, and the boys separated, each feeling wealthier
+than before.
+
+When Tom reached the little isolated frame schoolhouse, he strode in
+briskly, with the manner of one who had come with all honest speed.
+He hung his hat on a peg and flung himself into his seat with
+business-like alacrity. The master, throned on high in his great
+splint-bottom arm-chair, was dozing, lulled by the drowsy hum of study.
+The interruption roused him.
+
+"Thomas Sawyer!"
+
+Tom knew that when his name was pronounced in full, it meant trouble.
+
+"Sir!"
+
+"Come up here. Now, sir, why are you late again, as usual?"
+
+Tom was about to take refuge in a lie, when he saw two long tails of
+yellow hair hanging down a back that he recognized by the electric
+sympathy of love; and by that form was THE ONLY VACANT PLACE on the
+girls' side of the schoolhouse. He instantly said:
+
+"I STOPPED TO TALK WITH HUCKLEBERRY FINN!"
+
+The master's pulse stood still, and he stared helplessly. The buzz of
+study ceased. The pupils wondered if this foolhardy boy had lost his
+mind. The master said:
+
+"You--you did what?"
+
+"Stopped to talk with Huckleberry Finn."
+
+There was no mistaking the words.
+
+"Thomas Sawyer, this is the most astounding confession I have ever
+listened to. No mere ferule will answer for this offence. Take off your
+jacket."
+
+The master's arm performed until it was tired and the stock of
+switches notably diminished. Then the order followed:
+
+"Now, sir, go and sit with the girls! And let this be a warning to you."
+
+The titter that rippled around the room appeared to abash the boy, but
+in reality that result was caused rather more by his worshipful awe of
+his unknown idol and the dread pleasure that lay in his high good
+fortune. He sat down upon the end of the pine bench and the girl
+hitched herself away from him with a toss of her head. Nudges and winks
+and whispers traversed the room, but Tom sat still, with his arms upon
+the long, low desk before him, and seemed to study his book.
+
+By and by attention ceased from him, and the accustomed school murmur
+rose upon the dull air once more. Presently the boy began to steal
+furtive glances at the girl. She observed it, "made a mouth" at him and
+gave him the back of her head for the space of a minute. When she
+cautiously faced around again, a peach lay before her. She thrust it
+away. Tom gently put it back. She thrust it away again, but with less
+animosity. Tom patiently returned it to its place. Then she let it
+remain. Tom scrawled on his slate, "Please take it--I got more." The
+girl glanced at the words, but made no sign. Now the boy began to draw
+something on the slate, hiding his work with his left hand. For a time
+the girl refused to notice; but her human curiosity presently began to
+manifest itself by hardly perceptible signs. The boy worked on,
+apparently unconscious. The girl made a sort of noncommittal attempt to
+see, but the boy did not betray that he was aware of it. At last she
+gave in and hesitatingly whispered:
+
+"Let me see it."
+
+Tom partly uncovered a dismal caricature of a house with two gable
+ends to it and a corkscrew of smoke issuing from the chimney. Then the
+girl's interest began to fasten itself upon the work and she forgot
+everything else. When it was finished, she gazed a moment, then
+whispered:
+
+"It's nice--make a man."
+
+The artist erected a man in the front yard, that resembled a derrick.
+He could have stepped over the house; but the girl was not
+hypercritical; she was satisfied with the monster, and whispered:
+
+"It's a beautiful man--now make me coming along."
+
+Tom drew an hour-glass with a full moon and straw limbs to it and
+armed the spreading fingers with a portentous fan. The girl said:
+
+"It's ever so nice--I wish I could draw."
+
+"It's easy," whispered Tom, "I'll learn you."
+
+"Oh, will you? When?"
+
+"At noon. Do you go home to dinner?"
+
+"I'll stay if you will."
+
+"Good--that's a whack. What's your name?"
+
+"Becky Thatcher. What's yours? Oh, I know. It's Thomas Sawyer."
+
+"That's the name they lick me by. I'm Tom when I'm good. You call me
+Tom, will you?"
+
+"Yes."
+
+Now Tom began to scrawl something on the slate, hiding the words from
+the girl. But she was not backward this time. She begged to see. Tom
+said:
+
+"Oh, it ain't anything."
+
+"Yes it is."
+
+"No it ain't. You don't want to see."
+
+"Yes I do, indeed I do. Please let me."
+
+"You'll tell."
+
+"No I won't--deed and deed and double deed won't."
+
+"You won't tell anybody at all? Ever, as long as you live?"
+
+"No, I won't ever tell ANYbody. Now let me."
+
+"Oh, YOU don't want to see!"
+
+"Now that you treat me so, I WILL see." And she put her small hand
+upon his and a little scuffle ensued, Tom pretending to resist in
+earnest but letting his hand slip by degrees till these words were
+revealed: "I LOVE YOU."
+
+"Oh, you bad thing!" And she hit his hand a smart rap, but reddened
+and looked pleased, nevertheless.
+
+Just at this juncture the boy felt a slow, fateful grip closing on his
+ear, and a steady lifting impulse. In that wise he was borne across the
+house and deposited in his own seat, under a peppering fire of giggles
+from the whole school. Then the master stood over him during a few
+awful moments, and finally moved away to his throne without saying a
+word. But although Tom's ear tingled, his heart was jubilant.
+
+As the school quieted down Tom made an honest effort to study, but the
+turmoil within him was too great. In turn he took his place in the
+reading class and made a botch of it; then in the geography class and
+turned lakes into mountains, mountains into rivers, and rivers into
+continents, till chaos was come again; then in the spelling class, and
+got "turned down," by a succession of mere baby words, till he brought
+up at the foot and yielded up the pewter medal which he had worn with
+ostentation for months.
+
+
+
+CHAPTER VII
+
+THE harder Tom tried to fasten his mind on his book, the more his
+ideas wandered. So at last, with a sigh and a yawn, he gave it up. It
+seemed to him that the noon recess would never come. The air was
+utterly dead. There was not a breath stirring. It was the sleepiest of
+sleepy days. The drowsing murmur of the five and twenty studying
+scholars soothed the soul like the spell that is in the murmur of bees.
+Away off in the flaming sunshine, Cardiff Hill lifted its soft green
+sides through a shimmering veil of heat, tinted with the purple of


<TRUNCATED>

[26/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-86' into sprint-1

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/ignite-86' into sprint-1


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

Branch: refs/heads/ignite-132
Commit: 88514f70095e2b21415d24cec10ec79896d016d4
Parents: 7f50e80 258ee1c
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Feb 2 12:30:33 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Feb 2 12:30:33 2015 +0300

----------------------------------------------------------------------
 .../GridDeploymentPerLoaderStore.java           |  20 ++-
 .../GridDeploymentPerVersionStore.java          |   4 +-
 .../processors/cache/GridCacheAdapter.java      |   5 +-
 .../cache/GridCacheDeploymentManager.java       | 161 +++++++++++--------
 .../cache/GridCachePreloaderAdapter.java        |   2 +-
 .../processors/cache/GridCacheProcessor.java    |   5 +-
 .../processors/cache/GridCacheSwapManager.java  |   3 +-
 .../preloader/GridDhtPartitionDemandPool.java   |   2 +-
 .../streamer/GridStreamProcessor.java           |   5 +-
 .../processors/streamer/IgniteStreamerEx.java   |   3 +-
 .../processors/streamer/IgniteStreamerImpl.java |   5 +-
 11 files changed, 113 insertions(+), 102 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88514f70/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88514f70/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/88514f70/modules/core/src/main/java/org/apache/ignite/internal/processors/streamer/GridStreamProcessor.java
----------------------------------------------------------------------


[11/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-72-1

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-72-1


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

Branch: refs/heads/ignite-132
Commit: ae740876f39f7d937ffc7da07609d73ae5547730
Parents: e19655d ff01e66
Author: avinogradov <av...@gridgain.com>
Authored: Fri Jan 30 15:14:01 2015 +0300
Committer: avinogradov <av...@gridgain.com>
Committed: Fri Jan 30 15:14:01 2015 +0300

----------------------------------------------------------------------
 .../util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java    | 2 +-
 .../org/apache/ignite/messaging/GridMessagingSelfTest.java     | 2 +-
 .../internal/processors/hadoop/GridHadoopClassLoader.java      | 4 ++--
 .../marshaller/optimized/OptimizedClassNamesGenerator.java     | 6 +++---
 .../src/main/scala/org/apache/ignite/visor/visor.scala         | 1 -
 5 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



[44/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/huckleberry-finn.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/huckleberry-finn.txt b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/huckleberry-finn.txt
deleted file mode 100644
index 3af8c6b..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/huckleberry-finn.txt
+++ /dev/null
@@ -1,11733 +0,0 @@
-The Project Gutenberg EBook of Adventures of Huckleberry Finn, Complete
-by Mark Twain (Samuel Clemens)
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever.  You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-
-Title: Adventures of Huckleberry Finn, Complete
-
-Author: Mark Twain (Samuel Clemens)
-
-Release Date: August 20, 2006 [EBook #76]
-[This file last updated May 3, 2011]
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK HUCKLEBERRY FINN ***
-
-
-
-
-Produced by David Widger. Previous editions produced by Ron Burkey
-and Internet Wiretap
-
-
-
-
-
-ADVENTURES OF HUCKLEBERRY FINN
-
-By Mark Twain
-
-
-
-NOTICE
-
-PERSONS attempting to find a motive in this narrative will be prosecuted;
-persons attempting to find a moral in it will be banished; persons
-attempting to find a plot in it will be shot.
-
-BY ORDER OF THE AUTHOR, Per G.G., Chief of Ordnance.
-
-
-
-
-EXPLANATORY
-
-IN this book a number of dialects are used, to wit:  the Missouri negro
-dialect; the extremest form of the backwoods Southwestern dialect; the
-ordinary "Pike County" dialect; and four modified varieties of this last.
-The shadings have not been done in a haphazard fashion, or by guesswork;
-but painstakingly, and with the trustworthy guidance and support of
-personal familiarity with these several forms of speech.
-
-I make this explanation for the reason that without it many readers would
-suppose that all these characters were trying to talk alike and not
-succeeding.
-
-THE AUTHOR.
-
-
-
-
-
-ADVENTURES OF HUCKLEBERRY FINN
-
-Scene:  The Mississippi Valley Time:  Forty to fifty years ago
-
-
-
-CHAPTER I.
-
-YOU don't know about me without you have read a book by the name of The
-Adventures of Tom Sawyer; but that ain't no matter.  That book was made
-by Mr. Mark Twain, and he told the truth, mainly.  There was things which
-he stretched, but mainly he told the truth.  That is nothing.  I never
-seen anybody but lied one time or another, without it was Aunt Polly, or
-the widow, or maybe Mary.  Aunt Polly--Tom's Aunt Polly, she is--and
-Mary, and the Widow Douglas is all told about in that book, which is
-mostly a true book, with some stretchers, as I said before.
-
-Now the way that the book winds up is this:  Tom and me found the money
-that the robbers hid in the cave, and it made us rich.  We got six
-thousand dollars apiece--all gold.  It was an awful sight of money when
-it was piled up.  Well, Judge Thatcher he took it and put it out at
-interest, and it fetched us a dollar a day apiece all the year round
---more than a body could tell what to do with.  The Widow Douglas she took
-me for her son, and allowed she would sivilize me; but it was rough
-living in the house all the time, considering how dismal regular and
-decent the widow was in all her ways; and so when I couldn't stand it no
-longer I lit out.  I got into my old rags and my sugar-hogshead again,
-and was free and satisfied.  But Tom Sawyer he hunted me up and said he
-was going to start a band of robbers, and I might join if I would go back
-to the widow and be respectable.  So I went back.
-
-The widow she cried over me, and called me a poor lost lamb, and she
-called me a lot of other names, too, but she never meant no harm by it.
-She put me in them new clothes again, and I couldn't do nothing but sweat
-and sweat, and feel all cramped up.  Well, then, the old thing commenced
-again.  The widow rung a bell for supper, and you had to come to time.
-When you got to the table you couldn't go right to eating, but you had to
-wait for the widow to tuck down her head and grumble a little over the
-victuals, though there warn't really anything the matter with them,--that
-is, nothing only everything was cooked by itself.  In a barrel of odds
-and ends it is different; things get mixed up, and the juice kind of
-swaps around, and the things go better.
-
-After supper she got out her book and learned me about Moses and the
-Bulrushers, and I was in a sweat to find out all about him; but by and by
-she let it out that Moses had been dead a considerable long time; so then
-I didn't care no more about him, because I don't take no stock in dead
-people.
-
-Pretty soon I wanted to smoke, and asked the widow to let me.  But she
-wouldn't.  She said it was a mean practice and wasn't clean, and I must
-try to not do it any more.  That is just the way with some people.  They
-get down on a thing when they don't know nothing about it.  Here she was
-a-bothering about Moses, which was no kin to her, and no use to anybody,
-being gone, you see, yet finding a power of fault with me for doing a
-thing that had some good in it.  And she took snuff, too; of course that
-was all right, because she done it herself.
-
-Her sister, Miss Watson, a tolerable slim old maid, with goggles on,
-had just come to live with her, and took a set at me now with a
-spelling-book. She worked me middling hard for about an hour, and then
-the widow made her ease up.  I couldn't stood it much longer.  Then for
-an hour it was deadly dull, and I was fidgety.  Miss Watson would say,
-"Don't put your feet up there, Huckleberry;" and "Don't scrunch up like
-that, Huckleberry--set up straight;" and pretty soon she would say,
-"Don't gap and stretch like that, Huckleberry--why don't you try to
-behave?"  Then she told me all about the bad place, and I said I wished I
-was there. She got mad then, but I didn't mean no harm.  All I wanted was
-to go somewheres; all I wanted was a change, I warn't particular.  She
-said it was wicked to say what I said; said she wouldn't say it for the
-whole world; she was going to live so as to go to the good place.  Well,
-I couldn't see no advantage in going where she was going, so I made up my
-mind I wouldn't try for it.  But I never said so, because it would only
-make trouble, and wouldn't do no good.
-
-Now she had got a start, and she went on and told me all about the good
-place.  She said all a body would have to do there was to go around all
-day long with a harp and sing, forever and ever.  So I didn't think much
-of it. But I never said so.  I asked her if she reckoned Tom Sawyer would
-go there, and she said not by a considerable sight.  I was glad about
-that, because I wanted him and me to be together.
-
-Miss Watson she kept pecking at me, and it got tiresome and lonesome.  By
-and by they fetched the niggers in and had prayers, and then everybody
-was off to bed.  I went up to my room with a piece of candle, and put it
-on the table.  Then I set down in a chair by the window and tried to
-think of something cheerful, but it warn't no use.  I felt so lonesome I
-most wished I was dead.  The stars were shining, and the leaves rustled
-in the woods ever so mournful; and I heard an owl, away off, who-whooing
-about somebody that was dead, and a whippowill and a dog crying about
-somebody that was going to die; and the wind was trying to whisper
-something to me, and I couldn't make out what it was, and so it made the
-cold shivers run over me. Then away out in the woods I heard that kind of
-a sound that a ghost makes when it wants to tell about something that's
-on its mind and can't make itself understood, and so can't rest easy in
-its grave, and has to go about that way every night grieving.  I got so
-down-hearted and scared I did wish I had some company.  Pretty soon a
-spider went crawling up my shoulder, and I flipped it off and it lit in
-the candle; and before I could budge it was all shriveled up.  I didn't
-need anybody to tell me that that was an awful bad sign and would fetch
-me some bad luck, so I was scared and most shook the clothes off of me.
-I got up and turned around in my tracks three times and crossed my breast
-every time; and then I tied up a little lock of my hair with a thread to
-keep witches away.  But I hadn't no confidence.  You do that when you've
-lost a horseshoe that you've found, instead of nailing it up over the
-door, but I hadn't ever heard anybody say it was any way to keep off bad
-luck when you'd killed a spider.
-
-I set down again, a-shaking all over, and got out my pipe for a smoke;
-for the house was all as still as death now, and so the widow wouldn't
-know. Well, after a long time I heard the clock away off in the town go
-boom--boom--boom--twelve licks; and all still again--stiller than ever.
-Pretty soon I heard a twig snap down in the dark amongst the trees
---something was a stirring.  I set still and listened.  Directly I could
-just barely hear a "me-yow! me-yow!" down there.  That was good!  Says I,
-"me-yow! me-yow!" as soft as I could, and then I put out the light and
-scrambled out of the window on to the shed.  Then I slipped down to the
-ground and crawled in among the trees, and, sure enough, there was Tom
-Sawyer waiting for me.
-
-
-
-
-CHAPTER II.
-
-WE went tiptoeing along a path amongst the trees back towards the end of
-the widow's garden, stooping down so as the branches wouldn't scrape our
-heads. When we was passing by the kitchen I fell over a root and made a
-noise.  We scrouched down and laid still.  Miss Watson's big nigger,
-named Jim, was setting in the kitchen door; we could see him pretty
-clear, because there was a light behind him.  He got up and stretched his
-neck out about a minute, listening.  Then he says:
-
-"Who dah?"
-
-He listened some more; then he come tiptoeing down and stood right
-between us; we could a touched him, nearly.  Well, likely it was minutes
-and minutes that there warn't a sound, and we all there so close
-together.  There was a place on my ankle that got to itching, but I
-dasn't scratch it; and then my ear begun to itch; and next my back, right
-between my shoulders.  Seemed like I'd die if I couldn't scratch.  Well,
-I've noticed that thing plenty times since.  If you are with the quality,
-or at a funeral, or trying to go to sleep when you ain't sleepy--if you
-are anywheres where it won't do for you to scratch, why you will itch all
-over in upwards of a thousand places. Pretty soon Jim says:
-
-"Say, who is you?  Whar is you?  Dog my cats ef I didn' hear sumf'n.
-Well, I know what I's gwyne to do:  I's gwyne to set down here and listen
-tell I hears it agin."
-
-So he set down on the ground betwixt me and Tom.  He leaned his back up
-against a tree, and stretched his legs out till one of them most touched
-one of mine.  My nose begun to itch.  It itched till the tears come into
-my eyes.  But I dasn't scratch.  Then it begun to itch on the inside.
-Next I got to itching underneath.  I didn't know how I was going to set
-still. This miserableness went on as much as six or seven minutes; but it
-seemed a sight longer than that.  I was itching in eleven different
-places now.  I reckoned I couldn't stand it more'n a minute longer, but I
-set my teeth hard and got ready to try.  Just then Jim begun to breathe
-heavy; next he begun to snore--and then I was pretty soon comfortable
-again.
-
-Tom he made a sign to me--kind of a little noise with his mouth--and we
-went creeping away on our hands and knees.  When we was ten foot off Tom
-whispered to me, and wanted to tie Jim to the tree for fun.  But I said
-no; he might wake and make a disturbance, and then they'd find out I
-warn't in. Then Tom said he hadn't got candles enough, and he would slip
-in the kitchen and get some more.  I didn't want him to try.  I said Jim
-might wake up and come.  But Tom wanted to resk it; so we slid in there
-and got three candles, and Tom laid five cents on the table for pay.
-Then we got out, and I was in a sweat to get away; but nothing would do
-Tom but he must crawl to where Jim was, on his hands and knees, and play
-something on him.  I waited, and it seemed a good while, everything was
-so still and lonesome.
-
-As soon as Tom was back we cut along the path, around the garden fence,
-and by and by fetched up on the steep top of the hill the other side of
-the house.  Tom said he slipped Jim's hat off of his head and hung it on
-a limb right over him, and Jim stirred a little, but he didn't wake.
-Afterwards Jim said the witches be witched him and put him in a trance,
-and rode him all over the State, and then set him under the trees again,
-and hung his hat on a limb to show who done it.  And next time Jim told
-it he said they rode him down to New Orleans; and, after that, every time
-he told it he spread it more and more, till by and by he said they rode
-him all over the world, and tired him most to death, and his back was all
-over saddle-boils.  Jim was monstrous proud about it, and he got so he
-wouldn't hardly notice the other niggers.  Niggers would come miles to
-hear Jim tell about it, and he was more looked up to than any nigger in
-that country.  Strange niggers would stand with their mouths open and
-look him all over, same as if he was a wonder.  Niggers is always talking
-about witches in the dark by the kitchen fire; but whenever one was
-talking and letting on to know all about such things, Jim would happen in
-and say, "Hm!  What you know 'bout witches?" and that nigger was corked
-up and had to take a back seat.  Jim always kept that five-center piece
-round his neck with a string, and said it was a charm the devil give to
-him with his own hands, and told him he could cure anybody with it and
-fetch witches whenever he wanted to just by saying something to it; but
-he never told what it was he said to it.  Niggers would come from all
-around there and give Jim anything they had, just for a sight of that
-five-center piece; but they wouldn't touch it, because the devil had had
-his hands on it.  Jim was most ruined for a servant, because he got stuck
-up on account of having seen the devil and been rode by witches.
-
-Well, when Tom and me got to the edge of the hilltop we looked away down
-into the village and could see three or four lights twinkling, where
-there was sick folks, maybe; and the stars over us was sparkling ever so
-fine; and down by the village was the river, a whole mile broad, and
-awful still and grand.  We went down the hill and found Jo Harper and Ben
-Rogers, and two or three more of the boys, hid in the old tanyard.  So we
-unhitched a skiff and pulled down the river two mile and a half, to the
-big scar on the hillside, and went ashore.
-
-We went to a clump of bushes, and Tom made everybody swear to keep the
-secret, and then showed them a hole in the hill, right in the thickest
-part of the bushes.  Then we lit the candles, and crawled in on our hands
-and knees.  We went about two hundred yards, and then the cave opened up.
-Tom poked about amongst the passages, and pretty soon ducked under a wall
-where you wouldn't a noticed that there was a hole.  We went along a
-narrow place and got into a kind of room, all damp and sweaty and cold,
-and there we stopped.  Tom says:
-
-"Now, we'll start this band of robbers and call it Tom Sawyer's Gang.
-Everybody that wants to join has got to take an oath, and write his name
-in blood."
-
-Everybody was willing.  So Tom got out a sheet of paper that he had wrote
-the oath on, and read it.  It swore every boy to stick to the band, and
-never tell any of the secrets; and if anybody done anything to any boy in
-the band, whichever boy was ordered to kill that person and his family
-must do it, and he mustn't eat and he mustn't sleep till he had killed
-them and hacked a cross in their breasts, which was the sign of the band.
-And nobody that didn't belong to the band could use that mark, and if he
-did he must be sued; and if he done it again he must be killed.  And if
-anybody that belonged to the band told the secrets, he must have his
-throat cut, and then have his carcass burnt up and the ashes scattered
-all around, and his name blotted off of the list with blood and never
-mentioned again by the gang, but have a curse put on it and be forgot
-forever.
-
-Everybody said it was a real beautiful oath, and asked Tom if he got it
-out of his own head.  He said, some of it, but the rest was out of
-pirate-books and robber-books, and every gang that was high-toned had it.
-
-Some thought it would be good to kill the FAMILIES of boys that told the
-secrets.  Tom said it was a good idea, so he took a pencil and wrote it
-in. Then Ben Rogers says:
-
-"Here's Huck Finn, he hain't got no family; what you going to do 'bout
-him?"
-
-"Well, hain't he got a father?" says Tom Sawyer.
-
-"Yes, he's got a father, but you can't never find him these days.  He
-used to lay drunk with the hogs in the tanyard, but he hain't been seen
-in these parts for a year or more."
-
-They talked it over, and they was going to rule me out, because they said
-every boy must have a family or somebody to kill, or else it wouldn't be
-fair and square for the others.  Well, nobody could think of anything to
-do--everybody was stumped, and set still.  I was most ready to cry; but
-all at once I thought of a way, and so I offered them Miss Watson--they
-could kill her.  Everybody said:
-
-"Oh, she'll do.  That's all right.  Huck can come in."
-
-Then they all stuck a pin in their fingers to get blood to sign with, and
-I made my mark on the paper.
-
-"Now," says Ben Rogers, "what's the line of business of this Gang?"
-
-"Nothing only robbery and murder," Tom said.
-
-"But who are we going to rob?--houses, or cattle, or--"
-
-"Stuff! stealing cattle and such things ain't robbery; it's burglary,"
-says Tom Sawyer.  "We ain't burglars.  That ain't no sort of style.  We
-are highwaymen.  We stop stages and carriages on the road, with masks on,
-and kill the people and take their watches and money."
-
-"Must we always kill the people?"
-
-"Oh, certainly.  It's best.  Some authorities think different, but mostly
-it's considered best to kill them--except some that you bring to the cave
-here, and keep them till they're ransomed."
-
-"Ransomed?  What's that?"
-
-"I don't know.  But that's what they do.  I've seen it in books; and so
-of course that's what we've got to do."
-
-"But how can we do it if we don't know what it is?"
-
-"Why, blame it all, we've GOT to do it.  Don't I tell you it's in the
-books?  Do you want to go to doing different from what's in the books,
-and get things all muddled up?"
-
-"Oh, that's all very fine to SAY, Tom Sawyer, but how in the nation are
-these fellows going to be ransomed if we don't know how to do it to them?
---that's the thing I want to get at.  Now, what do you reckon it is?"
-
-"Well, I don't know.  But per'aps if we keep them till they're ransomed,
-it means that we keep them till they're dead."
-
-"Now, that's something LIKE.  That'll answer.  Why couldn't you said that
-before?  We'll keep them till they're ransomed to death; and a bothersome
-lot they'll be, too--eating up everything, and always trying to get
-loose."
-
-"How you talk, Ben Rogers.  How can they get loose when there's a guard
-over them, ready to shoot them down if they move a peg?"
-
-"A guard!  Well, that IS good.  So somebody's got to set up all night and
-never get any sleep, just so as to watch them.  I think that's
-foolishness. Why can't a body take a club and ransom them as soon as they
-get here?"
-
-"Because it ain't in the books so--that's why.  Now, Ben Rogers, do you
-want to do things regular, or don't you?--that's the idea.  Don't you
-reckon that the people that made the books knows what's the correct thing
-to do?  Do you reckon YOU can learn 'em anything?  Not by a good deal.
-No, sir, we'll just go on and ransom them in the regular way."
-
-"All right.  I don't mind; but I say it's a fool way, anyhow.  Say, do we
-kill the women, too?"
-
-"Well, Ben Rogers, if I was as ignorant as you I wouldn't let on.  Kill
-the women?  No; nobody ever saw anything in the books like that.  You
-fetch them to the cave, and you're always as polite as pie to them; and
-by and by they fall in love with you, and never want to go home any
-more."
-
-"Well, if that's the way I'm agreed, but I don't take no stock in it.
-Mighty soon we'll have the cave so cluttered up with women, and fellows
-waiting to be ransomed, that there won't be no place for the robbers.
-But go ahead, I ain't got nothing to say."
-
-Little Tommy Barnes was asleep now, and when they waked him up he was
-scared, and cried, and said he wanted to go home to his ma, and didn't
-want to be a robber any more.
-
-So they all made fun of him, and called him cry-baby, and that made him
-mad, and he said he would go straight and tell all the secrets.  But Tom
-give him five cents to keep quiet, and said we would all go home and meet
-next week, and rob somebody and kill some people.
-
-Ben Rogers said he couldn't get out much, only Sundays, and so he wanted
-to begin next Sunday; but all the boys said it would be wicked to do it
-on Sunday, and that settled the thing.  They agreed to get together and
-fix a day as soon as they could, and then we elected Tom Sawyer first
-captain and Jo Harper second captain of the Gang, and so started home.
-
-I clumb up the shed and crept into my window just before day was
-breaking. My new clothes was all greased up and clayey, and I was
-dog-tired.
-
-
-
-
-CHAPTER III.
-
-WELL, I got a good going-over in the morning from old Miss Watson on
-account of my clothes; but the widow she didn't scold, but only cleaned
-off the grease and clay, and looked so sorry that I thought I would
-behave awhile if I could.  Then Miss Watson she took me in the closet and
-prayed, but nothing come of it.  She told me to pray every day, and
-whatever I asked for I would get it.  But it warn't so.  I tried it.
-Once I got a fish-line, but no hooks.  It warn't any good to me without
-hooks.  I tried for the hooks three or four times, but somehow I couldn't
-make it work.  By and by, one day, I asked Miss Watson to try for me, but
-she said I was a fool.  She never told me why, and I couldn't make it out
-no way.
-
-I set down one time back in the woods, and had a long think about it.  I
-says to myself, if a body can get anything they pray for, why don't
-Deacon Winn get back the money he lost on pork?  Why can't the widow get
-back her silver snuffbox that was stole?  Why can't Miss Watson fat up?
-No, says I to my self, there ain't nothing in it.  I went and told the
-widow about it, and she said the thing a body could get by praying for it
-was "spiritual gifts."  This was too many for me, but she told me what
-she meant--I must help other people, and do everything I could for other
-people, and look out for them all the time, and never think about myself.
-This was including Miss Watson, as I took it.  I went out in the woods
-and turned it over in my mind a long time, but I couldn't see no
-advantage about it--except for the other people; so at last I reckoned I
-wouldn't worry about it any more, but just let it go.  Sometimes the
-widow would take me one side and talk about Providence in a way to make a
-body's mouth water; but maybe next day Miss Watson would take hold and
-knock it all down again.  I judged I could see that there was two
-Providences, and a poor chap would stand considerable show with the
-widow's Providence, but if Miss Watson's got him there warn't no help for
-him any more.  I thought it all out, and reckoned I would belong to the
-widow's if he wanted me, though I couldn't make out how he was a-going to
-be any better off then than what he was before, seeing I was so ignorant,
-and so kind of low-down and ornery.
-
-Pap he hadn't been seen for more than a year, and that was comfortable
-for me; I didn't want to see him no more.  He used to always whale me
-when he was sober and could get his hands on me; though I used to take to
-the woods most of the time when he was around.  Well, about this time he
-was found in the river drownded, about twelve mile above town, so people
-said.  They judged it was him, anyway; said this drownded man was just
-his size, and was ragged, and had uncommon long hair, which was all like
-pap; but they couldn't make nothing out of the face, because it had been
-in the water so long it warn't much like a face at all.  They said he was
-floating on his back in the water.  They took him and buried him on the
-bank.  But I warn't comfortable long, because I happened to think of
-something.  I knowed mighty well that a drownded man don't float on his
-back, but on his face.  So I knowed, then, that this warn't pap, but a
-woman dressed up in a man's clothes.  So I was uncomfortable again.  I
-judged the old man would turn up again by and by, though I wished he
-wouldn't.
-
-We played robber now and then about a month, and then I resigned.  All
-the boys did.  We hadn't robbed nobody, hadn't killed any people, but
-only just pretended.  We used to hop out of the woods and go charging
-down on hog-drivers and women in carts taking garden stuff to market, but
-we never hived any of them.  Tom Sawyer called the hogs "ingots," and he
-called the turnips and stuff "julery," and we would go to the cave and
-powwow over what we had done, and how many people we had killed and
-marked.  But I couldn't see no profit in it.  One time Tom sent a boy to
-run about town with a blazing stick, which he called a slogan (which was
-the sign for the Gang to get together), and then he said he had got
-secret news by his spies that next day a whole parcel of Spanish
-merchants and rich A-rabs was going to camp in Cave Hollow with two
-hundred elephants, and six hundred camels, and over a thousand "sumter"
-mules, all loaded down with di'monds, and they didn't have only a guard
-of four hundred soldiers, and so we would lay in ambuscade, as he called
-it, and kill the lot and scoop the things.  He said we must slick up our
-swords and guns, and get ready.  He never could go after even a
-turnip-cart but he must have the swords and guns all scoured up for it,
-though they was only lath and broomsticks, and you might scour at them
-till you rotted, and then they warn't worth a mouthful of ashes more than
-what they was before.  I didn't believe we could lick such a crowd of
-Spaniards and A-rabs, but I wanted to see the camels and elephants, so I
-was on hand next day, Saturday, in the ambuscade; and when we got the
-word we rushed out of the woods and down the hill.  But there warn't no
-Spaniards and A-rabs, and there warn't no camels nor no elephants.  It
-warn't anything but a Sunday-school picnic, and only a primer-class at
-that.  We busted it up, and chased the children up the hollow; but we
-never got anything but some doughnuts and jam, though Ben Rogers got a
-rag doll, and Jo Harper got a hymn-book and a tract; and then the teacher
-charged in, and made us drop everything and cut.  I didn't see no
-di'monds, and I told Tom Sawyer so.  He said there was loads of them
-there, anyway; and he said there was A-rabs there, too, and elephants and
-things.  I said, why couldn't we see them, then?  He said if I warn't so
-ignorant, but had read a book called Don Quixote, I would know without
-asking.  He said it was all done by enchantment.  He said there was
-hundreds of soldiers there, and elephants and treasure, and so on, but we
-had enemies which he called magicians; and they had turned the whole
-thing into an infant Sunday-school, just out of spite.  I said, all
-right; then the thing for us to do was to go for the magicians.  Tom
-Sawyer said I was a numskull.
-
-"Why," said he, "a magician could call up a lot of genies, and they would
-hash you up like nothing before you could say Jack Robinson.  They are as
-tall as a tree and as big around as a church."
-
-"Well," I says, "s'pose we got some genies to help US--can't we lick the
-other crowd then?"
-
-"How you going to get them?"
-
-"I don't know.  How do THEY get them?"
-
-"Why, they rub an old tin lamp or an iron ring, and then the genies come
-tearing in, with the thunder and lightning a-ripping around and the smoke
-a-rolling, and everything they're told to do they up and do it.  They
-don't think nothing of pulling a shot-tower up by the roots, and belting
-a Sunday-school superintendent over the head with it--or any other man."
-
-"Who makes them tear around so?"
-
-"Why, whoever rubs the lamp or the ring.  They belong to whoever rubs the
-lamp or the ring, and they've got to do whatever he says.  If he tells
-them to build a palace forty miles long out of di'monds, and fill it full
-of chewing-gum, or whatever you want, and fetch an emperor's daughter
-from China for you to marry, they've got to do it--and they've got to do
-it before sun-up next morning, too.  And more:  they've got to waltz that
-palace around over the country wherever you want it, you understand."
-
-"Well," says I, "I think they are a pack of flat-heads for not keeping
-the palace themselves 'stead of fooling them away like that.  And what's
-more--if I was one of them I would see a man in Jericho before I would
-drop my business and come to him for the rubbing of an old tin lamp."
-
-"How you talk, Huck Finn.  Why, you'd HAVE to come when he rubbed it,
-whether you wanted to or not."
-
-"What! and I as high as a tree and as big as a church?  All right, then;
-I WOULD come; but I lay I'd make that man climb the highest tree there
-was in the country."
-
-"Shucks, it ain't no use to talk to you, Huck Finn.  You don't seem to
-know anything, somehow--perfect saphead."
-
-I thought all this over for two or three days, and then I reckoned I
-would see if there was anything in it.  I got an old tin lamp and an iron
-ring, and went out in the woods and rubbed and rubbed till I sweat like
-an Injun, calculating to build a palace and sell it; but it warn't no
-use, none of the genies come.  So then I judged that all that stuff was
-only just one of Tom Sawyer's lies.  I reckoned he believed in the A-rabs
-and the elephants, but as for me I think different.  It had all the marks
-of a Sunday-school.
-
-
-
-
-CHAPTER IV.
-
-WELL, three or four months run along, and it was well into the winter
-now. I had been to school most all the time and could spell and read and
-write just a little, and could say the multiplication table up to six
-times seven is thirty-five, and I don't reckon I could ever get any
-further than that if I was to live forever.  I don't take no stock in
-mathematics, anyway.
-
-At first I hated the school, but by and by I got so I could stand it.
-Whenever I got uncommon tired I played hookey, and the hiding I got next
-day done me good and cheered me up.  So the longer I went to school the
-easier it got to be.  I was getting sort of used to the widow's ways,
-too, and they warn't so raspy on me.  Living in a house and sleeping in a
-bed pulled on me pretty tight mostly, but before the cold weather I used
-to slide out and sleep in the woods sometimes, and so that was a rest to
-me.  I liked the old ways best, but I was getting so I liked the new
-ones, too, a little bit. The widow said I was coming along slow but sure,
-and doing very satisfactory.  She said she warn't ashamed of me.
-
-One morning I happened to turn over the salt-cellar at breakfast.  I
-reached for some of it as quick as I could to throw over my left shoulder
-and keep off the bad luck, but Miss Watson was in ahead of me, and
-crossed me off. She says, "Take your hands away, Huckleberry; what a mess
-you are always making!"  The widow put in a good word for me, but that
-warn't going to keep off the bad luck, I knowed that well enough.  I
-started out, after breakfast, feeling worried and shaky, and wondering
-where it was going to fall on me, and what it was going to be.  There is
-ways to keep off some kinds of bad luck, but this wasn't one of them
-kind; so I never tried to do anything, but just poked along low-spirited
-and on the watch-out.
-
-I went down to the front garden and clumb over the stile where you go
-through the high board fence.  There was an inch of new snow on the
-ground, and I seen somebody's tracks.  They had come up from the quarry
-and stood around the stile a while, and then went on around the garden
-fence.  It was funny they hadn't come in, after standing around so.  I
-couldn't make it out.  It was very curious, somehow.  I was going to
-follow around, but I stooped down to look at the tracks first.  I didn't
-notice anything at first, but next I did.  There was a cross in the left
-boot-heel made with big nails, to keep off the devil.
-
-I was up in a second and shinning down the hill.  I looked over my
-shoulder every now and then, but I didn't see nobody.  I was at Judge
-Thatcher's as quick as I could get there.  He said:
-
-"Why, my boy, you are all out of breath.  Did you come for your
-interest?"
-
-"No, sir," I says; "is there some for me?"
-
-"Oh, yes, a half-yearly is in last night--over a hundred and fifty
-dollars.  Quite a fortune for you.  You had better let me invest it along
-with your six thousand, because if you take it you'll spend it."
-
-"No, sir," I says, "I don't want to spend it.  I don't want it at all
---nor the six thousand, nuther.  I want you to take it; I want to give it
-to you--the six thousand and all."
-
-He looked surprised.  He couldn't seem to make it out.  He says:
-
-"Why, what can you mean, my boy?"
-
-I says, "Don't you ask me no questions about it, please.  You'll take it
---won't you?"
-
-He says:
-
-"Well, I'm puzzled.  Is something the matter?"
-
-"Please take it," says I, "and don't ask me nothing--then I won't have to
-tell no lies."
-
-He studied a while, and then he says:
-
-"Oho-o!  I think I see.  You want to SELL all your property to me--not
-give it.  That's the correct idea."
-
-Then he wrote something on a paper and read it over, and says:
-
-"There; you see it says 'for a consideration.'  That means I have bought
-it of you and paid you for it.  Here's a dollar for you.  Now you sign
-it."
-
-So I signed it, and left.
-
-Miss Watson's nigger, Jim, had a hair-ball as big as your fist, which had
-been took out of the fourth stomach of an ox, and he used to do magic
-with it.  He said there was a spirit inside of it, and it knowed
-everything.  So I went to him that night and told him pap was here again,
-for I found his tracks in the snow.  What I wanted to know was, what he
-was going to do, and was he going to stay?  Jim got out his hair-ball and
-said something over it, and then he held it up and dropped it on the
-floor.  It fell pretty solid, and only rolled about an inch.  Jim tried
-it again, and then another time, and it acted just the same.  Jim got
-down on his knees, and put his ear against it and listened.  But it
-warn't no use; he said it wouldn't talk. He said sometimes it wouldn't
-talk without money.  I told him I had an old slick counterfeit quarter
-that warn't no good because the brass showed through the silver a little,
-and it wouldn't pass nohow, even if the brass didn't show, because it was
-so slick it felt greasy, and so that would tell on it every time.  (I
-reckoned I wouldn't say nothing about the dollar I got from the judge.) I
-said it was pretty bad money, but maybe the hair-ball would take it,
-because maybe it wouldn't know the difference.  Jim smelt it and bit it
-and rubbed it, and said he would manage so the hair-ball would think it
-was good.  He said he would split open a raw Irish potato and stick the
-quarter in between and keep it there all night, and next morning you
-couldn't see no brass, and it wouldn't feel greasy no more, and so
-anybody in town would take it in a minute, let alone a hair-ball.  Well,
-I knowed a potato would do that before, but I had forgot it.
-
-Jim put the quarter under the hair-ball, and got down and listened again.
-This time he said the hair-ball was all right.  He said it would tell my
-whole fortune if I wanted it to.  I says, go on.  So the hair-ball talked
-to Jim, and Jim told it to me.  He says:
-
-"Yo' ole father doan' know yit what he's a-gwyne to do.  Sometimes he
-spec he'll go 'way, en den agin he spec he'll stay.  De bes' way is to
-res' easy en let de ole man take his own way.  Dey's two angels hoverin'
-roun' 'bout him.  One uv 'em is white en shiny, en t'other one is black.
-De white one gits him to go right a little while, den de black one sail
-in en bust it all up.  A body can't tell yit which one gwyne to fetch him
-at de las'.  But you is all right.  You gwyne to have considable trouble
-in yo' life, en considable joy.  Sometimes you gwyne to git hurt, en
-sometimes you gwyne to git sick; but every time you's gwyne to git well
-agin.  Dey's two gals flyin' 'bout you in yo' life.  One uv 'em's light
-en t'other one is dark. One is rich en t'other is po'.  You's gwyne to
-marry de po' one fust en de rich one by en by.  You wants to keep 'way
-fum de water as much as you kin, en don't run no resk, 'kase it's down in
-de bills dat you's gwyne to git hung."
-
-When I lit my candle and went up to my room that night there sat pap--his
-own self!
-
-
-
-
-CHAPTER V.
-
-I HAD shut the door to.  Then I turned around and there he was.  I used
-to be scared of him all the time, he tanned me so much.  I reckoned I was
-scared now, too; but in a minute I see I was mistaken--that is, after the
-first jolt, as you may say, when my breath sort of hitched, he being so
-unexpected; but right away after I see I warn't scared of him worth
-bothring about.
-
-He was most fifty, and he looked it.  His hair was long and tangled and
-greasy, and hung down, and you could see his eyes shining through like he
-was behind vines.  It was all black, no gray; so was his long, mixed-up
-whiskers.  There warn't no color in his face, where his face showed; it
-was white; not like another man's white, but a white to make a body sick,
-a white to make a body's flesh crawl--a tree-toad white, a fish-belly
-white.  As for his clothes--just rags, that was all.  He had one ankle
-resting on t'other knee; the boot on that foot was busted, and two of his
-toes stuck through, and he worked them now and then.  His hat was laying
-on the floor--an old black slouch with the top caved in, like a lid.
-
-I stood a-looking at him; he set there a-looking at me, with his chair
-tilted back a little.  I set the candle down.  I noticed the window was
-up; so he had clumb in by the shed.  He kept a-looking me all over.  By
-and by he says:
-
-"Starchy clothes--very.  You think you're a good deal of a big-bug, DON'T
-you?"
-
-"Maybe I am, maybe I ain't," I says.
-
-"Don't you give me none o' your lip," says he.  "You've put on
-considerable many frills since I been away.  I'll take you down a peg
-before I get done with you.  You're educated, too, they say--can read and
-write.  You think you're better'n your father, now, don't you, because he
-can't?  I'LL take it out of you.  Who told you you might meddle with such
-hifalut'n foolishness, hey?--who told you you could?"
-
-"The widow.  She told me."
-
-"The widow, hey?--and who told the widow she could put in her shovel
-about a thing that ain't none of her business?"
-
-"Nobody never told her."
-
-"Well, I'll learn her how to meddle.  And looky here--you drop that
-school, you hear?  I'll learn people to bring up a boy to put on airs
-over his own father and let on to be better'n what HE is.  You lemme
-catch you fooling around that school again, you hear?  Your mother
-couldn't read, and she couldn't write, nuther, before she died.  None of
-the family couldn't before THEY died.  I can't; and here you're
-a-swelling yourself up like this.  I ain't the man to stand it--you hear?
-Say, lemme hear you read."
-
-I took up a book and begun something about General Washington and the
-wars. When I'd read about a half a minute, he fetched the book a whack
-with his hand and knocked it across the house.  He says:
-
-"It's so.  You can do it.  I had my doubts when you told me.  Now looky
-here; you stop that putting on frills.  I won't have it.  I'll lay for
-you, my smarty; and if I catch you about that school I'll tan you good.
-First you know you'll get religion, too.  I never see such a son."
-
-He took up a little blue and yaller picture of some cows and a boy, and
-says:
-
-"What's this?"
-
-"It's something they give me for learning my lessons good."
-
-He tore it up, and says:
-
-"I'll give you something better--I'll give you a cowhide."
-
-He set there a-mumbling and a-growling a minute, and then he says:
-
-"AIN'T you a sweet-scented dandy, though?  A bed; and bedclothes; and a
-look'n'-glass; and a piece of carpet on the floor--and your own father
-got to sleep with the hogs in the tanyard.  I never see such a son.  I
-bet I'll take some o' these frills out o' you before I'm done with you.
-Why, there ain't no end to your airs--they say you're rich.  Hey?--how's
-that?"
-
-"They lie--that's how."
-
-"Looky here--mind how you talk to me; I'm a-standing about all I can
-stand now--so don't gimme no sass.  I've been in town two days, and I
-hain't heard nothing but about you bein' rich.  I heard about it away
-down the river, too.  That's why I come.  You git me that money
-to-morrow--I want it."
-
-"I hain't got no money."
-
-"It's a lie.  Judge Thatcher's got it.  You git it.  I want it."
-
-"I hain't got no money, I tell you.  You ask Judge Thatcher; he'll tell
-you the same."
-
-"All right.  I'll ask him; and I'll make him pungle, too, or I'll know
-the reason why.  Say, how much you got in your pocket?  I want it."
-
-"I hain't got only a dollar, and I want that to--"
-
-"It don't make no difference what you want it for--you just shell it
-out."
-
-He took it and bit it to see if it was good, and then he said he was
-going down town to get some whisky; said he hadn't had a drink all day.
-When he had got out on the shed he put his head in again, and cussed me
-for putting on frills and trying to be better than him; and when I
-reckoned he was gone he come back and put his head in again, and told me
-to mind about that school, because he was going to lay for me and lick me
-if I didn't drop that.
-
-Next day he was drunk, and he went to Judge Thatcher's and bullyragged
-him, and tried to make him give up the money; but he couldn't, and then
-he swore he'd make the law force him.
-
-The judge and the widow went to law to get the court to take me away from
-him and let one of them be my guardian; but it was a new judge that had
-just come, and he didn't know the old man; so he said courts mustn't
-interfere and separate families if they could help it; said he'd druther
-not take a child away from its father.  So Judge Thatcher and the widow
-had to quit on the business.
-
-That pleased the old man till he couldn't rest.  He said he'd cowhide me
-till I was black and blue if I didn't raise some money for him.  I
-borrowed three dollars from Judge Thatcher, and pap took it and got
-drunk, and went a-blowing around and cussing and whooping and carrying
-on; and he kept it up all over town, with a tin pan, till most midnight;
-then they jailed him, and next day they had him before court, and jailed
-him again for a week.  But he said HE was satisfied; said he was boss of
-his son, and he'd make it warm for HIM.
-
-When he got out the new judge said he was a-going to make a man of him.
-So he took him to his own house, and dressed him up clean and nice, and
-had him to breakfast and dinner and supper with the family, and was just
-old pie to him, so to speak.  And after supper he talked to him about
-temperance and such things till the old man cried, and said he'd been a
-fool, and fooled away his life; but now he was a-going to turn over a new
-leaf and be a man nobody wouldn't be ashamed of, and he hoped the judge
-would help him and not look down on him.  The judge said he could hug him
-for them words; so he cried, and his wife she cried again; pap said he'd
-been a man that had always been misunderstood before, and the judge said
-he believed it.  The old man said that what a man wanted that was down
-was sympathy, and the judge said it was so; so they cried again.  And
-when it was bedtime the old man rose up and held out his hand, and says:
-
-"Look at it, gentlemen and ladies all; take a-hold of it; shake it.
-There's a hand that was the hand of a hog; but it ain't so no more; it's
-the hand of a man that's started in on a new life, and'll die before
-he'll go back.  You mark them words--don't forget I said them.  It's a
-clean hand now; shake it--don't be afeard."
-
-So they shook it, one after the other, all around, and cried.  The
-judge's wife she kissed it.  Then the old man he signed a pledge--made
-his mark. The judge said it was the holiest time on record, or something
-like that. Then they tucked the old man into a beautiful room, which was
-the spare room, and in the night some time he got powerful thirsty and
-clumb out on to the porch-roof and slid down a stanchion and traded his
-new coat for a jug of forty-rod, and clumb back again and had a good old
-time; and towards daylight he crawled out again, drunk as a fiddler, and
-rolled off the porch and broke his left arm in two places, and was most
-froze to death when somebody found him after sun-up.  And when they come
-to look at that spare room they had to take soundings before they could
-navigate it.
-
-The judge he felt kind of sore.  He said he reckoned a body could reform
-the old man with a shotgun, maybe, but he didn't know no other way.
-
-
-
-
-CHAPTER VI.
-
-WELL, pretty soon the old man was up and around again, and then he went
-for Judge Thatcher in the courts to make him give up that money, and he
-went for me, too, for not stopping school.  He catched me a couple of
-times and thrashed me, but I went to school just the same, and dodged him
-or outrun him most of the time.  I didn't want to go to school much
-before, but I reckoned I'd go now to spite pap.  That law trial was a
-slow business--appeared like they warn't ever going to get started on
-it; so every now and then I'd borrow two or three dollars off of the
-judge for him, to keep from getting a cowhiding.  Every time he got money
-he got drunk; and every time he got drunk he raised Cain around town; and
-every time he raised Cain he got jailed.  He was just suited--this kind
-of thing was right in his line.
-
-He got to hanging around the widow's too much and so she told him at last
-that if he didn't quit using around there she would make trouble for him.
-Well, WASN'T he mad?  He said he would show who was Huck Finn's boss.  So
-he watched out for me one day in the spring, and catched me, and took me
-up the river about three mile in a skiff, and crossed over to the
-Illinois shore where it was woody and there warn't no houses but an old
-log hut in a place where the timber was so thick you couldn't find it if
-you didn't know where it was.
-
-He kept me with him all the time, and I never got a chance to run off.
-We lived in that old cabin, and he always locked the door and put the key
-under his head nights.  He had a gun which he had stole, I reckon, and we
-fished and hunted, and that was what we lived on.  Every little while he
-locked me in and went down to the store, three miles, to the ferry, and
-traded fish and game for whisky, and fetched it home and got drunk and
-had a good time, and licked me.  The widow she found out where I was by
-and by, and she sent a man over to try to get hold of me; but pap drove
-him off with the gun, and it warn't long after that till I was used to
-being where I was, and liked it--all but the cowhide part.
-
-It was kind of lazy and jolly, laying off comfortable all day, smoking
-and fishing, and no books nor study.  Two months or more run along, and
-my clothes got to be all rags and dirt, and I didn't see how I'd ever got
-to like it so well at the widow's, where you had to wash, and eat on a
-plate, and comb up, and go to bed and get up regular, and be forever
-bothering over a book, and have old Miss Watson pecking at you all the
-time.  I didn't want to go back no more.  I had stopped cussing, because
-the widow didn't like it; but now I took to it again because pap hadn't
-no objections.  It was pretty good times up in the woods there, take it
-all around.
-
-But by and by pap got too handy with his hick'ry, and I couldn't stand
-it. I was all over welts.  He got to going away so much, too, and locking
-me in.  Once he locked me in and was gone three days.  It was dreadful
-lonesome.  I judged he had got drownded, and I wasn't ever going to get
-out any more.  I was scared.  I made up my mind I would fix up some way
-to leave there.  I had tried to get out of that cabin many a time, but I
-couldn't find no way.  There warn't a window to it big enough for a dog
-to get through.  I couldn't get up the chimbly; it was too narrow.  The
-door was thick, solid oak slabs.  Pap was pretty careful not to leave a
-knife or anything in the cabin when he was away; I reckon I had hunted
-the place over as much as a hundred times; well, I was most all the time
-at it, because it was about the only way to put in the time.  But this
-time I found something at last; I found an old rusty wood-saw without any
-handle; it was laid in between a rafter and the clapboards of the roof.
-I greased it up and went to work.  There was an old horse-blanket nailed
-against the logs at the far end of the cabin behind the table, to keep
-the wind from blowing through the chinks and putting the candle out.  I
-got under the table and raised the blanket, and went to work to saw a
-section of the big bottom log out--big enough to let me through.  Well,
-it was a good long job, but I was getting towards the end of it when I
-heard pap's gun in the woods.  I got rid of the signs of my work, and
-dropped the blanket and hid my saw, and pretty soon pap come in.
-
-Pap warn't in a good humor--so he was his natural self.  He said he was
-down town, and everything was going wrong.  His lawyer said he reckoned
-he would win his lawsuit and get the money if they ever got started on
-the trial; but then there was ways to put it off a long time, and Judge
-Thatcher knowed how to do it.  And he said people allowed there'd be
-another trial to get me away from him and give me to the widow for my
-guardian, and they guessed it would win this time.  This shook me up
-considerable, because I didn't want to go back to the widow's any more
-and be so cramped up and sivilized, as they called it.  Then the old man
-got to cussing, and cussed everything and everybody he could think of,
-and then cussed them all over again to make sure he hadn't skipped any,
-and after that he polished off with a kind of a general cuss all round,
-including a considerable parcel of people which he didn't know the names
-of, and so called them what's-his-name when he got to them, and went
-right along with his cussing.
-
-He said he would like to see the widow get me.  He said he would watch
-out, and if they tried to come any such game on him he knowed of a place
-six or seven mile off to stow me in, where they might hunt till they
-dropped and they couldn't find me.  That made me pretty uneasy again, but
-only for a minute; I reckoned I wouldn't stay on hand till he got that
-chance.
-
-The old man made me go to the skiff and fetch the things he had got.
-There was a fifty-pound sack of corn meal, and a side of bacon,
-ammunition, and a four-gallon jug of whisky, and an old book and two
-newspapers for wadding, besides some tow.  I toted up a load, and went
-back and set down on the bow of the skiff to rest.  I thought it all
-over, and I reckoned I would walk off with the gun and some lines, and
-take to the woods when I run away.  I guessed I wouldn't stay in one
-place, but just tramp right across the country, mostly night times, and
-hunt and fish to keep alive, and so get so far away that the old man nor
-the widow couldn't ever find me any more.  I judged I would saw out and
-leave that night if pap got drunk enough, and I reckoned he would.  I got
-so full of it I didn't notice how long I was staying till the old man
-hollered and asked me whether I was asleep or drownded.
-
-I got the things all up to the cabin, and then it was about dark.  While
-I was cooking supper the old man took a swig or two and got sort of
-warmed up, and went to ripping again.  He had been drunk over in town,
-and laid in the gutter all night, and he was a sight to look at.  A body
-would a thought he was Adam--he was just all mud.  Whenever his liquor
-begun to work he most always went for the govment, this time he says:
-
-"Call this a govment! why, just look at it and see what it's like.
-Here's the law a-standing ready to take a man's son away from him--a
-man's own son, which he has had all the trouble and all the anxiety and
-all the expense of raising.  Yes, just as that man has got that son
-raised at last, and ready to go to work and begin to do suthin' for HIM
-and give him a rest, the law up and goes for him.  And they call THAT
-govment!  That ain't all, nuther.  The law backs that old Judge Thatcher
-up and helps him to keep me out o' my property.  Here's what the law
-does:  The law takes a man worth six thousand dollars and up'ards, and
-jams him into an old trap of a cabin like this, and lets him go round in
-clothes that ain't fitten for a hog. They call that govment!  A man can't
-get his rights in a govment like this. Sometimes I've a mighty notion to
-just leave the country for good and all. Yes, and I TOLD 'em so; I told
-old Thatcher so to his face.  Lots of 'em heard me, and can tell what I
-said.  Says I, for two cents I'd leave the blamed country and never come
-a-near it agin.  Them's the very words.  I says look at my hat--if you
-call it a hat--but the lid raises up and the rest of it goes down till
-it's below my chin, and then it ain't rightly a hat at all, but more like
-my head was shoved up through a jint o' stove-pipe.  Look at it, says I
---such a hat for me to wear--one of the wealthiest men in this town if I
-could git my rights.
-
-"Oh, yes, this is a wonderful govment, wonderful.  Why, looky here.
-There was a free nigger there from Ohio--a mulatter, most as white as a
-white man.  He had the whitest shirt on you ever see, too, and the
-shiniest hat; and there ain't a man in that town that's got as fine
-clothes as what he had; and he had a gold watch and chain, and a
-silver-headed cane--the awfulest old gray-headed nabob in the State.  And
-what do you think?  They said he was a p'fessor in a college, and could
-talk all kinds of languages, and knowed everything.  And that ain't the
-wust. They said he could VOTE when he was at home.  Well, that let me
-out. Thinks I, what is the country a-coming to?  It was 'lection day, and
-I was just about to go and vote myself if I warn't too drunk to get
-there; but when they told me there was a State in this country where
-they'd let that nigger vote, I drawed out.  I says I'll never vote agin.
-Them's the very words I said; they all heard me; and the country may rot
-for all me--I'll never vote agin as long as I live.  And to see the cool
-way of that nigger--why, he wouldn't a give me the road if I hadn't
-shoved him out o' the way.  I says to the people, why ain't this nigger
-put up at auction and sold?--that's what I want to know.  And what do you
-reckon they said? Why, they said he couldn't be sold till he'd been in
-the State six months, and he hadn't been there that long yet.  There,
-now--that's a specimen.  They call that a govment that can't sell a free
-nigger till he's been in the State six months.  Here's a govment that
-calls itself a govment, and lets on to be a govment, and thinks it is a
-govment, and yet's got to set stock-still for six whole months before it
-can take a hold of a prowling, thieving, infernal, white-shirted free
-nigger, and--"
-
-Pap was agoing on so he never noticed where his old limber legs was
-taking him to, so he went head over heels over the tub of salt pork and
-barked both shins, and the rest of his speech was all the hottest kind of
-language--mostly hove at the nigger and the govment, though he give the
-tub some, too, all along, here and there.  He hopped around the cabin
-considerable, first on one leg and then on the other, holding first one
-shin and then the other one, and at last he let out with his left foot
-all of a sudden and fetched the tub a rattling kick.  But it warn't good
-judgment, because that was the boot that had a couple of his toes leaking
-out of the front end of it; so now he raised a howl that fairly made a
-body's hair raise, and down he went in the dirt, and rolled there, and
-held his toes; and the cussing he done then laid over anything he had
-ever done previous.  He said so his own self afterwards.  He had heard
-old Sowberry Hagan in his best days, and he said it laid over him, too;
-but I reckon that was sort of piling it on, maybe.
-
-After supper pap took the jug, and said he had enough whisky there for
-two drunks and one delirium tremens.  That was always his word.  I judged
-he would be blind drunk in about an hour, and then I would steal the key,
-or saw myself out, one or t'other.  He drank and drank, and tumbled down
-on his blankets by and by; but luck didn't run my way.  He didn't go
-sound asleep, but was uneasy.  He groaned and moaned and thrashed around
-this way and that for a long time.  At last I got so sleepy I couldn't
-keep my eyes open all I could do, and so before I knowed what I was about
-I was sound asleep, and the candle burning.
-
-I don't know how long I was asleep, but all of a sudden there was an
-awful scream and I was up.  There was pap looking wild, and skipping
-around every which way and yelling about snakes.  He said they was
-crawling up his legs; and then he would give a jump and scream, and say
-one had bit him on the cheek--but I couldn't see no snakes.  He started
-and run round and round the cabin, hollering "Take him off! take him off!
-he's biting me on the neck!"  I never see a man look so wild in the eyes.
-Pretty soon he was all fagged out, and fell down panting; then he rolled
-over and over wonderful fast, kicking things every which way, and
-striking and grabbing at the air with his hands, and screaming and saying
-there was devils a-hold of him.  He wore out by and by, and laid still a
-while, moaning.  Then he laid stiller, and didn't make a sound.  I could
-hear the owls and the wolves away off in the woods, and it seemed
-terrible still.  He was laying over by the corner. By and by he raised up
-part way and listened, with his head to one side.  He says, very low:
-
-"Tramp--tramp--tramp; that's the dead; tramp--tramp--tramp; they're
-coming after me; but I won't go.  Oh, they're here! don't touch me
---don't! hands off--they're cold; let go.  Oh, let a poor devil alone!"
-
-Then he went down on all fours and crawled off, begging them to let him
-alone, and he rolled himself up in his blanket and wallowed in under the
-old pine table, still a-begging; and then he went to crying.  I could
-hear him through the blanket.
-
-By and by he rolled out and jumped up on his feet looking wild, and he
-see me and went for me.  He chased me round and round the place with a
-clasp-knife, calling me the Angel of Death, and saying he would kill me,
-and then I couldn't come for him no more.  I begged, and told him I was
-only Huck; but he laughed SUCH a screechy laugh, and roared and cussed,
-and kept on chasing me up.  Once when I turned short and dodged under his
-arm he made a grab and got me by the jacket between my shoulders, and I
-thought I was gone; but I slid out of the jacket quick as lightning, and
-saved myself. Pretty soon he was all tired out, and dropped down with his
-back against the door, and said he would rest a minute and then kill me.
-He put his knife under him, and said he would sleep and get strong, and
-then he would see who was who.
-
-So he dozed off pretty soon.  By and by I got the old split-bottom chair
-and clumb up as easy as I could, not to make any noise, and got down the
-gun.  I slipped the ramrod down it to make sure it was loaded, then I
-laid it across the turnip barrel, pointing towards pap, and set down
-behind it to wait for him to stir.  And how slow and still the time did
-drag along.
-
-
-
-
-CHAPTER VII.
-
-"GIT up!  What you 'bout?"
-
-I opened my eyes and looked around, trying to make out where I was.  It
-was after sun-up, and I had been sound asleep.  Pap was standing over me
-looking sour and sick, too.  He says:
-
-"What you doin' with this gun?"
-
-I judged he didn't know nothing about what he had been doing, so I says:
-
-"Somebody tried to get in, so I was laying for him."
-
-"Why didn't you roust me out?"
-
-"Well, I tried to, but I couldn't; I couldn't budge you."
-
-"Well, all right.  Don't stand there palavering all day, but out with you
-and see if there's a fish on the lines for breakfast.  I'll be along in a
-minute."
-
-He unlocked the door, and I cleared out up the river-bank.  I noticed
-some pieces of limbs and such things floating down, and a sprinkling of
-bark; so I knowed the river had begun to rise.  I reckoned I would have
-great times now if I was over at the town.  The June rise used to be
-always luck for me; because as soon as that rise begins here comes
-cordwood floating down, and pieces of log rafts--sometimes a dozen logs
-together; so all you have to do is to catch them and sell them to the
-wood-yards and the sawmill.
-
-I went along up the bank with one eye out for pap and t'other one out for
-what the rise might fetch along.  Well, all at once here comes a canoe;
-just a beauty, too, about thirteen or fourteen foot long, riding high
-like a duck.  I shot head-first off of the bank like a frog, clothes and
-all on, and struck out for the canoe.  I just expected there'd be
-somebody laying down in it, because people often done that to fool folks,
-and when a chap had pulled a skiff out most to it they'd raise up and
-laugh at him.  But it warn't so this time.  It was a drift-canoe sure
-enough, and I clumb in and paddled her ashore.  Thinks I, the old man
-will be glad when he sees this--she's worth ten dollars.  But when I
-got to shore pap wasn't in sight yet, and as I was running her into a
-little creek like a gully, all hung over with vines and willows, I struck
-another idea:  I judged I'd hide her good, and then, 'stead of taking to
-the woods when I run off, I'd go down the river about fifty mile and camp
-in one place for good, and not have such a rough time tramping on foot.
-
-It was pretty close to the shanty, and I thought I heard the old man
-coming all the time; but I got her hid; and then I out and looked around
-a bunch of willows, and there was the old man down the path a piece just
-drawing a bead on a bird with his gun.  So he hadn't seen anything.
-
-When he got along I was hard at it taking up a "trot" line.  He abused me
-a little for being so slow; but I told him I fell in the river, and that
-was what made me so long.  I knowed he would see I was wet, and then he
-would be asking questions.  We got five catfish off the lines and went
-home.
-
-While we laid off after breakfast to sleep up, both of us being about
-wore out, I got to thinking that if I could fix up some way to keep pap
-and the widow from trying to follow me, it would be a certainer thing
-than trusting to luck to get far enough off before they missed me; you
-see, all kinds of things might happen.  Well, I didn't see no way for a
-while, but by and by pap raised up a minute to drink another barrel of
-water, and he says:
-
-"Another time a man comes a-prowling round here you roust me out, you
-hear? That man warn't here for no good.  I'd a shot him.  Next time you
-roust me out, you hear?"
-
-Then he dropped down and went to sleep again; but what he had been saying
-give me the very idea I wanted.  I says to myself, I can fix it now so
-nobody won't think of following me.
-
-About twelve o'clock we turned out and went along up the bank.  The river
-was coming up pretty fast, and lots of driftwood going by on the rise.
-By and by along comes part of a log raft--nine logs fast together.  We
-went out with the skiff and towed it ashore.  Then we had dinner.
-Anybody but pap would a waited and seen the day through, so as to catch
-more stuff; but that warn't pap's style.  Nine logs was enough for one
-time; he must shove right over to town and sell.  So he locked me in and
-took the skiff, and started off towing the raft about half-past three.  I
-judged he wouldn't come back that night.  I waited till I reckoned he had
-got a good start; then I out with my saw, and went to work on that log
-again.  Before he was t'other side of the river I was out of the hole;
-him and his raft was just a speck on the water away off yonder.
-
-I took the sack of corn meal and took it to where the canoe was hid, and
-shoved the vines and branches apart and put it in; then I done the same
-with the side of bacon; then the whisky-jug.  I took all the coffee and
-sugar there was, and all the ammunition; I took the wadding; I took the
-bucket and gourd; I took a dipper and a tin cup, and my old saw and two
-blankets, and the skillet and the coffee-pot.  I took fish-lines and
-matches and other things--everything that was worth a cent.  I cleaned
-out the place.  I wanted an axe, but there wasn't any, only the one out
-at the woodpile, and I knowed why I was going to leave that.  I fetched
-out the gun, and now I was done.
-
-I had wore the ground a good deal crawling out of the hole and dragging
-out so many things.  So I fixed that as good as I could from the outside
-by scattering dust on the place, which covered up the smoothness and the
-sawdust.  Then I fixed the piece of log back into its place, and put two
-rocks under it and one against it to hold it there, for it was bent up at
-that place and didn't quite touch ground.  If you stood four or five foot
-away and didn't know it was sawed, you wouldn't never notice it; and
-besides, this was the back of the cabin, and it warn't likely anybody
-would go fooling around there.
-
-It was all grass clear to the canoe, so I hadn't left a track.  I
-followed around to see.  I stood on the bank and looked out over the
-river.  All safe.  So I took the gun and went up a piece into the woods,
-and was hunting around for some birds when I see a wild pig; hogs soon
-went wild in them bottoms after they had got away from the prairie farms.
-I shot this fellow and took him into camp.
-
-I took the axe and smashed in the door.  I beat it and hacked it
-considerable a-doing it.  I fetched the pig in, and took him back nearly
-to the table and hacked into his throat with the axe, and laid him down
-on the ground to bleed; I say ground because it was ground--hard packed,
-and no boards.  Well, next I took an old sack and put a lot of big rocks
-in it--all I could drag--and I started it from the pig, and dragged it
-to the door and through the woods down to the river and dumped it in, and
-down it sunk, out of sight.  You could easy see that something had been
-dragged over the ground.  I did wish Tom Sawyer was there; I knowed he
-would take an interest in this kind of business, and throw in the fancy
-touches.  Nobody could spread himself like Tom Sawyer in such a thing as
-that.
-
-Well, last I pulled out some of my hair, and blooded the axe good, and
-stuck it on the back side, and slung the axe in the corner.  Then I took
-up the pig and held him to my breast with my jacket (so he couldn't drip)
-till I got a good piece below the house and then dumped him into the
-river.  Now I thought of something else.  So I went and got the bag of
-meal and my old saw out of the canoe, and fetched them to the house.  I
-took the bag to where it used to stand, and ripped a hole in the bottom
-of it with the saw, for there warn't no knives and forks on the place
---pap done everything with his clasp-knife about the cooking.  Then I
-carried the sack about a hundred yards across the grass and through the
-willows east of the house, to a shallow lake that was five mile wide and
-full of rushes--and ducks too, you might say, in the season.  There was a
-slough or a creek leading out of it on the other side that went miles
-away, I don't know where, but it didn't go to the river.  The meal sifted
-out and made a little track all the way to the lake.  I dropped pap's
-whetstone there too, so as to look like it had been done by accident.
-Then I tied up the rip in the meal sack with a string, so it wouldn't
-leak no more, and took it and my saw to the canoe again.
-
-It was about dark now; so I dropped the canoe down the river under some
-willows that hung over the bank, and waited for the moon to rise.  I made
-fast to a willow; then I took a bite to eat, and by and by laid down in
-the canoe to smoke a pipe and lay out a plan.  I says to myself, they'll
-follow the track of that sackful of rocks to the shore and then drag the
-river for me.  And they'll follow that meal track to the lake and go
-browsing down the creek that leads out of it to find the robbers that
-killed me and took the things.  They won't ever hunt the river for
-anything but my dead carcass. They'll soon get tired of that, and won't
-bother no more about me.  All right; I can stop anywhere I want to.
-Jackson's Island is good enough for me; I know that island pretty well,
-and nobody ever comes there.  And then I can paddle over to town nights,
-and slink around and pick up things I want. Jackson's Island's the place.
-
-I was pretty tired, and the first thing I knowed I was asleep.  When I
-woke up I didn't know where I was for a minute.  I set up and looked
-around, a little scared.  Then I remembered.  The river looked miles and
-miles across.  The moon was so bright I could a counted the drift logs
-that went a-slipping along, black and still, hundreds of yards out from
-shore. Everything was dead quiet, and it looked late, and SMELT late.
-You know what I mean--I don't know the words to put it in.
-
-I took a good gap and a stretch, and was just going to unhitch and start
-when I heard a sound away over the water.  I listened.  Pretty soon I
-made it out.  It was that dull kind of a regular sound that comes from
-oars working in rowlocks when it's a still night.  I peeped out through
-the willow branches, and there it was--a skiff, away across the water.  I
-couldn't tell how many was in it.  It kept a-coming, and when it was
-abreast of me I see there warn't but one man in it.  Think's I, maybe
-it's pap, though I warn't expecting him.  He dropped below me with the
-current, and by and by he came a-swinging up shore in the easy water, and
-he went by so close I could a reached out the gun and touched him.  Well,
-it WAS pap, sure enough--and sober, too, by the way he laid his oars.
-
-I didn't lose no time.  The next minute I was a-spinning down stream soft
-but quick in the shade of the bank.  I made two mile and a half, and then
-struck out a quarter of a mile or more towards the middle of the river,
-because pretty soon I would be passing the ferry landing, and people
-might see me and hail me.  I got out amongst the driftwood, and then laid
-down in the bottom of the canoe and let her float.  I laid there, and had
-a good rest and a smoke out of my pipe, looking away into the sky; not a
-cloud in it.  The sky looks ever so deep when you lay down on your back
-in the moonshine; I never knowed it before.  And how far a body can hear
-on the water such nights!  I heard people talking at the ferry landing.
-I heard what they said, too--every word of it.  One man said it was
-getting towards the long days and the short nights now.  T'other one said
-THIS warn't one of the short ones, he reckoned--and then they laughed,
-and he said it over again, and they laughed again; then they waked up
-another fellow and told him, and laughed, but he didn't laugh; he ripped
-out something brisk, and said let him alone.  The first fellow said he
-'lowed to tell it to his old woman--she would think it was pretty good;
-but he said that warn't nothing to some things he had said in his time.
-I heard one man say it was nearly three o'clock, and he hoped daylight
-wouldn't wait more than about a week longer.  After that the talk got
-further and further away, and I couldn't make out the words any more; but
-I could hear the mumble, and now and then a laugh, too, but it seemed a
-long ways off.
-
-I was away below the ferry now.  I rose up, and there was Jackson's
-Island, about two mile and a half down stream, heavy timbered and
-standing up out of the middle of the river, big and dark and solid, like
-a steamboat without any lights.  There warn't any signs of the bar at the
-head--it was all under water now.
-
-It didn't take me long to get there.  I shot past the head at a ripping
-rate, the current was so swift, and then I got into the dead water and
-landed on the side towards the Illinois shore.  I run the canoe into a
-deep dent in the bank that I knowed about; I had to part the willow
-branches to get in; and when I made fast nobody could a seen the canoe
-from the outside.
-
-I went up and set down on a log at the head of the island, and looked out
-on the big river and the black driftwood and away over to the town, three
-mile away, where there was three or four lights twinkling.  A monstrous
-big lumber-raft was about a mile up stream, coming along down, with a
-lantern in the middle of it.  I watched it come creeping down, and when
-it was most abreast of where I stood I heard a man say, "Stern oars,
-there! heave her head to stabboard!"  I heard that just as plain as if
-the man was by my side.
-
-There was a little gray in the sky now; so I stepped into the woods, and
-laid down for a nap before breakfast.
-
-
-
-
-CHAPTER VIII.
-
-THE sun was up so high when I waked that I judged it was after eight
-o'clock.  I laid there in the grass and the cool shade thinking about
-things, and feeling rested and ruther comfortable and satisfied.  I could
-see the sun out at one or two holes, but mostly it was big trees all
-about, and gloomy in there amongst them.  There was freckled places on
-the ground where the light sifted down through the leaves, and the
-freckled places swapped about a little, showing there was a little breeze
-up there.  A couple of squirrels set on a limb and jabbered at me very
-friendly.
-
-I was powerful lazy and comfortable--didn't want to get up and cook
-breakfast.  Well, I was dozing off again when I thinks I hears a deep
-sound of "boom!" away up the river.  I rouses up, and rests on my elbow
-and listens; pretty soon I hears it again.  I hopped up, and went and
-looked out at a hole in the leaves, and I see a bunch of smoke laying on
-the water a long ways up--about abreast the ferry.  And there was the
-ferryboat full of people floating along down.  I knowed what was the
-matter now.  "Boom!" I see the white smoke squirt out of the ferryboat's
-side.  You see, they was firing cannon over the water, trying to make my
-carcass come to the top.
-
-I was pretty hungry, but it warn't going to do for me to start a fire,
-because they might see the smoke.  So I set there and watched the
-cannon-smoke and listened to the boom.  The river was a mile wide there,
-and it always looks pretty on a summer morning--so I was having a good
-enough time seeing them hunt for my remainders if I only had a bite to
-eat. Well, then I happened to think how they always put quicksilver in
-loaves of bread and float them off, because they always go right to the
-drownded carcass and stop there.  So, says I, I'll keep a lookout, and if
-any of them's floating around after me I'll give them a show.  I changed
-to the Illinois edge of the island to see what luck I could have, and I
-warn't disappointed.  A big double loaf come along, and I most got it
-with a long stick, but my foot slipped and she floated out further.  Of
-course I was where the current set in the closest to the shore--I knowed
-enough for that.  But by and by along comes another one, and this time I
-won.  I took out the plug and shook out the little dab of quicksilver,
-and set my teeth in.  It was "baker's bread"--what the quality eat; none
-of your low-down corn-pone.
-
-I got a good place amongst the leaves, and set there on a log, munching
-the bread and watching the ferry-boat, and very well satisfied.  And then
-something struck me.  I says, now I reckon the widow or the parson or
-somebody prayed that this bread would find me, and here it has gone and
-done it.  So there ain't no doubt but there is something in that thing
---that is, there's something in it when a body like the widow or the parson
-prays, but it don't work for me, and I reckon it don't work for only just
-the right kind.
-
-I lit a pipe and had a good long smoke, and went on watching.  The
-ferryboat was floating with the current, and I allowed I'd have a chance
-to see who was aboard when she come along, because she would come in
-close, where the bread did.  When she'd got pretty well along down
-towards me, I put out my pipe and went to where I fished out the bread,
-and laid down behind a log on the bank in a little open place.  Where the
-log forked I could peep through.
-
-By and by she come along, and she drifted in so close that they could a
-run out a plank and walked ashore.  Most everybody was on the boat.  Pap,
-and Judge Thatcher, and Bessie Thatcher, and Jo Harper, and Tom Sawyer,
-and his old Aunt Polly, and Sid and Mary, and plenty more.  Everybody was
-talking about the murder, but the captain broke in and says:
-
-"Look sharp, now; the current sets in the closest here, and maybe he's
-washed ashore and got tangled amongst the brush at the water's edge.  I
-hope so, anyway."
-
-I didn't hope so.  They all crowded up and leaned over the rails, nearly
-in my face, and kept still, watching with all their might.  I could see
-them first-rate, but they couldn't see me.  Then the captain sung out:
-
-"Stand away!" and the cannon let off such a blast right before me that it
-made me deef with the noise and pretty near blind with the smoke, and I
-judged I was gone.  If they'd a had some bullets in, I reckon they'd a
-got the corpse they was after.  Well, I see I warn't hurt, thanks to
-goodness. The boat floated on and went out of sight around the shoulder
-of the island.  I could hear the booming now and then, further and
-further off, and by and by, after an hour, I didn't hear it no more.  The
-island was three mile long.  I judged they had got to the foot, and was
-giving it up.  But they didn't yet a while.  They turned around the foot
-of the island and started up the channel on the Missouri side, under
-steam, and booming once in a while as they went.  I crossed over to that
-side and watched them. When they got abreast the head of the island they
-quit shooting and dropped over to the Missouri shore and went home to the
-town.
-
-I knowed I was all right now.  Nobody else would come a-hunting after me.
-I got my traps out of the canoe and made me a nice camp in the thick
-woods.  I made a kind of a tent out of my blankets to put my things under
-so the rain couldn't get at them.  I catched a catfish and haggled him
-open with my saw, and towards sundown I started my camp fire and had
-supper.  Then I set out a line to catch some fish for breakfast.
-
-When it was dark I set by my camp fire smoking, and feeling pretty well
-satisfied; but by and by it got sort of lonesome, and so I went and set
-on the bank and listened to the current swashing along, and counted the
-stars and drift logs and rafts that come down, and then went to bed;
-there ain't no better way to put in time when you are lonesome; you can't
-stay so, you soon get over it.
-
-And so for three days and nights.  No difference--just the same thing.
-But the next day I went exploring around down through the island.  I was
-boss of it; it all belonged to me, so to say, and I wanted to know all
-about it; but mainly I wanted to put in the time.  I found plenty
-strawberries, ripe and prime; and green summer grapes, and green
-razberries; and the green blackberries was just beginning to show.  They
-would all come handy by and by, I judged.
-
-Well, I went fooling along in the deep woods till I judged I warn't far
-from the foot of the island.  I had my gun along, but I hadn't shot
-nothing; it was for protection; thought I would kill some game nigh home.
-About this time I mighty near stepped on a good-sized snake, and it went
-sliding off through the grass and flowers, and I after it, trying to get
-a shot at it. I clipped along, and all of a sudden I bounded right on to
-the ashes of a camp fire that was still smoking.
-
-My heart jumped up amongst my lungs.  I never waited for to look further,
-but uncocked my gun and went sneaking back on my tiptoes as fast as ever
-I could.  Every now and then I stopped a second amongst the thick leaves
-and listened, but my breath come so hard I couldn't hear nothing else.  I
-slunk along another piece further, then listened again; and so on, and so
-on.  If I see a stump, I took it for a man; if I trod on a stick and
-broke it, it made me feel like a person had cut one of my breaths in two
-and I only got half, and the short half, too.
-
-When I got to camp I warn't feeling very brash, there warn't much sand in
-my craw; but I says, this ain't no time to be fooling around.  So I got
-all my traps into my canoe again so as to have them out of sight, and I
-put out the fire and scattered the ashes around to look like an old last
-year's camp, and then clumb a tree.
-
-I reckon I was up in the tree two hours; but I didn't see nothing, I
-didn't hear nothing--I only THOUGHT I heard and seen as much as a
-thousand things.  Well, I couldn't stay up there forever; so at last I
-got down, but I kept in the thick woods and on the lookout all the time.
-All I could get to eat was berries and what was left over from breakfast.
-
-By the time it was night I was pretty hungry.  So when it was good and
-dark I slid out from shore before moonrise and paddled over to the
-Illinois bank--about a quarter of a mile.  I went out in the woods and
-cooked a supper, and I had about made up my mind I would stay there all
-night when I hear a PLUNKETY-PLUNK, PLUNKETY-PLUNK, and says to myself,
-horses coming; and next I hear people's voices.  I got everything into
-the canoe as quick as I could, and then went creeping through the woods
-to see what I could find out.  I hadn't got far when I hear a man say:
-
-"We better camp here if we can find a good place; the horses is about
-beat out.  Let's look around."
-
-I didn't wait, but shoved out and paddled away easy.  I tied up in the
-old place, and reckoned I would sleep in the canoe.
-
-I didn't sleep much.  I couldn't, somehow, for thinking.  And every time
-I waked up I thought somebody had me by the neck.  So the sleep didn't do
-me no good.  By and by I says to myself, I can't live this way; I'm
-a-going to find out who it is that's here on the island with me; I'll
-find it out or bust.  Well, I felt better right off.
-
-So I took my paddle and slid out from shore just a step or two, and then
-let the canoe drop along down amongst the shadows.  The moon was shining,
-and outside of the shadows it made it most as light as day.  I poked
-along well on to an hour, everything still as rocks and sound asleep.
-Well, by this time I was most down to the foot of the island.  A little
-ripply, cool breeze begun to blow, and that was as good as saying the
-night was about done.  I give her a turn with the paddle and brung her
-nose to shore; then I got my gun and slipped out and into the edge of the
-woods.  I sat down there on a log, and looked out through the leaves.  I
-see the moon go off watch, and the darkness begin to blanket the river.
-But in a little while I see a pale streak over the treetops, and knowed
-the day was coming.  So I took my gun and slipped off towards where I had
-run across that camp fire, stopping every minute or two to listen.  But I
-hadn't no luck somehow; I couldn't seem to find the place.  But by and
-by, sure enough, I catched a glimpse of fire away through the trees.  I
-went for it, cautious and slow.  By and by I was close enough to have a
-look, and there laid a man on the ground.  It most give me the fan-tods.
-He had a blanket around his head, and his head was nearly in the fire.  I
-set there behind a clump of bushes, in about six foot of him, and kept my
-eyes on him steady.  It was getting gray daylight now.  Pretty soon he
-gapped and stretched himself and hove off the blanket, and it was Miss
-Watson's Jim!  I bet I was glad to see him.  I says:
-
-"Hello, Jim!" and skipped out.
-
-He bounced up and stared at me wild.  Then he drops down on his knees,
-and puts his hands together and says:
-
-"Doan' hurt me--don't!  I hain't ever done no harm to a ghos'.  I alwuz
-liked dead people, en done all I could for 'em.  You go en git in de
-river agin, whah you b'longs, en doan' do nuffn to Ole Jim, 'at 'uz awluz
-yo' fren'."
-
-Well, I warn't long making him understand I warn't dead.  I was ever so
-glad to see Jim.  I warn't lonesome now.  I told him I warn't afraid of
-HIM telling the people where I was.  I talked along, but he only set
-there and looked at me; never said nothing.  Then I says:
-
-"It's good daylight.  Le's get breakfast.  Make up your camp fire good."
-
-"What's de use er makin' up de camp fire to cook strawbries en sich
-truck? But you got a gun, hain't you?  Den we kin git sumfn better den
-strawbries."
-
-"Strawberries and such truck," I says.  "Is that what you live on?"
-
-"I couldn' git nuffn else," he says.
-
-"Why, how long you been on the island, Jim?"
-
-"I come heah de night arter you's killed."
-
-"What, all that time?"
-
-"Yes--indeedy."
-
-"And ain't you had nothing but that kind of rubbage to eat?"
-
-"No, sah--nuffn else."
-
-"Well, you must be most starved, ain't you?"
-
-"I reck'n I could eat a hoss.  I think I could. How long you ben on de
-islan'?"
-
-"Since the night I got killed."
-
-"No!  W'y, what has you lived on?  But you got a gun.  Oh, yes, you got a
-gun.  Dat's good.  Now you kill sumfn en I'll make up de fire."
-
-So we went over to where the canoe was, and while he built a fire in a
-grassy open place amongst the trees, I fetched meal and bacon and coffee,
-and coffee-pot and frying-pan, and sugar and tin cups, and the nigger was
-set back considerable, because he reckoned it was all done with
-witchcraft. I catched a good big catfish, too, and Jim cleaned him with
-his knife, and fried him.
-
-When breakfast was ready we lolled on the grass and eat it smoking hot.
-Jim laid it in with all his might, for he was most about starved.  Then
-when we had got pretty well stuffed, we laid off and lazied.  By and by
-Jim says:
-
-"But looky here, Huck, who wuz it dat 'uz killed in dat shanty ef it
-warn't you?"
-
-Then I told him the whole thing, and he said it was smart.  He said Tom
-Sawyer couldn't get up no better plan than what I had.  Then I says:
-
-"How do you come to be here, Jim, and how'd you get here?"
-
-He looked pretty uneasy, and didn't say nothing for a minute.  Then he
-says:
-
-"Maybe I better not tell."
-
-"Why, Jim?"
-
-"Well, dey's reasons.  But you wouldn' tell on me ef I uz to tell you,
-would you, Huck?"
-
-"Blamed if I would, Jim."
-
-"Well, I b'lieve you, Huck.  I--I RUN OFF."
-
-"Jim!"
-
-"But mind, you said you wouldn' tell--you know you said you wouldn' tell,
-Huck."
-
-"Well, I did.  I said I wouldn't, and I'll stick to it.  Honest INJUN, I
-will.  People would call me a low-down Abolitionist and despise me for
-keeping mum--but that don't make no difference.  I ain't a-going to tell,
-and I ain't a-going back there, anyways.  So, now, le's know all about
-it."
-
-"Well, you see, it 'uz dis way.  Ole missus--dat's Miss Watson--she pecks
-on me all de time, en treats me pooty rough, but she awluz said she
-wouldn' sell me down to Orleans.  But I noticed dey wuz a nigger trader
-roun' de place considable lately, en I begin to git oneasy.  Well, one
-night I creeps to de do' pooty late, en de do' warn't quite shet, en I
-hear old missus tell de widder she gwyne to sell me down to Orleans, but
-she didn' want to, but she could git eight hund'd dollars for me, en it
-'uz sich a big stack o' money she couldn' resis'.  De widder she try to
-git her to say she wouldn' do it, but I never waited to hear de res'.  I
-lit out mighty quick, I tell you.
-
-"I tuck out en shin down de hill, en 'spec to steal a ski

<TRUNCATED>

[40/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/alice-in-wonderland.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/alice-in-wonderland.txt b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/alice-in-wonderland.txt
new file mode 100644
index 0000000..d65883a
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/alice-in-wonderland.txt
@@ -0,0 +1,3735 @@
+Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever.  You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.org
+
+
+Title: Alice's Adventures in Wonderland
+
+Author: Lewis Carroll
+
+Posting Date: June 25, 2008 [EBook #11]
+Release Date: March, 1994
+[Last updated: December 20, 2011]
+
+Language: English
+
+
+*** START OF THIS PROJECT GUTENBERG EBOOK ALICE'S ADVENTURES IN WONDERLAND ***
+
+
+
+
+
+
+
+
+
+
+ALICE'S ADVENTURES IN WONDERLAND
+
+Lewis Carroll
+
+THE MILLENNIUM FULCRUM EDITION 3.0
+
+
+
+
+CHAPTER I. Down the Rabbit-Hole
+
+Alice was beginning to get very tired of sitting by her sister on the
+bank, and of having nothing to do: once or twice she had peeped into the
+book her sister was reading, but it had no pictures or conversations in
+it, 'and what is the use of a book,' thought Alice 'without pictures or
+conversation?'
+
+So she was considering in her own mind (as well as she could, for the
+hot day made her feel very sleepy and stupid), whether the pleasure
+of making a daisy-chain would be worth the trouble of getting up and
+picking the daisies, when suddenly a White Rabbit with pink eyes ran
+close by her.
+
+There was nothing so VERY remarkable in that; nor did Alice think it so
+VERY much out of the way to hear the Rabbit say to itself, 'Oh dear!
+Oh dear! I shall be late!' (when she thought it over afterwards, it
+occurred to her that she ought to have wondered at this, but at the time
+it all seemed quite natural); but when the Rabbit actually TOOK A WATCH
+OUT OF ITS WAISTCOAT-POCKET, and looked at it, and then hurried on,
+Alice started to her feet, for it flashed across her mind that she had
+never before seen a rabbit with either a waistcoat-pocket, or a watch
+to take out of it, and burning with curiosity, she ran across the field
+after it, and fortunately was just in time to see it pop down a large
+rabbit-hole under the hedge.
+
+In another moment down went Alice after it, never once considering how
+in the world she was to get out again.
+
+The rabbit-hole went straight on like a tunnel for some way, and then
+dipped suddenly down, so suddenly that Alice had not a moment to think
+about stopping herself before she found herself falling down a very deep
+well.
+
+Either the well was very deep, or she fell very slowly, for she had
+plenty of time as she went down to look about her and to wonder what was
+going to happen next. First, she tried to look down and make out what
+she was coming to, but it was too dark to see anything; then she
+looked at the sides of the well, and noticed that they were filled with
+cupboards and book-shelves; here and there she saw maps and pictures
+hung upon pegs. She took down a jar from one of the shelves as
+she passed; it was labelled 'ORANGE MARMALADE', but to her great
+disappointment it was empty: she did not like to drop the jar for fear
+of killing somebody, so managed to put it into one of the cupboards as
+she fell past it.
+
+'Well!' thought Alice to herself, 'after such a fall as this, I shall
+think nothing of tumbling down stairs! How brave they'll all think me at
+home! Why, I wouldn't say anything about it, even if I fell off the top
+of the house!' (Which was very likely true.)
+
+Down, down, down. Would the fall NEVER come to an end! 'I wonder how
+many miles I've fallen by this time?' she said aloud. 'I must be getting
+somewhere near the centre of the earth. Let me see: that would be four
+thousand miles down, I think--' (for, you see, Alice had learnt several
+things of this sort in her lessons in the schoolroom, and though this
+was not a VERY good opportunity for showing off her knowledge, as there
+was no one to listen to her, still it was good practice to say it over)
+'--yes, that's about the right distance--but then I wonder what Latitude
+or Longitude I've got to?' (Alice had no idea what Latitude was, or
+Longitude either, but thought they were nice grand words to say.)
+
+Presently she began again. 'I wonder if I shall fall right THROUGH the
+earth! How funny it'll seem to come out among the people that walk with
+their heads downward! The Antipathies, I think--' (she was rather glad
+there WAS no one listening, this time, as it didn't sound at all the
+right word) '--but I shall have to ask them what the name of the country
+is, you know. Please, Ma'am, is this New Zealand or Australia?' (and
+she tried to curtsey as she spoke--fancy CURTSEYING as you're falling
+through the air! Do you think you could manage it?) 'And what an
+ignorant little girl she'll think me for asking! No, it'll never do to
+ask: perhaps I shall see it written up somewhere.'
+
+Down, down, down. There was nothing else to do, so Alice soon began
+talking again. 'Dinah'll miss me very much to-night, I should think!'
+(Dinah was the cat.) 'I hope they'll remember her saucer of milk at
+tea-time. Dinah my dear! I wish you were down here with me! There are no
+mice in the air, I'm afraid, but you might catch a bat, and that's very
+like a mouse, you know. But do cats eat bats, I wonder?' And here Alice
+began to get rather sleepy, and went on saying to herself, in a dreamy
+sort of way, 'Do cats eat bats? Do cats eat bats?' and sometimes, 'Do
+bats eat cats?' for, you see, as she couldn't answer either question,
+it didn't much matter which way she put it. She felt that she was dozing
+off, and had just begun to dream that she was walking hand in hand with
+Dinah, and saying to her very earnestly, 'Now, Dinah, tell me the truth:
+did you ever eat a bat?' when suddenly, thump! thump! down she came upon
+a heap of sticks and dry leaves, and the fall was over.
+
+Alice was not a bit hurt, and she jumped up on to her feet in a moment:
+she looked up, but it was all dark overhead; before her was another
+long passage, and the White Rabbit was still in sight, hurrying down it.
+There was not a moment to be lost: away went Alice like the wind, and
+was just in time to hear it say, as it turned a corner, 'Oh my ears
+and whiskers, how late it's getting!' She was close behind it when she
+turned the corner, but the Rabbit was no longer to be seen: she found
+herself in a long, low hall, which was lit up by a row of lamps hanging
+from the roof.
+
+There were doors all round the hall, but they were all locked; and when
+Alice had been all the way down one side and up the other, trying every
+door, she walked sadly down the middle, wondering how she was ever to
+get out again.
+
+Suddenly she came upon a little three-legged table, all made of solid
+glass; there was nothing on it except a tiny golden key, and Alice's
+first thought was that it might belong to one of the doors of the hall;
+but, alas! either the locks were too large, or the key was too small,
+but at any rate it would not open any of them. However, on the second
+time round, she came upon a low curtain she had not noticed before, and
+behind it was a little door about fifteen inches high: she tried the
+little golden key in the lock, and to her great delight it fitted!
+
+Alice opened the door and found that it led into a small passage, not
+much larger than a rat-hole: she knelt down and looked along the passage
+into the loveliest garden you ever saw. How she longed to get out of
+that dark hall, and wander about among those beds of bright flowers and
+those cool fountains, but she could not even get her head through the
+doorway; 'and even if my head would go through,' thought poor Alice, 'it
+would be of very little use without my shoulders. Oh, how I wish I could
+shut up like a telescope! I think I could, if I only know how to begin.'
+For, you see, so many out-of-the-way things had happened lately,
+that Alice had begun to think that very few things indeed were really
+impossible.
+
+There seemed to be no use in waiting by the little door, so she went
+back to the table, half hoping she might find another key on it, or at
+any rate a book of rules for shutting people up like telescopes: this
+time she found a little bottle on it, ('which certainly was not here
+before,' said Alice,) and round the neck of the bottle was a paper
+label, with the words 'DRINK ME' beautifully printed on it in large
+letters.
+
+It was all very well to say 'Drink me,' but the wise little Alice was
+not going to do THAT in a hurry. 'No, I'll look first,' she said, 'and
+see whether it's marked "poison" or not'; for she had read several nice
+little histories about children who had got burnt, and eaten up by wild
+beasts and other unpleasant things, all because they WOULD not remember
+the simple rules their friends had taught them: such as, that a red-hot
+poker will burn you if you hold it too long; and that if you cut your
+finger VERY deeply with a knife, it usually bleeds; and she had never
+forgotten that, if you drink much from a bottle marked 'poison,' it is
+almost certain to disagree with you, sooner or later.
+
+However, this bottle was NOT marked 'poison,' so Alice ventured to taste
+it, and finding it very nice, (it had, in fact, a sort of mixed flavour
+of cherry-tart, custard, pine-apple, roast turkey, toffee, and hot
+buttered toast,) she very soon finished it off.
+
+  *    *    *    *    *    *    *
+
+    *    *    *    *    *    *
+
+  *    *    *    *    *    *    *
+
+'What a curious feeling!' said Alice; 'I must be shutting up like a
+telescope.'
+
+And so it was indeed: she was now only ten inches high, and her face
+brightened up at the thought that she was now the right size for going
+through the little door into that lovely garden. First, however, she
+waited for a few minutes to see if she was going to shrink any further:
+she felt a little nervous about this; 'for it might end, you know,' said
+Alice to herself, 'in my going out altogether, like a candle. I wonder
+what I should be like then?' And she tried to fancy what the flame of a
+candle is like after the candle is blown out, for she could not remember
+ever having seen such a thing.
+
+After a while, finding that nothing more happened, she decided on going
+into the garden at once; but, alas for poor Alice! when she got to the
+door, she found she had forgotten the little golden key, and when she
+went back to the table for it, she found she could not possibly reach
+it: she could see it quite plainly through the glass, and she tried her
+best to climb up one of the legs of the table, but it was too slippery;
+and when she had tired herself out with trying, the poor little thing
+sat down and cried.
+
+'Come, there's no use in crying like that!' said Alice to herself,
+rather sharply; 'I advise you to leave off this minute!' She generally
+gave herself very good advice, (though she very seldom followed it),
+and sometimes she scolded herself so severely as to bring tears into
+her eyes; and once she remembered trying to box her own ears for having
+cheated herself in a game of croquet she was playing against herself,
+for this curious child was very fond of pretending to be two people.
+'But it's no use now,' thought poor Alice, 'to pretend to be two people!
+Why, there's hardly enough of me left to make ONE respectable person!'
+
+Soon her eye fell on a little glass box that was lying under the table:
+she opened it, and found in it a very small cake, on which the words
+'EAT ME' were beautifully marked in currants. 'Well, I'll eat it,' said
+Alice, 'and if it makes me grow larger, I can reach the key; and if it
+makes me grow smaller, I can creep under the door; so either way I'll
+get into the garden, and I don't care which happens!'
+
+She ate a little bit, and said anxiously to herself, 'Which way? Which
+way?', holding her hand on the top of her head to feel which way it was
+growing, and she was quite surprised to find that she remained the same
+size: to be sure, this generally happens when one eats cake, but Alice
+had got so much into the way of expecting nothing but out-of-the-way
+things to happen, that it seemed quite dull and stupid for life to go on
+in the common way.
+
+So she set to work, and very soon finished off the cake.
+
+  *    *    *    *    *    *    *
+
+    *    *    *    *    *    *
+
+  *    *    *    *    *    *    *
+
+
+
+
+CHAPTER II. The Pool of Tears
+
+'Curiouser and curiouser!' cried Alice (she was so much surprised, that
+for the moment she quite forgot how to speak good English); 'now I'm
+opening out like the largest telescope that ever was! Good-bye, feet!'
+(for when she looked down at her feet, they seemed to be almost out of
+sight, they were getting so far off). 'Oh, my poor little feet, I wonder
+who will put on your shoes and stockings for you now, dears? I'm sure
+_I_ shan't be able! I shall be a great deal too far off to trouble
+myself about you: you must manage the best way you can;--but I must be
+kind to them,' thought Alice, 'or perhaps they won't walk the way I want
+to go! Let me see: I'll give them a new pair of boots every Christmas.'
+
+And she went on planning to herself how she would manage it. 'They must
+go by the carrier,' she thought; 'and how funny it'll seem, sending
+presents to one's own feet! And how odd the directions will look!
+
+     ALICE'S RIGHT FOOT, ESQ.
+       HEARTHRUG,
+         NEAR THE FENDER,
+           (WITH ALICE'S LOVE).
+
+Oh dear, what nonsense I'm talking!'
+
+Just then her head struck against the roof of the hall: in fact she was
+now more than nine feet high, and she at once took up the little golden
+key and hurried off to the garden door.
+
+Poor Alice! It was as much as she could do, lying down on one side, to
+look through into the garden with one eye; but to get through was more
+hopeless than ever: she sat down and began to cry again.
+
+'You ought to be ashamed of yourself,' said Alice, 'a great girl like
+you,' (she might well say this), 'to go on crying in this way! Stop this
+moment, I tell you!' But she went on all the same, shedding gallons of
+tears, until there was a large pool all round her, about four inches
+deep and reaching half down the hall.
+
+After a time she heard a little pattering of feet in the distance, and
+she hastily dried her eyes to see what was coming. It was the White
+Rabbit returning, splendidly dressed, with a pair of white kid gloves in
+one hand and a large fan in the other: he came trotting along in a great
+hurry, muttering to himself as he came, 'Oh! the Duchess, the Duchess!
+Oh! won't she be savage if I've kept her waiting!' Alice felt so
+desperate that she was ready to ask help of any one; so, when the Rabbit
+came near her, she began, in a low, timid voice, 'If you please, sir--'
+The Rabbit started violently, dropped the white kid gloves and the fan,
+and skurried away into the darkness as hard as he could go.
+
+Alice took up the fan and gloves, and, as the hall was very hot, she
+kept fanning herself all the time she went on talking: 'Dear, dear! How
+queer everything is to-day! And yesterday things went on just as usual.
+I wonder if I've been changed in the night? Let me think: was I the
+same when I got up this morning? I almost think I can remember feeling a
+little different. But if I'm not the same, the next question is, Who
+in the world am I? Ah, THAT'S the great puzzle!' And she began thinking
+over all the children she knew that were of the same age as herself, to
+see if she could have been changed for any of them.
+
+'I'm sure I'm not Ada,' she said, 'for her hair goes in such long
+ringlets, and mine doesn't go in ringlets at all; and I'm sure I can't
+be Mabel, for I know all sorts of things, and she, oh! she knows such a
+very little! Besides, SHE'S she, and I'm I, and--oh dear, how puzzling
+it all is! I'll try if I know all the things I used to know. Let me
+see: four times five is twelve, and four times six is thirteen, and
+four times seven is--oh dear! I shall never get to twenty at that rate!
+However, the Multiplication Table doesn't signify: let's try Geography.
+London is the capital of Paris, and Paris is the capital of Rome, and
+Rome--no, THAT'S all wrong, I'm certain! I must have been changed for
+Mabel! I'll try and say "How doth the little--"' and she crossed her
+hands on her lap as if she were saying lessons, and began to repeat it,
+but her voice sounded hoarse and strange, and the words did not come the
+same as they used to do:--
+
+     'How doth the little crocodile
+      Improve his shining tail,
+     And pour the waters of the Nile
+      On every golden scale!
+
+     'How cheerfully he seems to grin,
+      How neatly spread his claws,
+     And welcome little fishes in
+      With gently smiling jaws!'
+
+'I'm sure those are not the right words,' said poor Alice, and her eyes
+filled with tears again as she went on, 'I must be Mabel after all, and
+I shall have to go and live in that poky little house, and have next to
+no toys to play with, and oh! ever so many lessons to learn! No, I've
+made up my mind about it; if I'm Mabel, I'll stay down here! It'll be no
+use their putting their heads down and saying "Come up again, dear!" I
+shall only look up and say "Who am I then? Tell me that first, and then,
+if I like being that person, I'll come up: if not, I'll stay down here
+till I'm somebody else"--but, oh dear!' cried Alice, with a sudden burst
+of tears, 'I do wish they WOULD put their heads down! I am so VERY tired
+of being all alone here!'
+
+As she said this she looked down at her hands, and was surprised to see
+that she had put on one of the Rabbit's little white kid gloves while
+she was talking. 'How CAN I have done that?' she thought. 'I must
+be growing small again.' She got up and went to the table to measure
+herself by it, and found that, as nearly as she could guess, she was now
+about two feet high, and was going on shrinking rapidly: she soon found
+out that the cause of this was the fan she was holding, and she dropped
+it hastily, just in time to avoid shrinking away altogether.
+
+'That WAS a narrow escape!' said Alice, a good deal frightened at the
+sudden change, but very glad to find herself still in existence; 'and
+now for the garden!' and she ran with all speed back to the little door:
+but, alas! the little door was shut again, and the little golden key was
+lying on the glass table as before, 'and things are worse than ever,'
+thought the poor child, 'for I never was so small as this before, never!
+And I declare it's too bad, that it is!'
+
+As she said these words her foot slipped, and in another moment, splash!
+she was up to her chin in salt water. Her first idea was that she
+had somehow fallen into the sea, 'and in that case I can go back by
+railway,' she said to herself. (Alice had been to the seaside once in
+her life, and had come to the general conclusion, that wherever you go
+to on the English coast you find a number of bathing machines in the
+sea, some children digging in the sand with wooden spades, then a row
+of lodging houses, and behind them a railway station.) However, she soon
+made out that she was in the pool of tears which she had wept when she
+was nine feet high.
+
+'I wish I hadn't cried so much!' said Alice, as she swam about, trying
+to find her way out. 'I shall be punished for it now, I suppose, by
+being drowned in my own tears! That WILL be a queer thing, to be sure!
+However, everything is queer to-day.'
+
+Just then she heard something splashing about in the pool a little way
+off, and she swam nearer to make out what it was: at first she thought
+it must be a walrus or hippopotamus, but then she remembered how small
+she was now, and she soon made out that it was only a mouse that had
+slipped in like herself.
+
+'Would it be of any use, now,' thought Alice, 'to speak to this mouse?
+Everything is so out-of-the-way down here, that I should think very
+likely it can talk: at any rate, there's no harm in trying.' So she
+began: 'O Mouse, do you know the way out of this pool? I am very tired
+of swimming about here, O Mouse!' (Alice thought this must be the right
+way of speaking to a mouse: she had never done such a thing before, but
+she remembered having seen in her brother's Latin Grammar, 'A mouse--of
+a mouse--to a mouse--a mouse--O mouse!') The Mouse looked at her rather
+inquisitively, and seemed to her to wink with one of its little eyes,
+but it said nothing.
+
+'Perhaps it doesn't understand English,' thought Alice; 'I daresay it's
+a French mouse, come over with William the Conqueror.' (For, with all
+her knowledge of history, Alice had no very clear notion how long ago
+anything had happened.) So she began again: 'Ou est ma chatte?' which
+was the first sentence in her French lesson-book. The Mouse gave a
+sudden leap out of the water, and seemed to quiver all over with fright.
+'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt
+the poor animal's feelings. 'I quite forgot you didn't like cats.'
+
+'Not like cats!' cried the Mouse, in a shrill, passionate voice. 'Would
+YOU like cats if you were me?'
+
+'Well, perhaps not,' said Alice in a soothing tone: 'don't be angry
+about it. And yet I wish I could show you our cat Dinah: I think you'd
+take a fancy to cats if you could only see her. She is such a dear quiet
+thing,' Alice went on, half to herself, as she swam lazily about in the
+pool, 'and she sits purring so nicely by the fire, licking her paws and
+washing her face--and she is such a nice soft thing to nurse--and she's
+such a capital one for catching mice--oh, I beg your pardon!' cried
+Alice again, for this time the Mouse was bristling all over, and she
+felt certain it must be really offended. 'We won't talk about her any
+more if you'd rather not.'
+
+'We indeed!' cried the Mouse, who was trembling down to the end of his
+tail. 'As if I would talk on such a subject! Our family always HATED
+cats: nasty, low, vulgar things! Don't let me hear the name again!'
+
+'I won't indeed!' said Alice, in a great hurry to change the subject of
+conversation. 'Are you--are you fond--of--of dogs?' The Mouse did not
+answer, so Alice went on eagerly: 'There is such a nice little dog near
+our house I should like to show you! A little bright-eyed terrier, you
+know, with oh, such long curly brown hair! And it'll fetch things when
+you throw them, and it'll sit up and beg for its dinner, and all sorts
+of things--I can't remember half of them--and it belongs to a farmer,
+you know, and he says it's so useful, it's worth a hundred pounds! He
+says it kills all the rats and--oh dear!' cried Alice in a sorrowful
+tone, 'I'm afraid I've offended it again!' For the Mouse was swimming
+away from her as hard as it could go, and making quite a commotion in
+the pool as it went.
+
+So she called softly after it, 'Mouse dear! Do come back again, and we
+won't talk about cats or dogs either, if you don't like them!' When the
+Mouse heard this, it turned round and swam slowly back to her: its
+face was quite pale (with passion, Alice thought), and it said in a low
+trembling voice, 'Let us get to the shore, and then I'll tell you my
+history, and you'll understand why it is I hate cats and dogs.'
+
+It was high time to go, for the pool was getting quite crowded with the
+birds and animals that had fallen into it: there were a Duck and a Dodo,
+a Lory and an Eaglet, and several other curious creatures. Alice led the
+way, and the whole party swam to the shore.
+
+
+
+
+CHAPTER III. A Caucus-Race and a Long Tale
+
+They were indeed a queer-looking party that assembled on the bank--the
+birds with draggled feathers, the animals with their fur clinging close
+to them, and all dripping wet, cross, and uncomfortable.
+
+The first question of course was, how to get dry again: they had a
+consultation about this, and after a few minutes it seemed quite natural
+to Alice to find herself talking familiarly with them, as if she had
+known them all her life. Indeed, she had quite a long argument with the
+Lory, who at last turned sulky, and would only say, 'I am older than
+you, and must know better'; and this Alice would not allow without
+knowing how old it was, and, as the Lory positively refused to tell its
+age, there was no more to be said.
+
+At last the Mouse, who seemed to be a person of authority among them,
+called out, 'Sit down, all of you, and listen to me! I'LL soon make you
+dry enough!' They all sat down at once, in a large ring, with the Mouse
+in the middle. Alice kept her eyes anxiously fixed on it, for she felt
+sure she would catch a bad cold if she did not get dry very soon.
+
+'Ahem!' said the Mouse with an important air, 'are you all ready? This
+is the driest thing I know. Silence all round, if you please! "William
+the Conqueror, whose cause was favoured by the pope, was soon submitted
+to by the English, who wanted leaders, and had been of late much
+accustomed to usurpation and conquest. Edwin and Morcar, the earls of
+Mercia and Northumbria--"'
+
+'Ugh!' said the Lory, with a shiver.
+
+'I beg your pardon!' said the Mouse, frowning, but very politely: 'Did
+you speak?'
+
+'Not I!' said the Lory hastily.
+
+'I thought you did,' said the Mouse. '--I proceed. "Edwin and Morcar,
+the earls of Mercia and Northumbria, declared for him: and even Stigand,
+the patriotic archbishop of Canterbury, found it advisable--"'
+
+'Found WHAT?' said the Duck.
+
+'Found IT,' the Mouse replied rather crossly: 'of course you know what
+"it" means.'
+
+'I know what "it" means well enough, when I find a thing,' said the
+Duck: 'it's generally a frog or a worm. The question is, what did the
+archbishop find?'
+
+The Mouse did not notice this question, but hurriedly went on, '"--found
+it advisable to go with Edgar Atheling to meet William and offer him the
+crown. William's conduct at first was moderate. But the insolence of his
+Normans--" How are you getting on now, my dear?' it continued, turning
+to Alice as it spoke.
+
+'As wet as ever,' said Alice in a melancholy tone: 'it doesn't seem to
+dry me at all.'
+
+'In that case,' said the Dodo solemnly, rising to its feet, 'I move
+that the meeting adjourn, for the immediate adoption of more energetic
+remedies--'
+
+'Speak English!' said the Eaglet. 'I don't know the meaning of half
+those long words, and, what's more, I don't believe you do either!' And
+the Eaglet bent down its head to hide a smile: some of the other birds
+tittered audibly.
+
+'What I was going to say,' said the Dodo in an offended tone, 'was, that
+the best thing to get us dry would be a Caucus-race.'
+
+'What IS a Caucus-race?' said Alice; not that she wanted much to know,
+but the Dodo had paused as if it thought that SOMEBODY ought to speak,
+and no one else seemed inclined to say anything.
+
+'Why,' said the Dodo, 'the best way to explain it is to do it.' (And, as
+you might like to try the thing yourself, some winter day, I will tell
+you how the Dodo managed it.)
+
+First it marked out a race-course, in a sort of circle, ('the exact
+shape doesn't matter,' it said,) and then all the party were placed
+along the course, here and there. There was no 'One, two, three, and
+away,' but they began running when they liked, and left off when they
+liked, so that it was not easy to know when the race was over. However,
+when they had been running half an hour or so, and were quite dry again,
+the Dodo suddenly called out 'The race is over!' and they all crowded
+round it, panting, and asking, 'But who has won?'
+
+This question the Dodo could not answer without a great deal of thought,
+and it sat for a long time with one finger pressed upon its forehead
+(the position in which you usually see Shakespeare, in the pictures
+of him), while the rest waited in silence. At last the Dodo said,
+'EVERYBODY has won, and all must have prizes.'
+
+'But who is to give the prizes?' quite a chorus of voices asked.
+
+'Why, SHE, of course,' said the Dodo, pointing to Alice with one finger;
+and the whole party at once crowded round her, calling out in a confused
+way, 'Prizes! Prizes!'
+
+Alice had no idea what to do, and in despair she put her hand in her
+pocket, and pulled out a box of comfits, (luckily the salt water had
+not got into it), and handed them round as prizes. There was exactly one
+a-piece all round.
+
+'But she must have a prize herself, you know,' said the Mouse.
+
+'Of course,' the Dodo replied very gravely. 'What else have you got in
+your pocket?' he went on, turning to Alice.
+
+'Only a thimble,' said Alice sadly.
+
+'Hand it over here,' said the Dodo.
+
+Then they all crowded round her once more, while the Dodo solemnly
+presented the thimble, saying 'We beg your acceptance of this elegant
+thimble'; and, when it had finished this short speech, they all cheered.
+
+Alice thought the whole thing very absurd, but they all looked so grave
+that she did not dare to laugh; and, as she could not think of anything
+to say, she simply bowed, and took the thimble, looking as solemn as she
+could.
+
+The next thing was to eat the comfits: this caused some noise and
+confusion, as the large birds complained that they could not taste
+theirs, and the small ones choked and had to be patted on the back.
+However, it was over at last, and they sat down again in a ring, and
+begged the Mouse to tell them something more.
+
+'You promised to tell me your history, you know,' said Alice, 'and why
+it is you hate--C and D,' she added in a whisper, half afraid that it
+would be offended again.
+
+'Mine is a long and a sad tale!' said the Mouse, turning to Alice, and
+sighing.
+
+'It IS a long tail, certainly,' said Alice, looking down with wonder at
+the Mouse's tail; 'but why do you call it sad?' And she kept on puzzling
+about it while the Mouse was speaking, so that her idea of the tale was
+something like this:--
+
+         'Fury said to a
+         mouse, That he
+        met in the
+       house,
+     "Let us
+      both go to
+       law: I will
+        prosecute
+         YOU.--Come,
+           I'll take no
+           denial; We
+          must have a
+        trial: For
+      really this
+     morning I've
+    nothing
+    to do."
+     Said the
+      mouse to the
+       cur, "Such
+        a trial,
+         dear Sir,
+            With
+          no jury
+        or judge,
+       would be
+      wasting
+      our
+      breath."
+       "I'll be
+        judge, I'll
+         be jury,"
+            Said
+         cunning
+          old Fury:
+          "I'll
+          try the
+            whole
+            cause,
+              and
+           condemn
+           you
+          to
+           death."'
+
+
+'You are not attending!' said the Mouse to Alice severely. 'What are you
+thinking of?'
+
+'I beg your pardon,' said Alice very humbly: 'you had got to the fifth
+bend, I think?'
+
+'I had NOT!' cried the Mouse, sharply and very angrily.
+
+'A knot!' said Alice, always ready to make herself useful, and looking
+anxiously about her. 'Oh, do let me help to undo it!'
+
+'I shall do nothing of the sort,' said the Mouse, getting up and walking
+away. 'You insult me by talking such nonsense!'
+
+'I didn't mean it!' pleaded poor Alice. 'But you're so easily offended,
+you know!'
+
+The Mouse only growled in reply.
+
+'Please come back and finish your story!' Alice called after it; and the
+others all joined in chorus, 'Yes, please do!' but the Mouse only shook
+its head impatiently, and walked a little quicker.
+
+'What a pity it wouldn't stay!' sighed the Lory, as soon as it was quite
+out of sight; and an old Crab took the opportunity of saying to her
+daughter 'Ah, my dear! Let this be a lesson to you never to lose
+YOUR temper!' 'Hold your tongue, Ma!' said the young Crab, a little
+snappishly. 'You're enough to try the patience of an oyster!'
+
+'I wish I had our Dinah here, I know I do!' said Alice aloud, addressing
+nobody in particular. 'She'd soon fetch it back!'
+
+'And who is Dinah, if I might venture to ask the question?' said the
+Lory.
+
+Alice replied eagerly, for she was always ready to talk about her pet:
+'Dinah's our cat. And she's such a capital one for catching mice you
+can't think! And oh, I wish you could see her after the birds! Why,
+she'll eat a little bird as soon as look at it!'
+
+This speech caused a remarkable sensation among the party. Some of the
+birds hurried off at once: one old Magpie began wrapping itself up very
+carefully, remarking, 'I really must be getting home; the night-air
+doesn't suit my throat!' and a Canary called out in a trembling voice to
+its children, 'Come away, my dears! It's high time you were all in bed!'
+On various pretexts they all moved off, and Alice was soon left alone.
+
+'I wish I hadn't mentioned Dinah!' she said to herself in a melancholy
+tone. 'Nobody seems to like her, down here, and I'm sure she's the best
+cat in the world! Oh, my dear Dinah! I wonder if I shall ever see you
+any more!' And here poor Alice began to cry again, for she felt very
+lonely and low-spirited. In a little while, however, she again heard
+a little pattering of footsteps in the distance, and she looked up
+eagerly, half hoping that the Mouse had changed his mind, and was coming
+back to finish his story.
+
+
+
+
+CHAPTER IV. The Rabbit Sends in a Little Bill
+
+It was the White Rabbit, trotting slowly back again, and looking
+anxiously about as it went, as if it had lost something; and she heard
+it muttering to itself 'The Duchess! The Duchess! Oh my dear paws! Oh
+my fur and whiskers! She'll get me executed, as sure as ferrets are
+ferrets! Where CAN I have dropped them, I wonder?' Alice guessed in a
+moment that it was looking for the fan and the pair of white kid gloves,
+and she very good-naturedly began hunting about for them, but they were
+nowhere to be seen--everything seemed to have changed since her swim in
+the pool, and the great hall, with the glass table and the little door,
+had vanished completely.
+
+Very soon the Rabbit noticed Alice, as she went hunting about, and
+called out to her in an angry tone, 'Why, Mary Ann, what ARE you doing
+out here? Run home this moment, and fetch me a pair of gloves and a fan!
+Quick, now!' And Alice was so much frightened that she ran off at once
+in the direction it pointed to, without trying to explain the mistake it
+had made.
+
+'He took me for his housemaid,' she said to herself as she ran. 'How
+surprised he'll be when he finds out who I am! But I'd better take him
+his fan and gloves--that is, if I can find them.' As she said this, she
+came upon a neat little house, on the door of which was a bright brass
+plate with the name 'W. RABBIT' engraved upon it. She went in without
+knocking, and hurried upstairs, in great fear lest she should meet the
+real Mary Ann, and be turned out of the house before she had found the
+fan and gloves.
+
+'How queer it seems,' Alice said to herself, 'to be going messages for
+a rabbit! I suppose Dinah'll be sending me on messages next!' And she
+began fancying the sort of thing that would happen: '"Miss Alice! Come
+here directly, and get ready for your walk!" "Coming in a minute,
+nurse! But I've got to see that the mouse doesn't get out." Only I don't
+think,' Alice went on, 'that they'd let Dinah stop in the house if it
+began ordering people about like that!'
+
+By this time she had found her way into a tidy little room with a table
+in the window, and on it (as she had hoped) a fan and two or three pairs
+of tiny white kid gloves: she took up the fan and a pair of the gloves,
+and was just going to leave the room, when her eye fell upon a little
+bottle that stood near the looking-glass. There was no label this time
+with the words 'DRINK ME,' but nevertheless she uncorked it and put it
+to her lips. 'I know SOMETHING interesting is sure to happen,' she said
+to herself, 'whenever I eat or drink anything; so I'll just see what
+this bottle does. I do hope it'll make me grow large again, for really
+I'm quite tired of being such a tiny little thing!'
+
+It did so indeed, and much sooner than she had expected: before she had
+drunk half the bottle, she found her head pressing against the ceiling,
+and had to stoop to save her neck from being broken. She hastily put
+down the bottle, saying to herself 'That's quite enough--I hope I shan't
+grow any more--As it is, I can't get out at the door--I do wish I hadn't
+drunk quite so much!'
+
+Alas! it was too late to wish that! She went on growing, and growing,
+and very soon had to kneel down on the floor: in another minute there
+was not even room for this, and she tried the effect of lying down with
+one elbow against the door, and the other arm curled round her head.
+Still she went on growing, and, as a last resource, she put one arm out
+of the window, and one foot up the chimney, and said to herself 'Now I
+can do no more, whatever happens. What WILL become of me?'
+
+Luckily for Alice, the little magic bottle had now had its full effect,
+and she grew no larger: still it was very uncomfortable, and, as there
+seemed to be no sort of chance of her ever getting out of the room
+again, no wonder she felt unhappy.
+
+'It was much pleasanter at home,' thought poor Alice, 'when one wasn't
+always growing larger and smaller, and being ordered about by mice and
+rabbits. I almost wish I hadn't gone down that rabbit-hole--and yet--and
+yet--it's rather curious, you know, this sort of life! I do wonder what
+CAN have happened to me! When I used to read fairy-tales, I fancied that
+kind of thing never happened, and now here I am in the middle of one!
+There ought to be a book written about me, that there ought! And when I
+grow up, I'll write one--but I'm grown up now,' she added in a sorrowful
+tone; 'at least there's no room to grow up any more HERE.'
+
+'But then,' thought Alice, 'shall I NEVER get any older than I am
+now? That'll be a comfort, one way--never to be an old woman--but
+then--always to have lessons to learn! Oh, I shouldn't like THAT!'
+
+'Oh, you foolish Alice!' she answered herself. 'How can you learn
+lessons in here? Why, there's hardly room for YOU, and no room at all
+for any lesson-books!'
+
+And so she went on, taking first one side and then the other, and making
+quite a conversation of it altogether; but after a few minutes she heard
+a voice outside, and stopped to listen.
+
+'Mary Ann! Mary Ann!' said the voice. 'Fetch me my gloves this moment!'
+Then came a little pattering of feet on the stairs. Alice knew it was
+the Rabbit coming to look for her, and she trembled till she shook the
+house, quite forgetting that she was now about a thousand times as large
+as the Rabbit, and had no reason to be afraid of it.
+
+Presently the Rabbit came up to the door, and tried to open it; but, as
+the door opened inwards, and Alice's elbow was pressed hard against it,
+that attempt proved a failure. Alice heard it say to itself 'Then I'll
+go round and get in at the window.'
+
+'THAT you won't' thought Alice, and, after waiting till she fancied
+she heard the Rabbit just under the window, she suddenly spread out her
+hand, and made a snatch in the air. She did not get hold of anything,
+but she heard a little shriek and a fall, and a crash of broken glass,
+from which she concluded that it was just possible it had fallen into a
+cucumber-frame, or something of the sort.
+
+Next came an angry voice--the Rabbit's--'Pat! Pat! Where are you?' And
+then a voice she had never heard before, 'Sure then I'm here! Digging
+for apples, yer honour!'
+
+'Digging for apples, indeed!' said the Rabbit angrily. 'Here! Come and
+help me out of THIS!' (Sounds of more broken glass.)
+
+'Now tell me, Pat, what's that in the window?'
+
+'Sure, it's an arm, yer honour!' (He pronounced it 'arrum.')
+
+'An arm, you goose! Who ever saw one that size? Why, it fills the whole
+window!'
+
+'Sure, it does, yer honour: but it's an arm for all that.'
+
+'Well, it's got no business there, at any rate: go and take it away!'
+
+There was a long silence after this, and Alice could only hear whispers
+now and then; such as, 'Sure, I don't like it, yer honour, at all, at
+all!' 'Do as I tell you, you coward!' and at last she spread out her
+hand again, and made another snatch in the air. This time there were
+TWO little shrieks, and more sounds of broken glass. 'What a number of
+cucumber-frames there must be!' thought Alice. 'I wonder what they'll do
+next! As for pulling me out of the window, I only wish they COULD! I'm
+sure I don't want to stay in here any longer!'
+
+She waited for some time without hearing anything more: at last came a
+rumbling of little cartwheels, and the sound of a good many voices
+all talking together: she made out the words: 'Where's the other
+ladder?--Why, I hadn't to bring but one; Bill's got the other--Bill!
+fetch it here, lad!--Here, put 'em up at this corner--No, tie 'em
+together first--they don't reach half high enough yet--Oh! they'll
+do well enough; don't be particular--Here, Bill! catch hold of this
+rope--Will the roof bear?--Mind that loose slate--Oh, it's coming
+down! Heads below!' (a loud crash)--'Now, who did that?--It was Bill, I
+fancy--Who's to go down the chimney?--Nay, I shan't! YOU do it!--That I
+won't, then!--Bill's to go down--Here, Bill! the master says you're to
+go down the chimney!'
+
+'Oh! So Bill's got to come down the chimney, has he?' said Alice to
+herself. 'Shy, they seem to put everything upon Bill! I wouldn't be in
+Bill's place for a good deal: this fireplace is narrow, to be sure; but
+I THINK I can kick a little!'
+
+She drew her foot as far down the chimney as she could, and waited
+till she heard a little animal (she couldn't guess of what sort it was)
+scratching and scrambling about in the chimney close above her: then,
+saying to herself 'This is Bill,' she gave one sharp kick, and waited to
+see what would happen next.
+
+The first thing she heard was a general chorus of 'There goes Bill!'
+then the Rabbit's voice along--'Catch him, you by the hedge!' then
+silence, and then another confusion of voices--'Hold up his head--Brandy
+now--Don't choke him--How was it, old fellow? What happened to you? Tell
+us all about it!'
+
+Last came a little feeble, squeaking voice, ('That's Bill,' thought
+Alice,) 'Well, I hardly know--No more, thank ye; I'm better now--but I'm
+a deal too flustered to tell you--all I know is, something comes at me
+like a Jack-in-the-box, and up I goes like a sky-rocket!'
+
+'So you did, old fellow!' said the others.
+
+'We must burn the house down!' said the Rabbit's voice; and Alice called
+out as loud as she could, 'If you do. I'll set Dinah at you!'
+
+There was a dead silence instantly, and Alice thought to herself, 'I
+wonder what they WILL do next! If they had any sense, they'd take the
+roof off.' After a minute or two, they began moving about again, and
+Alice heard the Rabbit say, 'A barrowful will do, to begin with.'
+
+'A barrowful of WHAT?' thought Alice; but she had not long to doubt,
+for the next moment a shower of little pebbles came rattling in at the
+window, and some of them hit her in the face. 'I'll put a stop to this,'
+she said to herself, and shouted out, 'You'd better not do that again!'
+which produced another dead silence.
+
+Alice noticed with some surprise that the pebbles were all turning into
+little cakes as they lay on the floor, and a bright idea came into her
+head. 'If I eat one of these cakes,' she thought, 'it's sure to make
+SOME change in my size; and as it can't possibly make me larger, it must
+make me smaller, I suppose.'
+
+So she swallowed one of the cakes, and was delighted to find that she
+began shrinking directly. As soon as she was small enough to get through
+the door, she ran out of the house, and found quite a crowd of little
+animals and birds waiting outside. The poor little Lizard, Bill, was
+in the middle, being held up by two guinea-pigs, who were giving it
+something out of a bottle. They all made a rush at Alice the moment she
+appeared; but she ran off as hard as she could, and soon found herself
+safe in a thick wood.
+
+'The first thing I've got to do,' said Alice to herself, as she wandered
+about in the wood, 'is to grow to my right size again; and the second
+thing is to find my way into that lovely garden. I think that will be
+the best plan.'
+
+It sounded an excellent plan, no doubt, and very neatly and simply
+arranged; the only difficulty was, that she had not the smallest idea
+how to set about it; and while she was peering about anxiously among
+the trees, a little sharp bark just over her head made her look up in a
+great hurry.
+
+An enormous puppy was looking down at her with large round eyes, and
+feebly stretching out one paw, trying to touch her. 'Poor little thing!'
+said Alice, in a coaxing tone, and she tried hard to whistle to it; but
+she was terribly frightened all the time at the thought that it might be
+hungry, in which case it would be very likely to eat her up in spite of
+all her coaxing.
+
+Hardly knowing what she did, she picked up a little bit of stick, and
+held it out to the puppy; whereupon the puppy jumped into the air off
+all its feet at once, with a yelp of delight, and rushed at the stick,
+and made believe to worry it; then Alice dodged behind a great thistle,
+to keep herself from being run over; and the moment she appeared on the
+other side, the puppy made another rush at the stick, and tumbled head
+over heels in its hurry to get hold of it; then Alice, thinking it was
+very like having a game of play with a cart-horse, and expecting every
+moment to be trampled under its feet, ran round the thistle again; then
+the puppy began a series of short charges at the stick, running a very
+little way forwards each time and a long way back, and barking hoarsely
+all the while, till at last it sat down a good way off, panting, with
+its tongue hanging out of its mouth, and its great eyes half shut.
+
+This seemed to Alice a good opportunity for making her escape; so she
+set off at once, and ran till she was quite tired and out of breath, and
+till the puppy's bark sounded quite faint in the distance.
+
+'And yet what a dear little puppy it was!' said Alice, as she leant
+against a buttercup to rest herself, and fanned herself with one of the
+leaves: 'I should have liked teaching it tricks very much, if--if I'd
+only been the right size to do it! Oh dear! I'd nearly forgotten that
+I've got to grow up again! Let me see--how IS it to be managed? I
+suppose I ought to eat or drink something or other; but the great
+question is, what?'
+
+The great question certainly was, what? Alice looked all round her at
+the flowers and the blades of grass, but she did not see anything that
+looked like the right thing to eat or drink under the circumstances.
+There was a large mushroom growing near her, about the same height as
+herself; and when she had looked under it, and on both sides of it, and
+behind it, it occurred to her that she might as well look and see what
+was on the top of it.
+
+She stretched herself up on tiptoe, and peeped over the edge of the
+mushroom, and her eyes immediately met those of a large caterpillar,
+that was sitting on the top with its arms folded, quietly smoking a long
+hookah, and taking not the smallest notice of her or of anything else.
+
+
+
+
+CHAPTER V. Advice from a Caterpillar
+
+The Caterpillar and Alice looked at each other for some time in silence:
+at last the Caterpillar took the hookah out of its mouth, and addressed
+her in a languid, sleepy voice.
+
+'Who are YOU?' said the Caterpillar.
+
+This was not an encouraging opening for a conversation. Alice replied,
+rather shyly, 'I--I hardly know, sir, just at present--at least I know
+who I WAS when I got up this morning, but I think I must have been
+changed several times since then.'
+
+'What do you mean by that?' said the Caterpillar sternly. 'Explain
+yourself!'
+
+'I can't explain MYSELF, I'm afraid, sir' said Alice, 'because I'm not
+myself, you see.'
+
+'I don't see,' said the Caterpillar.
+
+'I'm afraid I can't put it more clearly,' Alice replied very politely,
+'for I can't understand it myself to begin with; and being so many
+different sizes in a day is very confusing.'
+
+'It isn't,' said the Caterpillar.
+
+'Well, perhaps you haven't found it so yet,' said Alice; 'but when you
+have to turn into a chrysalis--you will some day, you know--and then
+after that into a butterfly, I should think you'll feel it a little
+queer, won't you?'
+
+'Not a bit,' said the Caterpillar.
+
+'Well, perhaps your feelings may be different,' said Alice; 'all I know
+is, it would feel very queer to ME.'
+
+'You!' said the Caterpillar contemptuously. 'Who are YOU?'
+
+Which brought them back again to the beginning of the conversation.
+Alice felt a little irritated at the Caterpillar's making such VERY
+short remarks, and she drew herself up and said, very gravely, 'I think,
+you ought to tell me who YOU are, first.'
+
+'Why?' said the Caterpillar.
+
+Here was another puzzling question; and as Alice could not think of any
+good reason, and as the Caterpillar seemed to be in a VERY unpleasant
+state of mind, she turned away.
+
+'Come back!' the Caterpillar called after her. 'I've something important
+to say!'
+
+This sounded promising, certainly: Alice turned and came back again.
+
+'Keep your temper,' said the Caterpillar.
+
+'Is that all?' said Alice, swallowing down her anger as well as she
+could.
+
+'No,' said the Caterpillar.
+
+Alice thought she might as well wait, as she had nothing else to do, and
+perhaps after all it might tell her something worth hearing. For some
+minutes it puffed away without speaking, but at last it unfolded its
+arms, took the hookah out of its mouth again, and said, 'So you think
+you're changed, do you?'
+
+'I'm afraid I am, sir,' said Alice; 'I can't remember things as I
+used--and I don't keep the same size for ten minutes together!'
+
+'Can't remember WHAT things?' said the Caterpillar.
+
+'Well, I've tried to say "HOW DOTH THE LITTLE BUSY BEE," but it all came
+different!' Alice replied in a very melancholy voice.
+
+'Repeat, "YOU ARE OLD, FATHER WILLIAM,"' said the Caterpillar.
+
+Alice folded her hands, and began:--
+
+   'You are old, Father William,' the young man said,
+    'And your hair has become very white;
+   And yet you incessantly stand on your head--
+    Do you think, at your age, it is right?'
+
+   'In my youth,' Father William replied to his son,
+    'I feared it might injure the brain;
+   But, now that I'm perfectly sure I have none,
+    Why, I do it again and again.'
+
+   'You are old,' said the youth, 'as I mentioned before,
+    And have grown most uncommonly fat;
+   Yet you turned a back-somersault in at the door--
+    Pray, what is the reason of that?'
+
+   'In my youth,' said the sage, as he shook his grey locks,
+    'I kept all my limbs very supple
+   By the use of this ointment--one shilling the box--
+    Allow me to sell you a couple?'
+
+   'You are old,' said the youth, 'and your jaws are too weak
+    For anything tougher than suet;
+   Yet you finished the goose, with the bones and the beak--
+    Pray how did you manage to do it?'
+
+   'In my youth,' said his father, 'I took to the law,
+    And argued each case with my wife;
+   And the muscular strength, which it gave to my jaw,
+    Has lasted the rest of my life.'
+
+   'You are old,' said the youth, 'one would hardly suppose
+    That your eye was as steady as ever;
+   Yet you balanced an eel on the end of your nose--
+    What made you so awfully clever?'
+
+   'I have answered three questions, and that is enough,'
+    Said his father; 'don't give yourself airs!
+   Do you think I can listen all day to such stuff?
+    Be off, or I'll kick you down stairs!'
+
+
+'That is not said right,' said the Caterpillar.
+
+'Not QUITE right, I'm afraid,' said Alice, timidly; 'some of the words
+have got altered.'
+
+'It is wrong from beginning to end,' said the Caterpillar decidedly, and
+there was silence for some minutes.
+
+The Caterpillar was the first to speak.
+
+'What size do you want to be?' it asked.
+
+'Oh, I'm not particular as to size,' Alice hastily replied; 'only one
+doesn't like changing so often, you know.'
+
+'I DON'T know,' said the Caterpillar.
+
+Alice said nothing: she had never been so much contradicted in her life
+before, and she felt that she was losing her temper.
+
+'Are you content now?' said the Caterpillar.
+
+'Well, I should like to be a LITTLE larger, sir, if you wouldn't mind,'
+said Alice: 'three inches is such a wretched height to be.'
+
+'It is a very good height indeed!' said the Caterpillar angrily, rearing
+itself upright as it spoke (it was exactly three inches high).
+
+'But I'm not used to it!' pleaded poor Alice in a piteous tone. And
+she thought of herself, 'I wish the creatures wouldn't be so easily
+offended!'
+
+'You'll get used to it in time,' said the Caterpillar; and it put the
+hookah into its mouth and began smoking again.
+
+This time Alice waited patiently until it chose to speak again. In
+a minute or two the Caterpillar took the hookah out of its mouth
+and yawned once or twice, and shook itself. Then it got down off the
+mushroom, and crawled away in the grass, merely remarking as it went,
+'One side will make you grow taller, and the other side will make you
+grow shorter.'
+
+'One side of WHAT? The other side of WHAT?' thought Alice to herself.
+
+'Of the mushroom,' said the Caterpillar, just as if she had asked it
+aloud; and in another moment it was out of sight.
+
+Alice remained looking thoughtfully at the mushroom for a minute, trying
+to make out which were the two sides of it; and as it was perfectly
+round, she found this a very difficult question. However, at last she
+stretched her arms round it as far as they would go, and broke off a bit
+of the edge with each hand.
+
+'And now which is which?' she said to herself, and nibbled a little of
+the right-hand bit to try the effect: the next moment she felt a violent
+blow underneath her chin: it had struck her foot!
+
+She was a good deal frightened by this very sudden change, but she felt
+that there was no time to be lost, as she was shrinking rapidly; so she
+set to work at once to eat some of the other bit. Her chin was pressed
+so closely against her foot, that there was hardly room to open her
+mouth; but she did it at last, and managed to swallow a morsel of the
+lefthand bit.
+
+
+  *    *    *    *    *    *    *
+
+    *    *    *    *    *    *
+
+  *    *    *    *    *    *    *
+
+'Come, my head's free at last!' said Alice in a tone of delight, which
+changed into alarm in another moment, when she found that her shoulders
+were nowhere to be found: all she could see, when she looked down, was
+an immense length of neck, which seemed to rise like a stalk out of a
+sea of green leaves that lay far below her.
+
+'What CAN all that green stuff be?' said Alice. 'And where HAVE my
+shoulders got to? And oh, my poor hands, how is it I can't see you?'
+She was moving them about as she spoke, but no result seemed to follow,
+except a little shaking among the distant green leaves.
+
+As there seemed to be no chance of getting her hands up to her head, she
+tried to get her head down to them, and was delighted to find that her
+neck would bend about easily in any direction, like a serpent. She had
+just succeeded in curving it down into a graceful zigzag, and was going
+to dive in among the leaves, which she found to be nothing but the tops
+of the trees under which she had been wandering, when a sharp hiss made
+her draw back in a hurry: a large pigeon had flown into her face, and
+was beating her violently with its wings.
+
+'Serpent!' screamed the Pigeon.
+
+'I'm NOT a serpent!' said Alice indignantly. 'Let me alone!'
+
+'Serpent, I say again!' repeated the Pigeon, but in a more subdued tone,
+and added with a kind of sob, 'I've tried every way, and nothing seems
+to suit them!'
+
+'I haven't the least idea what you're talking about,' said Alice.
+
+'I've tried the roots of trees, and I've tried banks, and I've tried
+hedges,' the Pigeon went on, without attending to her; 'but those
+serpents! There's no pleasing them!'
+
+Alice was more and more puzzled, but she thought there was no use in
+saying anything more till the Pigeon had finished.
+
+'As if it wasn't trouble enough hatching the eggs,' said the Pigeon;
+'but I must be on the look-out for serpents night and day! Why, I
+haven't had a wink of sleep these three weeks!'
+
+'I'm very sorry you've been annoyed,' said Alice, who was beginning to
+see its meaning.
+
+'And just as I'd taken the highest tree in the wood,' continued the
+Pigeon, raising its voice to a shriek, 'and just as I was thinking I
+should be free of them at last, they must needs come wriggling down from
+the sky! Ugh, Serpent!'
+
+'But I'm NOT a serpent, I tell you!' said Alice. 'I'm a--I'm a--'
+
+'Well! WHAT are you?' said the Pigeon. 'I can see you're trying to
+invent something!'
+
+'I--I'm a little girl,' said Alice, rather doubtfully, as she remembered
+the number of changes she had gone through that day.
+
+'A likely story indeed!' said the Pigeon in a tone of the deepest
+contempt. 'I've seen a good many little girls in my time, but never ONE
+with such a neck as that! No, no! You're a serpent; and there's no use
+denying it. I suppose you'll be telling me next that you never tasted an
+egg!'
+
+'I HAVE tasted eggs, certainly,' said Alice, who was a very truthful
+child; 'but little girls eat eggs quite as much as serpents do, you
+know.'
+
+'I don't believe it,' said the Pigeon; 'but if they do, why then they're
+a kind of serpent, that's all I can say.'
+
+This was such a new idea to Alice, that she was quite silent for a
+minute or two, which gave the Pigeon the opportunity of adding, 'You're
+looking for eggs, I know THAT well enough; and what does it matter to me
+whether you're a little girl or a serpent?'
+
+'It matters a good deal to ME,' said Alice hastily; 'but I'm not looking
+for eggs, as it happens; and if I was, I shouldn't want YOURS: I don't
+like them raw.'
+
+'Well, be off, then!' said the Pigeon in a sulky tone, as it settled
+down again into its nest. Alice crouched down among the trees as well as
+she could, for her neck kept getting entangled among the branches, and
+every now and then she had to stop and untwist it. After a while she
+remembered that she still held the pieces of mushroom in her hands, and
+she set to work very carefully, nibbling first at one and then at the
+other, and growing sometimes taller and sometimes shorter, until she had
+succeeded in bringing herself down to her usual height.
+
+It was so long since she had been anything near the right size, that it
+felt quite strange at first; but she got used to it in a few minutes,
+and began talking to herself, as usual. 'Come, there's half my plan done
+now! How puzzling all these changes are! I'm never sure what I'm going
+to be, from one minute to another! However, I've got back to my right
+size: the next thing is, to get into that beautiful garden--how IS that
+to be done, I wonder?' As she said this, she came suddenly upon an open
+place, with a little house in it about four feet high. 'Whoever lives
+there,' thought Alice, 'it'll never do to come upon them THIS size: why,
+I should frighten them out of their wits!' So she began nibbling at the
+righthand bit again, and did not venture to go near the house till she
+had brought herself down to nine inches high.
+
+
+
+
+CHAPTER VI. Pig and Pepper
+
+For a minute or two she stood looking at the house, and wondering what
+to do next, when suddenly a footman in livery came running out of the
+wood--(she considered him to be a footman because he was in livery:
+otherwise, judging by his face only, she would have called him a
+fish)--and rapped loudly at the door with his knuckles. It was opened
+by another footman in livery, with a round face, and large eyes like a
+frog; and both footmen, Alice noticed, had powdered hair that curled all
+over their heads. She felt very curious to know what it was all about,
+and crept a little way out of the wood to listen.
+
+The Fish-Footman began by producing from under his arm a great letter,
+nearly as large as himself, and this he handed over to the other,
+saying, in a solemn tone, 'For the Duchess. An invitation from the Queen
+to play croquet.' The Frog-Footman repeated, in the same solemn tone,
+only changing the order of the words a little, 'From the Queen. An
+invitation for the Duchess to play croquet.'
+
+Then they both bowed low, and their curls got entangled together.
+
+Alice laughed so much at this, that she had to run back into the
+wood for fear of their hearing her; and when she next peeped out the
+Fish-Footman was gone, and the other was sitting on the ground near the
+door, staring stupidly up into the sky.
+
+Alice went timidly up to the door, and knocked.
+
+'There's no sort of use in knocking,' said the Footman, 'and that for
+two reasons. First, because I'm on the same side of the door as you
+are; secondly, because they're making such a noise inside, no one could
+possibly hear you.' And certainly there was a most extraordinary noise
+going on within--a constant howling and sneezing, and every now and then
+a great crash, as if a dish or kettle had been broken to pieces.
+
+'Please, then,' said Alice, 'how am I to get in?'
+
+'There might be some sense in your knocking,' the Footman went on
+without attending to her, 'if we had the door between us. For instance,
+if you were INSIDE, you might knock, and I could let you out, you know.'
+He was looking up into the sky all the time he was speaking, and this
+Alice thought decidedly uncivil. 'But perhaps he can't help it,' she
+said to herself; 'his eyes are so VERY nearly at the top of his head.
+But at any rate he might answer questions.--How am I to get in?' she
+repeated, aloud.
+
+'I shall sit here,' the Footman remarked, 'till tomorrow--'
+
+At this moment the door of the house opened, and a large plate came
+skimming out, straight at the Footman's head: it just grazed his nose,
+and broke to pieces against one of the trees behind him.
+
+'--or next day, maybe,' the Footman continued in the same tone, exactly
+as if nothing had happened.
+
+'How am I to get in?' asked Alice again, in a louder tone.
+
+'ARE you to get in at all?' said the Footman. 'That's the first
+question, you know.'
+
+It was, no doubt: only Alice did not like to be told so. 'It's really
+dreadful,' she muttered to herself, 'the way all the creatures argue.
+It's enough to drive one crazy!'
+
+The Footman seemed to think this a good opportunity for repeating his
+remark, with variations. 'I shall sit here,' he said, 'on and off, for
+days and days.'
+
+'But what am I to do?' said Alice.
+
+'Anything you like,' said the Footman, and began whistling.
+
+'Oh, there's no use in talking to him,' said Alice desperately: 'he's
+perfectly idiotic!' And she opened the door and went in.
+
+The door led right into a large kitchen, which was full of smoke from
+one end to the other: the Duchess was sitting on a three-legged stool in
+the middle, nursing a baby; the cook was leaning over the fire, stirring
+a large cauldron which seemed to be full of soup.
+
+'There's certainly too much pepper in that soup!' Alice said to herself,
+as well as she could for sneezing.
+
+There was certainly too much of it in the air. Even the Duchess
+sneezed occasionally; and as for the baby, it was sneezing and howling
+alternately without a moment's pause. The only things in the kitchen
+that did not sneeze, were the cook, and a large cat which was sitting on
+the hearth and grinning from ear to ear.
+
+'Please would you tell me,' said Alice, a little timidly, for she was
+not quite sure whether it was good manners for her to speak first, 'why
+your cat grins like that?'
+
+'It's a Cheshire cat,' said the Duchess, 'and that's why. Pig!'
+
+She said the last word with such sudden violence that Alice quite
+jumped; but she saw in another moment that it was addressed to the baby,
+and not to her, so she took courage, and went on again:--
+
+'I didn't know that Cheshire cats always grinned; in fact, I didn't know
+that cats COULD grin.'
+
+'They all can,' said the Duchess; 'and most of 'em do.'
+
+'I don't know of any that do,' Alice said very politely, feeling quite
+pleased to have got into a conversation.
+
+'You don't know much,' said the Duchess; 'and that's a fact.'
+
+Alice did not at all like the tone of this remark, and thought it would
+be as well to introduce some other subject of conversation. While she
+was trying to fix on one, the cook took the cauldron of soup off the
+fire, and at once set to work throwing everything within her reach at
+the Duchess and the baby--the fire-irons came first; then followed a
+shower of saucepans, plates, and dishes. The Duchess took no notice of
+them even when they hit her; and the baby was howling so much already,
+that it was quite impossible to say whether the blows hurt it or not.
+
+'Oh, PLEASE mind what you're doing!' cried Alice, jumping up and down in
+an agony of terror. 'Oh, there goes his PRECIOUS nose'; as an unusually
+large saucepan flew close by it, and very nearly carried it off.
+
+'If everybody minded their own business,' the Duchess said in a hoarse
+growl, 'the world would go round a deal faster than it does.'
+
+'Which would NOT be an advantage,' said Alice, who felt very glad to get
+an opportunity of showing off a little of her knowledge. 'Just think of
+what work it would make with the day and night! You see the earth takes
+twenty-four hours to turn round on its axis--'
+
+'Talking of axes,' said the Duchess, 'chop off her head!'
+
+Alice glanced rather anxiously at the cook, to see if she meant to take
+the hint; but the cook was busily stirring the soup, and seemed not to
+be listening, so she went on again: 'Twenty-four hours, I THINK; or is
+it twelve? I--'
+
+'Oh, don't bother ME,' said the Duchess; 'I never could abide figures!'
+And with that she began nursing her child again, singing a sort of
+lullaby to it as she did so, and giving it a violent shake at the end of
+every line:
+
+   'Speak roughly to your little boy,
+    And beat him when he sneezes:
+   He only does it to annoy,
+    Because he knows it teases.'
+
+         CHORUS.
+
+ (In which the cook and the baby joined):--
+
+       'Wow! wow! wow!'
+
+While the Duchess sang the second verse of the song, she kept tossing
+the baby violently up and down, and the poor little thing howled so,
+that Alice could hardly hear the words:--
+
+   'I speak severely to my boy,
+    I beat him when he sneezes;
+   For he can thoroughly enjoy
+    The pepper when he pleases!'
+
+         CHORUS.
+
+       'Wow! wow! wow!'
+
+'Here! you may nurse it a bit, if you like!' the Duchess said to Alice,
+flinging the baby at her as she spoke. 'I must go and get ready to play
+croquet with the Queen,' and she hurried out of the room. The cook threw
+a frying-pan after her as she went out, but it just missed her.
+
+Alice caught the baby with some difficulty, as it was a queer-shaped
+little creature, and held out its arms and legs in all directions, 'just
+like a star-fish,' thought Alice. The poor little thing was snorting
+like a steam-engine when she caught it, and kept doubling itself up and
+straightening itself out again, so that altogether, for the first minute
+or two, it was as much as she could do to hold it.
+
+As soon as she had made out the proper way of nursing it, (which was to
+twist it up into a sort of knot, and then keep tight hold of its right
+ear and left foot, so as to prevent its undoing itself,) she carried
+it out into the open air. 'IF I don't take this child away with me,'
+thought Alice, 'they're sure to kill it in a day or two: wouldn't it be
+murder to leave it behind?' She said the last words out loud, and the
+little thing grunted in reply (it had left off sneezing by this time).
+'Don't grunt,' said Alice; 'that's not at all a proper way of expressing
+yourself.'
+
+The baby grunted again, and Alice looked very anxiously into its face to
+see what was the matter with it. There could be no doubt that it had
+a VERY turn-up nose, much more like a snout than a real nose; also its
+eyes were getting extremely small for a baby: altogether Alice did not
+like the look of the thing at all. 'But perhaps it was only sobbing,'
+she thought, and looked into its eyes again, to see if there were any
+tears.
+
+No, there were no tears. 'If you're going to turn into a pig, my dear,'
+said Alice, seriously, 'I'll have nothing more to do with you. Mind
+now!' The poor little thing sobbed again (or grunted, it was impossible
+to say which), and they went on for some while in silence.
+
+Alice was just beginning to think to herself, 'Now, what am I to do with
+this creature when I get it home?' when it grunted again, so violently,
+that she looked down into its face in some alarm. This time there could
+be NO mistake about it: it was neither more nor less than a pig, and she
+felt that it would be quite absurd for her to carry it further.
+
+So she set the little creature down, and felt quite relieved to see
+it trot away quietly into the wood. 'If it had grown up,' she said
+to herself, 'it would have made a dreadfully ugly child: but it makes
+rather a handsome pig, I think.' And she began thinking over other
+children she knew, who might do very well as pigs, and was just saying
+to herself, 'if one only knew the right way to change them--' when she
+was a little startled by seeing the Cheshire Cat sitting on a bough of a
+tree a few yards off.
+
+The Cat only grinned when it saw Alice. It looked good-natured, she
+thought: still it had VERY long claws and a great many teeth, so she
+felt that it ought to be treated with respect.
+
+'Cheshire Puss,' she began, rather timidly, as she did not at all know
+whether it would like the name: however, it only grinned a little wider.
+'Come, it's pleased so far,' thought Alice, and she went on. 'Would you
+tell me, please, which way I ought to go from here?'
+
+'That depends a good deal on where you want to get to,' said the Cat.
+
+'I don't much care where--' said Alice.
+
+'Then it doesn't matter which way you go,' said the Cat.
+
+'--so long as I get SOMEWHERE,' Alice added as an explanation.
+
+'Oh, you're sure to do that,' said the Cat, 'if you only walk long
+enough.'
+
+Alice felt that this could not be denied, so she tried another question.
+'What sort of people live about here?'
+
+'In THAT direction,' the Cat said, waving its right paw round, 'lives
+a Hatter: and in THAT direction,' waving the other paw, 'lives a March
+Hare. Visit either you like: they're both mad.'
+
+'But I don't want to go among mad people,' Alice remarked.
+
+'Oh, you can't help that,' said the Cat: 'we're all mad here. I'm mad.
+You're mad.'
+
+'How do you know I'm mad?' said Alice.
+
+'You must be,' said the Cat, 'or you wouldn't have come here.'
+
+Alice didn't think that proved it at all; however, she went on 'And how
+do you know that you're mad?'
+
+'To begin with,' said the Cat, 'a dog's not mad. You grant that?'
+
+'I suppose so,' said Alice.
+
+'Well, then,' the Cat went on, 'you see, a dog growls when it's angry,
+and wags its tail when it's pleased. Now I growl when I'm pleased, and
+wag my tail when I'm angry. Therefore I'm mad.'
+
+'I call it purring, not growling,' said Alice.
+
+'Call it what you like,' said the Cat. 'Do you play croquet with the
+Queen to-day?'
+
+'I should like it very much,' said Alice, 'but I haven't been invited
+yet.'
+
+'You'll see me there,' said the Cat, and vanished.
+
+Alice was not much surprised at this, she was getting so used to queer
+things happening. While she was looking at the place where it had been,
+it suddenly appeared again.
+
+'By-the-bye, what became of the baby?' said the Cat. 'I'd nearly
+forgotten to ask.'
+
+'It turned into a pig,' Alice quietly said, just as if it had come back
+in a natural way.
+
+'I thought it would,' said the Cat, and vanished again.
+
+Alice waited a little, half expecting to see it again, but it did not
+appear, and after a minute or two she walked on in the direction in
+which the March Hare was said to live. 'I've seen hatters before,' she
+said to herself; 'the March Hare will be much the most interesting, and
+perhaps as this is May it won't be raving mad--at least not so mad as
+it was in March.' As she said this, she looked up, and there was the Cat
+again, sitting on a branch of a tree.
+
+'Did you say pig, or fig?' said the Cat.
+
+'I said pig,' replied Alice; 'and I wish you wouldn't keep appearing and
+vanishing so suddenly: you make one quite giddy.'
+
+'All right,' said the Cat; and this time it vanished quite slowly,
+beginning with the end of the tail, and ending with the grin, which
+remained some time after the rest of it had gone.
+
+'Well! I've often seen a cat without a grin,' thought Alice; 'but a grin
+without a cat! It's the most curious thing I ever saw in my life!'
+
+She had not gone much farther before she came in sight of the house
+of the March Hare: she thought it must be the right house, because the
+chimneys were shaped like ears and the roof was thatched with fur. It
+was so large a house, that she did not like to go nearer till she had
+nibbled some more of the lefthand bit of mushroom, and raised herself to
+about two feet high: even then she walked up towards it rather timidly,
+saying to herself 'Suppose it should be raving mad after all! I almost
+wish I'd gone to see the Hatter instead!'
+
+
+
+
+CHAPTER VII. A Mad Tea-Party
+
+There was a table set out under a tree in front of the house, and the
+March Hare and the Hatter were having tea at it: a Dormouse was sitting
+between them, fast asleep, and the other two were using it as a
+cushion, resting their elbows on it, and talking over its head. 'Very
+uncomfortable for the Dormouse,' thought Alice; 'only, as it's asleep, I
+suppose it doesn't mind.'
+
+The table was a large one, but the three were all crowded together at
+one corner of it: 'No room! No room!' they cried out when they saw Alice
+coming. 'There's PLENTY of room!' said Alice indignantly, and she sat
+down in a large arm-chair at one end of the table.
+
+'Have some wine,' the March Hare said in an encouraging tone.
+
+Alice looked all round the table, but there was nothing on it but tea.
+'I don't see any wine,' she remarked.
+
+'There isn't any,' said the March Hare.
+
+'Then it wasn't very civil of you to offer it,' said Alice angrily.
+
+'It wasn't very civil of you to sit down without being invited,' said
+the March Hare.
+
+'I didn't know it was YOUR table,' said Alice; 'it's laid for a great
+many more than three.'
+
+'Your hair wants cutting,' said the Hatter. He had been looking at Alice
+for some time with great curiosity, and this was his first speech.
+
+'You should learn not to make personal remarks,' Alice said with some
+severity; 'it's very rude.'
+
+The Hatter opened his eyes very wide on hearing this; but all he SAID
+was, 'Why is a raven like a writing-desk?'
+
+'Come, we shall have some fun now!' thought Alice. 'I'm glad they've
+begun asking riddles.--I believe I can guess that,' she added aloud.
+
+'Do you mean that you think you can find out the answer to it?' said the
+March Hare.
+
+'Exactly so,' said Alice.
+
+'Then you should say what you mean,' the March Hare went on.
+
+'I do,' Alice hastily replied; 'at least--at least I mean what I
+say--that's the same thing, you know.'
+
+'Not the same thing a bit!' said the Hatter. 'You might just as well say
+that "I see what I eat" is the same thing as "I eat what I see"!'
+
+'You might just as well say,' added the March Hare, 'that "I like what I
+get" is the same thing as "I get what I like"!'
+
+'You might just as well say,' added the Dormouse, who seemed to be
+talking in his sleep, 'that "I breathe when I sleep" is the same thing
+as "I sleep when I breathe"!'
+
+'It IS the same thing with you,' said the Hatter, and here the
+conversation dropped, and the party sat silent for a minute, while Alice
+thought over all she could remember about ravens and writing-desks,
+which wasn't much.
+
+The Hatter was the first to break the silence. 'What day of the month
+is it?' he said, turning to Alice: he had taken his watch out of his
+pocket, and was looking at it uneasily, shaking it every now and then,
+and holding it to his ear.
+
+Alice considered a little, and then said 'The fourth.'
+
+'Two days wrong!' sighed the Hatter. 'I told you butter wouldn't suit
+the works!' he added looking angrily at the March Hare.
+
+'It was the BEST butter,' the March Hare meekly replied.
+
+'Yes, but some crumbs must have got in as well,' the Hatter grumbled:
+'you shouldn't have put it in with the bread-knife.'
+
+The March Hare took the watch and looked at it gloomily: then he dipped
+it into his cup of tea, and looked at it again: but he could think of
+nothing better to say than his first remark, 'It was the BEST butter,
+you know.'
+
+Alice had been looking over his shoulder with some curiosity. 'What a
+funny watch!' she remarked. 'It tells the day of the month, and doesn't
+tell what o'clock it is!'
+
+'Why should it?' muttered the Hatter. 'Does YOUR watch tell you what
+year it is?'
+
+'Of course not,' Alice replied very readily: 'but that's because it
+stays the same year for such a long time together.'
+
+'Which is just the case with MINE,' said the Hatter.
+
+Alice felt dreadfully puzzled. The Hatter's remark seemed to have no
+sort of meaning in it, and yet it was certainly English. 'I don't quite
+understand you,' she said, as politely as she could.
+
+'The Dormouse is asleep again,' said the Hatter, and he poured a little
+hot tea upon its nose.
+
+The Dormouse shook its head impatiently, and said, without opening its
+eyes, 'Of course, of course; just what I was going to remark myself.'
+
+'Have you guessed the riddle yet?' the Hatter said, turning to Alice
+again.
+
+'No, I give it up,' Alice replied: 'what's the answer?'
+
+'I haven't the slightest idea,' said the Hatter.
+
+'Nor I,' said the March Hare.
+
+Alice sighed wearily. 'I think you might do something better with the
+time,' she said, 'than waste it in asking riddles that have no answers.'
+
+'If you knew Time as well as I do,' said the Hatter, 'you wouldn't talk
+about wasting IT. It's HIM.'
+
+'I don't know what you mean,' said Alice.
+
+'Of course you don't!' the Hatter said, tossing his head contemptuously.
+'I dare say you never even spoke to Time!'
+
+'Perhaps not,' Alice cautiously replied: 'but I know I have to beat time
+when I learn music.'
+
+'Ah! that accounts for it,' said the Hatter. 'He won't stand beating.
+Now, if you only kept on good terms with him, he'd do almost anything
+you liked with the clock. For instance, suppose it were nine o'clock in
+the morning, just time to begin lessons: you'd only have to whisper a
+hint to Time, and round goes the clock in a twinkling! Half-past one,
+time for dinner!'
+
+('I only wish it was,' the March Hare said to itself in a whisper.)
+
+'That would be grand, certainly,' said Alice thoughtfully: 'but then--I
+shouldn't be hungry for it, you know.'
+
+'Not at first, perhaps,' said the Hatter: 'but you could keep it to
+half-past one as long as you liked.'
+
+'Is that the way YOU manage?' Alice asked.
+
+The Hatter shook his head mournfully. 'Not I!' he replied. 'We
+quarrelled last March--just before HE went mad, you know--' (pointing
+with his tea spoon at the March Hare,) '--it was at the great concert
+given by the Queen of Hearts, and I had to sing
+
+     "Twinkle, twinkle, little bat!
+     How I wonder what you're at!"
+
+You know the song, perhaps?'
+
+'I've heard something like it,' said Alice.
+
+'It goes on, you know,' the Hatter continued, 'in this way:--
+
+     "Up above the world you fly,
+     Like a tea-tray in the sky.
+         Twinkle, twinkle--"'
+
+Here the Dormouse shook itself, and began singing in its sleep 'Twinkle,
+twinkle, twinkle, twinkle--' and went on so long that they had to pinch
+it to make it stop.
+
+'Well, I'd hardly finished the first verse,' said the Hatter, 'when the
+Queen jumped up and bawled out, "He's murdering the time! Off with his
+head!"'
+
+'How dreadfully savage!' exclaimed Alice.
+
+'And ever since that,' the Hatter went on in a mournful tone, 'he won't
+do a thing I ask! It's always six o'clock now.'
+
+A bright idea came into Alice's head. 'Is that the reason so many
+tea-things are put out here?' she asked.
+
+'Yes, that's it,' said the Hatter with a sigh: 'it's always tea-time,
+and we've no time to wash the things between whiles.'
+
+'Then you keep moving round, I suppose?' said Alice.
+
+'Exactly so,' said the Hatter: 'as the things get used up.'
+
+'But what happens when you come to the beginning again?' Alice ventured
+to ask.
+
+'Suppose we change the subject,' the March Hare interrupted, yawning.
+'I'm getting tired of this. I vote the young lady tells us a story.'
+
+'I'm afraid I don't know one,' said Alice, rather alarmed at the
+proposal.
+
+'Then the Dormouse shall!' they both cried. 'Wake up, Dormouse!' And
+they pinched it on both sides at once.
+
+The Dormouse slowly opened his eyes. 'I wasn't asleep,' he said in a
+hoarse, feeble voice: 'I heard every word you fellows were saying.'
+
+'Tell us a story!' said the March Hare.
+
+'Yes, please do!' pleaded Alice.
+
+'And be quick about it,' added the Hatter, 'or you'll be asleep again
+before it's done.'
+
+'Once upon a time there were three little sisters,' the Dormouse began
+in a great hurry; 'and their names were Elsie, Lacie, and Tillie; and
+they lived at the bottom of a well--'
+
+'What did they live on?' said Alice, who always took a great interest in
+questions of eating and drinking.
+
+'They lived on treacle,' said the Dormouse, after thinking a minute or
+two.
+
+'They couldn't have done that, you know,' Alice gently remarked; 'they'd
+have been ill.'
+
+'So they were,' said the Dormouse; 'VERY ill.'
+
+Alice tried to fancy to herself what such an extraordinary ways of
+living would be like, but it puzzled her too much, so she went on: 'But
+why did they live at the bottom of a well?'
+
+'Take some more tea,' the March Hare said to Alice, very earnestly.
+
+'I've had nothing yet,' Alice replied in an offended tone, 'so I can't
+take more.'
+
+'You mean you can't take LESS,' said the Hatter: 'it's very easy to take
+MORE than nothing.'
+
+'Nobody asked YOUR opinion,' said Alice.
+
+'Who's making personal remarks now?' the Hatter asked triumphantly.
+
+Alice did not quite know what to say to this: so she helped herself
+to some tea and bread-and-butter, and then turned to the Dormouse, and
+repeated her question. 'Why did they live at the bottom of a well?'
+
+The Dormouse again took a minute or two to think about it, and then
+said, 'It was a treacle-well.'
+
+'There's no such thing!' Alice was beginning very angrily, but the
+Hatter and the March Hare went 'Sh! sh!' and the Dormouse sulkily
+remarked, 'If you can't be civil, you'd better finish the story for
+yourself.'
+
+'No, please go on!' Alice said very humbly; 'I won't interrupt again. I
+dare say there may be ONE.'
+
+'One, indeed!' said the Dormouse indignantly. However, he consented to
+go on. 'And so these three little sisters--they were learning to draw,
+you know--'
+
+'What did they draw?' said Alice, quite forgetting her promise.
+
+'Treacle,' said the Dormouse, without considering at all this time.
+
+'I want a clean cup,' interrupted the Hatter: 'let's all move one place
+on.'
+
+He moved on as he spoke, and the Dormouse followed him: the March Hare
+moved into the Dormouse's place, and Alice rather unwillingly took
+the place of the March Hare. The Hatter was the only one who got any
+advantage from the change: and Alice was a good deal worse off than
+before, as the March Hare had just upset the milk-jug into his plate.
+
+Alice did not wish to offend the Dormouse again, so she began very
+cautiously: 'But I don't understand. Where did they draw the treacle
+from?'
+
+'You can draw water out of a water-well,' said the Hatter; 'so I should
+think you could draw treacle out of a treacle-well--eh, stupid?'
+
+'But they were IN the well,' Alice said to the Dormouse, not choosing to
+notice this last remark.
+
+'Of course they were', said the Dormouse; '--well in.'
+
+This answer so confused poor Alice, that she let the Dormouse go on for
+some time without interrupting it.
+
+'They were learning to draw,' the Dormouse went on, yawning and rubbing
+its eyes, for it was getting very sleepy; 'and they drew all manner of
+things--everything that begins with an M--'
+
+'Why with an M?' said Alice.
+
+'Why not?' said the March Hare.
+
+Alice was silent.
+
+The Dormouse had closed its eyes by this time, and was going off into
+a doze; but, on being pinched by the Hatter, it woke up again with
+a little shriek, and went on: '--that begins with an M, such as
+mouse-traps, and the moon, and memory, and muchness--you know you say
+things are "much of a muchness"--did you ever see such a thing as a
+drawing of a muchness?'
+
+'Really, now you ask me,' said Alice, very much confused, 'I don't
+think--'
+
+'Then you shouldn't talk,' said the Hatter.
+
+This piece of rudeness was more than Alice could bear: she got up in
+great disgust, and walked off; the Dormouse fell asleep instantly, and
+neither of the others took the least notice of her going, though she
+looked back once or twice, half hoping that they would call after her:
+the last time she saw them, they were trying to put the Dormouse into
+the teapot.
+
+'At any rate I'll never go THERE again!' said Alice as she picked her
+way through the wood. 'It's the stupidest tea-party I ever was at in all
+my life!'
+
+Just as she said this, she noticed that one of the trees had a door
+leading right into it. 'That's very curious!' she thought. 'But
+everything's curious today. I think I may as well go in at once.' And in
+she went.
+
+Once more she found herself in the long hall, and close to the little
+glass table. 'Now, I'll manage better this time,' she said to herself,
+and began by taking the little golden key, and unlocking the door that
+led into the garden. Then she went to work nibbling at the mushroom (she
+had kept a piece of it in her pocket) till she was about a foot high:
+then she walked down the little passage: and THEN--she found herself at
+last in the beautiful garden, among the bright flower-beds and the cool
+fountains.
+
+
+
+
+CHAPTER VIII. The Queen's Croquet-Ground
+
+A large rose-tree stood near the entrance of the garden: the roses
+growing on it were white, but there were three gardeners at it, busily
+painting them red. Alice thought this a very curious thing, and she went
+nearer to watch them, and just as she came up to them she heard one of
+them say, 'Look out now, Five! Don't go splashing paint over me like
+that!'
+
+'I couldn't help it,' said Five, in a sulky tone; 'Seven jogged my
+elbow.'
+
+On which Seven looked up and said, 'That's right, Five! Always lay the
+blame on others!'
+
+'YOU'D better not talk!' said Five. 'I heard the Queen say only
+yesterday you deserved to be beheaded!'
+
+'What for?' said the one who had spoken first.
+
+'That's none of YOUR business, Two!' said Seven.
+
+'Yes, it IS his business!' said Five, 'and I'll tell him--it was for
+bringing the cook tulip-roots instead of onions.'
+
+Seven flung down his brush, and had just begun 'Well, of all the unjust
+things--' when his eye chanced to fall upon Alice, as she stood watching
+them, and he checked himself suddenly: the others looked round also, and
+all of them bowed low.
+
+'Would you tell me,' said Alice, a little timidly, 'why you are painting
+those roses?'
+
+Five and Seven said nothing, but looked at Two. Two began in a low
+voice, 'Why the fact is, you see, Miss, this here ought to have been a
+RED rose-tree, and we put a white one in by mistake; and if the Queen
+was to find it out, we should all have our heads cut off, you know.
+So you see, Miss, we're doing our best, afore she comes, to--' At this
+moment Five, who had been anxiously looking across the garden, called
+out 'The Queen! The Queen!' and the three gardeners instantly threw
+themselves flat upon their faces. There was a 

<TRUNCATED>

[30/50] [abbrv] incubator-ignite git commit: ignite-1 cleanup

Posted by se...@apache.org.
ignite-1 cleanup


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

Branch: refs/heads/ignite-132
Commit: 0ab8a275aec136c952a8dffaf4bdd3dc48b58d55
Parents: 61a70d9
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Tue Feb 3 00:22:54 2015 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Tue Feb 3 00:22:54 2015 +0300

----------------------------------------------------------------------
 .gitignore                                      |  1 -
 config/fabric/default-config.xml                |  2 +-
 config/ignite-log4j.xml                         | 27 +++-----------------
 config/java.util.logging.properties             |  6 ++---
 ipc/shmem/readme.txt                            |  2 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |  2 +-
 modules/clients/src/test/resources/log4j.xml    |  2 +-
 .../apache/ignite/IgniteBasicWarmupClosure.java |  2 +-
 .../apache/ignite/cache/CacheConfiguration.java | 24 ++++++++---------
 .../org/apache/ignite/cache/CacheEntry.java     |  2 +-
 .../apache/ignite/cache/CacheProjection.java    | 10 ++++----
 .../cache/CacheWriteSynchronizationMode.java    | 10 ++++----
 .../configuration/IgniteConfiguration.java      |  2 +-
 .../ignite/internal/util/IgniteUtils.java       |  4 +--
 .../main/java/org/apache/ignite/package.html    |  2 +-
 modules/core/src/test/config/example-cache.xml  |  8 +++---
 modules/core/src/test/config/ggfs-loopback.xml  |  8 +++---
 17 files changed, 47 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 0b871a5..4765c8f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,7 +10,6 @@ xcuserdata/
 /bamboo/junit*.properties
 *.suo
 *.csproj.user
-gridgain*.jar
 *.o
 *.lo
 *.obj

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/config/fabric/default-config.xml
----------------------------------------------------------------------
diff --git a/config/fabric/default-config.xml b/config/fabric/default-config.xml
index 28ef291..90bc72f 100644
--- a/config/fabric/default-config.xml
+++ b/config/fabric/default-config.xml
@@ -23,7 +23,7 @@
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
     <!--
-        Configuration below demonstrates how to setup a GridGain node with three
+        Configuration below demonstrates how to setup a Ignite node with three
         preconfigured caches.
 
         If you need to add streaming functionality, add your streamers

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/config/ignite-log4j.xml
----------------------------------------------------------------------
diff --git a/config/ignite-log4j.xml b/config/ignite-log4j.xml
index 3f171bf..f9a378d 100644
--- a/config/ignite-log4j.xml
+++ b/config/ignite-log4j.xml
@@ -21,7 +21,7 @@
     "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
 
 <!--
-    Default log4j configuration for GridGain.
+    Default log4j configuration for Ignite.
 -->
 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
     <!--
@@ -67,7 +67,7 @@
         Logs all output to specified file.
         By default, the logging goes to IGNITE_HOME/work/log folder
     -->
-    <appender name="FILE" class="org.gridgain.grid.logger.log4j.GridLog4jRollingFileAppender">
+    <appender name="FILE" class="org.apache.ignite.logger.log4j.IgniteLog4jFileAppender">
         <param name="Threshold" value="DEBUG"/>
         <param name="File" value="${IGNITE_HOME}/work/log/ignite.log"/>
         <param name="Append" value="true"/>
@@ -79,26 +79,7 @@
     </appender>
 
     <!--
-    <category name="org.gridgain">
-        <level value="DEBUG"/>
-    </category>
-    -->
-
-    <!--
-        Uncomment this category to enable cache
-        query execution tracing.
-    -->
-    <!--
-    <category name="org.gridgain.cache.queries">
-        <level value="DEBUG"/>
-    </category>
-    -->
-
-    <!--
-        Uncomment to enable DGC tracing.
-    -->
-    <!--
-    <category name="org.gridgain.grid.kernal.processors.cache.GridCacheDgcManager.trace">
+    <category name="org.apache.ignite">
         <level value="DEBUG"/>
     </category>
     -->
@@ -108,7 +89,7 @@
         consistency warnings.
     -->
     <!--
-    <category name="org.gridgain.grid.CourtesyConfigNotice">
+    <category name="org.apache.ignite.CourtesyConfigNotice">
         <level value="OFF"/>
     </category>
     -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/config/java.util.logging.properties
----------------------------------------------------------------------
diff --git a/config/java.util.logging.properties b/config/java.util.logging.properties
index f30e028..dfabf10 100644
--- a/config/java.util.logging.properties
+++ b/config/java.util.logging.properties
@@ -41,9 +41,9 @@ handlers=java.util.logging.ConsoleHandler, org.apache.ignite.logger.java.IgniteJ
 .level=INFO
 
 #
-# Uncomment to allow debug messages for entire GridGain package.
+# Uncomment to allow debug messages for entire Ignite package.
 #
-#org.gridgain.level=FINE
+#org.apache.ignite.level=FINE
 
 #
 # Uncomment this line to enable cache query execution tracing.
@@ -54,7 +54,7 @@ handlers=java.util.logging.ConsoleHandler, org.apache.ignite.logger.java.IgniteJ
 # Uncomment to disable courtesy notices, such as SPI configuration
 # consistency warnings.
 #
-#org.gridgain.grid.CourtesyConfigNotice.level=OFF
+#org.apache.ignite.CourtesyConfigNotice.level=OFF
 
 #
 # Console handler logs all messages with importance level `INFO` and above

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/ipc/shmem/readme.txt
----------------------------------------------------------------------
diff --git a/ipc/shmem/readme.txt b/ipc/shmem/readme.txt
index d4db015..09f3f7e 100644
--- a/ipc/shmem/readme.txt
+++ b/ipc/shmem/readme.txt
@@ -26,7 +26,7 @@ Usage with Apache Ignite
 -------------------
 
 Copy compiled library to folder that already listed in 'java.library.path'
-with name in form: 'libigniteshmem-<gridgain-version>.<extention>'.
+with name in form: 'libigniteshmem-<ignite-version>.<extention>'.
 Note: Grid should be restarted.
 
 **************************************************************************************

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/aws/src/main/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpi.java
----------------------------------------------------------------------
diff --git a/modules/aws/src/main/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpi.java b/modules/aws/src/main/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpi.java
index 5a977a1..1b59fb6 100644
--- a/modules/aws/src/main/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpi.java
+++ b/modules/aws/src/main/java/org/apache/ignite/spi/checkpoint/s3/S3CheckpointSpi.java
@@ -116,7 +116,7 @@ public class S3CheckpointSpi extends IgniteSpiAdapter implements CheckpointSpi,
     private CheckpointListener lsnr;
 
     /** Prefix to use in bucket name generation. */
-    public static final String BUCKET_NAME_PREFIX = "gridgain-checkpoint-";
+    public static final String BUCKET_NAME_PREFIX = "ignite-checkpoint-";
 
     /** Suffix to use in bucket name generation. */
     public static final String DFLT_BUCKET_NAME_SUFFIX = "default-bucket";

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/clients/src/test/resources/log4j.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/log4j.xml b/modules/clients/src/test/resources/log4j.xml
index 68ea393..5f4f4a3 100644
--- a/modules/clients/src/test/resources/log4j.xml
+++ b/modules/clients/src/test/resources/log4j.xml
@@ -111,7 +111,7 @@
         Uncomment to disable courtesy notice.
     -->
     <!--
-    <category name="org.gridgain.grid.CourtesyConfigNotice">
+    <category name="org.apache.ignite.CourtesyConfigNotice">
         <level value="OFF"/>
     </category>
     -->

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/main/java/org/apache/ignite/IgniteBasicWarmupClosure.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteBasicWarmupClosure.java b/modules/core/src/main/java/org/apache/ignite/IgniteBasicWarmupClosure.java
index a4278ce..5a3dca9 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteBasicWarmupClosure.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteBasicWarmupClosure.java
@@ -210,7 +210,7 @@ public class IgniteBasicWarmupClosure implements IgniteInClosure<IgniteConfigura
 
                 cfg0.setGridLogger(new IgniteNullLogger());
 
-                cfg0.setGridName("gridgain-warmup-grid-" + i);
+                cfg0.setGridName("ignite-warmup-grid-" + i);
 
                 ignites.add(Ignition.start(cfg0));
             }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
index d5edb86..4b3cb1c 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheConfiguration.java
@@ -749,7 +749,7 @@ public class CacheConfiguration extends MutableConfiguration {
      * {@link CacheEntry#timeToLive()} value and should not be confused with entry
      * evictions based on configured {@link org.apache.ignite.cache.eviction.CacheEvictionPolicy}.
      *
-     * @return Flag indicating whether GridGain will eagerly remove expired entries.
+     * @return Flag indicating whether Ignite will eagerly remove expired entries.
      */
     public boolean isEagerTtl() {
         return eagerTtl;
@@ -758,7 +758,7 @@ public class CacheConfiguration extends MutableConfiguration {
     /**
      * Sets eager ttl flag.
      *
-     * @param eagerTtl {@code True} if GridGain should eagerly remove expired cache entries.
+     * @param eagerTtl {@code True} if Ignite should eagerly remove expired cache entries.
      * @see #isEagerTtl()
      */
     public void setEagerTtl(boolean eagerTtl) {
@@ -1131,7 +1131,7 @@ public class CacheConfiguration extends MutableConfiguration {
     }
 
     /**
-     * Flag indicating whether GridGain should use swap storage by default. By default
+     * Flag indicating whether Ignite should use swap storage by default. By default
      * swap is disabled which is defined via {@link #DFLT_SWAP_ENABLED} constant.
      * <p>
      * Note that this flag may be overridden for cache projection created with flag
@@ -1179,7 +1179,7 @@ public class CacheConfiguration extends MutableConfiguration {
     }
 
     /**
-     * Flag indicating whether GridGain should attempt to index value and/or key instances
+     * Flag indicating whether Ignite should attempt to index value and/or key instances
      * stored in cache. If this property is {@code false}, then all indexing annotations
      * inside of any class will be ignored. By default query indexing is disabled and
      * defined via {@link #DFLT_QUERY_INDEX_ENABLED} constant.
@@ -1201,7 +1201,7 @@ public class CacheConfiguration extends MutableConfiguration {
     }
 
     /**
-     * Flag indicating whether GridGain should use write-behind behaviour for the cache store.
+     * Flag indicating whether Ignite should use write-behind behaviour for the cache store.
      * By default write-behind is disabled which is defined via {@link #DFLT_WRITE_BEHIND_ENABLED}
      * constant.
      *
@@ -1541,7 +1541,7 @@ public class CacheConfiguration extends MutableConfiguration {
      * <ul>
      * <li>{@code -1} - Means that off-heap storage is disabled.</li>
      * <li>
-     *     {@code 0} - GridGain will not limit off-heap storage (it's up to user to properly
+     *     {@code 0} - Ignite will not limit off-heap storage (it's up to user to properly
      *     add and remove entries from cache to ensure that off-heap storage does not grow
      *     indefinitely.
      * </li>
@@ -1552,10 +1552,10 @@ public class CacheConfiguration extends MutableConfiguration {
      * <p>
      * Use off-heap storage to load gigabytes of data in memory without slowing down
      * Garbage Collection. Essentially in this case you should allocate very small amount
-     * of memory to JVM and GridGain will cache most of the data in off-heap space
+     * of memory to JVM and Ignite will cache most of the data in off-heap space
      * without affecting JVM performance at all.
      * <p>
-     * Note that GridGain will throw an exception if max memory is set to {@code -1} and
+     * Note that Ignite will throw an exception if max memory is set to {@code -1} and
      * {@code offHeapValuesOnly} flag is set to {@code true}.
      *
      * @return Maximum memory in bytes available to off-heap memory space.
@@ -1566,12 +1566,12 @@ public class CacheConfiguration extends MutableConfiguration {
 
     /**
      * Sets maximum amount of memory available to off-heap storage. Possible values are <ul> <li>{@code -1} - Means that
-     * off-heap storage is disabled.</li> <li> {@code 0} - GridGain will not limit off-heap storage (it's up to user to
+     * off-heap storage is disabled.</li> <li> {@code 0} - Ignite will not limit off-heap storage (it's up to user to
      * properly add and remove entries from cache to ensure that off-heap storage does not grow infinitely. </li>
      * <li>Any positive value specifies the limit of off-heap storage in bytes.</li> </ul> Default value is {@code -1},
      * specified by {@link #DFLT_OFFHEAP_MEMORY} constant which means that off-heap storage is disabled by default. <p>
      * Use off-heap storage to load gigabytes of data in memory without slowing down Garbage Collection. Essentially in
-     * this case you should allocate very small amount of memory to JVM and GridGain will cache most of the data in
+     * this case you should allocate very small amount of memory to JVM and Ignite will cache most of the data in
      * off-heap space without affecting JVM performance at all.
      *
      * @param offHeapMaxMem Maximum memory in bytes available to off-heap memory space.
@@ -1696,7 +1696,7 @@ public class CacheConfiguration extends MutableConfiguration {
     }
 
     /**
-     * Flag indicating whether GridGain should store portable keys and values
+     * Flag indicating whether Ignite should store portable keys and values
      * as instances of {@link PortableObject}.
      *
      * @return Portable enabled flag.
@@ -1721,7 +1721,7 @@ public class CacheConfiguration extends MutableConfiguration {
      * flag is {@code true}). Default value of this flag is {@code true},
      * because this is recommended behavior from performance standpoint.
      * <p>
-     * If set to {@code false}, GridGain will deserialize keys and
+     * If set to {@code false}, Ignite will deserialize keys and
      * values stored in portable format before they are passed
      * to cache store.
      * <p>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java
index 4211b9b..8033236 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheEntry.java
@@ -540,7 +540,7 @@ public interface CacheEntry<K, V> extends Map.Entry<K, V>, javax.cache.Cache.Ent
     public boolean isCached();
 
     /**
-     * Gets size of serialized key and value in addition to any overhead added by {@code GridGain} itself.
+     * Gets size of serialized key and value in addition to any overhead added by {@code Ignite} itself.
      *
      * @return size in bytes.
      * @throws IgniteCheckedException If failed to evaluate entry size.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/main/java/org/apache/ignite/cache/CacheProjection.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheProjection.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheProjection.java
index 2457fcd..b6df398 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheProjection.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheProjection.java
@@ -127,7 +127,7 @@ import java.util.concurrent.*;
  * state of transaction. See {@link IgniteTx} documentation for more information
  * about transactions.
  * <h1 class="header">Group Locking</h1>
- * <i>Group Locking</i> is a feature where instead of acquiring individual locks, GridGain will lock
+ * <i>Group Locking</i> is a feature where instead of acquiring individual locks, Ignite will lock
  * multiple keys with one lock to save on locking overhead. There are 2 types of <i>Group Locking</i>:
  * <i>affinity-based</i>, and <i>partitioned-based</i>.
  * <p>
@@ -156,12 +156,12 @@ import java.util.concurrent.*;
  * all entries will be removed. This behavior is useful during development, but should not be
  * used in production.
  * <h1 class="header">Portable Objects</h1>
- * If an object is defined as portable GridGain cache will automatically store it in portable (i.e. binary)
+ * If an object is defined as portable Ignite cache will automatically store it in portable (i.e. binary)
  * format. User can choose to work either with the portable format or with the deserialized form (assuming
  * that class definitions are present in the classpath). By default, cache works with deserialized form
  * (example shows the case when {@link Integer} is used as a key for a portable object):
  * <pre>
- * CacheProjection<Integer, Value> prj = GridGain.grid().cache(null);
+ * CacheProjection<Integer, Value> prj = Ignition.grid().cache(null);
  *
  * // Value will be serialized and stored in cache in portable format.
  * prj.put(1, new Value());
@@ -174,7 +174,7 @@ import java.util.concurrent.*;
  * needed for performance reasons. To work with portable format directly you should create special projection
  * using {@link #keepPortable()} method:
  * <pre>
- * CacheProjection<Integer, GridPortableObject> prj = GridGain.grid().cache(null).keepPortable();
+ * CacheProjection<Integer, GridPortableObject> prj = Ignition.grid().cache(null).keepPortable();
  *
  * // Value is not deserialized and returned in portable format.
  * GridPortableObject po = prj.get(1);
@@ -1365,7 +1365,7 @@ public interface CacheProjection<K, V> extends Iterable<CacheEntry<K, V>> {
      * nodes and local node, as opposed to {@link CacheProjection#clearAll()} method which only
      * clears local node's cache.
      * <p>
-     * GridGain will make the best attempt to clear caches on all nodes. If some caches
+     * Ignite will make the best attempt to clear caches on all nodes. If some caches
      * could not be cleared, then exception will be thrown.
      * <p>
      * This method is identical to calling {@link #globalClearAll(long) globalClearAll(0)}.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/main/java/org/apache/ignite/cache/CacheWriteSynchronizationMode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/cache/CacheWriteSynchronizationMode.java b/modules/core/src/main/java/org/apache/ignite/cache/CacheWriteSynchronizationMode.java
index 6c41374..d62ad7d 100644
--- a/modules/core/src/main/java/org/apache/ignite/cache/CacheWriteSynchronizationMode.java
+++ b/modules/core/src/main/java/org/apache/ignite/cache/CacheWriteSynchronizationMode.java
@@ -21,8 +21,8 @@ import org.apache.ignite.transactions.*;
 import org.jetbrains.annotations.*;
 
 /**
- * Mode indicating how GridGain should wait for write replies from other nodes. Default
- * value is {@link #FULL_ASYNC}}, which means that GridGain will not wait for responses from
+ * Mode indicating how Ignite should wait for write replies from other nodes. Default
+ * value is {@link #FULL_ASYNC}}, which means that Ignite will not wait for responses from
  * participating nodes. This means that by default remote nodes may get their state updated slightly after
  * any of the cache write methods complete, or after {@link IgniteTx#commit()} method completes.
  * <p>
@@ -34,21 +34,21 @@ import org.jetbrains.annotations.*;
  */
 public enum CacheWriteSynchronizationMode {
     /**
-     * Flag indicating that GridGain should wait for write or commit replies from all nodes.
+     * Flag indicating that Ignite should wait for write or commit replies from all nodes.
      * This behavior guarantees that whenever any of the atomic or transactional writes
      * complete, all other participating nodes which cache the written data have been updated.
      */
     FULL_SYNC,
 
     /**
-     * Flag indicating that GridGain will not wait for write or commit responses from participating nodes,
+     * Flag indicating that Ignite will not wait for write or commit responses from participating nodes,
      * which means that remote nodes may get their state updated a bit after any of the cache write methods
      * complete, or after {@link IgniteTx#commit()} method completes.
      */
     FULL_ASYNC,
 
     /**
-     * This flag only makes sense for {@link CacheMode#PARTITIONED} mode. When enabled, GridGain
+     * This flag only makes sense for {@link CacheMode#PARTITIONED} mode. When enabled, Ignite
      * will wait for write or commit to complete on {@code primary} node, but will not wait for
      * backups to be updated.
      */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/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 732aafc..b0d995a 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
@@ -72,7 +72,7 @@ import static org.apache.ignite.plugin.segmentation.GridSegmentationPolicy.*;
  */
 public class IgniteConfiguration {
     /** Courtesy notice log category. */
-    public static final String COURTESY_LOGGER_NAME = "org.gridgain.grid.CourtesyConfigNotice";
+    public static final String COURTESY_LOGGER_NAME = "org.apache.ignite.CourtesyConfigNotice";
 
     /**
      * Default flag for peer class loading. By default the value is {@code false}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/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 013367f..9ac9be1 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
@@ -3581,7 +3581,7 @@ public abstract class IgniteUtils {
 
     /**
      * Depending on whether or not log is provided and quiet mode is enabled logs given messages as
-     * quiet message or normal log WARN message in {@code org.gridgain.grid.CourtesyConfigNotice}
+     * quiet message or normal log WARN message in {@code org.apache.ignite.CourtesyConfigNotice}
      * category. If {@code log} is {@code null} or in QUIET mode it will add {@code (courtesy)}
      * prefix to the message.
      *
@@ -3598,7 +3598,7 @@ public abstract class IgniteUtils {
 
     /**
      * Depending on whether or not log is provided and quiet mode is enabled logs given messages as
-     * quiet message or normal log WARN message in {@code org.gridgain.grid.CourtesyConfigNotice}
+     * quiet message or normal log WARN message in {@code org.apache.ignite.CourtesyConfigNotice}
      * category. If {@code log} is {@code null} or in QUIET mode it will add {@code (courtesy)}
      * prefix to the message.
      *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/main/java/org/apache/ignite/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/package.html b/modules/core/src/main/java/org/apache/ignite/package.html
index 863a686..8fb6e94 100644
--- a/modules/core/src/main/java/org/apache/ignite/package.html
+++ b/modules/core/src/main/java/org/apache/ignite/package.html
@@ -18,6 +18,6 @@
 <html>
 <body>
     <!-- Package description. -->
-    Contains entry-point <b>GridGain & HPC APIs.</b>
+    Contains entry-point <b>Ignite & HPC APIs.</b>
 </body>
 </html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/test/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/example-cache.xml b/modules/core/src/test/config/example-cache.xml
index 2217994..b97f23f 100644
--- a/modules/core/src/test/config/example-cache.xml
+++ b/modules/core/src/test/config/example-cache.xml
@@ -18,13 +18,13 @@
   -->
 
 <!--
-    GridGain Spring configuration file to startup grid cache.
+    Ignite Spring configuration file to startup grid cache.
 
-    When starting a standalone GridGain node, you need to execute the following command:
+    When starting a standalone Ignite node, you need to execute the following command:
     {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
-    When starting GridGain from Java IDE, pass path to this file to GridGain:
-    GridGain.start("examples/config/example-cache.xml");
+    When starting Ignite from Java IDE, pass path to this file to Ignite:
+    Ignition.start("examples/config/example-cache.xml");
 -->
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0ab8a275/modules/core/src/test/config/ggfs-loopback.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-loopback.xml b/modules/core/src/test/config/ggfs-loopback.xml
index 94cab9a..dfefd9a 100644
--- a/modules/core/src/test/config/ggfs-loopback.xml
+++ b/modules/core/src/test/config/ggfs-loopback.xml
@@ -18,13 +18,13 @@
   -->
 
 <!--
-    GridGain Spring configuration file to startup grid cache.
+    Ignite Spring configuration file to startup grid cache.
 
-    When starting a standalone GridGain node, you need to execute the following command:
+    When starting a standalone Ignite node, you need to execute the following command:
     {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-ggfs-loopback.xml
 
-    When starting GridGain from Java IDE, pass path to this file into GridGain:
-    GridGain.start("path-to-this-file/example-ggfs-loopback.xml");
+    When starting Ignite from Java IDE, pass path to this file into Ignite:
+    Ignition.start("path-to-this-file/example-ggfs-loopback.xml");
 -->
 <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"


[35/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Mapper.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Mapper.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Mapper.java
index 4c6ed58..849928a 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Mapper.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Mapper.java
@@ -17,13 +17,13 @@
 
 package org.apache.ignite.internal.processors.hadoop.examples;
 
-import java.io.*;
-import java.util.*;
-
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
 
+import java.io.*;
+import java.util.*;
+
 /**
  * Mapper phase of WordCount job.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Reducer.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Reducer.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Reducer.java
index 934ac99..922bb2f 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Reducer.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/examples/GridHadoopWordCount2Reducer.java
@@ -17,13 +17,12 @@
 
 package org.apache.ignite.internal.processors.hadoop.examples;
 
-import java.io.*;
-
-import org.apache.hadoop.conf.Configurable;
-import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.conf.*;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
 
+import java.io.*;
+
 /**
  * Combiner and Reducer phase of WordCount job.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopAbstractMapTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopAbstractMapTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopAbstractMapTest.java
index 21ee9ed..716fe19 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopAbstractMapTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopAbstractMapTest.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 import org.apache.commons.collections.comparators.*;
 import org.apache.hadoop.io.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 import org.apache.ignite.testframework.junits.common.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimapSelftest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimapSelftest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimapSelftest.java
index cc5c0a3..88dfd2b 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimapSelftest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimapSelftest.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import com.google.common.collect.*;
 import org.apache.hadoop.io.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.io.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMapSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMapSelfTest.java
index 13fc5ca..92177ad 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMapSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMapSelfTest.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import com.google.common.collect.*;
 import org.apache.hadoop.io.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.apache.ignite.internal.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipListSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipListSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipListSelfTest.java
index fecf50c..6ba00ad 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipListSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipListSelfTest.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import com.google.common.collect.*;
 import org.apache.hadoop.io.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.io.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorServiceTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorServiceTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorServiceTest.java
index 66def30..c97b6ab 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorServiceTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorServiceTest.java
@@ -17,13 +17,13 @@
 
 package org.apache.ignite.internal.processors.hadoop.taskexecutor;
 
-import org.apache.ignite.internal.IgniteInternalFuture;
-import org.apache.ignite.internal.util.typedef.X;
-import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
-import org.jdk8.backport.LongAdder;
+import org.apache.ignite.internal.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.testframework.junits.common.*;
+import org.jdk8.backport.*;
 
-import java.util.concurrent.Callable;
-import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.*;
+import java.util.concurrent.atomic.*;
 
 /**
  *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutionSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutionSelfTest.java
index 7a8f8bf..769aa76 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutionSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutionSelfTest.java
@@ -21,12 +21,11 @@ import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
-import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
+import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.mapreduce.lib.output.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunicationSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunicationSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunicationSelfTest.java
index 86bbfb0..c951123 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunicationSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunicationSelfTest.java
@@ -18,11 +18,11 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external.communication;
 
 import org.apache.ignite.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/loadtests/ggfs/GridGgfsPerformanceBenchmark.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/loadtests/ggfs/GridGgfsPerformanceBenchmark.java b/modules/hadoop/src/test/java/org/apache/ignite/loadtests/ggfs/GridGgfsPerformanceBenchmark.java
index d6f3130..253c60a 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/loadtests/ggfs/GridGgfsPerformanceBenchmark.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/loadtests/ggfs/GridGgfsPerformanceBenchmark.java
@@ -19,6 +19,7 @@ package org.apache.ignite.loadtests.ggfs;
 
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.testframework.*;


[42/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/tom-sawyer.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/tom-sawyer.txt b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/tom-sawyer.txt
deleted file mode 100644
index 1806925..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/tom-sawyer.txt
+++ /dev/null
@@ -1,8858 +0,0 @@
-The Project Gutenberg EBook of The Adventures of Tom Sawyer, Complete
-by Mark Twain (Samuel Clemens)
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever.  You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-
-Title: The Adventures of Tom Sawyer, Complete
-
-Author: Mark Twain (Samuel Clemens)
-
-Release Date: August 20, 2006 [EBook #74]
-[Last updated: May 3, 2011]
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK TOM SAWYER ***
-
-
-
-
-Produced by David Widger. The previous edition was updated by Jose
-Menendez.
-
-
-
-
-
-                   THE ADVENTURES OF TOM SAWYER
-                                BY
-                            MARK TWAIN
-                     (Samuel Langhorne Clemens)
-
-
-
-
-                           P R E F A C E
-
-MOST of the adventures recorded in this book really occurred; one or
-two were experiences of my own, the rest those of boys who were
-schoolmates of mine. Huck Finn is drawn from life; Tom Sawyer also, but
-not from an individual--he is a combination of the characteristics of
-three boys whom I knew, and therefore belongs to the composite order of
-architecture.
-
-The odd superstitions touched upon were all prevalent among children
-and slaves in the West at the period of this story--that is to say,
-thirty or forty years ago.
-
-Although my book is intended mainly for the entertainment of boys and
-girls, I hope it will not be shunned by men and women on that account,
-for part of my plan has been to try to pleasantly remind adults of what
-they once were themselves, and of how they felt and thought and talked,
-and what queer enterprises they sometimes engaged in.
-
-                                                            THE AUTHOR.
-
-HARTFORD, 1876.
-
-
-
-                          T O M   S A W Y E R
-
-
-
-CHAPTER I
-
-"TOM!"
-
-No answer.
-
-"TOM!"
-
-No answer.
-
-"What's gone with that boy,  I wonder? You TOM!"
-
-No answer.
-
-The old lady pulled her spectacles down and looked over them about the
-room; then she put them up and looked out under them. She seldom or
-never looked THROUGH them for so small a thing as a boy; they were her
-state pair, the pride of her heart, and were built for "style," not
-service--she could have seen through a pair of stove-lids just as well.
-She looked perplexed for a moment, and then said, not fiercely, but
-still loud enough for the furniture to hear:
-
-"Well, I lay if I get hold of you I'll--"
-
-She did not finish, for by this time she was bending down and punching
-under the bed with the broom, and so she needed breath to punctuate the
-punches with. She resurrected nothing but the cat.
-
-"I never did see the beat of that boy!"
-
-She went to the open door and stood in it and looked out among the
-tomato vines and "jimpson" weeds that constituted the garden. No Tom.
-So she lifted up her voice at an angle calculated for distance and
-shouted:
-
-"Y-o-u-u TOM!"
-
-There was a slight noise behind her and she turned just in time to
-seize a small boy by the slack of his roundabout and arrest his flight.
-
-"There! I might 'a' thought of that closet. What you been doing in
-there?"
-
-"Nothing."
-
-"Nothing! Look at your hands. And look at your mouth. What IS that
-truck?"
-
-"I don't know, aunt."
-
-"Well, I know. It's jam--that's what it is. Forty times I've said if
-you didn't let that jam alone I'd skin you. Hand me that switch."
-
-The switch hovered in the air--the peril was desperate--
-
-"My! Look behind you, aunt!"
-
-The old lady whirled round, and snatched her skirts out of danger. The
-lad fled on the instant, scrambled up the high board-fence, and
-disappeared over it.
-
-His aunt Polly stood surprised a moment, and then broke into a gentle
-laugh.
-
-"Hang the boy, can't I never learn anything? Ain't he played me tricks
-enough like that for me to be looking out for him by this time? But old
-fools is the biggest fools there is. Can't learn an old dog new tricks,
-as the saying is. But my goodness, he never plays them alike, two days,
-and how is a body to know what's coming? He 'pears to know just how
-long he can torment me before I get my dander up, and he knows if he
-can make out to put me off for a minute or make me laugh, it's all down
-again and I can't hit him a lick. I ain't doing my duty by that boy,
-and that's the Lord's truth, goodness knows. Spare the rod and spile
-the child, as the Good Book says. I'm a laying up sin and suffering for
-us both, I know. He's full of the Old Scratch, but laws-a-me! he's my
-own dead sister's boy, poor thing, and I ain't got the heart to lash
-him, somehow. Every time I let him off, my conscience does hurt me so,
-and every time I hit him my old heart most breaks. Well-a-well, man
-that is born of woman is of few days and full of trouble, as the
-Scripture says, and I reckon it's so. He'll play hookey this evening, *
-and [* Southwestern for "afternoon"] I'll just be obleeged to make him
-work, to-morrow, to punish him. It's mighty hard to make him work
-Saturdays, when all the boys is having holiday, but he hates work more
-than he hates anything else, and I've GOT to do some of my duty by him,
-or I'll be the ruination of the child."
-
-Tom did play hookey, and he had a very good time. He got back home
-barely in season to help Jim, the small colored boy, saw next-day's
-wood and split the kindlings before supper--at least he was there in
-time to tell his adventures to Jim while Jim did three-fourths of the
-work. Tom's younger brother (or rather half-brother) Sid was already
-through with his part of the work (picking up chips), for he was a
-quiet boy, and had no adventurous, troublesome ways.
-
-While Tom was eating his supper, and stealing sugar as opportunity
-offered, Aunt Polly asked him questions that were full of guile, and
-very deep--for she wanted to trap him into damaging revealments. Like
-many other simple-hearted souls, it was her pet vanity to believe she
-was endowed with a talent for dark and mysterious diplomacy, and she
-loved to contemplate her most transparent devices as marvels of low
-cunning. Said she:
-
-"Tom, it was middling warm in school, warn't it?"
-
-"Yes'm."
-
-"Powerful warm, warn't it?"
-
-"Yes'm."
-
-"Didn't you want to go in a-swimming, Tom?"
-
-A bit of a scare shot through Tom--a touch of uncomfortable suspicion.
-He searched Aunt Polly's face, but it told him nothing. So he said:
-
-"No'm--well, not very much."
-
-The old lady reached out her hand and felt Tom's shirt, and said:
-
-"But you ain't too warm now, though." And it flattered her to reflect
-that she had discovered that the shirt was dry without anybody knowing
-that that was what she had in her mind. But in spite of her, Tom knew
-where the wind lay, now. So he forestalled what might be the next move:
-
-"Some of us pumped on our heads--mine's damp yet. See?"
-
-Aunt Polly was vexed to think she had overlooked that bit of
-circumstantial evidence, and missed a trick. Then she had a new
-inspiration:
-
-"Tom, you didn't have to undo your shirt collar where I sewed it, to
-pump on your head, did you? Unbutton your jacket!"
-
-The trouble vanished out of Tom's face. He opened his jacket. His
-shirt collar was securely sewed.
-
-"Bother! Well, go 'long with you. I'd made sure you'd played hookey
-and been a-swimming. But I forgive ye, Tom. I reckon you're a kind of a
-singed cat, as the saying is--better'n you look. THIS time."
-
-She was half sorry her sagacity had miscarried, and half glad that Tom
-had stumbled into obedient conduct for once.
-
-But Sidney said:
-
-"Well, now, if I didn't think you sewed his collar with white thread,
-but it's black."
-
-"Why, I did sew it with white! Tom!"
-
-But Tom did not wait for the rest. As he went out at the door he said:
-
-"Siddy, I'll lick you for that."
-
-In a safe place Tom examined two large needles which were thrust into
-the lapels of his jacket, and had thread bound about them--one needle
-carried white thread and the other black. He said:
-
-"She'd never noticed if it hadn't been for Sid. Confound it! sometimes
-she sews it with white, and sometimes she sews it with black. I wish to
-geeminy she'd stick to one or t'other--I can't keep the run of 'em. But
-I bet you I'll lam Sid for that. I'll learn him!"
-
-He was not the Model Boy of the village. He knew the model boy very
-well though--and loathed him.
-
-Within two minutes, or even less, he had forgotten all his troubles.
-Not because his troubles were one whit less heavy and bitter to him
-than a man's are to a man, but because a new and powerful interest bore
-them down and drove them out of his mind for the time--just as men's
-misfortunes are forgotten in the excitement of new enterprises. This
-new interest was a valued novelty in whistling, which he had just
-acquired from a negro, and he was suffering to practise it undisturbed.
-It consisted in a peculiar bird-like turn, a sort of liquid warble,
-produced by touching the tongue to the roof of the mouth at short
-intervals in the midst of the music--the reader probably remembers how
-to do it, if he has ever been a boy. Diligence and attention soon gave
-him the knack of it, and he strode down the street with his mouth full
-of harmony and his soul full of gratitude. He felt much as an
-astronomer feels who has discovered a new planet--no doubt, as far as
-strong, deep, unalloyed pleasure is concerned, the advantage was with
-the boy, not the astronomer.
-
-The summer evenings were long. It was not dark, yet. Presently Tom
-checked his whistle. A stranger was before him--a boy a shade larger
-than himself. A new-comer of any age or either sex was an impressive
-curiosity in the poor little shabby village of St. Petersburg. This boy
-was well dressed, too--well dressed on a week-day. This was simply
-astounding. His cap was a dainty thing, his close-buttoned blue cloth
-roundabout was new and natty, and so were his pantaloons. He had shoes
-on--and it was only Friday. He even wore a necktie, a bright bit of
-ribbon. He had a citified air about him that ate into Tom's vitals. The
-more Tom stared at the splendid marvel, the higher he turned up his
-nose at his finery and the shabbier and shabbier his own outfit seemed
-to him to grow. Neither boy spoke. If one moved, the other moved--but
-only sidewise, in a circle; they kept face to face and eye to eye all
-the time. Finally Tom said:
-
-"I can lick you!"
-
-"I'd like to see you try it."
-
-"Well, I can do it."
-
-"No you can't, either."
-
-"Yes I can."
-
-"No you can't."
-
-"I can."
-
-"You can't."
-
-"Can!"
-
-"Can't!"
-
-An uncomfortable pause. Then Tom said:
-
-"What's your name?"
-
-"'Tisn't any of your business, maybe."
-
-"Well I 'low I'll MAKE it my business."
-
-"Well why don't you?"
-
-"If you say much, I will."
-
-"Much--much--MUCH. There now."
-
-"Oh, you think you're mighty smart, DON'T you? I could lick you with
-one hand tied behind me, if I wanted to."
-
-"Well why don't you DO it? You SAY you can do it."
-
-"Well I WILL, if you fool with me."
-
-"Oh yes--I've seen whole families in the same fix."
-
-"Smarty! You think you're SOME, now, DON'T you? Oh, what a hat!"
-
-"You can lump that hat if you don't like it. I dare you to knock it
-off--and anybody that'll take a dare will suck eggs."
-
-"You're a liar!"
-
-"You're another."
-
-"You're a fighting liar and dasn't take it up."
-
-"Aw--take a walk!"
-
-"Say--if you give me much more of your sass I'll take and bounce a
-rock off'n your head."
-
-"Oh, of COURSE you will."
-
-"Well I WILL."
-
-"Well why don't you DO it then? What do you keep SAYING you will for?
-Why don't you DO it? It's because you're afraid."
-
-"I AIN'T afraid."
-
-"You are."
-
-"I ain't."
-
-"You are."
-
-Another pause, and more eying and sidling around each other. Presently
-they were shoulder to shoulder. Tom said:
-
-"Get away from here!"
-
-"Go away yourself!"
-
-"I won't."
-
-"I won't either."
-
-So they stood, each with a foot placed at an angle as a brace, and
-both shoving with might and main, and glowering at each other with
-hate. But neither could get an advantage. After struggling till both
-were hot and flushed, each relaxed his strain with watchful caution,
-and Tom said:
-
-"You're a coward and a pup. I'll tell my big brother on you, and he
-can thrash you with his little finger, and I'll make him do it, too."
-
-"What do I care for your big brother? I've got a brother that's bigger
-than he is--and what's more, he can throw him over that fence, too."
-[Both brothers were imaginary.]
-
-"That's a lie."
-
-"YOUR saying so don't make it so."
-
-Tom drew a line in the dust with his big toe, and said:
-
-"I dare you to step over that, and I'll lick you till you can't stand
-up. Anybody that'll take a dare will steal sheep."
-
-The new boy stepped over promptly, and said:
-
-"Now you said you'd do it, now let's see you do it."
-
-"Don't you crowd me now; you better look out."
-
-"Well, you SAID you'd do it--why don't you do it?"
-
-"By jingo! for two cents I WILL do it."
-
-The new boy took two broad coppers out of his pocket and held them out
-with derision. Tom struck them to the ground. In an instant both boys
-were rolling and tumbling in the dirt, gripped together like cats; and
-for the space of a minute they tugged and tore at each other's hair and
-clothes, punched and scratched each other's nose, and covered
-themselves with dust and glory. Presently the confusion took form, and
-through the fog of battle Tom appeared, seated astride the new boy, and
-pounding him with his fists. "Holler 'nuff!" said he.
-
-The boy only struggled to free himself. He was crying--mainly from rage.
-
-"Holler 'nuff!"--and the pounding went on.
-
-At last the stranger got out a smothered "'Nuff!" and Tom let him up
-and said:
-
-"Now that'll learn you. Better look out who you're fooling with next
-time."
-
-The new boy went off brushing the dust from his clothes, sobbing,
-snuffling, and occasionally looking back and shaking his head and
-threatening what he would do to Tom the "next time he caught him out."
-To which Tom responded with jeers, and started off in high feather, and
-as soon as his back was turned the new boy snatched up a stone, threw
-it and hit him between the shoulders and then turned tail and ran like
-an antelope. Tom chased the traitor home, and thus found out where he
-lived. He then held a position at the gate for some time, daring the
-enemy to come outside, but the enemy only made faces at him through the
-window and declined. At last the enemy's mother appeared, and called
-Tom a bad, vicious, vulgar child, and ordered him away. So he went
-away; but he said he "'lowed" to "lay" for that boy.
-
-He got home pretty late that night, and when he climbed cautiously in
-at the window, he uncovered an ambuscade, in the person of his aunt;
-and when she saw the state his clothes were in her resolution to turn
-his Saturday holiday into captivity at hard labor became adamantine in
-its firmness.
-
-
-
-CHAPTER II
-
-SATURDAY morning was come, and all the summer world was bright and
-fresh, and brimming with life. There was a song in every heart; and if
-the heart was young the music issued at the lips. There was cheer in
-every face and a spring in every step. The locust-trees were in bloom
-and the fragrance of the blossoms filled the air. Cardiff Hill, beyond
-the village and above it, was green with vegetation and it lay just far
-enough away to seem a Delectable Land, dreamy, reposeful, and inviting.
-
-Tom appeared on the sidewalk with a bucket of whitewash and a
-long-handled brush. He surveyed the fence, and all gladness left him and
-a deep melancholy settled down upon his spirit. Thirty yards of board
-fence nine feet high. Life to him seemed hollow, and existence but a
-burden. Sighing, he dipped his brush and passed it along the topmost
-plank; repeated the operation; did it again; compared the insignificant
-whitewashed streak with the far-reaching continent of unwhitewashed
-fence, and sat down on a tree-box discouraged. Jim came skipping out at
-the gate with a tin pail, and singing Buffalo Gals. Bringing water from
-the town pump had always been hateful work in Tom's eyes, before, but
-now it did not strike him so. He remembered that there was company at
-the pump. White, mulatto, and negro boys and girls were always there
-waiting their turns, resting, trading playthings, quarrelling,
-fighting, skylarking. And he remembered that although the pump was only
-a hundred and fifty yards off, Jim never got back with a bucket of
-water under an hour--and even then somebody generally had to go after
-him. Tom said:
-
-"Say, Jim, I'll fetch the water if you'll whitewash some."
-
-Jim shook his head and said:
-
-"Can't, Mars Tom. Ole missis, she tole me I got to go an' git dis
-water an' not stop foolin' roun' wid anybody. She say she spec' Mars
-Tom gwine to ax me to whitewash, an' so she tole me go 'long an' 'tend
-to my own business--she 'lowed SHE'D 'tend to de whitewashin'."
-
-"Oh, never you mind what she said, Jim. That's the way she always
-talks. Gimme the bucket--I won't be gone only a a minute. SHE won't
-ever know."
-
-"Oh, I dasn't, Mars Tom. Ole missis she'd take an' tar de head off'n
-me. 'Deed she would."
-
-"SHE! She never licks anybody--whacks 'em over the head with her
-thimble--and who cares for that, I'd like to know. She talks awful, but
-talk don't hurt--anyways it don't if she don't cry. Jim, I'll give you
-a marvel. I'll give you a white alley!"
-
-Jim began to waver.
-
-"White alley, Jim! And it's a bully taw."
-
-"My! Dat's a mighty gay marvel, I tell you! But Mars Tom I's powerful
-'fraid ole missis--"
-
-"And besides, if you will I'll show you my sore toe."
-
-Jim was only human--this attraction was too much for him. He put down
-his pail, took the white alley, and bent over the toe with absorbing
-interest while the bandage was being unwound. In another moment he was
-flying down the street with his pail and a tingling rear, Tom was
-whitewashing with vigor, and Aunt Polly was retiring from the field
-with a slipper in her hand and triumph in her eye.
-
-But Tom's energy did not last. He began to think of the fun he had
-planned for this day, and his sorrows multiplied. Soon the free boys
-would come tripping along on all sorts of delicious expeditions, and
-they would make a world of fun of him for having to work--the very
-thought of it burnt him like fire. He got out his worldly wealth and
-examined it--bits of toys, marbles, and trash; enough to buy an
-exchange of WORK, maybe, but not half enough to buy so much as half an
-hour of pure freedom. So he returned his straitened means to his
-pocket, and gave up the idea of trying to buy the boys. At this dark
-and hopeless moment an inspiration burst upon him! Nothing less than a
-great, magnificent inspiration.
-
-He took up his brush and went tranquilly to work. Ben Rogers hove in
-sight presently--the very boy, of all boys, whose ridicule he had been
-dreading. Ben's gait was the hop-skip-and-jump--proof enough that his
-heart was light and his anticipations high. He was eating an apple, and
-giving a long, melodious whoop, at intervals, followed by a deep-toned
-ding-dong-dong, ding-dong-dong, for he was personating a steamboat. As
-he drew near, he slackened speed, took the middle of the street, leaned
-far over to starboard and rounded to ponderously and with laborious
-pomp and circumstance--for he was personating the Big Missouri, and
-considered himself to be drawing nine feet of water. He was boat and
-captain and engine-bells combined, so he had to imagine himself
-standing on his own hurricane-deck giving the orders and executing them:
-
-"Stop her, sir! Ting-a-ling-ling!" The headway ran almost out, and he
-drew up slowly toward the sidewalk.
-
-"Ship up to back! Ting-a-ling-ling!" His arms straightened and
-stiffened down his sides.
-
-"Set her back on the stabboard! Ting-a-ling-ling! Chow! ch-chow-wow!
-Chow!" His right hand, meantime, describing stately circles--for it was
-representing a forty-foot wheel.
-
-"Let her go back on the labboard! Ting-a-lingling! Chow-ch-chow-chow!"
-The left hand began to describe circles.
-
-"Stop the stabboard! Ting-a-ling-ling! Stop the labboard! Come ahead
-on the stabboard! Stop her! Let your outside turn over slow!
-Ting-a-ling-ling! Chow-ow-ow! Get out that head-line! LIVELY now!
-Come--out with your spring-line--what're you about there! Take a turn
-round that stump with the bight of it! Stand by that stage, now--let her
-go! Done with the engines, sir! Ting-a-ling-ling! SH'T! S'H'T! SH'T!"
-(trying the gauge-cocks).
-
-Tom went on whitewashing--paid no attention to the steamboat. Ben
-stared a moment and then said: "Hi-YI! YOU'RE up a stump, ain't you!"
-
-No answer. Tom surveyed his last touch with the eye of an artist, then
-he gave his brush another gentle sweep and surveyed the result, as
-before. Ben ranged up alongside of him. Tom's mouth watered for the
-apple, but he stuck to his work. Ben said:
-
-"Hello, old chap, you got to work, hey?"
-
-Tom wheeled suddenly and said:
-
-"Why, it's you, Ben! I warn't noticing."
-
-"Say--I'm going in a-swimming, I am. Don't you wish you could? But of
-course you'd druther WORK--wouldn't you? Course you would!"
-
-Tom contemplated the boy a bit, and said:
-
-"What do you call work?"
-
-"Why, ain't THAT work?"
-
-Tom resumed his whitewashing, and answered carelessly:
-
-"Well, maybe it is, and maybe it ain't. All I know, is, it suits Tom
-Sawyer."
-
-"Oh come, now, you don't mean to let on that you LIKE it?"
-
-The brush continued to move.
-
-"Like it? Well, I don't see why I oughtn't to like it. Does a boy get
-a chance to whitewash a fence every day?"
-
-That put the thing in a new light. Ben stopped nibbling his apple. Tom
-swept his brush daintily back and forth--stepped back to note the
-effect--added a touch here and there--criticised the effect again--Ben
-watching every move and getting more and more interested, more and more
-absorbed. Presently he said:
-
-"Say, Tom, let ME whitewash a little."
-
-Tom considered, was about to consent; but he altered his mind:
-
-"No--no--I reckon it wouldn't hardly do, Ben. You see, Aunt Polly's
-awful particular about this fence--right here on the street, you know
---but if it was the back fence I wouldn't mind and SHE wouldn't. Yes,
-she's awful particular about this fence; it's got to be done very
-careful; I reckon there ain't one boy in a thousand, maybe two
-thousand, that can do it the way it's got to be done."
-
-"No--is that so? Oh come, now--lemme just try. Only just a little--I'd
-let YOU, if you was me, Tom."
-
-"Ben, I'd like to, honest injun; but Aunt Polly--well, Jim wanted to
-do it, but she wouldn't let him; Sid wanted to do it, and she wouldn't
-let Sid. Now don't you see how I'm fixed? If you was to tackle this
-fence and anything was to happen to it--"
-
-"Oh, shucks, I'll be just as careful. Now lemme try. Say--I'll give
-you the core of my apple."
-
-"Well, here--No, Ben, now don't. I'm afeard--"
-
-"I'll give you ALL of it!"
-
-Tom gave up the brush with reluctance in his face, but alacrity in his
-heart. And while the late steamer Big Missouri worked and sweated in
-the sun, the retired artist sat on a barrel in the shade close by,
-dangled his legs, munched his apple, and planned the slaughter of more
-innocents. There was no lack of material; boys happened along every
-little while; they came to jeer, but remained to whitewash. By the time
-Ben was fagged out, Tom had traded the next chance to Billy Fisher for
-a kite, in good repair; and when he played out, Johnny Miller bought in
-for a dead rat and a string to swing it with--and so on, and so on,
-hour after hour. And when the middle of the afternoon came, from being
-a poor poverty-stricken boy in the morning, Tom was literally rolling
-in wealth. He had besides the things before mentioned, twelve marbles,
-part of a jews-harp, a piece of blue bottle-glass to look through, a
-spool cannon, a key that wouldn't unlock anything, a fragment of chalk,
-a glass stopper of a decanter, a tin soldier, a couple of tadpoles, six
-fire-crackers, a kitten with only one eye, a brass doorknob, a
-dog-collar--but no dog--the handle of a knife, four pieces of
-orange-peel, and a dilapidated old window sash.
-
-He had had a nice, good, idle time all the while--plenty of company
---and the fence had three coats of whitewash on it! If he hadn't run out
-of whitewash he would have bankrupted every boy in the village.
-
-Tom said to himself that it was not such a hollow world, after all. He
-had discovered a great law of human action, without knowing it--namely,
-that in order to make a man or a boy covet a thing, it is only
-necessary to make the thing difficult to attain. If he had been a great
-and wise philosopher, like the writer of this book, he would now have
-comprehended that Work consists of whatever a body is OBLIGED to do,
-and that Play consists of whatever a body is not obliged to do. And
-this would help him to understand why constructing artificial flowers
-or performing on a tread-mill is work, while rolling ten-pins or
-climbing Mont Blanc is only amusement. There are wealthy gentlemen in
-England who drive four-horse passenger-coaches twenty or thirty miles
-on a daily line, in the summer, because the privilege costs them
-considerable money; but if they were offered wages for the service,
-that would turn it into work and then they would resign.
-
-The boy mused awhile over the substantial change which had taken place
-in his worldly circumstances, and then wended toward headquarters to
-report.
-
-
-
-CHAPTER III
-
-TOM presented himself before Aunt Polly, who was sitting by an open
-window in a pleasant rearward apartment, which was bedroom,
-breakfast-room, dining-room, and library, combined. The balmy summer
-air, the restful quiet, the odor of the flowers, and the drowsing murmur
-of the bees had had their effect, and she was nodding over her knitting
---for she had no company but the cat, and it was asleep in her lap. Her
-spectacles were propped up on her gray head for safety. She had thought
-that of course Tom had deserted long ago, and she wondered at seeing him
-place himself in her power again in this intrepid way. He said: "Mayn't
-I go and play now, aunt?"
-
-"What, a'ready? How much have you done?"
-
-"It's all done, aunt."
-
-"Tom, don't lie to me--I can't bear it."
-
-"I ain't, aunt; it IS all done."
-
-Aunt Polly placed small trust in such evidence. She went out to see
-for herself; and she would have been content to find twenty per cent.
-of Tom's statement true. When she found the entire fence whitewashed,
-and not only whitewashed but elaborately coated and recoated, and even
-a streak added to the ground, her astonishment was almost unspeakable.
-She said:
-
-"Well, I never! There's no getting round it, you can work when you're
-a mind to, Tom." And then she diluted the compliment by adding, "But
-it's powerful seldom you're a mind to, I'm bound to say. Well, go 'long
-and play; but mind you get back some time in a week, or I'll tan you."
-
-She was so overcome by the splendor of his achievement that she took
-him into the closet and selected a choice apple and delivered it to
-him, along with an improving lecture upon the added value and flavor a
-treat took to itself when it came without sin through virtuous effort.
-And while she closed with a happy Scriptural flourish, he "hooked" a
-doughnut.
-
-Then he skipped out, and saw Sid just starting up the outside stairway
-that led to the back rooms on the second floor. Clods were handy and
-the air was full of them in a twinkling. They raged around Sid like a
-hail-storm; and before Aunt Polly could collect her surprised faculties
-and sally to the rescue, six or seven clods had taken personal effect,
-and Tom was over the fence and gone. There was a gate, but as a general
-thing he was too crowded for time to make use of it. His soul was at
-peace, now that he had settled with Sid for calling attention to his
-black thread and getting him into trouble.
-
-Tom skirted the block, and came round into a muddy alley that led by
-the back of his aunt's cow-stable. He presently got safely beyond the
-reach of capture and punishment, and hastened toward the public square
-of the village, where two "military" companies of boys had met for
-conflict, according to previous appointment. Tom was General of one of
-these armies, Joe Harper (a bosom friend) General of the other. These
-two great commanders did not condescend to fight in person--that being
-better suited to the still smaller fry--but sat together on an eminence
-and conducted the field operations by orders delivered through
-aides-de-camp. Tom's army won a great victory, after a long and
-hard-fought battle. Then the dead were counted, prisoners exchanged,
-the terms of the next disagreement agreed upon, and the day for the
-necessary battle appointed; after which the armies fell into line and
-marched away, and Tom turned homeward alone.
-
-As he was passing by the house where Jeff Thatcher lived, he saw a new
-girl in the garden--a lovely little blue-eyed creature with yellow hair
-plaited into two long-tails, white summer frock and embroidered
-pantalettes. The fresh-crowned hero fell without firing a shot. A
-certain Amy Lawrence vanished out of his heart and left not even a
-memory of herself behind. He had thought he loved her to distraction;
-he had regarded his passion as adoration; and behold it was only a poor
-little evanescent partiality. He had been months winning her; she had
-confessed hardly a week ago; he had been the happiest and the proudest
-boy in the world only seven short days, and here in one instant of time
-she had gone out of his heart like a casual stranger whose visit is
-done.
-
-He worshipped this new angel with furtive eye, till he saw that she
-had discovered him; then he pretended he did not know she was present,
-and began to "show off" in all sorts of absurd boyish ways, in order to
-win her admiration. He kept up this grotesque foolishness for some
-time; but by-and-by, while he was in the midst of some dangerous
-gymnastic performances, he glanced aside and saw that the little girl
-was wending her way toward the house. Tom came up to the fence and
-leaned on it, grieving, and hoping she would tarry yet awhile longer.
-She halted a moment on the steps and then moved toward the door. Tom
-heaved a great sigh as she put her foot on the threshold. But his face
-lit up, right away, for she tossed a pansy over the fence a moment
-before she disappeared.
-
-The boy ran around and stopped within a foot or two of the flower, and
-then shaded his eyes with his hand and began to look down street as if
-he had discovered something of interest going on in that direction.
-Presently he picked up a straw and began trying to balance it on his
-nose, with his head tilted far back; and as he moved from side to side,
-in his efforts, he edged nearer and nearer toward the pansy; finally
-his bare foot rested upon it, his pliant toes closed upon it, and he
-hopped away with the treasure and disappeared round the corner. But
-only for a minute--only while he could button the flower inside his
-jacket, next his heart--or next his stomach, possibly, for he was not
-much posted in anatomy, and not hypercritical, anyway.
-
-He returned, now, and hung about the fence till nightfall, "showing
-off," as before; but the girl never exhibited herself again, though Tom
-comforted himself a little with the hope that she had been near some
-window, meantime, and been aware of his attentions. Finally he strode
-home reluctantly, with his poor head full of visions.
-
-All through supper his spirits were so high that his aunt wondered
-"what had got into the child." He took a good scolding about clodding
-Sid, and did not seem to mind it in the least. He tried to steal sugar
-under his aunt's very nose, and got his knuckles rapped for it. He said:
-
-"Aunt, you don't whack Sid when he takes it."
-
-"Well, Sid don't torment a body the way you do. You'd be always into
-that sugar if I warn't watching you."
-
-Presently she stepped into the kitchen, and Sid, happy in his
-immunity, reached for the sugar-bowl--a sort of glorying over Tom which
-was wellnigh unbearable. But Sid's fingers slipped and the bowl dropped
-and broke. Tom was in ecstasies. In such ecstasies that he even
-controlled his tongue and was silent. He said to himself that he would
-not speak a word, even when his aunt came in, but would sit perfectly
-still till she asked who did the mischief; and then he would tell, and
-there would be nothing so good in the world as to see that pet model
-"catch it." He was so brimful of exultation that he could hardly hold
-himself when the old lady came back and stood above the wreck
-discharging lightnings of wrath from over her spectacles. He said to
-himself, "Now it's coming!" And the next instant he was sprawling on
-the floor! The potent palm was uplifted to strike again when Tom cried
-out:
-
-"Hold on, now, what 'er you belting ME for?--Sid broke it!"
-
-Aunt Polly paused, perplexed, and Tom looked for healing pity. But
-when she got her tongue again, she only said:
-
-"Umf! Well, you didn't get a lick amiss, I reckon. You been into some
-other audacious mischief when I wasn't around, like enough."
-
-Then her conscience reproached her, and she yearned to say something
-kind and loving; but she judged that this would be construed into a
-confession that she had been in the wrong, and discipline forbade that.
-So she kept silence, and went about her affairs with a troubled heart.
-Tom sulked in a corner and exalted his woes. He knew that in her heart
-his aunt was on her knees to him, and he was morosely gratified by the
-consciousness of it. He would hang out no signals, he would take notice
-of none. He knew that a yearning glance fell upon him, now and then,
-through a film of tears, but he refused recognition of it. He pictured
-himself lying sick unto death and his aunt bending over him beseeching
-one little forgiving word, but he would turn his face to the wall, and
-die with that word unsaid. Ah, how would she feel then? And he pictured
-himself brought home from the river, dead, with his curls all wet, and
-his sore heart at rest. How she would throw herself upon him, and how
-her tears would fall like rain, and her lips pray God to give her back
-her boy and she would never, never abuse him any more! But he would lie
-there cold and white and make no sign--a poor little sufferer, whose
-griefs were at an end. He so worked upon his feelings with the pathos
-of these dreams, that he had to keep swallowing, he was so like to
-choke; and his eyes swam in a blur of water, which overflowed when he
-winked, and ran down and trickled from the end of his nose. And such a
-luxury to him was this petting of his sorrows, that he could not bear
-to have any worldly cheeriness or any grating delight intrude upon it;
-it was too sacred for such contact; and so, presently, when his cousin
-Mary danced in, all alive with the joy of seeing home again after an
-age-long visit of one week to the country, he got up and moved in
-clouds and darkness out at one door as she brought song and sunshine in
-at the other.
-
-He wandered far from the accustomed haunts of boys, and sought
-desolate places that were in harmony with his spirit. A log raft in the
-river invited him, and he seated himself on its outer edge and
-contemplated the dreary vastness of the stream, wishing, the while,
-that he could only be drowned, all at once and unconsciously, without
-undergoing the uncomfortable routine devised by nature. Then he thought
-of his flower. He got it out, rumpled and wilted, and it mightily
-increased his dismal felicity. He wondered if she would pity him if she
-knew? Would she cry, and wish that she had a right to put her arms
-around his neck and comfort him? Or would she turn coldly away like all
-the hollow world? This picture brought such an agony of pleasurable
-suffering that he worked it over and over again in his mind and set it
-up in new and varied lights, till he wore it threadbare. At last he
-rose up sighing and departed in the darkness.
-
-About half-past nine or ten o'clock he came along the deserted street
-to where the Adored Unknown lived; he paused a moment; no sound fell
-upon his listening ear; a candle was casting a dull glow upon the
-curtain of a second-story window. Was the sacred presence there? He
-climbed the fence, threaded his stealthy way through the plants, till
-he stood under that window; he looked up at it long, and with emotion;
-then he laid him down on the ground under it, disposing himself upon
-his back, with his hands clasped upon his breast and holding his poor
-wilted flower. And thus he would die--out in the cold world, with no
-shelter over his homeless head, no friendly hand to wipe the
-death-damps from his brow, no loving face to bend pityingly over him
-when the great agony came. And thus SHE would see him when she looked
-out upon the glad morning, and oh! would she drop one little tear upon
-his poor, lifeless form, would she heave one little sigh to see a bright
-young life so rudely blighted, so untimely cut down?
-
-The window went up, a maid-servant's discordant voice profaned the
-holy calm, and a deluge of water drenched the prone martyr's remains!
-
-The strangling hero sprang up with a relieving snort. There was a whiz
-as of a missile in the air, mingled with the murmur of a curse, a sound
-as of shivering glass followed, and a small, vague form went over the
-fence and shot away in the gloom.
-
-Not long after, as Tom, all undressed for bed, was surveying his
-drenched garments by the light of a tallow dip, Sid woke up; but if he
-had any dim idea of making any "references to allusions," he thought
-better of it and held his peace, for there was danger in Tom's eye.
-
-Tom turned in without the added vexation of prayers, and Sid made
-mental note of the omission.
-
-
-
-CHAPTER IV
-
-THE sun rose upon a tranquil world, and beamed down upon the peaceful
-village like a benediction. Breakfast over, Aunt Polly had family
-worship: it began with a prayer built from the ground up of solid
-courses of Scriptural quotations, welded together with a thin mortar of
-originality; and from the summit of this she delivered a grim chapter
-of the Mosaic Law, as from Sinai.
-
-Then Tom girded up his loins, so to speak, and went to work to "get
-his verses." Sid had learned his lesson days before. Tom bent all his
-energies to the memorizing of five verses, and he chose part of the
-Sermon on the Mount, because he could find no verses that were shorter.
-At the end of half an hour Tom had a vague general idea of his lesson,
-but no more, for his mind was traversing the whole field of human
-thought, and his hands were busy with distracting recreations. Mary
-took his book to hear him recite, and he tried to find his way through
-the fog:
-
-"Blessed are the--a--a--"
-
-"Poor"--
-
-"Yes--poor; blessed are the poor--a--a--"
-
-"In spirit--"
-
-"In spirit; blessed are the poor in spirit, for they--they--"
-
-"THEIRS--"
-
-"For THEIRS. Blessed are the poor in spirit, for theirs is the kingdom
-of heaven. Blessed are they that mourn, for they--they--"
-
-"Sh--"
-
-"For they--a--"
-
-"S, H, A--"
-
-"For they S, H--Oh, I don't know what it is!"
-
-"SHALL!"
-
-"Oh, SHALL! for they shall--for they shall--a--a--shall mourn--a--a--
-blessed are they that shall--they that--a--they that shall mourn, for
-they shall--a--shall WHAT? Why don't you tell me, Mary?--what do you
-want to be so mean for?"
-
-"Oh, Tom, you poor thick-headed thing, I'm not teasing you. I wouldn't
-do that. You must go and learn it again. Don't you be discouraged, Tom,
-you'll manage it--and if you do, I'll give you something ever so nice.
-There, now, that's a good boy."
-
-"All right! What is it, Mary, tell me what it is."
-
-"Never you mind, Tom. You know if I say it's nice, it is nice."
-
-"You bet you that's so, Mary. All right, I'll tackle it again."
-
-And he did "tackle it again"--and under the double pressure of
-curiosity and prospective gain he did it with such spirit that he
-accomplished a shining success. Mary gave him a brand-new "Barlow"
-knife worth twelve and a half cents; and the convulsion of delight that
-swept his system shook him to his foundations. True, the knife would
-not cut anything, but it was a "sure-enough" Barlow, and there was
-inconceivable grandeur in that--though where the Western boys ever got
-the idea that such a weapon could possibly be counterfeited to its
-injury is an imposing mystery and will always remain so, perhaps. Tom
-contrived to scarify the cupboard with it, and was arranging to begin
-on the bureau, when he was called off to dress for Sunday-school.
-
-Mary gave him a tin basin of water and a piece of soap, and he went
-outside the door and set the basin on a little bench there; then he
-dipped the soap in the water and laid it down; turned up his sleeves;
-poured out the water on the ground, gently, and then entered the
-kitchen and began to wipe his face diligently on the towel behind the
-door. But Mary removed the towel and said:
-
-"Now ain't you ashamed, Tom. You mustn't be so bad. Water won't hurt
-you."
-
-Tom was a trifle disconcerted. The basin was refilled, and this time
-he stood over it a little while, gathering resolution; took in a big
-breath and began. When he entered the kitchen presently, with both eyes
-shut and groping for the towel with his hands, an honorable testimony
-of suds and water was dripping from his face. But when he emerged from
-the towel, he was not yet satisfactory, for the clean territory stopped
-short at his chin and his jaws, like a mask; below and beyond this line
-there was a dark expanse of unirrigated soil that spread downward in
-front and backward around his neck. Mary took him in hand, and when she
-was done with him he was a man and a brother, without distinction of
-color, and his saturated hair was neatly brushed, and its short curls
-wrought into a dainty and symmetrical general effect. [He privately
-smoothed out the curls, with labor and difficulty, and plastered his
-hair close down to his head; for he held curls to be effeminate, and
-his own filled his life with bitterness.] Then Mary got out a suit of
-his clothing that had been used only on Sundays during two years--they
-were simply called his "other clothes"--and so by that we know the
-size of his wardrobe. The girl "put him to rights" after he had dressed
-himself; she buttoned his neat roundabout up to his chin, turned his
-vast shirt collar down over his shoulders, brushed him off and crowned
-him with his speckled straw hat. He now looked exceedingly improved and
-uncomfortable. He was fully as uncomfortable as he looked; for there
-was a restraint about whole clothes and cleanliness that galled him. He
-hoped that Mary would forget his shoes, but the hope was blighted; she
-coated them thoroughly with tallow, as was the custom, and brought them
-out. He lost his temper and said he was always being made to do
-everything he didn't want to do. But Mary said, persuasively:
-
-"Please, Tom--that's a good boy."
-
-So he got into the shoes snarling. Mary was soon ready, and the three
-children set out for Sunday-school--a place that Tom hated with his
-whole heart; but Sid and Mary were fond of it.
-
-Sabbath-school hours were from nine to half-past ten; and then church
-service. Two of the children always remained for the sermon
-voluntarily, and the other always remained too--for stronger reasons.
-The church's high-backed, uncushioned pews would seat about three
-hundred persons; the edifice was but a small, plain affair, with a sort
-of pine board tree-box on top of it for a steeple. At the door Tom
-dropped back a step and accosted a Sunday-dressed comrade:
-
-"Say, Billy, got a yaller ticket?"
-
-"Yes."
-
-"What'll you take for her?"
-
-"What'll you give?"
-
-"Piece of lickrish and a fish-hook."
-
-"Less see 'em."
-
-Tom exhibited. They were satisfactory, and the property changed hands.
-Then Tom traded a couple of white alleys for three red tickets, and
-some small trifle or other for a couple of blue ones. He waylaid other
-boys as they came, and went on buying tickets of various colors ten or
-fifteen minutes longer. He entered the church, now, with a swarm of
-clean and noisy boys and girls, proceeded to his seat and started a
-quarrel with the first boy that came handy. The teacher, a grave,
-elderly man, interfered; then turned his back a moment and Tom pulled a
-boy's hair in the next bench, and was absorbed in his book when the boy
-turned around; stuck a pin in another boy, presently, in order to hear
-him say "Ouch!" and got a new reprimand from his teacher. Tom's whole
-class were of a pattern--restless, noisy, and troublesome. When they
-came to recite their lessons, not one of them knew his verses
-perfectly, but had to be prompted all along. However, they worried
-through, and each got his reward--in small blue tickets, each with a
-passage of Scripture on it; each blue ticket was pay for two verses of
-the recitation. Ten blue tickets equalled a red one, and could be
-exchanged for it; ten red tickets equalled a yellow one; for ten yellow
-tickets the superintendent gave a very plainly bound Bible (worth forty
-cents in those easy times) to the pupil. How many of my readers would
-have the industry and application to memorize two thousand verses, even
-for a Dore Bible? And yet Mary had acquired two Bibles in this way--it
-was the patient work of two years--and a boy of German parentage had
-won four or five. He once recited three thousand verses without
-stopping; but the strain upon his mental faculties was too great, and
-he was little better than an idiot from that day forth--a grievous
-misfortune for the school, for on great occasions, before company, the
-superintendent (as Tom expressed it) had always made this boy come out
-and "spread himself." Only the older pupils managed to keep their
-tickets and stick to their tedious work long enough to get a Bible, and
-so the delivery of one of these prizes was a rare and noteworthy
-circumstance; the successful pupil was so great and conspicuous for
-that day that on the spot every scholar's heart was fired with a fresh
-ambition that often lasted a couple of weeks. It is possible that Tom's
-mental stomach had never really hungered for one of those prizes, but
-unquestionably his entire being had for many a day longed for the glory
-and the eclat that came with it.
-
-In due course the superintendent stood up in front of the pulpit, with
-a closed hymn-book in his hand and his forefinger inserted between its
-leaves, and commanded attention. When a Sunday-school superintendent
-makes his customary little speech, a hymn-book in the hand is as
-necessary as is the inevitable sheet of music in the hand of a singer
-who stands forward on the platform and sings a solo at a concert
---though why, is a mystery: for neither the hymn-book nor the sheet of
-music is ever referred to by the sufferer. This superintendent was a
-slim creature of thirty-five, with a sandy goatee and short sandy hair;
-he wore a stiff standing-collar whose upper edge almost reached his
-ears and whose sharp points curved forward abreast the corners of his
-mouth--a fence that compelled a straight lookout ahead, and a turning
-of the whole body when a side view was required; his chin was propped
-on a spreading cravat which was as broad and as long as a bank-note,
-and had fringed ends; his boot toes were turned sharply up, in the
-fashion of the day, like sleigh-runners--an effect patiently and
-laboriously produced by the young men by sitting with their toes
-pressed against a wall for hours together. Mr. Walters was very earnest
-of mien, and very sincere and honest at heart; and he held sacred
-things and places in such reverence, and so separated them from worldly
-matters, that unconsciously to himself his Sunday-school voice had
-acquired a peculiar intonation which was wholly absent on week-days. He
-began after this fashion:
-
-"Now, children, I want you all to sit up just as straight and pretty
-as you can and give me all your attention for a minute or two. There
---that is it. That is the way good little boys and girls should do. I see
-one little girl who is looking out of the window--I am afraid she
-thinks I am out there somewhere--perhaps up in one of the trees making
-a speech to the little birds. [Applausive titter.] I want to tell you
-how good it makes me feel to see so many bright, clean little faces
-assembled in a place like this, learning to do right and be good." And
-so forth and so on. It is not necessary to set down the rest of the
-oration. It was of a pattern which does not vary, and so it is familiar
-to us all.
-
-The latter third of the speech was marred by the resumption of fights
-and other recreations among certain of the bad boys, and by fidgetings
-and whisperings that extended far and wide, washing even to the bases
-of isolated and incorruptible rocks like Sid and Mary. But now every
-sound ceased suddenly, with the subsidence of Mr. Walters' voice, and
-the conclusion of the speech was received with a burst of silent
-gratitude.
-
-A good part of the whispering had been occasioned by an event which
-was more or less rare--the entrance of visitors: lawyer Thatcher,
-accompanied by a very feeble and aged man; a fine, portly, middle-aged
-gentleman with iron-gray hair; and a dignified lady who was doubtless
-the latter's wife. The lady was leading a child. Tom had been restless
-and full of chafings and repinings; conscience-smitten, too--he could
-not meet Amy Lawrence's eye, he could not brook her loving gaze. But
-when he saw this small new-comer his soul was all ablaze with bliss in
-a moment. The next moment he was "showing off" with all his might
---cuffing boys, pulling hair, making faces--in a word, using every art
-that seemed likely to fascinate a girl and win her applause. His
-exaltation had but one alloy--the memory of his humiliation in this
-angel's garden--and that record in sand was fast washing out, under
-the waves of happiness that were sweeping over it now.
-
-The visitors were given the highest seat of honor, and as soon as Mr.
-Walters' speech was finished, he introduced them to the school. The
-middle-aged man turned out to be a prodigious personage--no less a one
-than the county judge--altogether the most august creation these
-children had ever looked upon--and they wondered what kind of material
-he was made of--and they half wanted to hear him roar, and were half
-afraid he might, too. He was from Constantinople, twelve miles away--so
-he had travelled, and seen the world--these very eyes had looked upon
-the county court-house--which was said to have a tin roof. The awe
-which these reflections inspired was attested by the impressive silence
-and the ranks of staring eyes. This was the great Judge Thatcher,
-brother of their own lawyer. Jeff Thatcher immediately went forward, to
-be familiar with the great man and be envied by the school. It would
-have been music to his soul to hear the whisperings:
-
-"Look at him, Jim! He's a going up there. Say--look! he's a going to
-shake hands with him--he IS shaking hands with him! By jings, don't you
-wish you was Jeff?"
-
-Mr. Walters fell to "showing off," with all sorts of official
-bustlings and activities, giving orders, delivering judgments,
-discharging directions here, there, everywhere that he could find a
-target. The librarian "showed off"--running hither and thither with his
-arms full of books and making a deal of the splutter and fuss that
-insect authority delights in. The young lady teachers "showed off"
---bending sweetly over pupils that were lately being boxed, lifting
-pretty warning fingers at bad little boys and patting good ones
-lovingly. The young gentlemen teachers "showed off" with small
-scoldings and other little displays of authority and fine attention to
-discipline--and most of the teachers, of both sexes, found business up
-at the library, by the pulpit; and it was business that frequently had
-to be done over again two or three times (with much seeming vexation).
-The little girls "showed off" in various ways, and the little boys
-"showed off" with such diligence that the air was thick with paper wads
-and the murmur of scufflings. And above it all the great man sat and
-beamed a majestic judicial smile upon all the house, and warmed himself
-in the sun of his own grandeur--for he was "showing off," too.
-
-There was only one thing wanting to make Mr. Walters' ecstasy
-complete, and that was a chance to deliver a Bible-prize and exhibit a
-prodigy. Several pupils had a few yellow tickets, but none had enough
---he had been around among the star pupils inquiring. He would have given
-worlds, now, to have that German lad back again with a sound mind.
-
-And now at this moment, when hope was dead, Tom Sawyer came forward
-with nine yellow tickets, nine red tickets, and ten blue ones, and
-demanded a Bible. This was a thunderbolt out of a clear sky. Walters
-was not expecting an application from this source for the next ten
-years. But there was no getting around it--here were the certified
-checks, and they were good for their face. Tom was therefore elevated
-to a place with the Judge and the other elect, and the great news was
-announced from headquarters. It was the most stunning surprise of the
-decade, and so profound was the sensation that it lifted the new hero
-up to the judicial one's altitude, and the school had two marvels to
-gaze upon in place of one. The boys were all eaten up with envy--but
-those that suffered the bitterest pangs were those who perceived too
-late that they themselves had contributed to this hated splendor by
-trading tickets to Tom for the wealth he had amassed in selling
-whitewashing privileges. These despised themselves, as being the dupes
-of a wily fraud, a guileful snake in the grass.
-
-The prize was delivered to Tom with as much effusion as the
-superintendent could pump up under the circumstances; but it lacked
-somewhat of the true gush, for the poor fellow's instinct taught him
-that there was a mystery here that could not well bear the light,
-perhaps; it was simply preposterous that this boy had warehoused two
-thousand sheaves of Scriptural wisdom on his premises--a dozen would
-strain his capacity, without a doubt.
-
-Amy Lawrence was proud and glad, and she tried to make Tom see it in
-her face--but he wouldn't look. She wondered; then she was just a grain
-troubled; next a dim suspicion came and went--came again; she watched;
-a furtive glance told her worlds--and then her heart broke, and she was
-jealous, and angry, and the tears came and she hated everybody. Tom
-most of all (she thought).
-
-Tom was introduced to the Judge; but his tongue was tied, his breath
-would hardly come, his heart quaked--partly because of the awful
-greatness of the man, but mainly because he was her parent. He would
-have liked to fall down and worship him, if it were in the dark. The
-Judge put his hand on Tom's head and called him a fine little man, and
-asked him what his name was. The boy stammered, gasped, and got it out:
-
-"Tom."
-
-"Oh, no, not Tom--it is--"
-
-"Thomas."
-
-"Ah, that's it. I thought there was more to it, maybe. That's very
-well. But you've another one I daresay, and you'll tell it to me, won't
-you?"
-
-"Tell the gentleman your other name, Thomas," said Walters, "and say
-sir. You mustn't forget your manners."
-
-"Thomas Sawyer--sir."
-
-"That's it! That's a good boy. Fine boy. Fine, manly little fellow.
-Two thousand verses is a great many--very, very great many. And you
-never can be sorry for the trouble you took to learn them; for
-knowledge is worth more than anything there is in the world; it's what
-makes great men and good men; you'll be a great man and a good man
-yourself, some day, Thomas, and then you'll look back and say, It's all
-owing to the precious Sunday-school privileges of my boyhood--it's all
-owing to my dear teachers that taught me to learn--it's all owing to
-the good superintendent, who encouraged me, and watched over me, and
-gave me a beautiful Bible--a splendid elegant Bible--to keep and have
-it all for my own, always--it's all owing to right bringing up! That is
-what you will say, Thomas--and you wouldn't take any money for those
-two thousand verses--no indeed you wouldn't. And now you wouldn't mind
-telling me and this lady some of the things you've learned--no, I know
-you wouldn't--for we are proud of little boys that learn. Now, no
-doubt you know the names of all the twelve disciples. Won't you tell us
-the names of the first two that were appointed?"
-
-Tom was tugging at a button-hole and looking sheepish. He blushed,
-now, and his eyes fell. Mr. Walters' heart sank within him. He said to
-himself, it is not possible that the boy can answer the simplest
-question--why DID the Judge ask him? Yet he felt obliged to speak up
-and say:
-
-"Answer the gentleman, Thomas--don't be afraid."
-
-Tom still hung fire.
-
-"Now I know you'll tell me," said the lady. "The names of the first
-two disciples were--"
-
-"DAVID AND GOLIAH!"
-
-Let us draw the curtain of charity over the rest of the scene.
-
-
-
-CHAPTER V
-
-ABOUT half-past ten the cracked bell of the small church began to
-ring, and presently the people began to gather for the morning sermon.
-The Sunday-school children distributed themselves about the house and
-occupied pews with their parents, so as to be under supervision. Aunt
-Polly came, and Tom and Sid and Mary sat with her--Tom being placed
-next the aisle, in order that he might be as far away from the open
-window and the seductive outside summer scenes as possible. The crowd
-filed up the aisles: the aged and needy postmaster, who had seen better
-days; the mayor and his wife--for they had a mayor there, among other
-unnecessaries; the justice of the peace; the widow Douglass, fair,
-smart, and forty, a generous, good-hearted soul and well-to-do, her
-hill mansion the only palace in the town, and the most hospitable and
-much the most lavish in the matter of festivities that St. Petersburg
-could boast; the bent and venerable Major and Mrs. Ward; lawyer
-Riverson, the new notable from a distance; next the belle of the
-village, followed by a troop of lawn-clad and ribbon-decked young
-heart-breakers; then all the young clerks in town in a body--for they
-had stood in the vestibule sucking their cane-heads, a circling wall of
-oiled and simpering admirers, till the last girl had run their gantlet;
-and last of all came the Model Boy, Willie Mufferson, taking as heedful
-care of his mother as if she were cut glass. He always brought his
-mother to church, and was the pride of all the matrons. The boys all
-hated him, he was so good. And besides, he had been "thrown up to them"
-so much. His white handkerchief was hanging out of his pocket behind, as
-usual on Sundays--accidentally. Tom had no handkerchief, and he looked
-upon boys who had as snobs.
-
-The congregation being fully assembled, now, the bell rang once more,
-to warn laggards and stragglers, and then a solemn hush fell upon the
-church which was only broken by the tittering and whispering of the
-choir in the gallery. The choir always tittered and whispered all
-through service. There was once a church choir that was not ill-bred,
-but I have forgotten where it was, now. It was a great many years ago,
-and I can scarcely remember anything about it, but I think it was in
-some foreign country.
-
-The minister gave out the hymn, and read it through with a relish, in
-a peculiar style which was much admired in that part of the country.
-His voice began on a medium key and climbed steadily up till it reached
-a certain point, where it bore with strong emphasis upon the topmost
-word and then plunged down as if from a spring-board:
-
-  Shall I be car-ri-ed toe the skies, on flow'ry BEDS of ease,
-
-  Whilst others fight to win the prize, and sail thro' BLOODY seas?
-
-He was regarded as a wonderful reader. At church "sociables" he was
-always called upon to read poetry; and when he was through, the ladies
-would lift up their hands and let them fall helplessly in their laps,
-and "wall" their eyes, and shake their heads, as much as to say, "Words
-cannot express it; it is too beautiful, TOO beautiful for this mortal
-earth."
-
-After the hymn had been sung, the Rev. Mr. Sprague turned himself into
-a bulletin-board, and read off "notices" of meetings and societies and
-things till it seemed that the list would stretch out to the crack of
-doom--a queer custom which is still kept up in America, even in cities,
-away here in this age of abundant newspapers. Often, the less there is
-to justify a traditional custom, the harder it is to get rid of it.
-
-And now the minister prayed. A good, generous prayer it was, and went
-into details: it pleaded for the church, and the little children of the
-church; for the other churches of the village; for the village itself;
-for the county; for the State; for the State officers; for the United
-States; for the churches of the United States; for Congress; for the
-President; for the officers of the Government; for poor sailors, tossed
-by stormy seas; for the oppressed millions groaning under the heel of
-European monarchies and Oriental despotisms; for such as have the light
-and the good tidings, and yet have not eyes to see nor ears to hear
-withal; for the heathen in the far islands of the sea; and closed with
-a supplication that the words he was about to speak might find grace
-and favor, and be as seed sown in fertile ground, yielding in time a
-grateful harvest of good. Amen.
-
-There was a rustling of dresses, and the standing congregation sat
-down. The boy whose history this book relates did not enjoy the prayer,
-he only endured it--if he even did that much. He was restive all
-through it; he kept tally of the details of the prayer, unconsciously
---for he was not listening, but he knew the ground of old, and the
-clergyman's regular route over it--and when a little trifle of new
-matter was interlarded, his ear detected it and his whole nature
-resented it; he considered additions unfair, and scoundrelly. In the
-midst of the prayer a fly had lit on the back of the pew in front of
-him and tortured his spirit by calmly rubbing its hands together,
-embracing its head with its arms, and polishing it so vigorously that
-it seemed to almost part company with the body, and the slender thread
-of a neck was exposed to view; scraping its wings with its hind legs
-and smoothing them to its body as if they had been coat-tails; going
-through its whole toilet as tranquilly as if it knew it was perfectly
-safe. As indeed it was; for as sorely as Tom's hands itched to grab for
-it they did not dare--he believed his soul would be instantly destroyed
-if he did such a thing while the prayer was going on. But with the
-closing sentence his hand began to curve and steal forward; and the
-instant the "Amen" was out the fly was a prisoner of war. His aunt
-detected the act and made him let it go.
-
-The minister gave out his text and droned along monotonously through
-an argument that was so prosy that many a head by and by began to nod
---and yet it was an argument that dealt in limitless fire and brimstone
-and thinned the predestined elect down to a company so small as to be
-hardly worth the saving. Tom counted the pages of the sermon; after
-church he always knew how many pages there had been, but he seldom knew
-anything else about the discourse. However, this time he was really
-interested for a little while. The minister made a grand and moving
-picture of the assembling together of the world's hosts at the
-millennium when the lion and the lamb should lie down together and a
-little child should lead them. But the pathos, the lesson, the moral of
-the great spectacle were lost upon the boy; he only thought of the
-conspicuousness of the principal character before the on-looking
-nations; his face lit with the thought, and he said to himself that he
-wished he could be that child, if it was a tame lion.
-
-Now he lapsed into suffering again, as the dry argument was resumed.
-Presently he bethought him of a treasure he had and got it out. It was
-a large black beetle with formidable jaws--a "pinchbug," he called it.
-It was in a percussion-cap box. The first thing the beetle did was to
-take him by the finger. A natural fillip followed, the beetle went
-floundering into the aisle and lit on its back, and the hurt finger
-went into the boy's mouth. The beetle lay there working its helpless
-legs, unable to turn over. Tom eyed it, and longed for it; but it was
-safe out of his reach. Other people uninterested in the sermon found
-relief in the beetle, and they eyed it too. Presently a vagrant poodle
-dog came idling along, sad at heart, lazy with the summer softness and
-the quiet, weary of captivity, sighing for change. He spied the beetle;
-the drooping tail lifted and wagged. He surveyed the prize; walked
-around it; smelt at it from a safe distance; walked around it again;
-grew bolder, and took a closer smell; then lifted his lip and made a
-gingerly snatch at it, just missing it; made another, and another;
-began to enjoy the diversion; subsided to his stomach with the beetle
-between his paws, and continued his experiments; grew weary at last,
-and then indifferent and absent-minded. His head nodded, and little by
-little his chin descended and touched the enemy, who seized it. There
-was a sharp yelp, a flirt of the poodle's head, and the beetle fell a
-couple of yards away, and lit on its back once more. The neighboring
-spectators shook with a gentle inward joy, several faces went behind
-fans and handkerchiefs, and Tom was entirely happy. The dog looked
-foolish, and probably felt so; but there was resentment in his heart,
-too, and a craving for revenge. So he went to the beetle and began a
-wary attack on it again; jumping at it from every point of a circle,
-lighting with his fore-paws within an inch of the creature, making even
-closer snatches at it with his teeth, and jerking his head till his
-ears flapped again. But he grew tired once more, after a while; tried
-to amuse himself with a fly but found no relief; followed an ant
-around, with his nose close to the floor, and quickly wearied of that;
-yawned, sighed, forgot the beetle entirely, and sat down on it. Then
-there was a wild yelp of agony and the poodle went sailing up the
-aisle; the yelps continued, and so did the dog; he crossed the house in
-front of the altar; he flew down the other aisle; he crossed before the
-doors; he clamored up the home-stretch; his anguish grew with his
-progress, till presently he was but a woolly comet moving in its orbit
-with the gleam and the speed of light. At last the frantic sufferer
-sheered from its course, and sprang into its master's lap; he flung it
-out of the window, and the voice of distress quickly thinned away and
-died in the distance.
-
-By this time the whole church was red-faced and suffocating with
-suppressed laughter, and the sermon had come to a dead standstill. The
-discourse was resumed presently, but it went lame and halting, all
-possibility of impressiveness being at an end; for even the gravest
-sentiments were constantly being received with a smothered burst of
-unholy mirth, under cover of some remote pew-back, as if the poor
-parson had said a rarely facetious thing. It was a genuine relief to
-the whole congregation when the ordeal was over and the benediction
-pronounced.
-
-Tom Sawyer went home quite cheerful, thinking to himself that there
-was some satisfaction about divine service when there was a bit of
-variety in it. He had but one marring thought; he was willing that the
-dog should play with his pinchbug, but he did not think it was upright
-in him to carry it off.
-
-
-
-CHAPTER VI
-
-MONDAY morning found Tom Sawyer miserable. Monday morning always found
-him so--because it began another week's slow suffering in school. He
-generally began that day with wishing he had had no intervening
-holiday, it made the going into captivity and fetters again so much
-more odious.
-
-Tom lay thinking. Presently it occurred to him that he wished he was
-sick; then he could stay home from school. Here was a vague
-possibility. He canvassed his system. No ailment was found, and he
-investigated again. This time he thought he could detect colicky
-symptoms, and he began to encourage them with considerable hope. But
-they soon grew feeble, and presently died wholly away. He reflected
-further. Suddenly he discovered something. One of his upper front teeth
-was loose. This was lucky; he was about to begin to groan, as a
-"starter," as he called it, when it occurred to him that if he came
-into court with that argument, his aunt would pull it out, and that
-would hurt. So he thought he would hold the tooth in reserve for the
-present, and seek further. Nothing offered for some little time, and
-then he remembered hearing the doctor tell about a certain thing that
-laid up a patient for two or three weeks and threatened to make him
-lose a finger. So the boy eagerly drew his sore toe from under the
-sheet and held it up for inspection. But now he did not know the
-necessary symptoms. However, it seemed well worth while to chance it,
-so he fell to groaning with considerable spirit.
-
-But Sid slept on unconscious.
-
-Tom groaned louder, and fancied that he began to feel pain in the toe.
-
-No result from Sid.
-
-Tom was panting with his exertions by this time. He took a rest and
-then swelled himself up and fetched a succession of admirable groans.
-
-Sid snored on.
-
-Tom was aggravated. He said, "Sid, Sid!" and shook him. This course
-worked well, and Tom began to groan again. Sid yawned, stretched, then
-brought himself up on his elbow with a snort, and began to stare at
-Tom. Tom went on groaning. Sid said:
-
-"Tom! Say, Tom!" [No response.] "Here, Tom! TOM! What is the matter,
-Tom?" And he shook him and looked in his face anxiously.
-
-Tom moaned out:
-
-"Oh, don't, Sid. Don't joggle me."
-
-"Why, what's the matter, Tom? I must call auntie."
-
-"No--never mind. It'll be over by and by, maybe. Don't call anybody."
-
-"But I must! DON'T groan so, Tom, it's awful. How long you been this
-way?"
-
-"Hours. Ouch! Oh, don't stir so, Sid, you'll kill me."
-
-"Tom, why didn't you wake me sooner? Oh, Tom, DON'T! It makes my
-flesh crawl to hear you. Tom, what is the matter?"
-
-"I forgive you everything, Sid. [Groan.] Everything you've ever done
-to me. When I'm gone--"
-
-"Oh, Tom, you ain't dying, are you? Don't, Tom--oh, don't. Maybe--"
-
-"I forgive everybody, Sid. [Groan.] Tell 'em so, Sid. And Sid, you
-give my window-sash and my cat with one eye to that new girl that's
-come to town, and tell her--"
-
-But Sid had snatched his clothes and gone. Tom was suffering in
-reality, now, so handsomely was his imagination working, and so his
-groans had gathered quite a genuine tone.
-
-Sid flew down-stairs and said:
-
-"Oh, Aunt Polly, come! Tom's dying!"
-
-"Dying!"
-
-"Yes'm. Don't wait--come quick!"
-
-"Rubbage! I don't believe it!"
-
-But she fled up-stairs, nevertheless, with Sid and Mary at her heels.
-And her face grew white, too, and her lip trembled. When she reached
-the bedside she gasped out:
-
-"You, Tom! Tom, what's the matter with you?"
-
-"Oh, auntie, I'm--"
-
-"What's the matter with you--what is the matter with you, child?"
-
-"Oh, auntie, my sore toe's mortified!"
-
-The old lady sank down into a chair and laughed a little, then cried a
-little, then did both together. This restored her and she said:
-
-"Tom, what a turn you did give me. Now you shut up that nonsense and
-climb out of this."
-
-The groans ceased and the pain vanished from the toe. The boy felt a
-little foolish, and he said:
-
-"Aunt Polly, it SEEMED mortified, and it hurt so I never minded my
-tooth at all."
-
-"Your tooth, indeed! What's the matter with your tooth?"
-
-"One of them's loose, and it aches perfectly awful."
-
-"There, there, now, don't begin that groaning again. Open your mouth.
-Well--your tooth IS loose, but you're not going to die about that.
-Mary, get me a silk thread, and a chunk of fire out of the kitchen."
-
-Tom said:
-
-"Oh, please, auntie, don't pull it out. It don't hurt any more. I wish
-I may never stir if it does. Please don't, auntie. I don't want to stay
-home from school."
-
-"Oh, you don't, don't you? So all this row was because you thought
-you'd get to stay home from school and go a-fishing? Tom, Tom, I love
-you so, and you seem to try every way you can to break my old heart
-with your outrageousness." By this time the dental instruments were
-ready. The old lady made one end of the silk thread fast to Tom's tooth
-with a loop and tied the other to the bedpost. Then she seized the
-chunk of fire and suddenly thrust it almost into the boy's face. The
-tooth hung dangling by the bedpost, now.
-
-But all trials bring their compensations. As Tom wended to school
-after breakfast, he was the envy of every boy he met because the gap in
-his upper row of teeth enabled him to expectorate in a new and
-admirable way. He gathered quite a following of lads interested in the
-exhibition; and one that had cut his finger and had been a centre of
-fascination and homage up to this time, now found himself suddenly
-without an adherent, and shorn of his glory. His heart was heavy, and
-he said with a disdain which he did not feel that it wasn't anything to
-spit like Tom Sawyer; but another boy said, "Sour grapes!" and he
-wandered away a dismantled hero.
-
-Shortly Tom came upon the juvenile pariah of the village, Huckleberry
-Finn, son of the town drunkard. Huckleberry was cordially hated and
-dreaded by all the mothers of the town, because he was idle and lawless
-and vulgar and bad--and because all their children admired him so, and
-delighted in his forbidden society, and wished they dared to be like
-him. Tom was like the rest of the respectable boys, in that he envied
-Huckleberry his gaudy outcast condition, and was under strict orders
-not to play with him. So he played with him every time he got a chance.
-Huckleberry was always dressed in the cast-off clothes of full-grown
-men, and they were in perennial bloom and fluttering with rags. His hat
-was a vast ruin with a wide crescent lopped out of its brim; his coat,
-when he wore one, hung nearly to his heels and had the rearward buttons
-far down the back; but one suspender supported his trousers; the seat
-of the trousers bagged low and contained nothing, the fringed legs
-dragged in the dirt when not rolled up.
-
-Huckleberry came and went, at his own free will. He slept on doorsteps
-in fine weather and in empty hogsheads in wet; he did not have to go to
-school or to church, or call any being master or obey anybody; he could
-go fishing or swimming when and where he chose, and stay as long as it
-suited him; nobody forbade him to fight; he could sit up as late as he
-pleased; he was always the first boy that went barefoot in the spring
-and the last to resume leather in the fall; he never had to wash, nor
-put on clean clothes; he could swear wonderfully. In a word, everything
-that goes to make life precious that boy had. So thought every
-harassed, hampered, respectable boy in St. Petersburg.
-
-Tom hailed the romantic outcast:
-
-"Hello, Huckleberry!"
-
-"Hello yourself, and see how you like it."
-
-"What's that you got?"
-
-"Dead cat."
-
-"Lemme see him, Huck. My, he's pretty stiff. Where'd you get him?"
-
-"Bought him off'n a boy."
-
-"What did you give?"
-
-"I give a blue ticket and a bladder that I got at the slaughter-house."
-
-"Where'd you get the blue ticket?"
-
-"Bought it off'n Ben Rogers two weeks ago for a hoop-stick."
-
-"Say--what is dead cats good for, Huck?"
-
-"Good for? Cure warts with."
-
-"No! Is that so? I know something that's better."
-
-"I bet you don't. What is it?"
-
-"Why, spunk-water."
-
-"Spunk-water! I wouldn't give a dern for spunk-water."
-
-"You wouldn't, wouldn't you? D'you ever try it?"
-
-"No, I hain't. But Bob Tanner did."
-
-"Who told you so!"
-
-"Why, he told Jeff Thatcher, and Jeff told Johnny Baker, and Johnny
-told Jim Hollis, and Jim told Ben Rogers, and Ben told a nigger, and
-the nigger told me. There now!"
-
-"Well, what of it? They'll all lie. Leastways all but the nigger. I
-don't know HIM. But I never see a nigger that WOULDN'T lie. Shucks! Now
-you tell me how Bob Tanner done it, Huck."
-
-"Why, he took and dipped his hand in a rotten stump where the
-rain-water was."
-
-"In the daytime?"
-
-"Certainly."
-
-"With his face to the stump?"
-
-"Yes. Least I reckon so."
-
-"Did he say anything?"
-
-"I don't reckon he did. I don't know."
-
-"Aha! Talk about trying to cure warts with spunk-water such a blame
-fool way as that! Why, that ain't a-going to do any good. You got to go
-all by yourself, to the middle of the woods, where you know there's a
-spunk-water stump, and just as it's midnight you back up against the
-stump and jam your hand in and say:
-
-  'Barley-corn, barley-corn, injun-meal shorts,
-   Spunk-water, spunk-water, swaller these warts,'
-
-and then walk away quick, eleven steps, with your eyes shut, and then
-turn around three times and walk home without speaking to anybody.
-Because if you speak the charm's busted."
-
-"Well, that sounds like a good way; but that ain't the way Bob Tanner
-done."
-
-"No, sir, you can bet he didn't, becuz he's the wartiest boy in this
-town; and he wouldn't have a wart on him if he'd knowed how to work
-spunk-water. I've took off thousands of warts off of my hands that way,
-Huck. I play with frogs so much that I've always got considerable many
-warts. Sometimes I take 'em off with a bean."
-
-"Yes, bean's good. I've done that."
-
-"Have you? What's your way?"
-
-"You take and split the bean, and cut the wart so as to get some
-blood, and then you put the blood on one piece of the bean and take and
-dig a hole and bury it 'bout midnight at the crossroads in the dark of
-the moon, and then you burn up the rest of the bean. You see that piece
-that's got the blood on it will keep drawing and drawing, trying to
-fetch the other piece to it, and so that helps the blood to draw the
-wart, and pretty soon off she comes."
-
-"Yes, that's it, Huck--that's it; though when you're burying it if you
-say 'Down bean; off wart; come no more to bother me!' it's better.
-That's the way Joe Harper does, and he's been nearly to Coonville and
-most everywheres. But say--how do you cure 'em with dead cats?"
-
-"Why, you take your cat and go and get in the graveyard 'long about
-midnight when somebody that was wicked has been buried; and when it's
-midnight a devil will come, or maybe two or three, but you can't see
-'em, you can only hear something like the wind, or maybe hear 'em talk;
-and when they're taking that feller away, you heave your cat after 'em
-and say, 'Devil follow corpse, cat follow devil, warts follow cat, I'm
-done with ye!' That'll fetch ANY wart."
-
-"Sounds right. D'you ever try it, Huck?"
-
-"No, but old Mother Hopkins told me."
-
-"Well, I reckon it's so, then. Becuz they say she's a witch."
-
-"Say! Why, Tom, I KNOW she is. She witched pap. Pap says so his own
-self. He come along one day, and he see she was a-witching him, so he
-took up a rock, and if she hadn't dodged, he'd a got her. Well, that
-very night he rolled off'n a shed wher' he was a layin drunk, and broke
-his arm."
-
-"Why, that's awful. How did he know she was a-witching him?"
-
-"Lord, pap can tell, easy. Pap says when they keep looking at you
-right stiddy, they're a-witching you. Specially if they mumble. Becuz
-when they mumble they're saying the Lord's Prayer backards."
-
-"Say, Hucky, when you going to try the cat?"
-
-"To-night. I reckon they'll come after old Hoss Williams to-night."
-
-"But they buried him Saturday. Didn't they get him Saturday night?"
-
-"Why, how you talk! How could their charms work till midnight?--and
-THEN it's Sunday. Devils don't slosh around much of a Sunday, I don't
-reckon."
-
-"I never thought of that. That's so. Lemme go with you?"
-
-"Of course--if you ain't afeard."
-
-"Afeard! 'Tain't likely. Will you meow?"
-
-"Yes--and you meow back, if you get a chance. Last time, you kep' me
-a-meowing around till old Hays went to throwing rocks at me and says
-'Dern that cat!' and so I hove a brick through his window--but don't
-you tell."
-
-"I won't. I couldn't meow that night, becuz auntie was watching me,
-but I'll meow this time. Say--what's that?"
-
-"Nothing but a tick."
-
-"Where'd you get him?"
-
-"Out in the woods."
-
-"What'll you take for him?"
-
-"I don't know. I don't want to sell him."
-
-"All right. It's a mighty small tick, anyway."
-
-"Oh, anybody can run a tick down that don't belong to them. I'm
-satisfied with it. It's a good enough tick for me."
-
-"Sho, there's ticks a plenty. I could have a thousand of 'em if I
-wanted to."
-
-"Well, why don't you? Becuz you know mighty well you can't. This is a
-pretty early tick, I reckon. It's the first one I've seen this year."
-
-"Say, Huck--I'll give you my tooth for him."
-
-"Less see it."
-
-Tom got out a bit of paper and carefully unrolled it. Huckleberry
-viewed it wistfully. The temptation was very strong. At last he said:
-
-"Is it genuwyne?"
-
-Tom lifted his lip and showed the vacancy.
-
-"Well, all right," said Huckleberry, "it's a trade."
-
-Tom enclosed the tick in the percussion-cap box that had lately been
-the pinchbug's prison, and the boys separated, each feeling wealthier
-than before.
-
-When Tom reached the little isolated frame schoolhouse, he strode in
-briskly, with the manner of one who had come with all honest speed.
-He hung his hat on a peg and flung himself into his seat with
-business-like alacrity. The master, throned on high in his great
-splint-bottom arm-chair, was dozing, lulled by the drowsy hum of study.
-The interruption roused him.
-
-"Thomas Sawyer!"
-
-Tom knew that when his name was pronounced in full, it meant trouble.
-
-"Sir!"
-
-"Come up here. Now, sir, why are you late again, as usual?"
-
-Tom was about to take refuge in a lie, when he saw two long tails of
-yellow hair hanging down a back that he recognized by the electric
-sympathy of love; and by that form was THE ONLY VACANT PLACE on the
-girls' side of the schoolhouse. He instantly said:
-
-"I STOPPED TO TALK WITH HUCKLEBERRY FINN!"
-
-The master's pulse stood still, and he stared helplessly. The buzz of
-study ceased. The pupils wondered if this foolhardy boy had lost his
-mind. The master said:
-
-"You--you did what?"
-
-"Stopped to talk with Huckleberry Finn."
-
-There was no mistaking the words.
-
-"Thomas Sawyer, this is the most astounding confession I have ever
-listened to. No mere ferule will answer for this offence. Take off your
-jacket."
-
-The master's arm performed until it was tired and the stock of
-switches notably diminished. Then the order followed:
-
-"Now, sir, go and sit with the girls! And let this be a warning to you."
-
-The titter that rippled around the room appeared to abash the boy, but
-in reality that result was caused rather more by his worshipful awe of
-his unknown idol and the dread pleasure that lay in his high good
-fortune. He sat down upon the end of the pine bench and the girl
-hitched herself away from him with a toss of her head. Nudges and winks
-and whispers traversed the room, but Tom sat still, with his arms upon
-the long, low desk before him, and seemed to study his book.
-
-By and by attention ceased from him, and the accustomed school murmur
-rose upon the dull air once more. Presently the boy began to steal
-furtive glances at the girl. She observed it, "made a mouth" at him and
-gave him the back of her head for the space of a minute. When she
-cautiously faced around again, a peach lay before her. She thrust it
-away. Tom gently put it back. She thrust it away again, but with less
-animosity. Tom patiently returned it to its place. Then she let it
-remain. Tom scrawled on his slate, "Please take it--I got more." The
-girl glanced at the words, but made no sign. Now the boy began to draw
-something on the slate, hiding his work with his left hand. For a time
-the girl refused to notice; but her human curiosity presently began to
-manifest itself by hardly perceptible signs. The boy worked on,
-apparently unconscious. The girl made a sort of noncommittal attempt to
-see, but the boy did not betray that he was aware of it. At last she
-gave in and hesitatingly whispered:
-
-"Let me see it."
-
-Tom partly uncovered a dismal caricature of a house with two gable
-ends to it and a corkscrew of smoke issuing from the chimney. Then the
-girl's interest began to fasten itself upon the work and she forgot
-everything else. When it was finished, she gazed a moment, then
-whispered:
-
-"It's nice--make a man."
-
-The artist erected a man in the front yard, that resembled a derrick.
-He could have stepped over the house; but the girl was not
-hypercritical; she was satisfied with the monster, and whispered:
-
-"It's a beautiful man--now make me coming along."
-
-Tom drew an hour-glass with a full moon and straw limbs to it and
-armed the spreading fingers with a portentous fan. The girl said:
-
-"It's ever so nice--I wish I could draw."
-
-"It's easy," whispered Tom, "I'll learn you."
-
-"Oh, will you? When?"
-
-"At noon. Do you go home to dinner?"
-
-"I'll stay if you will."
-
-"Good--that's a whack. What's your name?"
-
-"Becky Thatcher. What's yours? Oh, I know. It's Thomas Sawyer."
-
-"That's the name they lick me by. I'm Tom when I'm good. You call me
-Tom, will you?"
-
-"Yes."
-
-Now Tom began to scrawl something on the slate, hiding the words from
-the girl. But she was not backward this time. She begged to see. Tom
-said:
-
-"Oh, it ain't anything."
-
-"Yes it is."
-
-"No it ain't. You don't want to see."
-
-"Yes I do, indeed I do. Please let me."
-
-"You'll tell."
-
-"No I won't--deed and deed and double deed won't."
-
-"You won't tell anybody at all? Ever, as long as you live?"
-
-"No, I won't ever tell ANYbody. Now let me."
-
-"Oh, YOU don't want to see!"
-
-"Now that you treat me so, I WILL see." And she put her small hand
-upon his and a little scuffle ensued, Tom pretending to resist in
-earnest but letting his hand slip by degrees till these words were
-revealed: "I LOVE YOU."
-
-"Oh, you bad thing!" And she hit his hand a smart rap, but reddened
-and looked pleased, nevertheless.
-
-Just at this juncture the boy felt a slow, fateful grip closing on his
-ear, and a steady lifting impulse. In that wise he was borne across the
-house and deposited in his own seat, under a peppering fire of giggles
-from the whole school. Then the master stood over him during a few
-awful moments, and finally moved away to his throne without saying a
-word. But although Tom's ear tingled, his heart was jubilant.
-
-As the school quieted down Tom made an honest effort to study, but the
-turmoil within him was too great. In turn he took his place in the
-reading class and made a botch of it; then in the geography class and
-turned lakes into mountains, mountains into rivers, and rivers into
-continents, till chaos was come again; then in the spelling class, and
-got "turned down," by a succession of mere baby words, till he brought
-up at the foot and yielded up the pewter medal which he had worn with
-ostentation for months.
-
-
-
-CHAPTER VII
-
-THE harder Tom tried to fasten his mind on his book, the more his
-ideas wandered. So at last, with a sigh and a yawn, he gave it up. It
-seemed to him that the noon recess would never come. The air was
-utterly dead. There was not a breath stirring. It was the sleepiest of
-sleepy days. The drowsing murmur of the five and twenty studying
-scholars soothed the soul like the spell that is in the murmur of bees.
-Away off in the flaming sunshine, Cardiff Hill lifted its soft green
-sides through a shimmering veil of heat, tinted with the purple of
-distance; a few birds floated on lazy wing high in the air; no other
-livin

<TRUNCATED>

[41/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractSelfTest.java
index ff7b487..30f13ac 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractSelfTest.java
@@ -21,7 +21,6 @@ import org.apache.hadoop.conf.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.fs.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.fs.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.testframework.junits.common.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractWordCountTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractWordCountTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractWordCountTest.java
index 24f5be2..feabea2 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractWordCountTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractWordCountTest.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import com.google.common.base.*;
 import org.apache.hadoop.conf.*;
-import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.processors.fs.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopClassLoaderTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopClassLoaderTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopClassLoaderTest.java
index 1753472..f9ed542 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopClassLoaderTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopClassLoaderTest.java
@@ -17,8 +17,8 @@
 
 package org.apache.ignite.internal.processors.hadoop;
 
-import junit.framework.TestCase;
-import org.apache.hadoop.mapreduce.Job;
+import junit.framework.*;
+import org.apache.hadoop.mapreduce.*;
 
 /**
  *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
index a83dc08..1d1d62c 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
@@ -17,10 +17,9 @@
 
 package org.apache.ignite.internal.processors.hadoop;
 
-import com.google.common.base.Joiner;
+import com.google.common.base.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.jobtracker.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
index 7b5f76b..4ffbfd9 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.java
@@ -25,11 +25,10 @@ import org.apache.ignite.fs.mapreduce.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.fs.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.planner.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.lang.*;
 import org.apache.ignite.testframework.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileSystemsTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileSystemsTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileSystemsTest.java
index e7c0efe..ccc30a7 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileSystemsTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileSystemsTest.java
@@ -18,15 +18,16 @@
 package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.hadoop.conf.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.ignite.internal.processors.hadoop.fs.*;
-import org.apache.ignite.testframework.GridTestUtils;
+import org.apache.ignite.testframework.*;
 
 import java.io.*;
 import java.net.*;
 import java.util.concurrent.*;
-import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.*;
 
 /**
  * Test file systems for the working directory multi-threading support.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopGroupingTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopGroupingTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopGroupingTest.java
index de38b7c..8d20d99 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopGroupingTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopGroupingTest.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobTrackerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobTrackerSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobTrackerSelfTest.java
index b735263..f1f316f 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobTrackerSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobTrackerSelfTest.java
@@ -19,10 +19,9 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.mapreduce.*;
-import org.apache.hadoop.mapreduce.lib.input.FileSplit;
-import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
+import org.apache.hadoop.mapreduce.lib.input.*;
+import org.apache.hadoop.mapreduce.lib.output.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceEmbeddedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceEmbeddedSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceEmbeddedSelfTest.java
index 4d8d610..61e18c3 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceEmbeddedSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceEmbeddedSelfTest.java
@@ -27,7 +27,6 @@ import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.examples.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceTest.java
index 5a3e536..f5bcffe 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReduceTest.java
@@ -26,7 +26,6 @@ import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.examples.*;
 import org.apache.ignite.internal.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPopularWordsTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPopularWordsTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPopularWordsTest.java
new file mode 100644
index 0000000..5913d84
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPopularWordsTest.java
@@ -0,0 +1,294 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import com.google.common.collect.*;
+import org.apache.hadoop.conf.*;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.*;
+import org.apache.hadoop.io.*;
+import org.apache.hadoop.mapreduce.*;
+import org.apache.hadoop.mapreduce.lib.input.*;
+import org.apache.hadoop.mapreduce.lib.output.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+import java.util.Map.*;
+
+import static com.google.common.collect.Maps.*;
+import static com.google.common.collect.MinMaxPriorityQueue.*;
+import static java.util.Collections.*;
+
+/**
+ * Hadoop-based 10 popular words example: all files in a given directory are tokenized and for each word longer than
+ * 3 characters the number of occurrences ins calculated. Finally, 10 words with the highest occurrence count are
+ * output.
+ *
+ * NOTE: in order to run this example on Windows please ensure that cygwin is installed and available in the system
+ * path.
+ */
+public class GridHadoopPopularWordsTest {
+    /** GridGain home. */
+    private static final String IGNITE_HOME = U.getGridGainHome();
+
+    /** The path to the input directory. ALl files in that directory will be processed. */
+    private static final Path BOOKS_LOCAL_DIR =
+        new Path("file:" + IGNITE_HOME, "modules/tests/java/org/gridgain/grid/hadoop/books");
+
+    /** The path to the output directory. THe result file will be written to this location. */
+    private static final Path RESULT_LOCAL_DIR =
+        new Path("file:" + IGNITE_HOME, "modules/tests/java/org/gridgain/grid/hadoop/output");
+
+    /** Popular books source dir in DFS. */
+    private static final Path BOOKS_DFS_DIR = new Path("tmp/word-count-example/in");
+
+    /** Popular books source dir in DFS. */
+    private static final Path RESULT_DFS_DIR = new Path("tmp/word-count-example/out");
+
+    /** Path to the distributed file system configuration. */
+    private static final String DFS_CFG = "examples/config/filesystem/core-site.xml";
+
+    /** Top N words to select **/
+    private static final int POPULAR_WORDS_CNT = 10;
+
+    /**
+     * For each token in the input string the mapper emits a {word, 1} pair.
+     */
+    private static class TokenizingMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
+        /** Constant value. */
+        private static final IntWritable ONE = new IntWritable(1);
+
+        /** The word converted into the Text. */
+        private Text word = new Text();
+
+        /**
+         * Emits a entry where the key is the word and the value is always 1.
+         *
+         * @param key the current position in the input file (not used here)
+         * @param val the text string
+         * @param ctx mapper context
+         * @throws IOException
+         * @throws InterruptedException
+         */
+        @Override protected void map(LongWritable key, Text val, Context ctx)
+            throws IOException, InterruptedException {
+            // Get the mapped object.
+            final String line = val.toString();
+
+            // Splits the given string to words.
+            final String[] words = line.split("[^a-zA-Z0-9]");
+
+            for (final String w : words) {
+                // Only emit counts for longer words.
+                if (w.length() <= 3)
+                    continue;
+
+                word.set(w);
+
+                // Write the word into the context with the initial count equals 1.
+                ctx.write(word, ONE);
+            }
+        }
+    }
+
+    /**
+     * The reducer uses a priority queue to rank the words based on its number of occurrences.
+     */
+    private static class TopNWordsReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
+        private MinMaxPriorityQueue<Entry<Integer, String>> q;
+
+        TopNWordsReducer() {
+            q = orderedBy(reverseOrder(new Comparator<Entry<Integer, String>>() {
+                @Override public int compare(Entry<Integer, String> o1, Entry<Integer, String> o2) {
+                    return o1.getKey().compareTo(o2.getKey());
+                }
+            })).expectedSize(POPULAR_WORDS_CNT).maximumSize(POPULAR_WORDS_CNT).create();
+        }
+
+        /**
+         * This method doesn't emit anything, but just keeps track of the top N words.
+         *
+         * @param key The word.
+         * @param vals The words counts.
+         * @param ctx Reducer context.
+         * @throws IOException If failed.
+         * @throws InterruptedException If failed.
+         */
+        @Override public void reduce(Text key, Iterable<IntWritable> vals, Context ctx) throws IOException,
+            InterruptedException {
+            int sum = 0;
+
+            for (IntWritable val : vals)
+                sum += val.get();
+
+            q.add(immutableEntry(sum, key.toString()));
+        }
+
+        /**
+         * This method is called after all the word entries have been processed. It writes the accumulated
+         * statistics to the job output file.
+         *
+         * @param ctx The job context.
+         * @throws IOException If failed.
+         * @throws InterruptedException If failed.
+         */
+        @Override protected void cleanup(Context ctx) throws IOException, InterruptedException {
+            IntWritable i = new IntWritable();
+
+            Text txt = new Text();
+
+            // iterate in desc order
+            while (!q.isEmpty()) {
+                Entry<Integer, String> e = q.removeFirst();
+
+                i.set(e.getKey());
+
+                txt.set(e.getValue());
+
+                ctx.write(txt, i);
+            }
+        }
+    }
+
+    /**
+     * Configures the Hadoop MapReduce job.
+     *
+     * @return Instance of the Hadoop MapRed job.
+     * @throws IOException If failed.
+     */
+    private Job createConfigBasedHadoopJob() throws IOException {
+        Job jobCfg = new Job();
+
+        Configuration cfg = jobCfg.getConfiguration();
+
+        // Use explicit configuration of distributed file system, if provided.
+        if (DFS_CFG != null)
+            cfg.addResource(U.resolveGridGainUrl(DFS_CFG));
+
+        jobCfg.setJobName("HadoopPopularWordExample");
+        jobCfg.setJarByClass(GridHadoopPopularWordsTest.class);
+        jobCfg.setInputFormatClass(TextInputFormat.class);
+        jobCfg.setOutputKeyClass(Text.class);
+        jobCfg.setOutputValueClass(IntWritable.class);
+        jobCfg.setMapperClass(TokenizingMapper.class);
+        jobCfg.setReducerClass(TopNWordsReducer.class);
+
+        FileInputFormat.setInputPaths(jobCfg, BOOKS_DFS_DIR);
+        FileOutputFormat.setOutputPath(jobCfg, RESULT_DFS_DIR);
+
+        // Local job tracker allows the only task per wave, but text input format
+        // replaces it with the calculated value based on input split size option.
+        if ("local".equals(cfg.get("mapred.job.tracker", "local"))) {
+            // Split job into tasks using 32MB split size.
+            FileInputFormat.setMinInputSplitSize(jobCfg, 32 * 1024 * 1024);
+            FileInputFormat.setMaxInputSplitSize(jobCfg, Long.MAX_VALUE);
+        }
+
+        return jobCfg;
+    }
+
+    /**
+     * Runs the Hadoop job.
+     *
+     * @return {@code True} if succeeded, {@code false} otherwise.
+     * @throws Exception If failed.
+     */
+    private boolean runWordCountConfigBasedHadoopJob() throws Exception {
+        Job job = createConfigBasedHadoopJob();
+
+        // Distributed file system this job will work with.
+        FileSystem fs = FileSystem.get(job.getConfiguration());
+
+        X.println(">>> Using distributed file system: " + fs.getHomeDirectory());
+
+        // Prepare input and output job directories.
+        prepareDirectories(fs);
+
+        long time = System.currentTimeMillis();
+
+        // Run job.
+        boolean res = job.waitForCompletion(true);
+
+        X.println(">>> Job execution time: " + (System.currentTimeMillis() - time) / 1000 + " sec.");
+
+        // Move job results into local file system, so you can view calculated results.
+        publishResults(fs);
+
+        return res;
+    }
+
+    /**
+     * Prepare job's data: cleanup result directories that might have left over
+     * after previous runs, copy input files from the local file system into DFS.
+     *
+     * @param fs Distributed file system to use in job.
+     * @throws IOException If failed.
+     */
+    private void prepareDirectories(FileSystem fs) throws IOException {
+        X.println(">>> Cleaning up DFS result directory: " + RESULT_DFS_DIR);
+
+        fs.delete(RESULT_DFS_DIR, true);
+
+        X.println(">>> Cleaning up DFS input directory: " + BOOKS_DFS_DIR);
+
+        fs.delete(BOOKS_DFS_DIR, true);
+
+        X.println(">>> Copy local files into DFS input directory: " + BOOKS_DFS_DIR);
+
+        fs.copyFromLocalFile(BOOKS_LOCAL_DIR, BOOKS_DFS_DIR);
+    }
+
+    /**
+     * Publish job execution results into local file system, so you can view them.
+     *
+     * @param fs Distributed file sytem used in job.
+     * @throws IOException If failed.
+     */
+    private void publishResults(FileSystem fs) throws IOException {
+        X.println(">>> Cleaning up DFS input directory: " + BOOKS_DFS_DIR);
+
+        fs.delete(BOOKS_DFS_DIR, true);
+
+        X.println(">>> Cleaning up LOCAL result directory: " + RESULT_LOCAL_DIR);
+
+        fs.delete(RESULT_LOCAL_DIR, true);
+
+        X.println(">>> Moving job results into LOCAL result directory: " + RESULT_LOCAL_DIR);
+
+        fs.copyToLocalFile(true, RESULT_DFS_DIR, RESULT_LOCAL_DIR);
+    }
+
+    /**
+     * Executes a modified version of the Hadoop word count example. Here, in addition to counting the number of
+     * occurrences of the word in the source files, the N most popular words are selected.
+     *
+     * @param args None.
+     */
+    public static void main(String[] args) {
+        try {
+            new GridHadoopPopularWordsTest().runWordCountConfigBasedHadoopJob();
+        }
+        catch (Exception e) {
+            X.println(">>> Failed to run word count example: " + e.getMessage());
+        }
+
+        System.exit(0);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerializationWrapperSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerializationWrapperSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerializationWrapperSelfTest.java
index 11874f5..79b9965 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerializationWrapperSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerializationWrapperSelfTest.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.io.serializer.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 import org.apache.ignite.testframework.junits.common.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSharedMap.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSharedMap.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSharedMap.java
index 51c5d11..689fb58 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSharedMap.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSharedMap.java
@@ -17,9 +17,9 @@
 
 package org.apache.ignite.internal.processors.hadoop;
 
-import org.jdk8.backport.ConcurrentHashMap8;
+import org.jdk8.backport.*;
 
-import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.*;
 
 /**
  * For tests.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingExternalTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingExternalTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingExternalTest.java
index 2ca0b53..23884ef 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingExternalTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingExternalTest.java
@@ -17,8 +17,6 @@
 
 package org.apache.ignite.internal.processors.hadoop;
 
-import org.apache.ignite.hadoop.*;
-
 /**
  * External test for sorting.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingTest.java
index 9a79546..515d946 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSortingTest.java
@@ -23,7 +23,6 @@ import org.apache.hadoop.io.serializer.*;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.mapreduce.lib.output.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskExecutionSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskExecutionSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskExecutionSelfTest.java
index b6e8f41..63b9e6e 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskExecutionSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskExecutionSelfTest.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.hadoop.conf.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
@@ -25,9 +26,8 @@ import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.mapreduce.lib.output.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
-import org.apache.ignite.internal.*;
 import org.apache.ignite.fs.hadoop.v1.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksAllVersionsTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksAllVersionsTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksAllVersionsTest.java
index 88ccbe3..c732c1f 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksAllVersionsTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksAllVersionsTest.java
@@ -21,7 +21,6 @@ import com.google.common.base.*;
 import org.apache.hadoop.io.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.examples.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV1Test.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV1Test.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV1Test.java
index 54197ac..15ac125 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV1Test.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV1Test.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.hadoop.mapred.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.examples.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV2Test.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV2Test.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV2Test.java
index c2fb861..e48eb01 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV2Test.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTasksV2Test.java
@@ -23,7 +23,6 @@ import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.mapreduce.lib.output.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.examples.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestRoundRobinMrPlanner.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestRoundRobinMrPlanner.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestRoundRobinMrPlanner.java
index 9d89aaf..5baa8cd 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestRoundRobinMrPlanner.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestRoundRobinMrPlanner.java
@@ -19,8 +19,7 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
-import org.apache.ignite.hadoop.*;
-import org.apache.ignite.internal.processors.hadoop.planner.GridHadoopDefaultMapReducePlan;
+import org.apache.ignite.internal.processors.hadoop.planner.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestTaskContext.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestTaskContext.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestTaskContext.java
index 09aa23b..4e0aa9b 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestTaskContext.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestTaskContext.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.hadoop;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapred.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestUtils.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestUtils.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestUtils.java
new file mode 100644
index 0000000..cdbb809
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTestUtils.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.typedef.*;
+
+import java.io.*;
+import java.util.*;
+
+import static org.junit.Assert.*;
+
+/**
+ * Utility class for tests.
+ */
+public class GridHadoopTestUtils {
+    /**
+     * Checks that job statistics file contains valid strings only.
+     *
+     * @param reader Buffered reader to get lines of job statistics.
+     * @return Amount of events.
+     * @throws IOException If failed.
+     */
+    public static long simpleCheckJobStatFile(BufferedReader reader) throws IOException {
+        Collection<String> phases = new HashSet<>();
+
+        phases.add("submit");
+        phases.add("prepare");
+        phases.add("start");
+        phases.add("finish");
+        phases.add("requestId");
+        phases.add("responseId");
+
+        Collection<String> evtTypes = new HashSet<>();
+
+        evtTypes.add("JOB");
+        evtTypes.add("SETUP");
+        evtTypes.add("MAP");
+        evtTypes.add("SHUFFLE");
+        evtTypes.add("REDUCE");
+        evtTypes.add("COMBINE");
+        evtTypes.add("COMMIT");
+
+        long evtCnt = 0;
+        String line;
+
+        Map<Long, String> reduceNodes = new HashMap<>();
+
+        while((line = reader.readLine()) != null) {
+            String[] splitLine = line.split(":");
+
+            //Try parse timestamp
+            Long.parseLong(splitLine[1]);
+
+            String[] evt = splitLine[0].split(" ");
+
+            assertTrue("Unknown event '" + evt[0] + "'", evtTypes.contains(evt[0]));
+
+            String phase;
+
+            if ("JOB".equals(evt[0]))
+                phase = evt[1];
+            else {
+                assertEquals(4, evt.length);
+                assertTrue("The node id is not defined", !F.isEmpty(evt[3]));
+
+                long taskNum = Long.parseLong(evt[1]);
+
+                if (("REDUCE".equals(evt[0]) || "SHUFFLE".equals(evt[0]))) {
+                    String nodeId = reduceNodes.get(taskNum);
+
+                    if (nodeId == null)
+                        reduceNodes.put(taskNum, evt[3]);
+                    else
+                        assertEquals("Different nodes for SHUFFLE and REDUCE tasks", nodeId, evt[3]);
+                }
+
+                phase = evt[2];
+            }
+
+            assertTrue("Unknown phase '" + phase + "' in " + Arrays.toString(evt), phases.contains(phase));
+
+            evtCnt++;
+        }
+
+        return evtCnt;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopV2JobSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopV2JobSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopV2JobSelfTest.java
index 03d83a3..b201614 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopV2JobSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopV2JobSelfTest.java
@@ -22,7 +22,6 @@ import org.apache.hadoop.io.*;
 import org.apache.hadoop.io.serializer.*;
 import org.apache.hadoop.mapred.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 
 import java.io.*;


[13/50] [abbrv] incubator-ignite git commit: #Tests: Fix hadoop tests.

Posted by se...@apache.org.
#Tests: Fix hadoop tests.


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

Branch: refs/heads/ignite-132
Commit: 0331e7bf307ba87b36d4303ae6dc3df49ce79a21
Parents: 57f55f6
Author: ivasilinets <iv...@gridgain.com>
Authored: Fri Jan 30 16:11:47 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Fri Jan 30 16:11:47 2015 +0300

----------------------------------------------------------------------
 .../internal/processors/hadoop/GridHadoopCommandLineTest.java    | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/0331e7bf/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
index c243c30..a83dc08 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCommandLineTest.java
@@ -157,9 +157,9 @@ public class GridHadoopCommandLineTest extends GridCommonAbstractTest {
 
         testWorkDir = Files.createTempDirectory("hadoop-cli-test").toFile();
 
-        U.copy(U.resolveGridGainPath("docs/core-site.gridgain.xml"), new File(testWorkDir, "core-site.xml"), false);
+        U.copy(U.resolveGridGainPath("docs/core-site.ignite.xml"), new File(testWorkDir, "core-site.xml"), false);
 
-        File srcFile = U.resolveGridGainPath("docs/mapred-site.gridgain.xml");
+        File srcFile = U.resolveGridGainPath("docs/mapred-site.ignite.xml");
         File dstFile = new File(testWorkDir, "mapred-site.xml");
 
         try (BufferedReader in = new BufferedReader(new FileReader(srcFile));


[12/50] [abbrv] incubator-ignite git commit: #Tests: Fix GridCachePutAllFailoverSelfTest.

Posted by se...@apache.org.
#Tests: Fix GridCachePutAllFailoverSelfTest.


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

Branch: refs/heads/ignite-132
Commit: 57f55f6dfba2a6661f46ca5184131e6689c20dd1
Parents: ff01e66
Author: ivasilinets <iv...@gridgain.com>
Authored: Fri Jan 30 15:39:25 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Fri Jan 30 15:39:25 2015 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCachePutAllFailoverSelfTest.java        | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/57f55f6d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
index 80f62d3..86c2c05 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCachePutAllFailoverSelfTest.java
@@ -51,7 +51,7 @@ public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
     private static TcpDiscoveryIpFinder ipFinder = new TcpDiscoveryVmIpFinder(true);
 
     /** Size of the test map. */
-    private static final int TEST_MAP_SIZE = 100000;
+    private static final int TEST_MAP_SIZE = 30000;
 
     /** Cache name. */
     private static final String CACHE_NAME = "partitioned";
@@ -327,7 +327,7 @@ public class GridCachePutAllFailoverSelfTest extends GridCommonAbstractTest {
 
             if (!failedWait && !absentKeys.isEmpty()) {
                 // Give some time to preloader.
-                U.sleep(15000);
+                U.sleep(20000);
 
                 absentKeys = findAbsentKeys(runningWorkers.get(0), testKeys);
             }


[47/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopEmbeddedTaskExecutor.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopEmbeddedTaskExecutor.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopEmbeddedTaskExecutor.java
index bc7c418..fde5400 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopEmbeddedTaskExecutor.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopEmbeddedTaskExecutor.java
@@ -18,9 +18,9 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
-import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.jobtracker.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorService.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorService.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorService.java
index 994c9dd..5e918c3 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorService.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopExecutorService.java
@@ -19,9 +19,9 @@ package org.apache.ignite.internal.processors.hadoop.taskexecutor;
 
 
 import org.apache.ignite.*;
-import org.apache.ignite.thread.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.worker.*;
+import org.apache.ignite.thread.*;
 import org.jdk8.backport.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopRunnableTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopRunnableTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopRunnableTask.java
index a8d2645..fd4a030 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopRunnableTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopRunnableTask.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.shuffle.collections.*;
@@ -28,8 +27,8 @@ import org.apache.ignite.internal.util.typedef.internal.*;
 import java.util.*;
 import java.util.concurrent.*;
 
-import static org.apache.ignite.hadoop.GridHadoopJobProperty.*;
-import static org.apache.ignite.hadoop.GridHadoopTaskType.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopJobProperty.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopTaskType.*;
 
 /**
  * Runnable task.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskExecutorAdapter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskExecutorAdapter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskExecutorAdapter.java
index 2cf2051..8f66190 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskExecutorAdapter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskExecutorAdapter.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.jobtracker.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskStatus.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskStatus.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskStatus.java
index 47f38e1..89ef8c1 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskStatus.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/GridHadoopTaskStatus.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.taskexecutor;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutor.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutor.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutor.java
index 0b68155..61c5717 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutor.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopExternalTaskExecutor.java
@@ -19,19 +19,18 @@ package org.apache.ignite.internal.processors.hadoop.taskexecutor.external;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.spi.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.jobtracker.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.child.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.communication.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.future.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.*;
 import org.jdk8.backport.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopJobInfoUpdateRequest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopJobInfoUpdateRequest.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopJobInfoUpdateRequest.java
index a608999..2a7c7a8 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopJobInfoUpdateRequest.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopJobInfoUpdateRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopPrepareForJobRequest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopPrepareForJobRequest.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopPrepareForJobRequest.java
index 46fa13a..3a55d19 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopPrepareForJobRequest.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopPrepareForJobRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskExecutionRequest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskExecutionRequest.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskExecutionRequest.java
index be94ea6..9f11e0e 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskExecutionRequest.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskExecutionRequest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskFinishedMessage.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskFinishedMessage.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskFinishedMessage.java
index f672610..f69abaf 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskFinishedMessage.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/GridHadoopTaskFinishedMessage.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopChildProcessRunner.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopChildProcessRunner.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopChildProcessRunner.java
index 4408b9a..2d00222 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopChildProcessRunner.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopChildProcessRunner.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.taskexecutor.external.child
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.processors.hadoop.shuffle.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.*;
@@ -34,7 +34,7 @@ import org.apache.ignite.internal.util.typedef.internal.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
-import static org.apache.ignite.hadoop.GridHadoopTaskType.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopTaskType.*;
 
 /**
  * Hadoop process base.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopExternalProcessStarter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopExternalProcessStarter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopExternalProcessStarter.java
index 714fc44..e740f90 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopExternalProcessStarter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/child/GridHadoopExternalProcessStarter.java
@@ -18,12 +18,12 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external.child;
 
 import org.apache.ignite.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.logger.log4j.*;
-import org.apache.ignite.marshaller.optimized.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.communication.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.logger.log4j.*;
+import org.apache.ignite.marshaller.optimized.*;
 
 import java.io.*;
 import java.net.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunication.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunication.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunication.java
index 27279cb..574bcb9 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunication.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopExternalCommunication.java
@@ -18,17 +18,17 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external.communication;
 
 import org.apache.ignite.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.marshaller.*;
-import org.apache.ignite.thread.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.ipc.*;
 import org.apache.ignite.internal.util.ipc.shmem.*;
 import org.apache.ignite.internal.util.nio.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.internal.util.worker.*;
+import org.apache.ignite.marshaller.*;
+import org.apache.ignite.thread.*;
 import org.jdk8.backport.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopMarshallerFilter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopMarshallerFilter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopMarshallerFilter.java
index 8cdcdac..8445405 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopMarshallerFilter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/taskexecutor/external/communication/GridHadoopMarshallerFilter.java
@@ -18,9 +18,9 @@
 package org.apache.ignite.internal.processors.hadoop.taskexecutor.external.communication;
 
 import org.apache.ignite.*;
-import org.apache.ignite.marshaller.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.nio.*;
+import org.apache.ignite.marshaller.*;
 
 /**
  * Serialization filter.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1CleanupTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1CleanupTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1CleanupTask.java
index be5cda1..99ee9b77 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1CleanupTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1CleanupTask.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.v1;
 
 import org.apache.hadoop.mapred.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1MapTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1MapTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1MapTask.java
index d154df1..16c2b8c 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1MapTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1MapTask.java
@@ -21,7 +21,6 @@ import org.apache.hadoop.fs.*;
 import org.apache.hadoop.mapred.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1OutputCollector.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1OutputCollector.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1OutputCollector.java
index 48509d4..2a38684 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1OutputCollector.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1OutputCollector.java
@@ -18,11 +18,8 @@
 package org.apache.ignite.internal.processors.hadoop.v1;
 
 import org.apache.hadoop.mapred.*;
-import org.apache.hadoop.mapred.OutputFormat;
-import org.apache.hadoop.mapred.RecordWriter;
-import org.apache.hadoop.mapred.TaskAttemptID;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Partitioner.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Partitioner.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Partitioner.java
index e7ebcf4..688ccef 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Partitioner.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Partitioner.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.processors.hadoop.v1;
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.mapred.*;
 import org.apache.hadoop.util.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 /**
  * Hadoop partitioner adapter for v1 API.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1ReduceTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1ReduceTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1ReduceTask.java
index 0543185..7deea90 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1ReduceTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1ReduceTask.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.hadoop.v1;
 import org.apache.hadoop.mapred.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Reporter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Reporter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Reporter.java
index b8a5d6b..1abb2c0 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Reporter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Reporter.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.v1;
 
 import org.apache.hadoop.mapred.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1SetupTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1SetupTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1SetupTask.java
index 117e583..c7dc3fd 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1SetupTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1SetupTask.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.v1;
 
 import org.apache.hadoop.mapred.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Splitter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Splitter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Splitter.java
index fad885f..257f4ea 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Splitter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Splitter.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.hadoop.v1;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.mapred.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Task.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Task.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Task.java
index 3a61772..86a7264 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Task.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v1/GridHadoopV1Task.java
@@ -17,9 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.v1;
 
-import org.apache.hadoop.mapred.JobConf;
-import org.apache.hadoop.mapred.TaskAttemptID;
-import org.apache.ignite.hadoop.*;
+import org.apache.hadoop.mapred.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopExternalSplit.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopExternalSplit.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopExternalSplit.java
index 96cc680..36b40a2 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopExternalSplit.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopExternalSplit.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 import java.io.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSerializationWrapper.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSerializationWrapper.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSerializationWrapper.java
index 398b1e3..0f38548 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSerializationWrapper.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSerializationWrapper.java
@@ -19,11 +19,11 @@ package org.apache.ignite.internal.processors.hadoop.v2;
 
 import org.apache.hadoop.io.serializer.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
-import java.io.*;
-
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.jetbrains.annotations.*;
 
+import java.io.*;
+
 /**
  * The wrapper around external serializer.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSplitWrapper.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSplitWrapper.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSplitWrapper.java
index 78f1b4c..791f90b 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSplitWrapper.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopSplitWrapper.java
@@ -17,8 +17,8 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
-import org.apache.ignite.hadoop.*;
 
 import java.io.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2CleanupTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2CleanupTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2CleanupTask.java
index 05ebe23..5818526 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2CleanupTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2CleanupTask.java
@@ -17,10 +17,12 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
-import org.apache.hadoop.mapred.JobContextImpl;
-import org.apache.hadoop.mapreduce.*;
+import org.apache.hadoop.mapred.*;
+import org.apache.hadoop.mapreduce.JobStatus;
+import org.apache.hadoop.mapreduce.OutputCommitter;
+import org.apache.hadoop.mapreduce.OutputFormat;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 import java.io.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Context.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Context.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Context.java
index ff35522..287b10f 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Context.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Context.java
@@ -22,7 +22,6 @@ import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.mapreduce.task.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Job.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Job.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Job.java
index 6e60dac..7c36948 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Job.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Job.java
@@ -19,14 +19,12 @@ package org.apache.ignite.internal.processors.hadoop.v2;
 
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.mapred.*;
 import org.apache.hadoop.mapred.JobID;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.split.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.fs.*;
 import org.apache.ignite.internal.processors.hadoop.v1.*;
@@ -38,6 +36,7 @@ import org.jdk8.backport.*;
 import java.io.*;
 import java.lang.reflect.*;
 import java.util.*;
+import java.util.Queue;
 import java.util.concurrent.*;
 
 import static org.apache.ignite.internal.processors.hadoop.GridHadoopUtils.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2JobResourceManager.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2JobResourceManager.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2JobResourceManager.java
index a07a2c3..b288089 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2JobResourceManager.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2JobResourceManager.java
@@ -17,12 +17,14 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.mapred.*;
-import org.apache.hadoop.mapreduce.MRJobConfig;
+import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
@@ -30,8 +32,7 @@ import org.jetbrains.annotations.*;
 
 import java.io.*;
 import java.net.*;
-import java.nio.file.FileSystemException;
-import java.nio.file.Files;
+import java.nio.file.*;
 import java.util.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2MapTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2MapTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2MapTask.java
index 2e625f3..0f7357a 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2MapTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2MapTask.java
@@ -17,14 +17,18 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
-import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.mapred.JobContextImpl;
-import org.apache.hadoop.mapreduce.*;
+import org.apache.hadoop.fs.*;
+import org.apache.hadoop.mapred.*;
+import org.apache.hadoop.mapreduce.InputFormat;
+import org.apache.hadoop.mapreduce.InputSplit;
+import org.apache.hadoop.mapreduce.Mapper;
+import org.apache.hadoop.mapreduce.OutputFormat;
+import org.apache.hadoop.mapreduce.RecordReader;
+import org.apache.hadoop.mapreduce.lib.input.FileSplit;
 import org.apache.hadoop.mapreduce.lib.map.*;
-import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 /**
  * Hadoop map task implementation for v2 API.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Partitioner.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Partitioner.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Partitioner.java
index 36f79e8..0883520 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Partitioner.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Partitioner.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.processors.hadoop.v2;
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.util.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 /**
  * Hadoop partitioner adapter for v2 API.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2ReduceTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2ReduceTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2ReduceTask.java
index e59fb01..2a0db5c 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2ReduceTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2ReduceTask.java
@@ -17,12 +17,13 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
-import org.apache.hadoop.mapred.JobContextImpl;
-import org.apache.hadoop.mapreduce.*;
+import org.apache.hadoop.mapred.*;
+import org.apache.hadoop.mapreduce.OutputFormat;
+import org.apache.hadoop.mapreduce.Reducer;
 import org.apache.hadoop.mapreduce.lib.reduce.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 /**
  * Hadoop reduce task implementation for v2 API.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2SetupTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2SetupTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2SetupTask.java
index 9218f36..3bbee35 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2SetupTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2SetupTask.java
@@ -17,10 +17,11 @@
 
 package org.apache.ignite.internal.processors.hadoop.v2;
 
-import org.apache.hadoop.mapred.JobContextImpl;
-import org.apache.hadoop.mapreduce.*;
+import org.apache.hadoop.mapred.*;
+import org.apache.hadoop.mapreduce.OutputCommitter;
+import org.apache.hadoop.mapreduce.OutputFormat;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 import java.io.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Splitter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Splitter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Splitter.java
index e6c6911..9926f37 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Splitter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Splitter.java
@@ -21,7 +21,6 @@ import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.lib.input.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Task.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Task.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Task.java
index b5719e3..37697c6 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Task.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2Task.java
@@ -20,7 +20,7 @@ package org.apache.ignite.internal.processors.hadoop.v2;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2TaskContext.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2TaskContext.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2TaskContext.java
index 3e0a1a1..ee744d8 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2TaskContext.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopV2TaskContext.java
@@ -29,7 +29,6 @@ import org.apache.hadoop.mapred.TaskID;
 import org.apache.hadoop.mapreduce.JobContext;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.fs.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopWritableSerialization.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopWritableSerialization.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopWritableSerialization.java
index 508c305..4361ad4 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopWritableSerialization.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/v2/GridHadoopWritableSerialization.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.v2;
 
 import org.apache.hadoop.io.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolEmbeddedSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolEmbeddedSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolEmbeddedSelfTest.java
index 704e9c2..780ce67 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolEmbeddedSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolEmbeddedSelfTest.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.client.hadoop;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 /**
  * Hadoop client protocol tests in embedded process mode.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridFileSystemLoad.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridFileSystemLoad.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridFileSystemLoad.java
index e89a513..0882902 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridFileSystemLoad.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridFileSystemLoad.java
@@ -19,8 +19,9 @@ package org.apache.ignite.fs;
 
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.permission.*;
-import org.apache.ignite.Ignite;
+import org.apache.ignite.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoop20FileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
index d4a255a..9274014 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoop20FileSystemAbstractSelfTest.java
@@ -24,17 +24,17 @@ import org.apache.hadoop.fs.permission.*;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.fs.hadoop.*;
 import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
-import org.apache.ignite.internal.fs.hadoop.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.testframework.*;
 import org.jdk8.backport.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopDualAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopDualAbstractSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopDualAbstractSelfTest.java
index 8965640..9a325ce 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopDualAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopDualAbstractSelfTest.java
@@ -19,15 +19,16 @@ package org.apache.ignite.fs;
 
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.fs.hadoop.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.apache.ignite.testframework.*;
 import org.jetbrains.annotations.*;
 
@@ -39,8 +40,8 @@ import java.util.concurrent.*;
 import static org.apache.ignite.cache.CacheAtomicityMode.*;
 import static org.apache.ignite.cache.CacheMode.*;
 import static org.apache.ignite.fs.IgniteFsMode.*;
-import static org.apache.ignite.internal.processors.fs.GridGgfsAbstractSelfTest.*;
 import static org.apache.ignite.fs.hadoop.GridGgfsHadoopParameters.*;
+import static org.apache.ignite.internal.processors.fs.GridGgfsAbstractSelfTest.*;
 
 /**
  * Tests for GGFS working in mode when remote file system exists: DUAL_SYNC, DUAL_ASYNC.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemAbstractSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemAbstractSelfTest.java
index 101c175..dced567 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemAbstractSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemAbstractSelfTest.java
@@ -24,19 +24,19 @@ import org.apache.hadoop.fs.permission.*;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
+import org.apache.ignite.fs.hadoop.v1.*;
+import org.apache.ignite.internal.fs.hadoop.*;
 import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.*;
+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.fs.hadoop.v1.*;
-import org.apache.ignite.internal.fs.hadoop.*;
 import org.apache.ignite.spi.communication.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.lang.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.testframework.*;
 import org.jdk8.backport.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemClientSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemClientSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemClientSelfTest.java
index b18b8cc..eae342a 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemClientSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemClientSelfTest.java
@@ -22,12 +22,12 @@ import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.fs.common.*;
-import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.fs.hadoop.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 import org.apache.ignite.testframework.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemHandshakeSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
index c231b27..45b3872 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
@@ -24,11 +24,11 @@ import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.processors.fs.*;
+import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.testframework.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
index 1779a78..b8e77be 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemIpcCacheSelfTest.java
@@ -21,15 +21,15 @@ import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.fs.hadoop.*;
+import org.apache.ignite.internal.processors.fs.*;
+import org.apache.ignite.internal.util.ipc.shmem.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.spi.communication.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.ipc.shmem.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
 
 import java.lang.reflect.*;
 import java.net.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerSelfTest.java
index b1f34e4..a98c7e5 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerSelfTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.ignite.fs;
 
-import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.fs.common.*;
 import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
index 8718ce6..ecada0c 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
@@ -22,18 +22,18 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.fs.hadoop.v1.*;
 import org.apache.ignite.internal.fs.common.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import java.lang.reflect.*;
 import java.net.*;
-import java.util.*;
 import java.nio.file.*;
+import java.util.*;
 
 import static org.apache.ignite.cache.CacheAtomicityMode.*;
 import static org.apache.ignite.cache.CacheMode.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
index 07275e9..196df00 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsHadoopFileSystemSecondaryModeSelfTest.java
@@ -21,14 +21,14 @@ import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
-import org.apache.ignite.internal.processors.fs.*;
-import org.apache.ignite.lang.*;
 import org.apache.ignite.fs.hadoop.v1.*;
 import org.apache.ignite.internal.fs.hadoop.*;
-import org.apache.ignite.spi.discovery.tcp.*;
-import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.spi.discovery.tcp.*;
+import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
 
 import java.net.*;
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsNearOnlyMultiNodeSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsNearOnlyMultiNodeSelfTest.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsNearOnlyMultiNodeSelfTest.java
index ec74ad5..922232e 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsNearOnlyMultiNodeSelfTest.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/GridGgfsNearOnlyMultiNodeSelfTest.java
@@ -22,13 +22,13 @@ import org.apache.hadoop.fs.*;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.configuration.*;
+import org.apache.ignite.internal.util.ipc.shmem.*;
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.spi.discovery.tcp.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
 import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
-import org.apache.ignite.internal.util.ipc.shmem.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.testframework.junits.common.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/fs/IgniteFsEventsTestSuite.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/fs/IgniteFsEventsTestSuite.java b/modules/hadoop/src/test/java/org/apache/ignite/fs/IgniteFsEventsTestSuite.java
index b5eab88..46d4494 100644
--- a/modules/hadoop/src/test/java/org/apache/ignite/fs/IgniteFsEventsTestSuite.java
+++ b/modules/hadoop/src/test/java/org/apache/ignite/fs/IgniteFsEventsTestSuite.java
@@ -22,8 +22,8 @@ import org.apache.ignite.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.fs.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
-import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.ipc.shmem.*;
+import org.apache.ignite.internal.util.typedef.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopPopularWordsTest.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopPopularWordsTest.java b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopPopularWordsTest.java
deleted file mode 100644
index f44b8e8..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopPopularWordsTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import com.google.common.collect.*;
-import org.apache.hadoop.conf.*;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.*;
-import org.apache.hadoop.io.*;
-import org.apache.hadoop.mapreduce.*;
-import org.apache.hadoop.mapreduce.lib.input.*;
-import org.apache.hadoop.mapreduce.lib.output.*;
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.io.*;
-import java.util.*;
-import java.util.Map.*;
-
-import static com.google.common.collect.Maps.*;
-import static com.google.common.collect.MinMaxPriorityQueue.*;
-import static java.util.Collections.*;
-
-/**
- * Hadoop-based 10 popular words example: all files in a given directory are tokenized and for each word longer than
- * 3 characters the number of occurrences ins calculated. Finally, 10 words with the highest occurrence count are
- * output.
- *
- * NOTE: in order to run this example on Windows please ensure that cygwin is installed and available in the system
- * path.
- */
-public class GridHadoopPopularWordsTest {
-    /** GridGain home. */
-    private static final String IGNITE_HOME = U.getGridGainHome();
-
-    /** The path to the input directory. ALl files in that directory will be processed. */
-    private static final Path BOOKS_LOCAL_DIR =
-        new Path("file:" + IGNITE_HOME, "modules/tests/java/org/gridgain/grid/hadoop/books");
-
-    /** The path to the output directory. THe result file will be written to this location. */
-    private static final Path RESULT_LOCAL_DIR =
-        new Path("file:" + IGNITE_HOME, "modules/tests/java/org/gridgain/grid/hadoop/output");
-
-    /** Popular books source dir in DFS. */
-    private static final Path BOOKS_DFS_DIR = new Path("tmp/word-count-example/in");
-
-    /** Popular books source dir in DFS. */
-    private static final Path RESULT_DFS_DIR = new Path("tmp/word-count-example/out");
-
-    /** Path to the distributed file system configuration. */
-    private static final String DFS_CFG = "examples/config/filesystem/core-site.xml";
-
-    /** Top N words to select **/
-    private static final int POPULAR_WORDS_CNT = 10;
-
-    /**
-     * For each token in the input string the mapper emits a {word, 1} pair.
-     */
-    private static class TokenizingMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
-        /** Constant value. */
-        private static final IntWritable ONE = new IntWritable(1);
-
-        /** The word converted into the Text. */
-        private Text word = new Text();
-
-        /**
-         * Emits a entry where the key is the word and the value is always 1.
-         *
-         * @param key the current position in the input file (not used here)
-         * @param val the text string
-         * @param ctx mapper context
-         * @throws IOException
-         * @throws InterruptedException
-         */
-        @Override protected void map(LongWritable key, Text val, Context ctx)
-            throws IOException, InterruptedException {
-            // Get the mapped object.
-            final String line = val.toString();
-
-            // Splits the given string to words.
-            final String[] words = line.split("[^a-zA-Z0-9]");
-
-            for (final String w : words) {
-                // Only emit counts for longer words.
-                if (w.length() <= 3)
-                    continue;
-
-                word.set(w);
-
-                // Write the word into the context with the initial count equals 1.
-                ctx.write(word, ONE);
-            }
-        }
-    }
-
-    /**
-     * The reducer uses a priority queue to rank the words based on its number of occurrences.
-     */
-    private static class TopNWordsReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
-        private MinMaxPriorityQueue<Entry<Integer, String>> q;
-
-        TopNWordsReducer() {
-            q = orderedBy(reverseOrder(new Comparator<Entry<Integer, String>>() {
-                @Override public int compare(Entry<Integer, String> o1, Entry<Integer, String> o2) {
-                    return o1.getKey().compareTo(o2.getKey());
-                }
-            })).expectedSize(POPULAR_WORDS_CNT).maximumSize(POPULAR_WORDS_CNT).create();
-        }
-
-        /**
-         * This method doesn't emit anything, but just keeps track of the top N words.
-         *
-         * @param key The word.
-         * @param vals The words counts.
-         * @param ctx Reducer context.
-         * @throws IOException If failed.
-         * @throws InterruptedException If failed.
-         */
-        @Override public void reduce(Text key, Iterable<IntWritable> vals, Context ctx) throws IOException,
-            InterruptedException {
-            int sum = 0;
-
-            for (IntWritable val : vals)
-                sum += val.get();
-
-            q.add(immutableEntry(sum, key.toString()));
-        }
-
-        /**
-         * This method is called after all the word entries have been processed. It writes the accumulated
-         * statistics to the job output file.
-         *
-         * @param ctx The job context.
-         * @throws IOException If failed.
-         * @throws InterruptedException If failed.
-         */
-        @Override protected void cleanup(Context ctx) throws IOException, InterruptedException {
-            IntWritable i = new IntWritable();
-
-            Text txt = new Text();
-
-            // iterate in desc order
-            while (!q.isEmpty()) {
-                Entry<Integer, String> e = q.removeFirst();
-
-                i.set(e.getKey());
-
-                txt.set(e.getValue());
-
-                ctx.write(txt, i);
-            }
-        }
-    }
-
-    /**
-     * Configures the Hadoop MapReduce job.
-     *
-     * @return Instance of the Hadoop MapRed job.
-     * @throws IOException If failed.
-     */
-    private Job createConfigBasedHadoopJob() throws IOException {
-        Job jobCfg = new Job();
-
-        Configuration cfg = jobCfg.getConfiguration();
-
-        // Use explicit configuration of distributed file system, if provided.
-        if (DFS_CFG != null)
-            cfg.addResource(U.resolveGridGainUrl(DFS_CFG));
-
-        jobCfg.setJobName("HadoopPopularWordExample");
-        jobCfg.setJarByClass(GridHadoopPopularWordsTest.class);
-        jobCfg.setInputFormatClass(TextInputFormat.class);
-        jobCfg.setOutputKeyClass(Text.class);
-        jobCfg.setOutputValueClass(IntWritable.class);
-        jobCfg.setMapperClass(TokenizingMapper.class);
-        jobCfg.setReducerClass(TopNWordsReducer.class);
-
-        FileInputFormat.setInputPaths(jobCfg, BOOKS_DFS_DIR);
-        FileOutputFormat.setOutputPath(jobCfg, RESULT_DFS_DIR);
-
-        // Local job tracker allows the only task per wave, but text input format
-        // replaces it with the calculated value based on input split size option.
-        if ("local".equals(cfg.get("mapred.job.tracker", "local"))) {
-            // Split job into tasks using 32MB split size.
-            FileInputFormat.setMinInputSplitSize(jobCfg, 32 * 1024 * 1024);
-            FileInputFormat.setMaxInputSplitSize(jobCfg, Long.MAX_VALUE);
-        }
-
-        return jobCfg;
-    }
-
-    /**
-     * Runs the Hadoop job.
-     *
-     * @return {@code True} if succeeded, {@code false} otherwise.
-     * @throws Exception If failed.
-     */
-    private boolean runWordCountConfigBasedHadoopJob() throws Exception {
-        Job job = createConfigBasedHadoopJob();
-
-        // Distributed file system this job will work with.
-        FileSystem fs = FileSystem.get(job.getConfiguration());
-
-        X.println(">>> Using distributed file system: " + fs.getHomeDirectory());
-
-        // Prepare input and output job directories.
-        prepareDirectories(fs);
-
-        long time = System.currentTimeMillis();
-
-        // Run job.
-        boolean res = job.waitForCompletion(true);
-
-        X.println(">>> Job execution time: " + (System.currentTimeMillis() - time) / 1000 + " sec.");
-
-        // Move job results into local file system, so you can view calculated results.
-        publishResults(fs);
-
-        return res;
-    }
-
-    /**
-     * Prepare job's data: cleanup result directories that might have left over
-     * after previous runs, copy input files from the local file system into DFS.
-     *
-     * @param fs Distributed file system to use in job.
-     * @throws IOException If failed.
-     */
-    private void prepareDirectories(FileSystem fs) throws IOException {
-        X.println(">>> Cleaning up DFS result directory: " + RESULT_DFS_DIR);
-
-        fs.delete(RESULT_DFS_DIR, true);
-
-        X.println(">>> Cleaning up DFS input directory: " + BOOKS_DFS_DIR);
-
-        fs.delete(BOOKS_DFS_DIR, true);
-
-        X.println(">>> Copy local files into DFS input directory: " + BOOKS_DFS_DIR);
-
-        fs.copyFromLocalFile(BOOKS_LOCAL_DIR, BOOKS_DFS_DIR);
-    }
-
-    /**
-     * Publish job execution results into local file system, so you can view them.
-     *
-     * @param fs Distributed file sytem used in job.
-     * @throws IOException If failed.
-     */
-    private void publishResults(FileSystem fs) throws IOException {
-        X.println(">>> Cleaning up DFS input directory: " + BOOKS_DFS_DIR);
-
-        fs.delete(BOOKS_DFS_DIR, true);
-
-        X.println(">>> Cleaning up LOCAL result directory: " + RESULT_LOCAL_DIR);
-
-        fs.delete(RESULT_LOCAL_DIR, true);
-
-        X.println(">>> Moving job results into LOCAL result directory: " + RESULT_LOCAL_DIR);
-
-        fs.copyToLocalFile(true, RESULT_DFS_DIR, RESULT_LOCAL_DIR);
-    }
-
-    /**
-     * Executes a modified version of the Hadoop word count example. Here, in addition to counting the number of
-     * occurrences of the word in the source files, the N most popular words are selected.
-     *
-     * @param args None.
-     */
-    public static void main(String[] args) {
-        try {
-            new GridHadoopPopularWordsTest().runWordCountConfigBasedHadoopJob();
-        }
-        catch (Exception e) {
-            X.println(">>> Failed to run word count example: " + e.getMessage());
-        }
-
-        System.exit(0);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopTestUtils.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopTestUtils.java b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopTestUtils.java
deleted file mode 100644
index d0a60ee..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/GridHadoopTestUtils.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.typedef.*;
-
-import java.io.*;
-import java.util.*;
-
-import static org.junit.Assert.*;
-
-/**
- * Utility class for tests.
- */
-public class GridHadoopTestUtils {
-    /**
-     * Checks that job statistics file contains valid strings only.
-     *
-     * @param reader Buffered reader to get lines of job statistics.
-     * @return Amount of events.
-     * @throws IOException If failed.
-     */
-    public static long simpleCheckJobStatFile(BufferedReader reader) throws IOException {
-        Collection<String> phases = new HashSet<>();
-
-        phases.add("submit");
-        phases.add("prepare");
-        phases.add("start");
-        phases.add("finish");
-        phases.add("requestId");
-        phases.add("responseId");
-
-        Collection<String> evtTypes = new HashSet<>();
-
-        evtTypes.add("JOB");
-        evtTypes.add("SETUP");
-        evtTypes.add("MAP");
-        evtTypes.add("SHUFFLE");
-        evtTypes.add("REDUCE");
-        evtTypes.add("COMBINE");
-        evtTypes.add("COMMIT");
-
-        long evtCnt = 0;
-        String line;
-
-        Map<Long, String> reduceNodes = new HashMap<>();
-
-        while((line = reader.readLine()) != null) {
-            String[] splitLine = line.split(":");
-
-            //Try parse timestamp
-            Long.parseLong(splitLine[1]);
-
-            String[] evt = splitLine[0].split(" ");
-
-            assertTrue("Unknown event '" + evt[0] + "'", evtTypes.contains(evt[0]));
-
-            String phase;
-
-            if ("JOB".equals(evt[0]))
-                phase = evt[1];
-            else {
-                assertEquals(4, evt.length);
-                assertTrue("The node id is not defined", !F.isEmpty(evt[3]));
-
-                long taskNum = Long.parseLong(evt[1]);
-
-                if (("REDUCE".equals(evt[0]) || "SHUFFLE".equals(evt[0]))) {
-                    String nodeId = reduceNodes.get(taskNum);
-
-                    if (nodeId == null)
-                        reduceNodes.put(taskNum, evt[3]);
-                    else
-                        assertEquals("Different nodes for SHUFFLE and REDUCE tasks", nodeId, evt[3]);
-                }
-
-                phase = evt[2];
-            }
-
-            assertTrue("Unknown phase '" + phase + "' in " + Arrays.toString(evt), phases.contains(phase));
-
-            evtCnt++;
-        }
-
-        return evtCnt;
-    }
-}


[10/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-71

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-71


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

Branch: refs/heads/ignite-132
Commit: 8df3ac4ea6b75407b802448d04211a1995fac74e
Parents: 9b6f75e ff01e66
Author: avinogradov <av...@gridgain.com>
Authored: Fri Jan 30 15:10:45 2015 +0300
Committer: avinogradov <av...@gridgain.com>
Committed: Fri Jan 30 15:10:45 2015 +0300

----------------------------------------------------------------------
 .../util/ipc/shmem/IpcSharedMemoryNativeLoaderSelfTest.java    | 2 +-
 .../org/apache/ignite/messaging/GridMessagingSelfTest.java     | 2 +-
 .../internal/processors/hadoop/GridHadoopClassLoader.java      | 4 ++--
 .../marshaller/optimized/OptimizedClassNamesGenerator.java     | 6 +++---
 .../src/main/scala/org/apache/ignite/visor/visor.scala         | 1 -
 5 files changed, 7 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



[14/50] [abbrv] incubator-ignite git commit: #ignite-16: WIP.

Posted by se...@apache.org.
#ignite-16: WIP.


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

Branch: refs/heads/ignite-132
Commit: d0444b79c5028074128f56f555b0414041dc878d
Parents: 9ea9607
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Fri Jan 30 17:05:00 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Fri Jan 30 17:05:00 2015 +0300

----------------------------------------------------------------------
 .../configuration/IgniteConfiguration.java      |  22 ----
 .../ignite/internal/GridKernalContext.java      |   8 --
 .../ignite/internal/GridKernalContextImpl.java  |  12 --
 .../org/apache/ignite/internal/IgniteEx.java    |   8 --
 .../apache/ignite/internal/IgniteKernal.java    |   7 --
 .../org/apache/ignite/internal/IgnitionEx.java  |   1 -
 .../processors/cache/GridCacheStoreManager.java |   1 -
 .../cache/GridCacheWriteBehindStore.java        |   1 -
 .../processors/interop/GridInteropAware.java    |  49 ---------
 .../interop/GridInteropProcessor.java           |  82 --------------
 .../interop/GridInteropProcessorAdapter.java    |  31 ------
 .../processors/interop/GridInteropTarget.java   | 109 -------------------
 .../interop/os/GridOsInteropProcessor.java      |  80 --------------
 .../internal/processors/interop/os/package.html |  23 ----
 .../internal/processors/interop/package.html    |  23 ----
 .../plugin/IgnitePluginProcessor.java           |  10 +-
 16 files changed, 6 insertions(+), 461 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/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 778ca62..e6d513b 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
@@ -389,9 +389,6 @@ public class IgniteConfiguration {
     /** Transactions configuration. */
     private TransactionsConfiguration txCfg = new TransactionsConfiguration();
 
-    /** Interop configuration. */
-    private InteropConfiguration interopCfg;
-
     /** */
     private Collection<? extends PluginConfiguration> pluginCfgs;
 
@@ -585,7 +582,6 @@ public class IgniteConfiguration {
         hadoopCfg = cfg.getHadoopConfiguration();
         inclEvtTypes = cfg.getIncludeEventTypes();
         includeProps = cfg.getIncludeProperties();
-        interopCfg = cfg.getInteropConfiguration() != null ? cfg.getInteropConfiguration().copy() : null;
         jettyPath = cfg.getRestJettyPath();
         licUrl = cfg.getLicenseUrl();
         lifecycleBeans = cfg.getLifecycleBeans();
@@ -3117,24 +3113,6 @@ public class IgniteConfiguration {
     }
 
     /**
-     * Gets interop configuration.
-     *
-     * @return Interop configuration.
-     */
-    @Nullable public InteropConfiguration getInteropConfiguration() {
-        return interopCfg;
-    }
-
-    /**
-     * Sets interop configuration.
-     *
-     * @param interopCfg Interop configuration.
-     */
-    public void setInteropConfiguration(@Nullable InteropConfiguration interopCfg) {
-        this.interopCfg = interopCfg;
-    }
-
-    /**
      * Gets transactions configuration.
      *
      * @return Transactions configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
index 17f3ec8..58923b6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
@@ -43,7 +43,6 @@ import org.apache.ignite.internal.processors.continuous.*;
 import org.apache.ignite.internal.processors.dataload.*;
 import org.apache.ignite.internal.processors.email.*;
 import org.apache.ignite.internal.processors.hadoop.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.processors.job.*;
 import org.apache.ignite.internal.processors.jobmetrics.*;
 import org.apache.ignite.internal.processors.license.*;
@@ -330,13 +329,6 @@ public interface GridKernalContext extends Iterable<GridComponent> {
     public GridPortableProcessor portable();
 
     /**
-     * Gets interop processor.
-     *
-     * @return Interop processor.
-     */
-    public GridInteropProcessor interop();
-
-    /**
      * Gets query processor.
      *
      * @return Query processor.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
index 88dbef6..13eb341 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
@@ -46,7 +46,6 @@ import org.apache.ignite.internal.processors.continuous.*;
 import org.apache.ignite.internal.processors.dataload.*;
 import org.apache.ignite.internal.processors.email.*;
 import org.apache.ignite.internal.processors.hadoop.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.processors.job.*;
 import org.apache.ignite.internal.processors.jobmetrics.*;
 import org.apache.ignite.internal.processors.license.*;
@@ -255,10 +254,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable
 
     /** */
     @GridToStringExclude
-    private GridInteropProcessor interopProc;
-
-    /** */
-    @GridToStringExclude
     private IgniteSpringProcessor spring;
 
     /** */
@@ -444,8 +439,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable
             hadoopProc = (IgniteHadoopProcessorAdapter)comp;
         else if (comp instanceof GridPortableProcessor)
             portableProc = (GridPortableProcessor)comp;
-        else if (comp instanceof GridInteropProcessor)
-            interopProc = (GridInteropProcessor)comp;
         else if (comp instanceof IgnitePluginProcessor)
             pluginProc = (IgnitePluginProcessor)comp;
         else if (comp instanceof GridQueryProcessor)
@@ -697,11 +690,6 @@ public class GridKernalContextImpl implements GridKernalContext, Externalizable
     }
 
     /** {@inheritDoc} */
-    @Override public GridInteropProcessor interop() {
-        return interopProc;
-    }
-
-    /** {@inheritDoc} */
     @Override public GridQueryProcessor query() {
         return qryProc;
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
index 6aa8bf5..aa94560 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
@@ -21,7 +21,6 @@ import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
 import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.lang.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;
@@ -133,11 +132,4 @@ public interface IgniteEx extends Ignite, ClusterGroupEx, IgniteCluster {
      * @return GGFS.
      */
     @Nullable public IgniteFs ggfsx(@Nullable String name);
-
-    /**
-     * Gets interop processor.
-     *
-     * @return Interop processor.
-     */
-    public GridInteropProcessor interop();
 }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/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 7854bd9..0df86f9 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
@@ -56,7 +56,6 @@ import org.apache.ignite.internal.processors.closure.*;
 import org.apache.ignite.internal.processors.continuous.*;
 import org.apache.ignite.internal.processors.dataload.*;
 import org.apache.ignite.internal.processors.email.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.processors.job.*;
 import org.apache.ignite.internal.processors.jobmetrics.*;
 import org.apache.ignite.internal.processors.license.*;
@@ -742,7 +741,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit
             startProcessor(ctx, new GridTaskProcessor(ctx), attrs);
             startProcessor(ctx, (GridProcessor)SCHEDULE.createOptional(ctx), attrs);
             startProcessor(ctx, createComponent(GridPortableProcessor.class, ctx), attrs);
-            startProcessor(ctx, createComponent(GridInteropProcessor.class, ctx), attrs);
             startProcessor(ctx, new GridRestProcessor(ctx), attrs);
             startProcessor(ctx, new GridDataLoaderProcessor(ctx), attrs);
             startProcessor(ctx, new GridStreamProcessor(ctx), attrs);
@@ -3104,11 +3102,6 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit
     }
 
     /** {@inheritDoc} */
-    @Override public GridInteropProcessor interop() {
-        return ctx.interop();
-    }
-
-    /** {@inheritDoc} */
     @Override public <K> Map<ClusterNode, Collection<K>> mapKeysToNodes(String cacheName,
         @Nullable Collection<? extends K> keys) throws IgniteCheckedException {
         if (F.isEmpty(keys))

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index d962de0..3857851 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -1418,7 +1418,6 @@ public class IgnitionEx {
             myCfg.setSecurityCredentialsProvider(cfg.getSecurityCredentialsProvider());
             myCfg.setServiceConfiguration(cfg.getServiceConfiguration());
             myCfg.setWarmupClosure(cfg.getWarmupClosure());
-            myCfg.setInteropConfiguration(cfg.getInteropConfiguration());
             myCfg.setPluginConfigurations(cfg.getPluginConfigurations());
             myCfg.setTransactionsConfiguration(new TransactionsConfiguration(cfg.getTransactionsConfiguration()));
             myCfg.setQueryConfiguration(cfg.getQueryConfiguration());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
index 61408cb..f7fe02e 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheStoreManager.java
@@ -26,7 +26,6 @@ import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.transactions.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
index a31d3b5..4999ce0 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheWriteBehindStore.java
@@ -24,7 +24,6 @@ import org.apache.ignite.internal.*;
 import org.apache.ignite.lang.*;
 import org.apache.ignite.lifecycle.*;
 import org.apache.ignite.thread.*;
-import org.apache.ignite.internal.processors.interop.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.internal.util.tostring.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java
deleted file mode 100644
index 81035d8..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropAware.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.interop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
-
-/**
- * Interface for interop-aware components.
- */
-public interface GridInteropAware {
-    /**
-     * Sets configuration parameters.
-     *
-     * @param params Configuration parameters.
-     */
-    public void configure(Object... params);
-
-    /**
-     * Initializes interop-aware component.
-     *
-     * @param ctx Context.
-     * @throws IgniteCheckedException In case of error.
-     */
-    public void initialize(GridKernalContext ctx) throws IgniteCheckedException;
-
-    /**
-     * Destroys interop-aware component.
-     *
-     * @param ctx Context.
-     * @throws IgniteCheckedException In case of error.
-     */
-    public void destroy(GridKernalContext ctx) throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessor.java
deleted file mode 100644
index 33c841a..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessor.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.interop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.processors.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Interop processor.
- */
-public interface GridInteropProcessor extends GridProcessor {
-    /**
-     * Release start latch.
-     */
-    public void releaseStart();
-
-    /**
-     * Await start on native side.
-     *
-     * @throws IgniteCheckedException If failed.
-     */
-    public void awaitStart() throws IgniteCheckedException;
-
-    /**
-     * @return Environment pointer.
-     */
-    public long environmentPointer() throws IgniteCheckedException;
-
-    /**
-     * @return Grid name.
-     */
-    public String gridName();
-
-    /**
-     * Gets native wrapper for default Grid projection.
-     *
-     * @return Native compute wrapper.
-     * @throws IgniteCheckedException If failed.
-     */
-    public GridInteropTarget projection() throws IgniteCheckedException;
-
-    /**
-     * Gets native wrapper for cache with the given name.
-     *
-     * @param name Cache name ({@code null} for default cache).
-     * @return Native cache wrapper.
-     * @throws IgniteCheckedException If failed.
-     */
-    public GridInteropTarget cache(@Nullable String name) throws IgniteCheckedException;
-
-    /**
-     * Gets native wrapper for data loader for cache with the given name.
-     *
-     * @param cacheName Cache name ({@code null} for default cache).
-     * @return Native data loader wrapper.
-     * @throws IgniteCheckedException If failed.
-     */
-    public GridInteropTarget dataLoader(@Nullable String cacheName) throws IgniteCheckedException;
-
-    /**
-     * Stops grid.
-     *
-     * @param cancel Cancel flag.
-     */
-    public void close(boolean cancel);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessorAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessorAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessorAdapter.java
deleted file mode 100644
index 91ea27e..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropProcessorAdapter.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.interop;
-
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.*;
-
-/**
- * Interop processor adapter.
- */
-public abstract class GridInteropProcessorAdapter extends GridProcessorAdapter implements GridInteropProcessor {
-    /** {@inheritDoc} */
-    protected GridInteropProcessorAdapter(GridKernalContext ctx) {
-        super(ctx);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropTarget.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropTarget.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropTarget.java
deleted file mode 100644
index af8b5d2..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/GridInteropTarget.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.interop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.processors.portable.*;
-import org.jetbrains.annotations.*;
-
-/**
- * Interop target abstraction.
- */
-public interface GridInteropTarget {
-    /**
-     * Synchronous IN operation.
-     *
-     * @param type Operation type.
-     * @param stream Input stream.
-     * @return Value specific for the given operation otherwise.
-     * @throws IgniteCheckedException In case of failure.
-     */
-    public int inOp(int type, GridPortableInputStream stream) throws IgniteCheckedException;
-
-    /**
-     * Synchronous IN operation which returns managed object as result.
-     *
-     * @param type Operation type.
-     * @param stream Input stream.
-     * @return Managed result.
-     * @throws IgniteCheckedException If case of failure.
-     */
-    public Object inOpObject(int type, GridPortableInputStream stream) throws IgniteCheckedException;
-
-    /**
-     * Synchronous OUT operation.
-     *
-     * @param type Operation type.
-     * @param stream Native stream address.
-     * @param arr Native array address.
-     * @param cap Capacity.
-     * @throws IgniteCheckedException In case of failure.
-     */
-    public void outOp(int type, long stream, long arr, int cap) throws IgniteCheckedException;
-
-    /**
-     * Synchronous IN-OUT operation.
-     *
-     * @param type Operation type.
-     * @param inStream Input stream.
-     * @param outStream Native stream address.
-     * @param outArr Native array address.
-     * @param outCap Capacity.
-     * @throws IgniteCheckedException In case of failure.
-     */
-    public void inOutOp(int type, GridPortableInputStream inStream, long outStream, long outArr, int outCap)
-        throws IgniteCheckedException;
-
-    /**
-     * Synchronous IN-OUT operation with optional argument.
-     *
-     * @param type Operation type.
-     * @param inStream Input stream.
-     * @param outStream Native stream address.
-     * @param outArr Native array address.
-     * @param outCap Capacity.
-     * @param arg Argument (optional).
-     * @throws IgniteCheckedException In case of failure.
-     */
-    public void inOutOp(int type, GridPortableInputStream inStream, long outStream, long outArr, int outCap,
-        @Nullable Object arg) throws IgniteCheckedException;
-
-    /**
-     * Asynchronous IN operation.
-     *
-     * @param type Operation type.
-     * @param futId Future ID.
-     * @param in Input stream.
-     * @throws IgniteCheckedException In case of failure.
-     */
-    public void inOpAsync(int type, long futId, GridPortableInputStream in) throws IgniteCheckedException;
-
-    /**
-     * Asynchronous IN-OUT operation.
-     *
-     * @param type Operation type.
-     * @param futId Future ID.
-     * @param in Input stream.
-     * @param outStream Native stream address.
-     * @param outArr Native array address.
-     * @param outCap Capacity.
-     * @throws IgniteCheckedException In case of failure.
-     */
-    public void inOutOpAsync(int type, long futId, GridPortableInputStream in, long outStream, long outArr, int outCap)
-        throws IgniteCheckedException;
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/GridOsInteropProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/GridOsInteropProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/GridOsInteropProcessor.java
deleted file mode 100644
index 6a592d1..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/GridOsInteropProcessor.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.interop.os;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.interop.*;
-import org.jetbrains.annotations.*;
-
-/**
- * OS interop processor.
- */
-public class GridOsInteropProcessor extends GridInteropProcessorAdapter {
-    /** Common error message. */
-    private static final String ERR_MSG = "Interop feature is not supported in OS edition.";
-
-    /**
-     * Constructor.
-     *
-     * @param ctx Context.
-     */
-    public GridOsInteropProcessor(GridKernalContext ctx) {
-        super(ctx);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void releaseStart() {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void awaitStart() throws IgniteCheckedException {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public long environmentPointer() throws IgniteCheckedException {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public String gridName() {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void close(boolean cancel) {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public GridInteropTarget projection() throws IgniteCheckedException {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public GridInteropTarget cache(@Nullable String name) throws IgniteCheckedException {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-
-    /** {@inheritDoc} */
-    @Override public GridInteropTarget dataLoader(@Nullable String cacheName) throws IgniteCheckedException {
-        throw new UnsupportedOperationException(ERR_MSG);
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/package.html b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/package.html
deleted file mode 100644
index 20815a0..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/os/package.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<body>
-    <!-- Package description. -->
-    No-op implementation of interop processor.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/package.html b/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/package.html
deleted file mode 100644
index 57a4e47..0000000
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/interop/package.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<body>
-    <!-- Package description. -->
-    Interop processor.
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/d0444b79/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
index 5d3ad42..9cd7943 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/plugin/IgnitePluginProcessor.java
@@ -132,8 +132,9 @@ public class IgnitePluginProcessor extends GridProcessorAdapter {
      * @param name Plugin name.
      * @return Plugin provider.
      */
-    @Nullable public PluginProvider pluginProvider(String name) {
-        return plugins.get(name);
+    @SuppressWarnings("unchecked")
+    @Nullable public <T extends PluginProvider> T pluginProvider(String name) {
+        return (T)plugins.get(name);
     }
 
     /**
@@ -147,8 +148,9 @@ public class IgnitePluginProcessor extends GridProcessorAdapter {
      * @param provider Plugin context.
      * @return Plugin context.
      */
-    public PluginContext pluginContextForProvider(PluginProvider provider) {
-        return pluginCtxMap.get(provider);
+    @SuppressWarnings("unchecked")
+    public <T extends PluginContext> T pluginContextForProvider(PluginProvider provider) {
+        return (T)pluginCtxMap.get(provider);
     }
 
     /**


[05/50] [abbrv] incubator-ignite git commit: Merge branch 'sprint-1' into ignite-113

Posted by se...@apache.org.
Merge branch 'sprint-1' into ignite-113


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

Branch: refs/heads/ignite-132
Commit: 9e748990ace4c836a8ea834af7ad999f1a53f060
Parents: b5631df c98118f
Author: Artem SHutak <as...@gridgain.com>
Authored: Fri Jan 30 13:37:16 2015 +0300
Committer: Artem SHutak <as...@gridgain.com>
Committed: Fri Jan 30 13:37:16 2015 +0300

----------------------------------------------------------------------
 assembly/release-hadoop.xml                     |    6 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |    4 +-
 .../ClientPropertiesConfigurationSelfTest.java  |    4 +-
 .../apache/ignite/IgniteCheckedException.java   |    2 +-
 .../java/org/apache/ignite/IgniteException.java |    2 +-
 .../processors/cache/GridCacheAdapter.java      |   16 +-
 .../cache/GridCacheDeploymentManager.java       |    2 +-
 .../cache/GridCacheMvccCandidate.java           |    4 +-
 .../processors/cache/GridCacheStoreManager.java |   25 +-
 .../processors/cache/IgniteCacheProxy.java      |   24 +-
 .../transactions/IgniteTxLocalAdapter.java      |   42 +-
 .../service/GridServiceProcessor.java           |    2 +-
 .../apache/ignite/internal/util/GridUtils.java  | 9141 ------------------
 .../ignite/internal/util/IgniteUtils.java       | 9141 ++++++++++++++++++
 .../internal/util/typedef/internal/U.java       |    4 +-
 .../visor/misc/VisorResolveHostNameTask.java    |    2 +-
 .../internal/visor/query/VisorQueryUtils.java   |    4 +-
 .../ignite/lang/IgniteAsyncSupportAdapter.java  |   27 +-
 .../optimized/IgniteOptimizedMarshaller.java    |    2 +-
 .../IgniteExceptionHelpLinksSelfTest.java       |    3 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |    2 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |   10 +-
 .../GridCacheAbstractProjectionSelfTest.java    |   50 +
 .../GridCacheReturnValueTransferSelfTest.java   |    2 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |    4 +-
 .../IgniteCrossCacheTxStoreSelfTest.java        |  288 +
 ...GridCacheValueConsistencyAtomicSelfTest.java |    2 +-
 .../IgniteCacheTxStoreSessionTest.java          |   11 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |    4 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |    2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    4 +-
 .../internal/util/GridTestClockTimer.java       |    6 +-
 .../ignite/internal/util/GridUtilsSelfTest.java |  728 --
 .../internal/util/IgniteUtilsSelfTest.java      |  728 ++
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |    2 +-
 .../ignite/lang/GridSetWrapperSelfTest.java     |    2 +-
 .../ignite/messaging/GridMessagingSelfTest.java |    2 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |    1 +
 .../testsuites/IgniteUtilSelfTestSuite.java     |    2 +-
 .../hadoop/GridHadoopClassLoader.java           |    4 +-
 .../ignite/visor/commands/VisorConsole.scala    |    6 +-
 .../commands/alert/VisorAlertCommand.scala      |    2 +-
 .../config/VisorConfigurationCommand.scala      |    6 +-
 .../commands/deploy/VisorDeployCommand.scala    |    4 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |    4 +-
 .../commands/events/VisorEventsCommand.scala    |    4 +-
 .../visor/commands/gc/VisorGcCommand.scala      |   13 +-
 .../visor/commands/node/VisorNodeCommand.scala  |    4 +-
 .../commands/start/VisorStartCommand.scala      |    4 +-
 .../commands/tasks/VisorTasksCommand.scala      |    4 +-
 .../commands/top/VisorTopologyCommand.scala     |    6 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |    8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |   21 +-
 .../visor/commands/gc/VisorGcCommandSpec.scala  |   25 +-
 54 files changed, 10396 insertions(+), 10026 deletions(-)
----------------------------------------------------------------------



[48/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopDefaultJobInfo.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopDefaultJobInfo.java b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopDefaultJobInfo.java
deleted file mode 100644
index 8e5e7ab..0000000
--- a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopDefaultJobInfo.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.*;
-import org.apache.ignite.internal.processors.hadoop.*;
-import org.apache.ignite.internal.processors.hadoop.v2.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-import org.jetbrains.annotations.*;
-
-import java.io.*;
-import java.lang.reflect.*;
-import java.util.*;
-
-/**
- * Hadoop job info based on default Hadoop configuration.
- */
-public class GridHadoopDefaultJobInfo implements GridHadoopJobInfo, Externalizable {
-    /** */
-    private static final long serialVersionUID = 5489900236464999951L;
-
-    /** {@code true} If job has combiner. */
-    private boolean hasCombiner;
-
-    /** Number of reducers configured for job. */
-    private int numReduces;
-
-    /** Configuration. */
-    private Map<String,String> props = new HashMap<>();
-
-    /** Job name. */
-    private String jobName;
-
-    /** User name. */
-    private String user;
-
-    /** */
-    private static volatile Class<?> jobCls;
-
-    /**
-     * Default constructor required by {@link Externalizable}.
-     */
-    public GridHadoopDefaultJobInfo() {
-        // No-op.
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param jobName Job name.
-     * @param user User name.
-     * @param hasCombiner {@code true} If job has combiner.
-     * @param numReduces Number of reducers configured for job.
-     * @param props All other properties of the job.
-     */
-    public GridHadoopDefaultJobInfo(String jobName, String user, boolean hasCombiner, int numReduces,
-        Map<String, String> props) {
-        this.jobName = jobName;
-        this.user = user;
-        this.hasCombiner = hasCombiner;
-        this.numReduces = numReduces;
-        this.props = props;
-    }
-
-    /** {@inheritDoc} */
-    @Nullable @Override public String property(String name) {
-        return props.get(name);
-    }
-
-    /** {@inheritDoc} */
-    @Override public GridHadoopJob createJob(GridHadoopJobId jobId, IgniteLogger log) throws IgniteCheckedException {
-        try {
-            Class<?> jobCls0 = jobCls;
-
-            if (jobCls0 == null) { // It is enough to have only one class loader with only Hadoop classes.
-                synchronized (GridHadoopDefaultJobInfo.class) {
-                    if ((jobCls0 = jobCls) == null) {
-                        GridHadoopClassLoader ldr = new GridHadoopClassLoader(null);
-
-                        jobCls = jobCls0 = ldr.loadClass(GridHadoopV2Job.class.getName());
-                    }
-                }
-            }
-
-            Constructor<?> constructor = jobCls0.getConstructor(GridHadoopJobId.class, GridHadoopDefaultJobInfo.class,
-                IgniteLogger.class);
-
-            return (GridHadoopJob)constructor.newInstance(jobId, this, log);
-        }
-        catch (Exception e) {
-            throw new IgniteCheckedException(e);
-        }
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasCombiner() {
-        return hasCombiner;
-    }
-
-    /** {@inheritDoc} */
-    @Override public boolean hasReducer() {
-        return reducers() > 0;
-    }
-
-    /** {@inheritDoc} */
-    @Override public int reducers() {
-        return numReduces;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String jobName() {
-        return jobName;
-    }
-
-    /** {@inheritDoc} */
-    @Override public String user() {
-        return user;
-    }
-
-    /** {@inheritDoc} */
-    @Override public void writeExternal(ObjectOutput out) throws IOException {
-        U.writeString(out, jobName);
-        U.writeString(out, user);
-
-        out.writeBoolean(hasCombiner);
-        out.writeInt(numReduces);
-
-        U.writeStringMap(out, props);
-    }
-
-    /** {@inheritDoc} */
-    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
-        jobName = U.readString(in);
-        user = U.readString(in);
-
-        hasCombiner = in.readBoolean();
-        numReduces = in.readInt();
-
-        props = U.readStringMap(in);
-    }
-
-    /**
-     * @return Properties of the job.
-     */
-    public Map<String, String> properties() {
-        return props;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopSetup.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopSetup.java b/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopSetup.java
deleted file mode 100644
index 0fbfdf7..0000000
--- a/modules/hadoop/src/main/java/org/apache/ignite/hadoop/GridHadoopSetup.java
+++ /dev/null
@@ -1,506 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.hadoop;
-
-import org.apache.ignite.internal.util.typedef.*;
-import org.apache.ignite.internal.util.typedef.internal.*;
-
-import java.io.*;
-import java.net.*;
-import java.nio.file.*;
-import java.text.*;
-import java.util.*;
-
-import static org.apache.ignite.internal.GridProductImpl.*;
-
-/**
- * Setup tool to configure Hadoop client.
- */
-public class GridHadoopSetup {
-    /** */
-    public static final String WINUTILS_EXE = "winutils.exe";
-
-    /** */
-    private static final FilenameFilter IGNITE_JARS = new FilenameFilter() {
-        @Override public boolean accept(File dir, String name) {
-            return name.startsWith("ignite-") && name.endsWith(".jar");
-        }
-    };
-
-    /**
-     * The main method.
-     * @param ignore Params.
-     * @throws IOException If fails.
-     */
-    public static void main(String[] ignore) throws IOException {
-        X.println(
-            "   __________  ________________ ",
-            "  /  _/ ___/ |/ /  _/_  __/ __/ ",
-            " _/ // (_ /    // /  / / / _/   ",
-            "/___/\\___/_/|_/___/ /_/ /___/  ",
-            "                for Apache Hadoop        ",
-            "  ");
-
-        println("Version " + ACK_VER);
-
-        configureHadoop();
-    }
-
-    /**
-     * This operation prepares the clean unpacked Hadoop distributive to work as client with GridGain-Hadoop.
-     * It performs these operations:
-     * <ul>
-     *     <li>Check for setting of HADOOP_HOME environment variable.</li>
-     *     <li>Try to resolve HADOOP_COMMON_HOME or evaluate it relative to HADOOP_HOME.</li>
-     *     <li>In Windows check if winutils.exe exists and try to fix issue with some restrictions.</li>
-     *     <li>In Windows check new line character issues in CMD scripts.</li>
-     *     <li>Scan Hadoop lib directory to detect GridGain JARs. If these don't exist tries to create ones.</li>
-     * </ul>
-     */
-    private static void configureHadoop() {
-        String gridgainHome = U.getGridGainHome();
-
-        println("IGNITE_HOME is set to '" + gridgainHome + "'.");
-
-        checkGridGainHome(gridgainHome);
-
-        String homeVar = "HADOOP_HOME";
-        String hadoopHome = System.getenv(homeVar);
-
-        if (F.isEmpty(hadoopHome)) {
-            homeVar = "HADOOP_PREFIX";
-            hadoopHome = System.getenv(homeVar);
-        }
-
-        if (F.isEmpty(hadoopHome))
-            exit("Neither HADOOP_HOME nor HADOOP_PREFIX environment variable is set. Please set one of them to a " +
-                "valid Hadoop installation directory and run setup tool again.", null);
-
-        hadoopHome = hadoopHome.replaceAll("\"", "");
-
-        println(homeVar + " is set to '" + hadoopHome + "'.");
-
-        String hiveHome = System.getenv("HIVE_HOME");
-
-        if (!F.isEmpty(hiveHome)) {
-            hiveHome = hiveHome.replaceAll("\"", "");
-
-            println("HIVE_HOME is set to '" + hiveHome + "'.");
-        }
-
-        File hadoopDir = new File(hadoopHome);
-
-        if (!hadoopDir.exists())
-            exit("Hadoop installation folder does not exist.", null);
-
-        if (!hadoopDir.isDirectory())
-            exit("HADOOP_HOME must point to a directory.", null);
-
-        if (!hadoopDir.canRead())
-            exit("Hadoop installation folder can not be read. Please check permissions.", null);
-
-        File hadoopCommonDir;
-
-        String hadoopCommonHome = System.getenv("HADOOP_COMMON_HOME");
-
-        if (F.isEmpty(hadoopCommonHome)) {
-            hadoopCommonDir = new File(hadoopDir, "share/hadoop/common");
-
-            println("HADOOP_COMMON_HOME is not set, will use '" + hadoopCommonDir.getPath() + "'.");
-        }
-        else {
-            println("HADOOP_COMMON_HOME is set to '" + hadoopCommonHome + "'.");
-
-            hadoopCommonDir = new File(hadoopCommonHome);
-        }
-
-        if (!hadoopCommonDir.canRead())
-            exit("Failed to read Hadoop common dir in '" + hadoopCommonHome + "'.", null);
-
-        File hadoopCommonLibDir = new File(hadoopCommonDir, "lib");
-
-        if (!hadoopCommonLibDir.canRead())
-            exit("Failed to read Hadoop 'lib' folder in '" + hadoopCommonLibDir.getPath() + "'.", null);
-
-        if (U.isWindows()) {
-            checkJavaPathSpaces();
-
-            File hadoopBinDir = new File(hadoopDir, "bin");
-
-            if (!hadoopBinDir.canRead())
-                exit("Failed to read subdirectory 'bin' in HADOOP_HOME.", null);
-
-            File winutilsFile = new File(hadoopBinDir, WINUTILS_EXE);
-
-            if (!winutilsFile.exists()) {
-                if (ask("File '" + WINUTILS_EXE + "' does not exist. " +
-                    "It may be replaced by a stub. Create it?")) {
-                    println("Creating file stub '" + winutilsFile.getAbsolutePath() + "'.");
-
-                    boolean ok = false;
-
-                    try {
-                        ok = winutilsFile.createNewFile();
-                    }
-                    catch (IOException ignore) {
-                        // No-op.
-                    }
-
-                    if (!ok)
-                        exit("Failed to create '" + WINUTILS_EXE + "' file. Please check permissions.", null);
-                }
-                else
-                    println("Ok. But Hadoop client probably will not work on Windows this way...");
-            }
-
-            processCmdFiles(hadoopDir, "bin", "sbin", "libexec");
-        }
-
-        File gridgainLibs = new File(new File(gridgainHome), "libs");
-
-        if (!gridgainLibs.exists())
-            exit("GridGain 'libs' folder is not found.", null);
-
-        Collection<File> jarFiles = new ArrayList<>();
-
-        addJarsInFolder(jarFiles, gridgainLibs);
-        addJarsInFolder(jarFiles, new File(gridgainLibs, "gridgain-hadoop"));
-
-        boolean jarsLinksCorrect = true;
-
-        for (File file : jarFiles) {
-            File link = new File(hadoopCommonLibDir, file.getName());
-
-            jarsLinksCorrect &= isJarLinkCorrect(link, file);
-
-            if (!jarsLinksCorrect)
-                break;
-        }
-
-        if (!jarsLinksCorrect) {
-            if (ask("GridGain JAR files are not found in Hadoop 'lib' directory. " +
-                "Create appropriate symbolic links?")) {
-                File[] oldGridGainJarFiles = hadoopCommonLibDir.listFiles(IGNITE_JARS);
-
-                if (oldGridGainJarFiles.length > 0 && ask("The Hadoop 'lib' directory contains JARs from other GridGain " +
-                    "installation. They must be deleted to continue. Continue?")) {
-                    for (File file : oldGridGainJarFiles) {
-                        println("Deleting file '" + file.getAbsolutePath() + "'.");
-
-                        if (!file.delete())
-                            exit("Failed to delete file '" + file.getPath() + "'.", null);
-                    }
-                }
-
-                for (File file : jarFiles) {
-                    File targetFile = new File(hadoopCommonLibDir, file.getName());
-
-                    try {
-                        println("Creating symbolic link '" + targetFile.getAbsolutePath() + "'.");
-
-                        Files.createSymbolicLink(targetFile.toPath(), file.toPath());
-                    }
-                    catch (IOException e) {
-                        if (U.isWindows()) {
-                            warn("Ability to create symbolic links is required!");
-                            warn("On Windows platform you have to grant permission 'Create symbolic links'");
-                            warn("to your user or run the Accelerator as Administrator.");
-                        }
-
-                        exit("Creating symbolic link failed! Check permissions.", e);
-                    }
-                }
-            }
-            else
-                println("Ok. But Hadoop client will not be able to talk to GridGain cluster without those JARs in classpath...");
-        }
-
-        File hadoopEtc = new File(hadoopDir, "etc" + File.separator + "hadoop");
-
-        File gridgainDocs = new File(gridgainHome, "docs");
-
-        if (!gridgainDocs.canRead())
-            exit("Failed to read GridGain 'docs' folder at '" + gridgainDocs.getAbsolutePath() + "'.", null);
-
-        if (hadoopEtc.canWrite()) { // TODO Bigtop
-            if (ask("Replace 'core-site.xml' and 'mapred-site.xml' files with preconfigured templates " +
-                "(existing files will be backed up)?")) {
-                replaceWithBackup(new File(gridgainDocs, "core-site.gridgain.xml"), new File(hadoopEtc, "core-site.xml"));
-
-                replaceWithBackup(new File(gridgainDocs, "mapred-site.gridgain.xml"), new File(hadoopEtc, "mapred-site.xml"));
-            }
-            else
-                println("Ok. You can configure them later, the templates are available at GridGain's 'docs' directory...");
-        }
-
-        if (!F.isEmpty(hiveHome)) {
-            File hiveConfDir = new File(hiveHome + File.separator + "conf");
-
-            if (!hiveConfDir.canWrite())
-                warn("Can not write to '" + hiveConfDir.getAbsolutePath() + "'. To run Hive queries you have to " +
-                    "configure 'hive-site.xml' manually. The template is available at GridGain's 'docs' directory.");
-            else if (ask("Replace 'hive-site.xml' with preconfigured template (existing file will be backed up)?"))
-                replaceWithBackup(new File(gridgainDocs, "hive-site.gridgain.xml"), new File(hiveConfDir, "hive-site.xml"));
-            else
-                println("Ok. You can configure it later, the template is available at GridGain's 'docs' directory...");
-        }
-
-        println("Apache Hadoop setup is complete.");
-    }
-
-    /**
-     * @param jarFiles Jars.
-     * @param folder Folder.
-     */
-    private static void addJarsInFolder(Collection<File> jarFiles, File folder) {
-        if (!folder.exists())
-            exit("Folder '" + folder.getAbsolutePath() + "' is not found.", null);
-
-        jarFiles.addAll(Arrays.asList(folder.listFiles(IGNITE_JARS)));
-    }
-
-    /**
-     * Checks that JAVA_HOME does not contain space characters.
-     */
-    private static void checkJavaPathSpaces() {
-        String javaHome = System.getProperty("java.home");
-
-        if (javaHome.contains(" ")) {
-            warn("Java installation path contains space characters!");
-            warn("Hadoop client will not be able to start using '" + javaHome + "'.");
-            warn("Please install JRE to path which does not contain spaces and point JAVA_HOME to that installation.");
-        }
-    }
-
-    /**
-     * Checks GridGain home.
-     *
-     * @param ggHome GridGain home.
-     */
-    private static void checkGridGainHome(String ggHome) {
-        URL jarUrl = U.class.getProtectionDomain().getCodeSource().getLocation();
-
-        try {
-            Path jar = Paths.get(jarUrl.toURI());
-            Path gg = Paths.get(ggHome);
-
-            if (!jar.startsWith(gg))
-                exit("GridGain JAR files are not under IGNITE_HOME.", null);
-        }
-        catch (Exception e) {
-            exit(e.getMessage(), e);
-        }
-    }
-
-    /**
-     * Replaces target file with source file.
-     *
-     * @param from From.
-     * @param to To.
-     */
-    private static void replaceWithBackup(File from, File to) {
-        if (!from.canRead())
-            exit("Failed to read source file '" + from.getAbsolutePath() + "'.", null);
-
-        println("Replacing file '" + to.getAbsolutePath() + "'.");
-
-        try {
-            U.copy(from, renameToBak(to), true);
-        }
-        catch (IOException e) {
-            exit("Failed to replace file '" + to.getAbsolutePath() + "'.", e);
-        }
-    }
-
-    /**
-     * Renames file for backup.
-     *
-     * @param file File.
-     * @return File.
-     */
-    private static File renameToBak(File file) {
-        DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
-
-        if (file.exists() && !file.renameTo(new File(file.getAbsolutePath() + "." + fmt.format(new Date()) + ".bak")))
-            exit("Failed to rename file '" + file.getPath() + "'.", null);
-
-        return file;
-    }
-
-    /**
-     * Checks if link is correct.
-     *
-     * @param link Symbolic link.
-     * @param correctTarget Correct link target.
-     * @return {@code true} If link target is correct.
-     */
-    private static boolean isJarLinkCorrect(File link, File correctTarget) {
-        if (!Files.isSymbolicLink(link.toPath()))
-            return false; // It is a real file or it does not exist.
-
-        Path target = null;
-
-        try {
-            target = Files.readSymbolicLink(link.toPath());
-        }
-        catch (IOException e) {
-            exit("Failed to read symbolic link: " + link.getAbsolutePath(), e);
-        }
-
-        return Files.exists(target) && target.toFile().equals(correctTarget);
-    }
-
-    /**
-     * Writes the question end read the boolean answer from the console.
-     *
-     * @param question Question to write.
-     * @return {@code true} if user inputs 'Y' or 'y', {@code false} otherwise.
-     */
-    private static boolean ask(String question) {
-        X.println();
-        X.print(" <  " + question + " (Y/N): ");
-
-        String answer = null;
-
-        if (!F.isEmpty(System.getenv("IGNITE_HADOOP_SETUP_YES")))
-            answer = "Y";
-        else {
-            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
-
-            try {
-                answer = br.readLine();
-            }
-            catch (IOException e) {
-                exit("Failed to read answer: " + e.getMessage(), e);
-            }
-        }
-
-        if (answer != null && "Y".equals(answer.toUpperCase().trim())) {
-            X.println(" >  Yes.");
-
-            return true;
-        }
-        else {
-            X.println(" >  No.");
-
-            return false;
-        }
-    }
-
-    /**
-     * Exit with message.
-     *
-     * @param msg Exit message.
-     */
-    private static void exit(String msg, Exception e) {
-        X.println("    ");
-        X.println("  # " + msg);
-        X.println("  # Setup failed, exiting... ");
-
-        if (e != null && !F.isEmpty(System.getenv("IGNITE_HADOOP_SETUP_DEBUG")))
-            e.printStackTrace();
-
-        System.exit(1);
-    }
-
-    /**
-     * Prints message.
-     *
-     * @param msg Message.
-     */
-    private static void println(String msg) {
-        X.println("  > " + msg);
-    }
-
-    /**
-     * Prints warning.
-     *
-     * @param msg Message.
-     */
-    private static void warn(String msg) {
-        X.println("  ! " + msg);
-    }
-
-    /**
-     * Checks that CMD files have valid MS Windows new line characters. If not, writes question to console and reads the
-     * answer. If it's 'Y' then backups original files and corrects invalid new line characters.
-     *
-     * @param rootDir Root directory to process.
-     * @param dirs Directories inside of the root to process.
-     */
-    private static void processCmdFiles(File rootDir, String... dirs) {
-        boolean answer = false;
-
-        for (String dir : dirs) {
-            File subDir = new File(rootDir, dir);
-
-            File[] cmdFiles = subDir.listFiles(new FilenameFilter() {
-                @Override public boolean accept(File dir, String name) {
-                    return name.toLowerCase().endsWith(".cmd");
-                }
-            });
-
-            for (File file : cmdFiles) {
-                String content = null;
-
-                try (Scanner scanner = new Scanner(file)) {
-                    content = scanner.useDelimiter("\\Z").next();
-                }
-                catch (FileNotFoundException e) {
-                    exit("Failed to read file '" + file + "'.", e);
-                }
-
-                boolean invalid = false;
-
-                for (int i = 0; i < content.length(); i++) {
-                    if (content.charAt(i) == '\n' && (i == 0 || content.charAt(i - 1) != '\r')) {
-                        invalid = true;
-
-                        break;
-                    }
-                }
-
-                if (invalid) {
-                    answer = answer || ask("One or more *.CMD files has invalid new line character. Replace them?");
-
-                    if (!answer) {
-                        println("Ok. But Windows most probably will fail to execute them...");
-
-                        return;
-                    }
-
-                    println("Fixing newline characters in file '" + file.getAbsolutePath() + "'.");
-
-                    renameToBak(file);
-
-                    try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
-                        for (int i = 0; i < content.length(); i++) {
-                            if (content.charAt(i) == '\n' && (i == 0 || content.charAt(i - 1) != '\r'))
-                                writer.write("\r");
-
-                            writer.write(content.charAt(i));
-                        }
-                    }
-                    catch (IOException e) {
-                        exit("Failed to write file '" + file.getPath() + "': " + e.getMessage(), e);
-                    }
-                }
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopEndpoint.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopEndpoint.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopEndpoint.java
index 269e150..ce0c867 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopEndpoint.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopEndpoint.java
@@ -18,9 +18,9 @@
 package org.apache.ignite.internal.fs.hadoop;
 
 import org.apache.ignite.*;
-import org.apache.ignite.lang.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopFileSystemWrapper.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopFileSystemWrapper.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopFileSystemWrapper.java
index 5a107a1..47b6e15 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopFileSystemWrapper.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopFileSystemWrapper.java
@@ -19,20 +19,20 @@ package org.apache.ignite.internal.fs.hadoop;
 
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.permission.*;
 import org.apache.hadoop.ipc.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
 import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
 /**
  * Adapter to use any Hadoop file system {@link org.apache.hadoop.fs.FileSystem} as {@link org.apache.ignite.fs.IgniteFsFileSystem}.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopIpcIo.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopIpcIo.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopIpcIo.java
index 44b8a5b..40d26c6 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopIpcIo.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopIpcIo.java
@@ -20,8 +20,8 @@ package org.apache.ignite.internal.fs.hadoop;
 import org.apache.commons.logging.*;
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.fs.common.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.ipc.*;
 import org.apache.ignite.internal.util.ipc.shmem.*;
 import org.apache.ignite.internal.util.lang.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopReader.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopReader.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopReader.java
index 297ca5d..64acb2e 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopReader.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/fs/hadoop/GridGgfsHadoopReader.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.fs.hadoop;
 
 import org.apache.hadoop.fs.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopContext.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopContext.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopContext.java
index 8038abf..3160e3d 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopContext.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopContext.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.ignite.cluster.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.hadoop.jobtracker.*;
 import org.apache.ignite.internal.processors.hadoop.shuffle.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultJobInfo.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultJobInfo.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultJobInfo.java
new file mode 100644
index 0000000..87db9c8
--- /dev/null
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultJobInfo.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.processors.hadoop.v2.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.lang.reflect.*;
+import java.util.*;
+
+/**
+ * Hadoop job info based on default Hadoop configuration.
+ */
+public class GridHadoopDefaultJobInfo implements GridHadoopJobInfo, Externalizable {
+    /** */
+    private static final long serialVersionUID = 5489900236464999951L;
+
+    /** {@code true} If job has combiner. */
+    private boolean hasCombiner;
+
+    /** Number of reducers configured for job. */
+    private int numReduces;
+
+    /** Configuration. */
+    private Map<String,String> props = new HashMap<>();
+
+    /** Job name. */
+    private String jobName;
+
+    /** User name. */
+    private String user;
+
+    /** */
+    private static volatile Class<?> jobCls;
+
+    /**
+     * Default constructor required by {@link Externalizable}.
+     */
+    public GridHadoopDefaultJobInfo() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param jobName Job name.
+     * @param user User name.
+     * @param hasCombiner {@code true} If job has combiner.
+     * @param numReduces Number of reducers configured for job.
+     * @param props All other properties of the job.
+     */
+    public GridHadoopDefaultJobInfo(String jobName, String user, boolean hasCombiner, int numReduces,
+        Map<String, String> props) {
+        this.jobName = jobName;
+        this.user = user;
+        this.hasCombiner = hasCombiner;
+        this.numReduces = numReduces;
+        this.props = props;
+    }
+
+    /** {@inheritDoc} */
+    @Nullable @Override public String property(String name) {
+        return props.get(name);
+    }
+
+    /** {@inheritDoc} */
+    @Override public GridHadoopJob createJob(GridHadoopJobId jobId, IgniteLogger log) throws IgniteCheckedException {
+        try {
+            Class<?> jobCls0 = jobCls;
+
+            if (jobCls0 == null) { // It is enough to have only one class loader with only Hadoop classes.
+                synchronized (GridHadoopDefaultJobInfo.class) {
+                    if ((jobCls0 = jobCls) == null) {
+                        GridHadoopClassLoader ldr = new GridHadoopClassLoader(null);
+
+                        jobCls = jobCls0 = ldr.loadClass(GridHadoopV2Job.class.getName());
+                    }
+                }
+            }
+
+            Constructor<?> constructor = jobCls0.getConstructor(GridHadoopJobId.class, GridHadoopDefaultJobInfo.class,
+                IgniteLogger.class);
+
+            return (GridHadoopJob)constructor.newInstance(jobId, this, log);
+        }
+        catch (Exception e) {
+            throw new IgniteCheckedException(e);
+        }
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean hasCombiner() {
+        return hasCombiner;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean hasReducer() {
+        return reducers() > 0;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int reducers() {
+        return numReduces;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String jobName() {
+        return jobName;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String user() {
+        return user;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        U.writeString(out, jobName);
+        U.writeString(out, user);
+
+        out.writeBoolean(hasCombiner);
+        out.writeInt(numReduces);
+
+        U.writeStringMap(out, props);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        jobName = U.readString(in);
+        user = U.readString(in);
+
+        hasCombiner = in.readBoolean();
+        numReduces = in.readInt();
+
+        props = U.readStringMap(in);
+    }
+
+    /**
+     * @return Properties of the job.
+     */
+    public Map<String, String> properties() {
+        return props;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopImpl.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopImpl.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopImpl.java
index 79f099d..55e3690 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopImpl.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopImpl.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.hadoop;
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.*;
-import org.apache.ignite.hadoop.*;
 import org.jetbrains.annotations.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSetup.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSetup.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSetup.java
new file mode 100644
index 0000000..41fed96
--- /dev/null
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSetup.java
@@ -0,0 +1,506 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.io.*;
+import java.net.*;
+import java.nio.file.*;
+import java.text.*;
+import java.util.*;
+
+import static org.apache.ignite.internal.GridProductImpl.*;
+
+/**
+ * Setup tool to configure Hadoop client.
+ */
+public class GridHadoopSetup {
+    /** */
+    public static final String WINUTILS_EXE = "winutils.exe";
+
+    /** */
+    private static final FilenameFilter IGNITE_JARS = new FilenameFilter() {
+        @Override public boolean accept(File dir, String name) {
+            return name.startsWith("ignite-") && name.endsWith(".jar");
+        }
+    };
+
+    /**
+     * The main method.
+     * @param ignore Params.
+     * @throws IOException If fails.
+     */
+    public static void main(String[] ignore) throws IOException {
+        X.println(
+            "   __________  ________________ ",
+            "  /  _/ ___/ |/ /  _/_  __/ __/ ",
+            " _/ // (_ /    // /  / / / _/   ",
+            "/___/\\___/_/|_/___/ /_/ /___/  ",
+            "                for Apache Hadoop        ",
+            "  ");
+
+        println("Version " + ACK_VER);
+
+        configureHadoop();
+    }
+
+    /**
+     * This operation prepares the clean unpacked Hadoop distributive to work as client with GridGain-Hadoop.
+     * It performs these operations:
+     * <ul>
+     *     <li>Check for setting of HADOOP_HOME environment variable.</li>
+     *     <li>Try to resolve HADOOP_COMMON_HOME or evaluate it relative to HADOOP_HOME.</li>
+     *     <li>In Windows check if winutils.exe exists and try to fix issue with some restrictions.</li>
+     *     <li>In Windows check new line character issues in CMD scripts.</li>
+     *     <li>Scan Hadoop lib directory to detect GridGain JARs. If these don't exist tries to create ones.</li>
+     * </ul>
+     */
+    private static void configureHadoop() {
+        String gridgainHome = U.getGridGainHome();
+
+        println("IGNITE_HOME is set to '" + gridgainHome + "'.");
+
+        checkGridGainHome(gridgainHome);
+
+        String homeVar = "HADOOP_HOME";
+        String hadoopHome = System.getenv(homeVar);
+
+        if (F.isEmpty(hadoopHome)) {
+            homeVar = "HADOOP_PREFIX";
+            hadoopHome = System.getenv(homeVar);
+        }
+
+        if (F.isEmpty(hadoopHome))
+            exit("Neither HADOOP_HOME nor HADOOP_PREFIX environment variable is set. Please set one of them to a " +
+                "valid Hadoop installation directory and run setup tool again.", null);
+
+        hadoopHome = hadoopHome.replaceAll("\"", "");
+
+        println(homeVar + " is set to '" + hadoopHome + "'.");
+
+        String hiveHome = System.getenv("HIVE_HOME");
+
+        if (!F.isEmpty(hiveHome)) {
+            hiveHome = hiveHome.replaceAll("\"", "");
+
+            println("HIVE_HOME is set to '" + hiveHome + "'.");
+        }
+
+        File hadoopDir = new File(hadoopHome);
+
+        if (!hadoopDir.exists())
+            exit("Hadoop installation folder does not exist.", null);
+
+        if (!hadoopDir.isDirectory())
+            exit("HADOOP_HOME must point to a directory.", null);
+
+        if (!hadoopDir.canRead())
+            exit("Hadoop installation folder can not be read. Please check permissions.", null);
+
+        File hadoopCommonDir;
+
+        String hadoopCommonHome = System.getenv("HADOOP_COMMON_HOME");
+
+        if (F.isEmpty(hadoopCommonHome)) {
+            hadoopCommonDir = new File(hadoopDir, "share/hadoop/common");
+
+            println("HADOOP_COMMON_HOME is not set, will use '" + hadoopCommonDir.getPath() + "'.");
+        }
+        else {
+            println("HADOOP_COMMON_HOME is set to '" + hadoopCommonHome + "'.");
+
+            hadoopCommonDir = new File(hadoopCommonHome);
+        }
+
+        if (!hadoopCommonDir.canRead())
+            exit("Failed to read Hadoop common dir in '" + hadoopCommonHome + "'.", null);
+
+        File hadoopCommonLibDir = new File(hadoopCommonDir, "lib");
+
+        if (!hadoopCommonLibDir.canRead())
+            exit("Failed to read Hadoop 'lib' folder in '" + hadoopCommonLibDir.getPath() + "'.", null);
+
+        if (U.isWindows()) {
+            checkJavaPathSpaces();
+
+            File hadoopBinDir = new File(hadoopDir, "bin");
+
+            if (!hadoopBinDir.canRead())
+                exit("Failed to read subdirectory 'bin' in HADOOP_HOME.", null);
+
+            File winutilsFile = new File(hadoopBinDir, WINUTILS_EXE);
+
+            if (!winutilsFile.exists()) {
+                if (ask("File '" + WINUTILS_EXE + "' does not exist. " +
+                    "It may be replaced by a stub. Create it?")) {
+                    println("Creating file stub '" + winutilsFile.getAbsolutePath() + "'.");
+
+                    boolean ok = false;
+
+                    try {
+                        ok = winutilsFile.createNewFile();
+                    }
+                    catch (IOException ignore) {
+                        // No-op.
+                    }
+
+                    if (!ok)
+                        exit("Failed to create '" + WINUTILS_EXE + "' file. Please check permissions.", null);
+                }
+                else
+                    println("Ok. But Hadoop client probably will not work on Windows this way...");
+            }
+
+            processCmdFiles(hadoopDir, "bin", "sbin", "libexec");
+        }
+
+        File gridgainLibs = new File(new File(gridgainHome), "libs");
+
+        if (!gridgainLibs.exists())
+            exit("GridGain 'libs' folder is not found.", null);
+
+        Collection<File> jarFiles = new ArrayList<>();
+
+        addJarsInFolder(jarFiles, gridgainLibs);
+        addJarsInFolder(jarFiles, new File(gridgainLibs, "gridgain-hadoop"));
+
+        boolean jarsLinksCorrect = true;
+
+        for (File file : jarFiles) {
+            File link = new File(hadoopCommonLibDir, file.getName());
+
+            jarsLinksCorrect &= isJarLinkCorrect(link, file);
+
+            if (!jarsLinksCorrect)
+                break;
+        }
+
+        if (!jarsLinksCorrect) {
+            if (ask("GridGain JAR files are not found in Hadoop 'lib' directory. " +
+                "Create appropriate symbolic links?")) {
+                File[] oldGridGainJarFiles = hadoopCommonLibDir.listFiles(IGNITE_JARS);
+
+                if (oldGridGainJarFiles.length > 0 && ask("The Hadoop 'lib' directory contains JARs from other GridGain " +
+                    "installation. They must be deleted to continue. Continue?")) {
+                    for (File file : oldGridGainJarFiles) {
+                        println("Deleting file '" + file.getAbsolutePath() + "'.");
+
+                        if (!file.delete())
+                            exit("Failed to delete file '" + file.getPath() + "'.", null);
+                    }
+                }
+
+                for (File file : jarFiles) {
+                    File targetFile = new File(hadoopCommonLibDir, file.getName());
+
+                    try {
+                        println("Creating symbolic link '" + targetFile.getAbsolutePath() + "'.");
+
+                        Files.createSymbolicLink(targetFile.toPath(), file.toPath());
+                    }
+                    catch (IOException e) {
+                        if (U.isWindows()) {
+                            warn("Ability to create symbolic links is required!");
+                            warn("On Windows platform you have to grant permission 'Create symbolic links'");
+                            warn("to your user or run the Accelerator as Administrator.");
+                        }
+
+                        exit("Creating symbolic link failed! Check permissions.", e);
+                    }
+                }
+            }
+            else
+                println("Ok. But Hadoop client will not be able to talk to GridGain cluster without those JARs in classpath...");
+        }
+
+        File hadoopEtc = new File(hadoopDir, "etc" + File.separator + "hadoop");
+
+        File gridgainDocs = new File(gridgainHome, "docs");
+
+        if (!gridgainDocs.canRead())
+            exit("Failed to read GridGain 'docs' folder at '" + gridgainDocs.getAbsolutePath() + "'.", null);
+
+        if (hadoopEtc.canWrite()) { // TODO Bigtop
+            if (ask("Replace 'core-site.xml' and 'mapred-site.xml' files with preconfigured templates " +
+                "(existing files will be backed up)?")) {
+                replaceWithBackup(new File(gridgainDocs, "core-site.gridgain.xml"), new File(hadoopEtc, "core-site.xml"));
+
+                replaceWithBackup(new File(gridgainDocs, "mapred-site.gridgain.xml"), new File(hadoopEtc, "mapred-site.xml"));
+            }
+            else
+                println("Ok. You can configure them later, the templates are available at GridGain's 'docs' directory...");
+        }
+
+        if (!F.isEmpty(hiveHome)) {
+            File hiveConfDir = new File(hiveHome + File.separator + "conf");
+
+            if (!hiveConfDir.canWrite())
+                warn("Can not write to '" + hiveConfDir.getAbsolutePath() + "'. To run Hive queries you have to " +
+                    "configure 'hive-site.xml' manually. The template is available at GridGain's 'docs' directory.");
+            else if (ask("Replace 'hive-site.xml' with preconfigured template (existing file will be backed up)?"))
+                replaceWithBackup(new File(gridgainDocs, "hive-site.gridgain.xml"), new File(hiveConfDir, "hive-site.xml"));
+            else
+                println("Ok. You can configure it later, the template is available at GridGain's 'docs' directory...");
+        }
+
+        println("Apache Hadoop setup is complete.");
+    }
+
+    /**
+     * @param jarFiles Jars.
+     * @param folder Folder.
+     */
+    private static void addJarsInFolder(Collection<File> jarFiles, File folder) {
+        if (!folder.exists())
+            exit("Folder '" + folder.getAbsolutePath() + "' is not found.", null);
+
+        jarFiles.addAll(Arrays.asList(folder.listFiles(IGNITE_JARS)));
+    }
+
+    /**
+     * Checks that JAVA_HOME does not contain space characters.
+     */
+    private static void checkJavaPathSpaces() {
+        String javaHome = System.getProperty("java.home");
+
+        if (javaHome.contains(" ")) {
+            warn("Java installation path contains space characters!");
+            warn("Hadoop client will not be able to start using '" + javaHome + "'.");
+            warn("Please install JRE to path which does not contain spaces and point JAVA_HOME to that installation.");
+        }
+    }
+
+    /**
+     * Checks GridGain home.
+     *
+     * @param ggHome GridGain home.
+     */
+    private static void checkGridGainHome(String ggHome) {
+        URL jarUrl = U.class.getProtectionDomain().getCodeSource().getLocation();
+
+        try {
+            Path jar = Paths.get(jarUrl.toURI());
+            Path gg = Paths.get(ggHome);
+
+            if (!jar.startsWith(gg))
+                exit("GridGain JAR files are not under IGNITE_HOME.", null);
+        }
+        catch (Exception e) {
+            exit(e.getMessage(), e);
+        }
+    }
+
+    /**
+     * Replaces target file with source file.
+     *
+     * @param from From.
+     * @param to To.
+     */
+    private static void replaceWithBackup(File from, File to) {
+        if (!from.canRead())
+            exit("Failed to read source file '" + from.getAbsolutePath() + "'.", null);
+
+        println("Replacing file '" + to.getAbsolutePath() + "'.");
+
+        try {
+            U.copy(from, renameToBak(to), true);
+        }
+        catch (IOException e) {
+            exit("Failed to replace file '" + to.getAbsolutePath() + "'.", e);
+        }
+    }
+
+    /**
+     * Renames file for backup.
+     *
+     * @param file File.
+     * @return File.
+     */
+    private static File renameToBak(File file) {
+        DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd_HH-mm-ss");
+
+        if (file.exists() && !file.renameTo(new File(file.getAbsolutePath() + "." + fmt.format(new Date()) + ".bak")))
+            exit("Failed to rename file '" + file.getPath() + "'.", null);
+
+        return file;
+    }
+
+    /**
+     * Checks if link is correct.
+     *
+     * @param link Symbolic link.
+     * @param correctTarget Correct link target.
+     * @return {@code true} If link target is correct.
+     */
+    private static boolean isJarLinkCorrect(File link, File correctTarget) {
+        if (!Files.isSymbolicLink(link.toPath()))
+            return false; // It is a real file or it does not exist.
+
+        Path target = null;
+
+        try {
+            target = Files.readSymbolicLink(link.toPath());
+        }
+        catch (IOException e) {
+            exit("Failed to read symbolic link: " + link.getAbsolutePath(), e);
+        }
+
+        return Files.exists(target) && target.toFile().equals(correctTarget);
+    }
+
+    /**
+     * Writes the question end read the boolean answer from the console.
+     *
+     * @param question Question to write.
+     * @return {@code true} if user inputs 'Y' or 'y', {@code false} otherwise.
+     */
+    private static boolean ask(String question) {
+        X.println();
+        X.print(" <  " + question + " (Y/N): ");
+
+        String answer = null;
+
+        if (!F.isEmpty(System.getenv("IGNITE_HADOOP_SETUP_YES")))
+            answer = "Y";
+        else {
+            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
+
+            try {
+                answer = br.readLine();
+            }
+            catch (IOException e) {
+                exit("Failed to read answer: " + e.getMessage(), e);
+            }
+        }
+
+        if (answer != null && "Y".equals(answer.toUpperCase().trim())) {
+            X.println(" >  Yes.");
+
+            return true;
+        }
+        else {
+            X.println(" >  No.");
+
+            return false;
+        }
+    }
+
+    /**
+     * Exit with message.
+     *
+     * @param msg Exit message.
+     */
+    private static void exit(String msg, Exception e) {
+        X.println("    ");
+        X.println("  # " + msg);
+        X.println("  # Setup failed, exiting... ");
+
+        if (e != null && !F.isEmpty(System.getenv("IGNITE_HADOOP_SETUP_DEBUG")))
+            e.printStackTrace();
+
+        System.exit(1);
+    }
+
+    /**
+     * Prints message.
+     *
+     * @param msg Message.
+     */
+    private static void println(String msg) {
+        X.println("  > " + msg);
+    }
+
+    /**
+     * Prints warning.
+     *
+     * @param msg Message.
+     */
+    private static void warn(String msg) {
+        X.println("  ! " + msg);
+    }
+
+    /**
+     * Checks that CMD files have valid MS Windows new line characters. If not, writes question to console and reads the
+     * answer. If it's 'Y' then backups original files and corrects invalid new line characters.
+     *
+     * @param rootDir Root directory to process.
+     * @param dirs Directories inside of the root to process.
+     */
+    private static void processCmdFiles(File rootDir, String... dirs) {
+        boolean answer = false;
+
+        for (String dir : dirs) {
+            File subDir = new File(rootDir, dir);
+
+            File[] cmdFiles = subDir.listFiles(new FilenameFilter() {
+                @Override public boolean accept(File dir, String name) {
+                    return name.toLowerCase().endsWith(".cmd");
+                }
+            });
+
+            for (File file : cmdFiles) {
+                String content = null;
+
+                try (Scanner scanner = new Scanner(file)) {
+                    content = scanner.useDelimiter("\\Z").next();
+                }
+                catch (FileNotFoundException e) {
+                    exit("Failed to read file '" + file + "'.", e);
+                }
+
+                boolean invalid = false;
+
+                for (int i = 0; i < content.length(); i++) {
+                    if (content.charAt(i) == '\n' && (i == 0 || content.charAt(i - 1) != '\r')) {
+                        invalid = true;
+
+                        break;
+                    }
+                }
+
+                if (invalid) {
+                    answer = answer || ask("One or more *.CMD files has invalid new line character. Replace them?");
+
+                    if (!answer) {
+                        println("Ok. But Windows most probably will fail to execute them...");
+
+                        return;
+                    }
+
+                    println("Fixing newline characters in file '" + file.getAbsolutePath() + "'.");
+
+                    renameToBak(file);
+
+                    try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
+                        for (int i = 0; i < content.length(); i++) {
+                            if (content.charAt(i) == '\n' && (i == 0 || content.charAt(i - 1) != '\r'))
+                                writer.write("\r");
+
+                            writer.write(content.charAt(i));
+                        }
+                    }
+                    catch (IOException e) {
+                        exit("Failed to write file '" + file.getPath() + "': " + e.getMessage(), e);
+                    }
+                }
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopUtils.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopUtils.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopUtils.java
index cfd9786..b6ff150 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopUtils.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopUtils.java
@@ -20,10 +20,12 @@ package org.apache.ignite.internal.processors.hadoop;
 import org.apache.hadoop.conf.*;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.io.*;
-import org.apache.hadoop.mapred.JobConf;
+import org.apache.hadoop.mapred.*;
+import org.apache.hadoop.mapreduce.JobID;
+import org.apache.hadoop.mapreduce.JobPriority;
+import org.apache.hadoop.mapreduce.JobStatus;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessor.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessor.java
index c0c8e23..4ef9e35 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessor.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessor.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.jobtracker.*;
 import org.apache.ignite.internal.processors.hadoop.planner.*;
 import org.apache.ignite.internal.processors.hadoop.shuffle.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCounterAdapter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCounterAdapter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCounterAdapter.java
index ec259b0..9e46846 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCounterAdapter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCounterAdapter.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.counter;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCountersImpl.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCountersImpl.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCountersImpl.java
index 5dcab2f..92d54af 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCountersImpl.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopCountersImpl.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.counter;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jdk8.backport.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopFSCounterWriter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopFSCounterWriter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopFSCounterWriter.java
index 171ba62..5e9f9af 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopFSCounterWriter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopFSCounterWriter.java
@@ -18,9 +18,10 @@
 package org.apache.ignite.internal.processors.hadoop.counter;
 
 import org.apache.hadoop.conf.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.*;
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopLongCounter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopLongCounter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopLongCounter.java
index 67960b6..67af49f 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopLongCounter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopLongCounter.java
@@ -17,7 +17,8 @@
 
 package org.apache.ignite.internal.processors.hadoop.counter;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
+
 import java.io.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopPerformanceCounter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopPerformanceCounter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopPerformanceCounter.java
index e790124..d5ceebf 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopPerformanceCounter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/counter/GridHadoopPerformanceCounter.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.counter;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobMetadata.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobMetadata.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobMetadata.java
index c83a5b9..b124312 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobMetadata.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobMetadata.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.jobtracker;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.*;
 import org.apache.ignite.internal.util.tostring.*;
@@ -26,7 +26,7 @@ import org.apache.ignite.internal.util.typedef.internal.*;
 import java.io.*;
 import java.util.*;
 
-import static org.apache.ignite.hadoop.GridHadoopJobPhase.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopJobPhase.*;
 
 /**
  * Hadoop job metadata. Internal object used for distributed job state tracking.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobTracker.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobTracker.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobTracker.java
index 6e35f47..a2e5e40 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobTracker.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/jobtracker/GridHadoopJobTracker.java
@@ -22,18 +22,17 @@ import org.apache.ignite.cache.*;
 import org.apache.ignite.cache.query.*;
 import org.apache.ignite.events.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.cache.*;
-import org.apache.ignite.internal.util.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.managers.eventstorage.*;
+import org.apache.ignite.internal.processors.cache.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.*;
 import org.apache.ignite.internal.processors.hadoop.taskexecutor.external.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.future.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 import org.jdk8.backport.*;
 import org.jetbrains.annotations.*;
 
@@ -45,8 +44,8 @@ import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
 import static java.util.concurrent.TimeUnit.*;
-import static org.apache.ignite.hadoop.GridHadoopJobPhase.*;
-import static org.apache.ignite.hadoop.GridHadoopTaskType.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopJobPhase.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopTaskType.*;
 import static org.apache.ignite.internal.processors.hadoop.taskexecutor.GridHadoopTaskState.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlan.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlan.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlan.java
index 84fb34a..7988403 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlan.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlan.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.planner;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlanner.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlanner.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlanner.java
index d98d8f4..df868fb 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlanner.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/planner/GridHadoopDefaultMapReducePlanner.java
@@ -21,12 +21,12 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.internal.processors.fs.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.fs.hadoop.*;
+import org.apache.ignite.internal.processors.fs.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.resources.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobCountersTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobCountersTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobCountersTask.java
index c4f5f9b..37073d9 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobCountersTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobCountersTask.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.proto;
 
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobStatusTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobStatusTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobStatusTask.java
index 19adf3b..de4f89c 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobStatusTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolJobStatusTask.java
@@ -20,9 +20,9 @@ package org.apache.ignite.internal.processors.hadoop.proto;
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.lang.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolKillJobTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolKillJobTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolKillJobTask.java
index cde85d8..384bc23 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolKillJobTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolKillJobTask.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.proto;
 
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 import java.util.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolNextTaskIdTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolNextTaskIdTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolNextTaskIdTask.java
index d441e65..a1968b4 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolNextTaskIdTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolNextTaskIdTask.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.proto;
 
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 /**
  * Task to get the next job ID.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolSubmitJobTask.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolSubmitJobTask.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolSubmitJobTask.java
index 5411a87..c734acd 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolSubmitJobTask.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolSubmitJobTask.java
@@ -19,11 +19,11 @@ package org.apache.ignite.internal.processors.hadoop.proto;
 
 import org.apache.ignite.*;
 import org.apache.ignite.compute.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 
 import java.util.*;
 
-import static org.apache.ignite.hadoop.GridHadoopJobPhase.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopJobPhase.*;
 
 /**
  * Submit job task.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
index 01a68e1..081a679 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/proto/GridHadoopProtocolTaskAdapter.java
@@ -21,9 +21,9 @@ import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.compute.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.resources.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.typedef.*;
+import org.apache.ignite.resources.*;
 import org.jetbrains.annotations.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffle.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffle.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffle.java
index c186953..396124e 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffle.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffle.java
@@ -20,8 +20,6 @@ package org.apache.ignite.internal.processors.hadoop.shuffle;
 import org.apache.ignite.*;
 import org.apache.ignite.cluster.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.future.*;
@@ -29,6 +27,7 @@ import org.apache.ignite.internal.util.lang.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
+import org.apache.ignite.lang.*;
 
 import java.util.*;
 import java.util.concurrent.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleAck.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleAck.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleAck.java
index a16ef23..a8a52a9 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleAck.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleAck.java
@@ -17,7 +17,7 @@
 
 package org.apache.ignite.internal.processors.hadoop.shuffle;
 
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleJob.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleJob.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleJob.java
index 54ef6c7..491205f 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleJob.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleJob.java
@@ -19,9 +19,7 @@ package org.apache.ignite.internal.processors.hadoop.shuffle;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.lang.*;
-import org.apache.ignite.thread.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.shuffle.collections.*;
 import org.apache.ignite.internal.util.future.*;
@@ -31,12 +29,14 @@ import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.apache.ignite.internal.util.worker.*;
+import org.apache.ignite.lang.*;
+import org.apache.ignite.thread.*;
 
 import java.util.*;
 import java.util.concurrent.*;
 import java.util.concurrent.atomic.*;
 
-import static org.apache.ignite.hadoop.GridHadoopJobProperty.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopJobProperty.*;
 import static org.apache.ignite.internal.util.offheap.unsafe.GridUnsafeMemory.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleMessage.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleMessage.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleMessage.java
index 1410c35..f68ec7e 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleMessage.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/GridHadoopShuffleMessage.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.message.*;
 import org.apache.ignite.internal.util.tostring.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimap.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimap.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimap.java
index 435bdd0..32db722 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimap.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopConcurrentHashMultimap.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimap.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimap.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimap.java
index ebf5ab6..2795b77 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimap.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimap.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimapBase.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimapBase.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimapBase.java
index 07fe856..f7e1362 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimapBase.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopHashMultimapBase.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 
 import java.util.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimap.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimap.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimap.java
index 267b16c..b8eb12c 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimap.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimap.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.jetbrains.annotations.*;
 
 import java.io.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimapBase.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimapBase.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimapBase.java
index 68243d7..2d8660f 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimapBase.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopMultimapBase.java
@@ -18,9 +18,9 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
-import org.apache.ignite.internal.util.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.shuffle.streams.*;
+import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.jetbrains.annotations.*;
 
@@ -28,7 +28,7 @@ import java.io.*;
 import java.util.*;
 import java.util.concurrent.*;
 
-import static org.apache.ignite.hadoop.GridHadoopJobProperty.*;
+import static org.apache.ignite.internal.processors.hadoop.GridHadoopJobProperty.*;
 
 /**
  * Base class for all multimaps.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipList.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipList.java b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipList.java
index 13582f6..a2c626c 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipList.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/internal/processors/hadoop/shuffle/collections/GridHadoopSkipList.java
@@ -18,7 +18,7 @@
 package org.apache.ignite.internal.processors.hadoop.shuffle.collections;
 
 import org.apache.ignite.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.internal.util.offheap.unsafe.*;
 import org.apache.ignite.internal.util.typedef.internal.*;


[38/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/huckleberry-finn.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/huckleberry-finn.txt b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/huckleberry-finn.txt
new file mode 100644
index 0000000..3af8c6b
--- /dev/null
+++ b/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/books/huckleberry-finn.txt
@@ -0,0 +1,11733 @@
+The Project Gutenberg EBook of Adventures of Huckleberry Finn, Complete
+by Mark Twain (Samuel Clemens)
+
+This eBook is for the use of anyone anywhere at no cost and with
+almost no restrictions whatsoever.  You may copy it, give it away or
+re-use it under the terms of the Project Gutenberg License included
+with this eBook or online at www.gutenberg.net
+
+
+Title: Adventures of Huckleberry Finn, Complete
+
+Author: Mark Twain (Samuel Clemens)
+
+Release Date: August 20, 2006 [EBook #76]
+[This file last updated May 3, 2011]
+
+Language: English
+
+
+*** START OF THIS PROJECT GUTENBERG EBOOK HUCKLEBERRY FINN ***
+
+
+
+
+Produced by David Widger. Previous editions produced by Ron Burkey
+and Internet Wiretap
+
+
+
+
+
+ADVENTURES OF HUCKLEBERRY FINN
+
+By Mark Twain
+
+
+
+NOTICE
+
+PERSONS attempting to find a motive in this narrative will be prosecuted;
+persons attempting to find a moral in it will be banished; persons
+attempting to find a plot in it will be shot.
+
+BY ORDER OF THE AUTHOR, Per G.G., Chief of Ordnance.
+
+
+
+
+EXPLANATORY
+
+IN this book a number of dialects are used, to wit:  the Missouri negro
+dialect; the extremest form of the backwoods Southwestern dialect; the
+ordinary "Pike County" dialect; and four modified varieties of this last.
+The shadings have not been done in a haphazard fashion, or by guesswork;
+but painstakingly, and with the trustworthy guidance and support of
+personal familiarity with these several forms of speech.
+
+I make this explanation for the reason that without it many readers would
+suppose that all these characters were trying to talk alike and not
+succeeding.
+
+THE AUTHOR.
+
+
+
+
+
+ADVENTURES OF HUCKLEBERRY FINN
+
+Scene:  The Mississippi Valley Time:  Forty to fifty years ago
+
+
+
+CHAPTER I.
+
+YOU don't know about me without you have read a book by the name of The
+Adventures of Tom Sawyer; but that ain't no matter.  That book was made
+by Mr. Mark Twain, and he told the truth, mainly.  There was things which
+he stretched, but mainly he told the truth.  That is nothing.  I never
+seen anybody but lied one time or another, without it was Aunt Polly, or
+the widow, or maybe Mary.  Aunt Polly--Tom's Aunt Polly, she is--and
+Mary, and the Widow Douglas is all told about in that book, which is
+mostly a true book, with some stretchers, as I said before.
+
+Now the way that the book winds up is this:  Tom and me found the money
+that the robbers hid in the cave, and it made us rich.  We got six
+thousand dollars apiece--all gold.  It was an awful sight of money when
+it was piled up.  Well, Judge Thatcher he took it and put it out at
+interest, and it fetched us a dollar a day apiece all the year round
+--more than a body could tell what to do with.  The Widow Douglas she took
+me for her son, and allowed she would sivilize me; but it was rough
+living in the house all the time, considering how dismal regular and
+decent the widow was in all her ways; and so when I couldn't stand it no
+longer I lit out.  I got into my old rags and my sugar-hogshead again,
+and was free and satisfied.  But Tom Sawyer he hunted me up and said he
+was going to start a band of robbers, and I might join if I would go back
+to the widow and be respectable.  So I went back.
+
+The widow she cried over me, and called me a poor lost lamb, and she
+called me a lot of other names, too, but she never meant no harm by it.
+She put me in them new clothes again, and I couldn't do nothing but sweat
+and sweat, and feel all cramped up.  Well, then, the old thing commenced
+again.  The widow rung a bell for supper, and you had to come to time.
+When you got to the table you couldn't go right to eating, but you had to
+wait for the widow to tuck down her head and grumble a little over the
+victuals, though there warn't really anything the matter with them,--that
+is, nothing only everything was cooked by itself.  In a barrel of odds
+and ends it is different; things get mixed up, and the juice kind of
+swaps around, and the things go better.
+
+After supper she got out her book and learned me about Moses and the
+Bulrushers, and I was in a sweat to find out all about him; but by and by
+she let it out that Moses had been dead a considerable long time; so then
+I didn't care no more about him, because I don't take no stock in dead
+people.
+
+Pretty soon I wanted to smoke, and asked the widow to let me.  But she
+wouldn't.  She said it was a mean practice and wasn't clean, and I must
+try to not do it any more.  That is just the way with some people.  They
+get down on a thing when they don't know nothing about it.  Here she was
+a-bothering about Moses, which was no kin to her, and no use to anybody,
+being gone, you see, yet finding a power of fault with me for doing a
+thing that had some good in it.  And she took snuff, too; of course that
+was all right, because she done it herself.
+
+Her sister, Miss Watson, a tolerable slim old maid, with goggles on,
+had just come to live with her, and took a set at me now with a
+spelling-book. She worked me middling hard for about an hour, and then
+the widow made her ease up.  I couldn't stood it much longer.  Then for
+an hour it was deadly dull, and I was fidgety.  Miss Watson would say,
+"Don't put your feet up there, Huckleberry;" and "Don't scrunch up like
+that, Huckleberry--set up straight;" and pretty soon she would say,
+"Don't gap and stretch like that, Huckleberry--why don't you try to
+behave?"  Then she told me all about the bad place, and I said I wished I
+was there. She got mad then, but I didn't mean no harm.  All I wanted was
+to go somewheres; all I wanted was a change, I warn't particular.  She
+said it was wicked to say what I said; said she wouldn't say it for the
+whole world; she was going to live so as to go to the good place.  Well,
+I couldn't see no advantage in going where she was going, so I made up my
+mind I wouldn't try for it.  But I never said so, because it would only
+make trouble, and wouldn't do no good.
+
+Now she had got a start, and she went on and told me all about the good
+place.  She said all a body would have to do there was to go around all
+day long with a harp and sing, forever and ever.  So I didn't think much
+of it. But I never said so.  I asked her if she reckoned Tom Sawyer would
+go there, and she said not by a considerable sight.  I was glad about
+that, because I wanted him and me to be together.
+
+Miss Watson she kept pecking at me, and it got tiresome and lonesome.  By
+and by they fetched the niggers in and had prayers, and then everybody
+was off to bed.  I went up to my room with a piece of candle, and put it
+on the table.  Then I set down in a chair by the window and tried to
+think of something cheerful, but it warn't no use.  I felt so lonesome I
+most wished I was dead.  The stars were shining, and the leaves rustled
+in the woods ever so mournful; and I heard an owl, away off, who-whooing
+about somebody that was dead, and a whippowill and a dog crying about
+somebody that was going to die; and the wind was trying to whisper
+something to me, and I couldn't make out what it was, and so it made the
+cold shivers run over me. Then away out in the woods I heard that kind of
+a sound that a ghost makes when it wants to tell about something that's
+on its mind and can't make itself understood, and so can't rest easy in
+its grave, and has to go about that way every night grieving.  I got so
+down-hearted and scared I did wish I had some company.  Pretty soon a
+spider went crawling up my shoulder, and I flipped it off and it lit in
+the candle; and before I could budge it was all shriveled up.  I didn't
+need anybody to tell me that that was an awful bad sign and would fetch
+me some bad luck, so I was scared and most shook the clothes off of me.
+I got up and turned around in my tracks three times and crossed my breast
+every time; and then I tied up a little lock of my hair with a thread to
+keep witches away.  But I hadn't no confidence.  You do that when you've
+lost a horseshoe that you've found, instead of nailing it up over the
+door, but I hadn't ever heard anybody say it was any way to keep off bad
+luck when you'd killed a spider.
+
+I set down again, a-shaking all over, and got out my pipe for a smoke;
+for the house was all as still as death now, and so the widow wouldn't
+know. Well, after a long time I heard the clock away off in the town go
+boom--boom--boom--twelve licks; and all still again--stiller than ever.
+Pretty soon I heard a twig snap down in the dark amongst the trees
+--something was a stirring.  I set still and listened.  Directly I could
+just barely hear a "me-yow! me-yow!" down there.  That was good!  Says I,
+"me-yow! me-yow!" as soft as I could, and then I put out the light and
+scrambled out of the window on to the shed.  Then I slipped down to the
+ground and crawled in among the trees, and, sure enough, there was Tom
+Sawyer waiting for me.
+
+
+
+
+CHAPTER II.
+
+WE went tiptoeing along a path amongst the trees back towards the end of
+the widow's garden, stooping down so as the branches wouldn't scrape our
+heads. When we was passing by the kitchen I fell over a root and made a
+noise.  We scrouched down and laid still.  Miss Watson's big nigger,
+named Jim, was setting in the kitchen door; we could see him pretty
+clear, because there was a light behind him.  He got up and stretched his
+neck out about a minute, listening.  Then he says:
+
+"Who dah?"
+
+He listened some more; then he come tiptoeing down and stood right
+between us; we could a touched him, nearly.  Well, likely it was minutes
+and minutes that there warn't a sound, and we all there so close
+together.  There was a place on my ankle that got to itching, but I
+dasn't scratch it; and then my ear begun to itch; and next my back, right
+between my shoulders.  Seemed like I'd die if I couldn't scratch.  Well,
+I've noticed that thing plenty times since.  If you are with the quality,
+or at a funeral, or trying to go to sleep when you ain't sleepy--if you
+are anywheres where it won't do for you to scratch, why you will itch all
+over in upwards of a thousand places. Pretty soon Jim says:
+
+"Say, who is you?  Whar is you?  Dog my cats ef I didn' hear sumf'n.
+Well, I know what I's gwyne to do:  I's gwyne to set down here and listen
+tell I hears it agin."
+
+So he set down on the ground betwixt me and Tom.  He leaned his back up
+against a tree, and stretched his legs out till one of them most touched
+one of mine.  My nose begun to itch.  It itched till the tears come into
+my eyes.  But I dasn't scratch.  Then it begun to itch on the inside.
+Next I got to itching underneath.  I didn't know how I was going to set
+still. This miserableness went on as much as six or seven minutes; but it
+seemed a sight longer than that.  I was itching in eleven different
+places now.  I reckoned I couldn't stand it more'n a minute longer, but I
+set my teeth hard and got ready to try.  Just then Jim begun to breathe
+heavy; next he begun to snore--and then I was pretty soon comfortable
+again.
+
+Tom he made a sign to me--kind of a little noise with his mouth--and we
+went creeping away on our hands and knees.  When we was ten foot off Tom
+whispered to me, and wanted to tie Jim to the tree for fun.  But I said
+no; he might wake and make a disturbance, and then they'd find out I
+warn't in. Then Tom said he hadn't got candles enough, and he would slip
+in the kitchen and get some more.  I didn't want him to try.  I said Jim
+might wake up and come.  But Tom wanted to resk it; so we slid in there
+and got three candles, and Tom laid five cents on the table for pay.
+Then we got out, and I was in a sweat to get away; but nothing would do
+Tom but he must crawl to where Jim was, on his hands and knees, and play
+something on him.  I waited, and it seemed a good while, everything was
+so still and lonesome.
+
+As soon as Tom was back we cut along the path, around the garden fence,
+and by and by fetched up on the steep top of the hill the other side of
+the house.  Tom said he slipped Jim's hat off of his head and hung it on
+a limb right over him, and Jim stirred a little, but he didn't wake.
+Afterwards Jim said the witches be witched him and put him in a trance,
+and rode him all over the State, and then set him under the trees again,
+and hung his hat on a limb to show who done it.  And next time Jim told
+it he said they rode him down to New Orleans; and, after that, every time
+he told it he spread it more and more, till by and by he said they rode
+him all over the world, and tired him most to death, and his back was all
+over saddle-boils.  Jim was monstrous proud about it, and he got so he
+wouldn't hardly notice the other niggers.  Niggers would come miles to
+hear Jim tell about it, and he was more looked up to than any nigger in
+that country.  Strange niggers would stand with their mouths open and
+look him all over, same as if he was a wonder.  Niggers is always talking
+about witches in the dark by the kitchen fire; but whenever one was
+talking and letting on to know all about such things, Jim would happen in
+and say, "Hm!  What you know 'bout witches?" and that nigger was corked
+up and had to take a back seat.  Jim always kept that five-center piece
+round his neck with a string, and said it was a charm the devil give to
+him with his own hands, and told him he could cure anybody with it and
+fetch witches whenever he wanted to just by saying something to it; but
+he never told what it was he said to it.  Niggers would come from all
+around there and give Jim anything they had, just for a sight of that
+five-center piece; but they wouldn't touch it, because the devil had had
+his hands on it.  Jim was most ruined for a servant, because he got stuck
+up on account of having seen the devil and been rode by witches.
+
+Well, when Tom and me got to the edge of the hilltop we looked away down
+into the village and could see three or four lights twinkling, where
+there was sick folks, maybe; and the stars over us was sparkling ever so
+fine; and down by the village was the river, a whole mile broad, and
+awful still and grand.  We went down the hill and found Jo Harper and Ben
+Rogers, and two or three more of the boys, hid in the old tanyard.  So we
+unhitched a skiff and pulled down the river two mile and a half, to the
+big scar on the hillside, and went ashore.
+
+We went to a clump of bushes, and Tom made everybody swear to keep the
+secret, and then showed them a hole in the hill, right in the thickest
+part of the bushes.  Then we lit the candles, and crawled in on our hands
+and knees.  We went about two hundred yards, and then the cave opened up.
+Tom poked about amongst the passages, and pretty soon ducked under a wall
+where you wouldn't a noticed that there was a hole.  We went along a
+narrow place and got into a kind of room, all damp and sweaty and cold,
+and there we stopped.  Tom says:
+
+"Now, we'll start this band of robbers and call it Tom Sawyer's Gang.
+Everybody that wants to join has got to take an oath, and write his name
+in blood."
+
+Everybody was willing.  So Tom got out a sheet of paper that he had wrote
+the oath on, and read it.  It swore every boy to stick to the band, and
+never tell any of the secrets; and if anybody done anything to any boy in
+the band, whichever boy was ordered to kill that person and his family
+must do it, and he mustn't eat and he mustn't sleep till he had killed
+them and hacked a cross in their breasts, which was the sign of the band.
+And nobody that didn't belong to the band could use that mark, and if he
+did he must be sued; and if he done it again he must be killed.  And if
+anybody that belonged to the band told the secrets, he must have his
+throat cut, and then have his carcass burnt up and the ashes scattered
+all around, and his name blotted off of the list with blood and never
+mentioned again by the gang, but have a curse put on it and be forgot
+forever.
+
+Everybody said it was a real beautiful oath, and asked Tom if he got it
+out of his own head.  He said, some of it, but the rest was out of
+pirate-books and robber-books, and every gang that was high-toned had it.
+
+Some thought it would be good to kill the FAMILIES of boys that told the
+secrets.  Tom said it was a good idea, so he took a pencil and wrote it
+in. Then Ben Rogers says:
+
+"Here's Huck Finn, he hain't got no family; what you going to do 'bout
+him?"
+
+"Well, hain't he got a father?" says Tom Sawyer.
+
+"Yes, he's got a father, but you can't never find him these days.  He
+used to lay drunk with the hogs in the tanyard, but he hain't been seen
+in these parts for a year or more."
+
+They talked it over, and they was going to rule me out, because they said
+every boy must have a family or somebody to kill, or else it wouldn't be
+fair and square for the others.  Well, nobody could think of anything to
+do--everybody was stumped, and set still.  I was most ready to cry; but
+all at once I thought of a way, and so I offered them Miss Watson--they
+could kill her.  Everybody said:
+
+"Oh, she'll do.  That's all right.  Huck can come in."
+
+Then they all stuck a pin in their fingers to get blood to sign with, and
+I made my mark on the paper.
+
+"Now," says Ben Rogers, "what's the line of business of this Gang?"
+
+"Nothing only robbery and murder," Tom said.
+
+"But who are we going to rob?--houses, or cattle, or--"
+
+"Stuff! stealing cattle and such things ain't robbery; it's burglary,"
+says Tom Sawyer.  "We ain't burglars.  That ain't no sort of style.  We
+are highwaymen.  We stop stages and carriages on the road, with masks on,
+and kill the people and take their watches and money."
+
+"Must we always kill the people?"
+
+"Oh, certainly.  It's best.  Some authorities think different, but mostly
+it's considered best to kill them--except some that you bring to the cave
+here, and keep them till they're ransomed."
+
+"Ransomed?  What's that?"
+
+"I don't know.  But that's what they do.  I've seen it in books; and so
+of course that's what we've got to do."
+
+"But how can we do it if we don't know what it is?"
+
+"Why, blame it all, we've GOT to do it.  Don't I tell you it's in the
+books?  Do you want to go to doing different from what's in the books,
+and get things all muddled up?"
+
+"Oh, that's all very fine to SAY, Tom Sawyer, but how in the nation are
+these fellows going to be ransomed if we don't know how to do it to them?
+--that's the thing I want to get at.  Now, what do you reckon it is?"
+
+"Well, I don't know.  But per'aps if we keep them till they're ransomed,
+it means that we keep them till they're dead."
+
+"Now, that's something LIKE.  That'll answer.  Why couldn't you said that
+before?  We'll keep them till they're ransomed to death; and a bothersome
+lot they'll be, too--eating up everything, and always trying to get
+loose."
+
+"How you talk, Ben Rogers.  How can they get loose when there's a guard
+over them, ready to shoot them down if they move a peg?"
+
+"A guard!  Well, that IS good.  So somebody's got to set up all night and
+never get any sleep, just so as to watch them.  I think that's
+foolishness. Why can't a body take a club and ransom them as soon as they
+get here?"
+
+"Because it ain't in the books so--that's why.  Now, Ben Rogers, do you
+want to do things regular, or don't you?--that's the idea.  Don't you
+reckon that the people that made the books knows what's the correct thing
+to do?  Do you reckon YOU can learn 'em anything?  Not by a good deal.
+No, sir, we'll just go on and ransom them in the regular way."
+
+"All right.  I don't mind; but I say it's a fool way, anyhow.  Say, do we
+kill the women, too?"
+
+"Well, Ben Rogers, if I was as ignorant as you I wouldn't let on.  Kill
+the women?  No; nobody ever saw anything in the books like that.  You
+fetch them to the cave, and you're always as polite as pie to them; and
+by and by they fall in love with you, and never want to go home any
+more."
+
+"Well, if that's the way I'm agreed, but I don't take no stock in it.
+Mighty soon we'll have the cave so cluttered up with women, and fellows
+waiting to be ransomed, that there won't be no place for the robbers.
+But go ahead, I ain't got nothing to say."
+
+Little Tommy Barnes was asleep now, and when they waked him up he was
+scared, and cried, and said he wanted to go home to his ma, and didn't
+want to be a robber any more.
+
+So they all made fun of him, and called him cry-baby, and that made him
+mad, and he said he would go straight and tell all the secrets.  But Tom
+give him five cents to keep quiet, and said we would all go home and meet
+next week, and rob somebody and kill some people.
+
+Ben Rogers said he couldn't get out much, only Sundays, and so he wanted
+to begin next Sunday; but all the boys said it would be wicked to do it
+on Sunday, and that settled the thing.  They agreed to get together and
+fix a day as soon as they could, and then we elected Tom Sawyer first
+captain and Jo Harper second captain of the Gang, and so started home.
+
+I clumb up the shed and crept into my window just before day was
+breaking. My new clothes was all greased up and clayey, and I was
+dog-tired.
+
+
+
+
+CHAPTER III.
+
+WELL, I got a good going-over in the morning from old Miss Watson on
+account of my clothes; but the widow she didn't scold, but only cleaned
+off the grease and clay, and looked so sorry that I thought I would
+behave awhile if I could.  Then Miss Watson she took me in the closet and
+prayed, but nothing come of it.  She told me to pray every day, and
+whatever I asked for I would get it.  But it warn't so.  I tried it.
+Once I got a fish-line, but no hooks.  It warn't any good to me without
+hooks.  I tried for the hooks three or four times, but somehow I couldn't
+make it work.  By and by, one day, I asked Miss Watson to try for me, but
+she said I was a fool.  She never told me why, and I couldn't make it out
+no way.
+
+I set down one time back in the woods, and had a long think about it.  I
+says to myself, if a body can get anything they pray for, why don't
+Deacon Winn get back the money he lost on pork?  Why can't the widow get
+back her silver snuffbox that was stole?  Why can't Miss Watson fat up?
+No, says I to my self, there ain't nothing in it.  I went and told the
+widow about it, and she said the thing a body could get by praying for it
+was "spiritual gifts."  This was too many for me, but she told me what
+she meant--I must help other people, and do everything I could for other
+people, and look out for them all the time, and never think about myself.
+This was including Miss Watson, as I took it.  I went out in the woods
+and turned it over in my mind a long time, but I couldn't see no
+advantage about it--except for the other people; so at last I reckoned I
+wouldn't worry about it any more, but just let it go.  Sometimes the
+widow would take me one side and talk about Providence in a way to make a
+body's mouth water; but maybe next day Miss Watson would take hold and
+knock it all down again.  I judged I could see that there was two
+Providences, and a poor chap would stand considerable show with the
+widow's Providence, but if Miss Watson's got him there warn't no help for
+him any more.  I thought it all out, and reckoned I would belong to the
+widow's if he wanted me, though I couldn't make out how he was a-going to
+be any better off then than what he was before, seeing I was so ignorant,
+and so kind of low-down and ornery.
+
+Pap he hadn't been seen for more than a year, and that was comfortable
+for me; I didn't want to see him no more.  He used to always whale me
+when he was sober and could get his hands on me; though I used to take to
+the woods most of the time when he was around.  Well, about this time he
+was found in the river drownded, about twelve mile above town, so people
+said.  They judged it was him, anyway; said this drownded man was just
+his size, and was ragged, and had uncommon long hair, which was all like
+pap; but they couldn't make nothing out of the face, because it had been
+in the water so long it warn't much like a face at all.  They said he was
+floating on his back in the water.  They took him and buried him on the
+bank.  But I warn't comfortable long, because I happened to think of
+something.  I knowed mighty well that a drownded man don't float on his
+back, but on his face.  So I knowed, then, that this warn't pap, but a
+woman dressed up in a man's clothes.  So I was uncomfortable again.  I
+judged the old man would turn up again by and by, though I wished he
+wouldn't.
+
+We played robber now and then about a month, and then I resigned.  All
+the boys did.  We hadn't robbed nobody, hadn't killed any people, but
+only just pretended.  We used to hop out of the woods and go charging
+down on hog-drivers and women in carts taking garden stuff to market, but
+we never hived any of them.  Tom Sawyer called the hogs "ingots," and he
+called the turnips and stuff "julery," and we would go to the cave and
+powwow over what we had done, and how many people we had killed and
+marked.  But I couldn't see no profit in it.  One time Tom sent a boy to
+run about town with a blazing stick, which he called a slogan (which was
+the sign for the Gang to get together), and then he said he had got
+secret news by his spies that next day a whole parcel of Spanish
+merchants and rich A-rabs was going to camp in Cave Hollow with two
+hundred elephants, and six hundred camels, and over a thousand "sumter"
+mules, all loaded down with di'monds, and they didn't have only a guard
+of four hundred soldiers, and so we would lay in ambuscade, as he called
+it, and kill the lot and scoop the things.  He said we must slick up our
+swords and guns, and get ready.  He never could go after even a
+turnip-cart but he must have the swords and guns all scoured up for it,
+though they was only lath and broomsticks, and you might scour at them
+till you rotted, and then they warn't worth a mouthful of ashes more than
+what they was before.  I didn't believe we could lick such a crowd of
+Spaniards and A-rabs, but I wanted to see the camels and elephants, so I
+was on hand next day, Saturday, in the ambuscade; and when we got the
+word we rushed out of the woods and down the hill.  But there warn't no
+Spaniards and A-rabs, and there warn't no camels nor no elephants.  It
+warn't anything but a Sunday-school picnic, and only a primer-class at
+that.  We busted it up, and chased the children up the hollow; but we
+never got anything but some doughnuts and jam, though Ben Rogers got a
+rag doll, and Jo Harper got a hymn-book and a tract; and then the teacher
+charged in, and made us drop everything and cut.  I didn't see no
+di'monds, and I told Tom Sawyer so.  He said there was loads of them
+there, anyway; and he said there was A-rabs there, too, and elephants and
+things.  I said, why couldn't we see them, then?  He said if I warn't so
+ignorant, but had read a book called Don Quixote, I would know without
+asking.  He said it was all done by enchantment.  He said there was
+hundreds of soldiers there, and elephants and treasure, and so on, but we
+had enemies which he called magicians; and they had turned the whole
+thing into an infant Sunday-school, just out of spite.  I said, all
+right; then the thing for us to do was to go for the magicians.  Tom
+Sawyer said I was a numskull.
+
+"Why," said he, "a magician could call up a lot of genies, and they would
+hash you up like nothing before you could say Jack Robinson.  They are as
+tall as a tree and as big around as a church."
+
+"Well," I says, "s'pose we got some genies to help US--can't we lick the
+other crowd then?"
+
+"How you going to get them?"
+
+"I don't know.  How do THEY get them?"
+
+"Why, they rub an old tin lamp or an iron ring, and then the genies come
+tearing in, with the thunder and lightning a-ripping around and the smoke
+a-rolling, and everything they're told to do they up and do it.  They
+don't think nothing of pulling a shot-tower up by the roots, and belting
+a Sunday-school superintendent over the head with it--or any other man."
+
+"Who makes them tear around so?"
+
+"Why, whoever rubs the lamp or the ring.  They belong to whoever rubs the
+lamp or the ring, and they've got to do whatever he says.  If he tells
+them to build a palace forty miles long out of di'monds, and fill it full
+of chewing-gum, or whatever you want, and fetch an emperor's daughter
+from China for you to marry, they've got to do it--and they've got to do
+it before sun-up next morning, too.  And more:  they've got to waltz that
+palace around over the country wherever you want it, you understand."
+
+"Well," says I, "I think they are a pack of flat-heads for not keeping
+the palace themselves 'stead of fooling them away like that.  And what's
+more--if I was one of them I would see a man in Jericho before I would
+drop my business and come to him for the rubbing of an old tin lamp."
+
+"How you talk, Huck Finn.  Why, you'd HAVE to come when he rubbed it,
+whether you wanted to or not."
+
+"What! and I as high as a tree and as big as a church?  All right, then;
+I WOULD come; but I lay I'd make that man climb the highest tree there
+was in the country."
+
+"Shucks, it ain't no use to talk to you, Huck Finn.  You don't seem to
+know anything, somehow--perfect saphead."
+
+I thought all this over for two or three days, and then I reckoned I
+would see if there was anything in it.  I got an old tin lamp and an iron
+ring, and went out in the woods and rubbed and rubbed till I sweat like
+an Injun, calculating to build a palace and sell it; but it warn't no
+use, none of the genies come.  So then I judged that all that stuff was
+only just one of Tom Sawyer's lies.  I reckoned he believed in the A-rabs
+and the elephants, but as for me I think different.  It had all the marks
+of a Sunday-school.
+
+
+
+
+CHAPTER IV.
+
+WELL, three or four months run along, and it was well into the winter
+now. I had been to school most all the time and could spell and read and
+write just a little, and could say the multiplication table up to six
+times seven is thirty-five, and I don't reckon I could ever get any
+further than that if I was to live forever.  I don't take no stock in
+mathematics, anyway.
+
+At first I hated the school, but by and by I got so I could stand it.
+Whenever I got uncommon tired I played hookey, and the hiding I got next
+day done me good and cheered me up.  So the longer I went to school the
+easier it got to be.  I was getting sort of used to the widow's ways,
+too, and they warn't so raspy on me.  Living in a house and sleeping in a
+bed pulled on me pretty tight mostly, but before the cold weather I used
+to slide out and sleep in the woods sometimes, and so that was a rest to
+me.  I liked the old ways best, but I was getting so I liked the new
+ones, too, a little bit. The widow said I was coming along slow but sure,
+and doing very satisfactory.  She said she warn't ashamed of me.
+
+One morning I happened to turn over the salt-cellar at breakfast.  I
+reached for some of it as quick as I could to throw over my left shoulder
+and keep off the bad luck, but Miss Watson was in ahead of me, and
+crossed me off. She says, "Take your hands away, Huckleberry; what a mess
+you are always making!"  The widow put in a good word for me, but that
+warn't going to keep off the bad luck, I knowed that well enough.  I
+started out, after breakfast, feeling worried and shaky, and wondering
+where it was going to fall on me, and what it was going to be.  There is
+ways to keep off some kinds of bad luck, but this wasn't one of them
+kind; so I never tried to do anything, but just poked along low-spirited
+and on the watch-out.
+
+I went down to the front garden and clumb over the stile where you go
+through the high board fence.  There was an inch of new snow on the
+ground, and I seen somebody's tracks.  They had come up from the quarry
+and stood around the stile a while, and then went on around the garden
+fence.  It was funny they hadn't come in, after standing around so.  I
+couldn't make it out.  It was very curious, somehow.  I was going to
+follow around, but I stooped down to look at the tracks first.  I didn't
+notice anything at first, but next I did.  There was a cross in the left
+boot-heel made with big nails, to keep off the devil.
+
+I was up in a second and shinning down the hill.  I looked over my
+shoulder every now and then, but I didn't see nobody.  I was at Judge
+Thatcher's as quick as I could get there.  He said:
+
+"Why, my boy, you are all out of breath.  Did you come for your
+interest?"
+
+"No, sir," I says; "is there some for me?"
+
+"Oh, yes, a half-yearly is in last night--over a hundred and fifty
+dollars.  Quite a fortune for you.  You had better let me invest it along
+with your six thousand, because if you take it you'll spend it."
+
+"No, sir," I says, "I don't want to spend it.  I don't want it at all
+--nor the six thousand, nuther.  I want you to take it; I want to give it
+to you--the six thousand and all."
+
+He looked surprised.  He couldn't seem to make it out.  He says:
+
+"Why, what can you mean, my boy?"
+
+I says, "Don't you ask me no questions about it, please.  You'll take it
+--won't you?"
+
+He says:
+
+"Well, I'm puzzled.  Is something the matter?"
+
+"Please take it," says I, "and don't ask me nothing--then I won't have to
+tell no lies."
+
+He studied a while, and then he says:
+
+"Oho-o!  I think I see.  You want to SELL all your property to me--not
+give it.  That's the correct idea."
+
+Then he wrote something on a paper and read it over, and says:
+
+"There; you see it says 'for a consideration.'  That means I have bought
+it of you and paid you for it.  Here's a dollar for you.  Now you sign
+it."
+
+So I signed it, and left.
+
+Miss Watson's nigger, Jim, had a hair-ball as big as your fist, which had
+been took out of the fourth stomach of an ox, and he used to do magic
+with it.  He said there was a spirit inside of it, and it knowed
+everything.  So I went to him that night and told him pap was here again,
+for I found his tracks in the snow.  What I wanted to know was, what he
+was going to do, and was he going to stay?  Jim got out his hair-ball and
+said something over it, and then he held it up and dropped it on the
+floor.  It fell pretty solid, and only rolled about an inch.  Jim tried
+it again, and then another time, and it acted just the same.  Jim got
+down on his knees, and put his ear against it and listened.  But it
+warn't no use; he said it wouldn't talk. He said sometimes it wouldn't
+talk without money.  I told him I had an old slick counterfeit quarter
+that warn't no good because the brass showed through the silver a little,
+and it wouldn't pass nohow, even if the brass didn't show, because it was
+so slick it felt greasy, and so that would tell on it every time.  (I
+reckoned I wouldn't say nothing about the dollar I got from the judge.) I
+said it was pretty bad money, but maybe the hair-ball would take it,
+because maybe it wouldn't know the difference.  Jim smelt it and bit it
+and rubbed it, and said he would manage so the hair-ball would think it
+was good.  He said he would split open a raw Irish potato and stick the
+quarter in between and keep it there all night, and next morning you
+couldn't see no brass, and it wouldn't feel greasy no more, and so
+anybody in town would take it in a minute, let alone a hair-ball.  Well,
+I knowed a potato would do that before, but I had forgot it.
+
+Jim put the quarter under the hair-ball, and got down and listened again.
+This time he said the hair-ball was all right.  He said it would tell my
+whole fortune if I wanted it to.  I says, go on.  So the hair-ball talked
+to Jim, and Jim told it to me.  He says:
+
+"Yo' ole father doan' know yit what he's a-gwyne to do.  Sometimes he
+spec he'll go 'way, en den agin he spec he'll stay.  De bes' way is to
+res' easy en let de ole man take his own way.  Dey's two angels hoverin'
+roun' 'bout him.  One uv 'em is white en shiny, en t'other one is black.
+De white one gits him to go right a little while, den de black one sail
+in en bust it all up.  A body can't tell yit which one gwyne to fetch him
+at de las'.  But you is all right.  You gwyne to have considable trouble
+in yo' life, en considable joy.  Sometimes you gwyne to git hurt, en
+sometimes you gwyne to git sick; but every time you's gwyne to git well
+agin.  Dey's two gals flyin' 'bout you in yo' life.  One uv 'em's light
+en t'other one is dark. One is rich en t'other is po'.  You's gwyne to
+marry de po' one fust en de rich one by en by.  You wants to keep 'way
+fum de water as much as you kin, en don't run no resk, 'kase it's down in
+de bills dat you's gwyne to git hung."
+
+When I lit my candle and went up to my room that night there sat pap--his
+own self!
+
+
+
+
+CHAPTER V.
+
+I HAD shut the door to.  Then I turned around and there he was.  I used
+to be scared of him all the time, he tanned me so much.  I reckoned I was
+scared now, too; but in a minute I see I was mistaken--that is, after the
+first jolt, as you may say, when my breath sort of hitched, he being so
+unexpected; but right away after I see I warn't scared of him worth
+bothring about.
+
+He was most fifty, and he looked it.  His hair was long and tangled and
+greasy, and hung down, and you could see his eyes shining through like he
+was behind vines.  It was all black, no gray; so was his long, mixed-up
+whiskers.  There warn't no color in his face, where his face showed; it
+was white; not like another man's white, but a white to make a body sick,
+a white to make a body's flesh crawl--a tree-toad white, a fish-belly
+white.  As for his clothes--just rags, that was all.  He had one ankle
+resting on t'other knee; the boot on that foot was busted, and two of his
+toes stuck through, and he worked them now and then.  His hat was laying
+on the floor--an old black slouch with the top caved in, like a lid.
+
+I stood a-looking at him; he set there a-looking at me, with his chair
+tilted back a little.  I set the candle down.  I noticed the window was
+up; so he had clumb in by the shed.  He kept a-looking me all over.  By
+and by he says:
+
+"Starchy clothes--very.  You think you're a good deal of a big-bug, DON'T
+you?"
+
+"Maybe I am, maybe I ain't," I says.
+
+"Don't you give me none o' your lip," says he.  "You've put on
+considerable many frills since I been away.  I'll take you down a peg
+before I get done with you.  You're educated, too, they say--can read and
+write.  You think you're better'n your father, now, don't you, because he
+can't?  I'LL take it out of you.  Who told you you might meddle with such
+hifalut'n foolishness, hey?--who told you you could?"
+
+"The widow.  She told me."
+
+"The widow, hey?--and who told the widow she could put in her shovel
+about a thing that ain't none of her business?"
+
+"Nobody never told her."
+
+"Well, I'll learn her how to meddle.  And looky here--you drop that
+school, you hear?  I'll learn people to bring up a boy to put on airs
+over his own father and let on to be better'n what HE is.  You lemme
+catch you fooling around that school again, you hear?  Your mother
+couldn't read, and she couldn't write, nuther, before she died.  None of
+the family couldn't before THEY died.  I can't; and here you're
+a-swelling yourself up like this.  I ain't the man to stand it--you hear?
+Say, lemme hear you read."
+
+I took up a book and begun something about General Washington and the
+wars. When I'd read about a half a minute, he fetched the book a whack
+with his hand and knocked it across the house.  He says:
+
+"It's so.  You can do it.  I had my doubts when you told me.  Now looky
+here; you stop that putting on frills.  I won't have it.  I'll lay for
+you, my smarty; and if I catch you about that school I'll tan you good.
+First you know you'll get religion, too.  I never see such a son."
+
+He took up a little blue and yaller picture of some cows and a boy, and
+says:
+
+"What's this?"
+
+"It's something they give me for learning my lessons good."
+
+He tore it up, and says:
+
+"I'll give you something better--I'll give you a cowhide."
+
+He set there a-mumbling and a-growling a minute, and then he says:
+
+"AIN'T you a sweet-scented dandy, though?  A bed; and bedclothes; and a
+look'n'-glass; and a piece of carpet on the floor--and your own father
+got to sleep with the hogs in the tanyard.  I never see such a son.  I
+bet I'll take some o' these frills out o' you before I'm done with you.
+Why, there ain't no end to your airs--they say you're rich.  Hey?--how's
+that?"
+
+"They lie--that's how."
+
+"Looky here--mind how you talk to me; I'm a-standing about all I can
+stand now--so don't gimme no sass.  I've been in town two days, and I
+hain't heard nothing but about you bein' rich.  I heard about it away
+down the river, too.  That's why I come.  You git me that money
+to-morrow--I want it."
+
+"I hain't got no money."
+
+"It's a lie.  Judge Thatcher's got it.  You git it.  I want it."
+
+"I hain't got no money, I tell you.  You ask Judge Thatcher; he'll tell
+you the same."
+
+"All right.  I'll ask him; and I'll make him pungle, too, or I'll know
+the reason why.  Say, how much you got in your pocket?  I want it."
+
+"I hain't got only a dollar, and I want that to--"
+
+"It don't make no difference what you want it for--you just shell it
+out."
+
+He took it and bit it to see if it was good, and then he said he was
+going down town to get some whisky; said he hadn't had a drink all day.
+When he had got out on the shed he put his head in again, and cussed me
+for putting on frills and trying to be better than him; and when I
+reckoned he was gone he come back and put his head in again, and told me
+to mind about that school, because he was going to lay for me and lick me
+if I didn't drop that.
+
+Next day he was drunk, and he went to Judge Thatcher's and bullyragged
+him, and tried to make him give up the money; but he couldn't, and then
+he swore he'd make the law force him.
+
+The judge and the widow went to law to get the court to take me away from
+him and let one of them be my guardian; but it was a new judge that had
+just come, and he didn't know the old man; so he said courts mustn't
+interfere and separate families if they could help it; said he'd druther
+not take a child away from its father.  So Judge Thatcher and the widow
+had to quit on the business.
+
+That pleased the old man till he couldn't rest.  He said he'd cowhide me
+till I was black and blue if I didn't raise some money for him.  I
+borrowed three dollars from Judge Thatcher, and pap took it and got
+drunk, and went a-blowing around and cussing and whooping and carrying
+on; and he kept it up all over town, with a tin pan, till most midnight;
+then they jailed him, and next day they had him before court, and jailed
+him again for a week.  But he said HE was satisfied; said he was boss of
+his son, and he'd make it warm for HIM.
+
+When he got out the new judge said he was a-going to make a man of him.
+So he took him to his own house, and dressed him up clean and nice, and
+had him to breakfast and dinner and supper with the family, and was just
+old pie to him, so to speak.  And after supper he talked to him about
+temperance and such things till the old man cried, and said he'd been a
+fool, and fooled away his life; but now he was a-going to turn over a new
+leaf and be a man nobody wouldn't be ashamed of, and he hoped the judge
+would help him and not look down on him.  The judge said he could hug him
+for them words; so he cried, and his wife she cried again; pap said he'd
+been a man that had always been misunderstood before, and the judge said
+he believed it.  The old man said that what a man wanted that was down
+was sympathy, and the judge said it was so; so they cried again.  And
+when it was bedtime the old man rose up and held out his hand, and says:
+
+"Look at it, gentlemen and ladies all; take a-hold of it; shake it.
+There's a hand that was the hand of a hog; but it ain't so no more; it's
+the hand of a man that's started in on a new life, and'll die before
+he'll go back.  You mark them words--don't forget I said them.  It's a
+clean hand now; shake it--don't be afeard."
+
+So they shook it, one after the other, all around, and cried.  The
+judge's wife she kissed it.  Then the old man he signed a pledge--made
+his mark. The judge said it was the holiest time on record, or something
+like that. Then they tucked the old man into a beautiful room, which was
+the spare room, and in the night some time he got powerful thirsty and
+clumb out on to the porch-roof and slid down a stanchion and traded his
+new coat for a jug of forty-rod, and clumb back again and had a good old
+time; and towards daylight he crawled out again, drunk as a fiddler, and
+rolled off the porch and broke his left arm in two places, and was most
+froze to death when somebody found him after sun-up.  And when they come
+to look at that spare room they had to take soundings before they could
+navigate it.
+
+The judge he felt kind of sore.  He said he reckoned a body could reform
+the old man with a shotgun, maybe, but he didn't know no other way.
+
+
+
+
+CHAPTER VI.
+
+WELL, pretty soon the old man was up and around again, and then he went
+for Judge Thatcher in the courts to make him give up that money, and he
+went for me, too, for not stopping school.  He catched me a couple of
+times and thrashed me, but I went to school just the same, and dodged him
+or outrun him most of the time.  I didn't want to go to school much
+before, but I reckoned I'd go now to spite pap.  That law trial was a
+slow business--appeared like they warn't ever going to get started on
+it; so every now and then I'd borrow two or three dollars off of the
+judge for him, to keep from getting a cowhiding.  Every time he got money
+he got drunk; and every time he got drunk he raised Cain around town; and
+every time he raised Cain he got jailed.  He was just suited--this kind
+of thing was right in his line.
+
+He got to hanging around the widow's too much and so she told him at last
+that if he didn't quit using around there she would make trouble for him.
+Well, WASN'T he mad?  He said he would show who was Huck Finn's boss.  So
+he watched out for me one day in the spring, and catched me, and took me
+up the river about three mile in a skiff, and crossed over to the
+Illinois shore where it was woody and there warn't no houses but an old
+log hut in a place where the timber was so thick you couldn't find it if
+you didn't know where it was.
+
+He kept me with him all the time, and I never got a chance to run off.
+We lived in that old cabin, and he always locked the door and put the key
+under his head nights.  He had a gun which he had stole, I reckon, and we
+fished and hunted, and that was what we lived on.  Every little while he
+locked me in and went down to the store, three miles, to the ferry, and
+traded fish and game for whisky, and fetched it home and got drunk and
+had a good time, and licked me.  The widow she found out where I was by
+and by, and she sent a man over to try to get hold of me; but pap drove
+him off with the gun, and it warn't long after that till I was used to
+being where I was, and liked it--all but the cowhide part.
+
+It was kind of lazy and jolly, laying off comfortable all day, smoking
+and fishing, and no books nor study.  Two months or more run along, and
+my clothes got to be all rags and dirt, and I didn't see how I'd ever got
+to like it so well at the widow's, where you had to wash, and eat on a
+plate, and comb up, and go to bed and get up regular, and be forever
+bothering over a book, and have old Miss Watson pecking at you all the
+time.  I didn't want to go back no more.  I had stopped cussing, because
+the widow didn't like it; but now I took to it again because pap hadn't
+no objections.  It was pretty good times up in the woods there, take it
+all around.
+
+But by and by pap got too handy with his hick'ry, and I couldn't stand
+it. I was all over welts.  He got to going away so much, too, and locking
+me in.  Once he locked me in and was gone three days.  It was dreadful
+lonesome.  I judged he had got drownded, and I wasn't ever going to get
+out any more.  I was scared.  I made up my mind I would fix up some way
+to leave there.  I had tried to get out of that cabin many a time, but I
+couldn't find no way.  There warn't a window to it big enough for a dog
+to get through.  I couldn't get up the chimbly; it was too narrow.  The
+door was thick, solid oak slabs.  Pap was pretty careful not to leave a
+knife or anything in the cabin when he was away; I reckon I had hunted
+the place over as much as a hundred times; well, I was most all the time
+at it, because it was about the only way to put in the time.  But this
+time I found something at last; I found an old rusty wood-saw without any
+handle; it was laid in between a rafter and the clapboards of the roof.
+I greased it up and went to work.  There was an old horse-blanket nailed
+against the logs at the far end of the cabin behind the table, to keep
+the wind from blowing through the chinks and putting the candle out.  I
+got under the table and raised the blanket, and went to work to saw a
+section of the big bottom log out--big enough to let me through.  Well,
+it was a good long job, but I was getting towards the end of it when I
+heard pap's gun in the woods.  I got rid of the signs of my work, and
+dropped the blanket and hid my saw, and pretty soon pap come in.
+
+Pap warn't in a good humor--so he was his natural self.  He said he was
+down town, and everything was going wrong.  His lawyer said he reckoned
+he would win his lawsuit and get the money if they ever got started on
+the trial; but then there was ways to put it off a long time, and Judge
+Thatcher knowed how to do it.  And he said people allowed there'd be
+another trial to get me away from him and give me to the widow for my
+guardian, and they guessed it would win this time.  This shook me up
+considerable, because I didn't want to go back to the widow's any more
+and be so cramped up and sivilized, as they called it.  Then the old man
+got to cussing, and cussed everything and everybody he could think of,
+and then cussed them all over again to make sure he hadn't skipped any,
+and after that he polished off with a kind of a general cuss all round,
+including a considerable parcel of people which he didn't know the names
+of, and so called them what's-his-name when he got to them, and went
+right along with his cussing.
+
+He said he would like to see the widow get me.  He said he would watch
+out, and if they tried to come any such game on him he knowed of a place
+six or seven mile off to stow me in, where they might hunt till they
+dropped and they couldn't find me.  That made me pretty uneasy again, but
+only for a minute; I reckoned I wouldn't stay on hand till he got that
+chance.
+
+The old man made me go to the skiff and fetch the things he had got.
+There was a fifty-pound sack of corn meal, and a side of bacon,
+ammunition, and a four-gallon jug of whisky, and an old book and two
+newspapers for wadding, besides some tow.  I toted up a load, and went
+back and set down on the bow of the skiff to rest.  I thought it all
+over, and I reckoned I would walk off with the gun and some lines, and
+take to the woods when I run away.  I guessed I wouldn't stay in one
+place, but just tramp right across the country, mostly night times, and
+hunt and fish to keep alive, and so get so far away that the old man nor
+the widow couldn't ever find me any more.  I judged I would saw out and
+leave that night if pap got drunk enough, and I reckoned he would.  I got
+so full of it I didn't notice how long I was staying till the old man
+hollered and asked me whether I was asleep or drownded.
+
+I got the things all up to the cabin, and then it was about dark.  While
+I was cooking supper the old man took a swig or two and got sort of
+warmed up, and went to ripping again.  He had been drunk over in town,
+and laid in the gutter all night, and he was a sight to look at.  A body
+would a thought he was Adam--he was just all mud.  Whenever his liquor
+begun to work he most always went for the govment, this time he says:
+
+"Call this a govment! why, just look at it and see what it's like.
+Here's the law a-standing ready to take a man's son away from him--a
+man's own son, which he has had all the trouble and all the anxiety and
+all the expense of raising.  Yes, just as that man has got that son
+raised at last, and ready to go to work and begin to do suthin' for HIM
+and give him a rest, the law up and goes for him.  And they call THAT
+govment!  That ain't all, nuther.  The law backs that old Judge Thatcher
+up and helps him to keep me out o' my property.  Here's what the law
+does:  The law takes a man worth six thousand dollars and up'ards, and
+jams him into an old trap of a cabin like this, and lets him go round in
+clothes that ain't fitten for a hog. They call that govment!  A man can't
+get his rights in a govment like this. Sometimes I've a mighty notion to
+just leave the country for good and all. Yes, and I TOLD 'em so; I told
+old Thatcher so to his face.  Lots of 'em heard me, and can tell what I
+said.  Says I, for two cents I'd leave the blamed country and never come
+a-near it agin.  Them's the very words.  I says look at my hat--if you
+call it a hat--but the lid raises up and the rest of it goes down till
+it's below my chin, and then it ain't rightly a hat at all, but more like
+my head was shoved up through a jint o' stove-pipe.  Look at it, says I
+--such a hat for me to wear--one of the wealthiest men in this town if I
+could git my rights.
+
+"Oh, yes, this is a wonderful govment, wonderful.  Why, looky here.
+There was a free nigger there from Ohio--a mulatter, most as white as a
+white man.  He had the whitest shirt on you ever see, too, and the
+shiniest hat; and there ain't a man in that town that's got as fine
+clothes as what he had; and he had a gold watch and chain, and a
+silver-headed cane--the awfulest old gray-headed nabob in the State.  And
+what do you think?  They said he was a p'fessor in a college, and could
+talk all kinds of languages, and knowed everything.  And that ain't the
+wust. They said he could VOTE when he was at home.  Well, that let me
+out. Thinks I, what is the country a-coming to?  It was 'lection day, and
+I was just about to go and vote myself if I warn't too drunk to get
+there; but when they told me there was a State in this country where
+they'd let that nigger vote, I drawed out.  I says I'll never vote agin.
+Them's the very words I said; they all heard me; and the country may rot
+for all me--I'll never vote agin as long as I live.  And to see the cool
+way of that nigger--why, he wouldn't a give me the road if I hadn't
+shoved him out o' the way.  I says to the people, why ain't this nigger
+put up at auction and sold?--that's what I want to know.  And what do you
+reckon they said? Why, they said he couldn't be sold till he'd been in
+the State six months, and he hadn't been there that long yet.  There,
+now--that's a specimen.  They call that a govment that can't sell a free
+nigger till he's been in the State six months.  Here's a govment that
+calls itself a govment, and lets on to be a govment, and thinks it is a
+govment, and yet's got to set stock-still for six whole months before it
+can take a hold of a prowling, thieving, infernal, white-shirted free
+nigger, and--"
+
+Pap was agoing on so he never noticed where his old limber legs was
+taking him to, so he went head over heels over the tub of salt pork and
+barked both shins, and the rest of his speech was all the hottest kind of
+language--mostly hove at the nigger and the govment, though he give the
+tub some, too, all along, here and there.  He hopped around the cabin
+considerable, first on one leg and then on the other, holding first one
+shin and then the other one, and at last he let out with his left foot
+all of a sudden and fetched the tub a rattling kick.  But it warn't good
+judgment, because that was the boot that had a couple of his toes leaking
+out of the front end of it; so now he raised a howl that fairly made a
+body's hair raise, and down he went in the dirt, and rolled there, and
+held his toes; and the cussing he done then laid over anything he had
+ever done previous.  He said so his own self afterwards.  He had heard
+old Sowberry Hagan in his best days, and he said it laid over him, too;
+but I reckon that was sort of piling it on, maybe.
+
+After supper pap took the jug, and said he had enough whisky there for
+two drunks and one delirium tremens.  That was always his word.  I judged
+he would be blind drunk in about an hour, and then I would steal the key,
+or saw myself out, one or t'other.  He drank and drank, and tumbled down
+on his blankets by and by; but luck didn't run my way.  He didn't go
+sound asleep, but was uneasy.  He groaned and moaned and thrashed around
+this way and that for a long time.  At last I got so sleepy I couldn't
+keep my eyes open all I could do, and so before I knowed what I was about
+I was sound asleep, and the candle burning.
+
+I don't know how long I was asleep, but all of a sudden there was an
+awful scream and I was up.  There was pap looking wild, and skipping
+around every which way and yelling about snakes.  He said they was
+crawling up his legs; and then he would give a jump and scream, and say
+one had bit him on the cheek--but I couldn't see no snakes.  He started
+and run round and round the cabin, hollering "Take him off! take him off!
+he's biting me on the neck!"  I never see a man look so wild in the eyes.
+Pretty soon he was all fagged out, and fell down panting; then he rolled
+over and over wonderful fast, kicking things every which way, and
+striking and grabbing at the air with his hands, and screaming and saying
+there was devils a-hold of him.  He wore out by and by, and laid still a
+while, moaning.  Then he laid stiller, and didn't make a sound.  I could
+hear the owls and the wolves away off in the woods, and it seemed
+terrible still.  He was laying over by the corner. By and by he raised up
+part way and listened, with his head to one side.  He says, very low:
+
+"Tramp--tramp--tramp; that's the dead; tramp--tramp--tramp; they're
+coming after me; but I won't go.  Oh, they're here! don't touch me
+--don't! hands off--they're cold; let go.  Oh, let a poor devil alone!"
+
+Then he went down on all fours and crawled off, begging them to let him
+alone, and he rolled himself up in his blanket and wallowed in under the
+old pine table, still a-begging; and then he went to crying.  I could
+hear him through the blanket.
+
+By and by he rolled out and jumped up on his feet looking wild, and he
+see me and went for me.  He chased me round and round the place with a
+clasp-knife, calling me the Angel of Death, and saying he would kill me,
+and then I couldn't come for him no more.  I begged, and told him I was
+only Huck; but he laughed SUCH a screechy laugh, and roared and cussed,
+and kept on chasing me up.  Once when I turned short and dodged under his
+arm he made a grab and got me by the jacket between my shoulders, and I
+thought I was gone; but I slid out of the jacket quick as lightning, and
+saved myself. Pretty soon he was all tired out, and dropped down with his
+back against the door, and said he would rest a minute and then kill me.
+He put his knife under him, and said he would sleep and get strong, and
+then he would see who was who.
+
+So he dozed off pretty soon.  By and by I got the old split-bottom chair
+and clumb up as easy as I could, not to make any noise, and got down the
+gun.  I slipped the ramrod down it to make sure it was loaded, then I
+laid it across the turnip barrel, pointing towards pap, and set down
+behind it to wait for him to stir.  And how slow and still the time did
+drag along.
+
+
+
+
+CHAPTER VII.
+
+"GIT up!  What you 'bout?"
+
+I opened my eyes and looked around, trying to make out where I was.  It
+was after sun-up, and I had been sound asleep.  Pap was standing over me
+looking sour and sick, too.  He says:
+
+"What you doin' with this gun?"
+
+I judged he didn't know nothing about what he had been doing, so I says:
+
+"Somebody tried to get in, so I was laying for him."
+
+"Why didn't you roust me out?"
+
+"Well, I tried to, but I couldn't; I couldn't budge you."
+
+"Well, all right.  Don't stand there palavering all day, but out with you
+and see if there's a fish on the lines for breakfast.  I'll be along in a
+minute."
+
+He unlocked the door, and I cleared out up the river-bank.  I noticed
+some pieces of limbs and such things floating down, and a sprinkling of
+bark; so I knowed the river had begun to rise.  I reckoned I would have
+great times now if I was over at the town.  The June rise used to be
+always luck for me; because as soon as that rise begins here comes
+cordwood floating down, and pieces of log rafts--sometimes a dozen logs
+together; so all you have to do is to catch them and sell them to the
+wood-yards and the sawmill.
+
+I went along up the bank with one eye out for pap and t'other one out for
+what the rise might fetch along.  Well, all at once here comes a canoe;
+just a beauty, too, about thirteen or fourteen foot long, riding high
+like a duck.  I shot head-first off of the bank like a frog, clothes and
+all on, and struck out for the canoe.  I just expected there'd be
+somebody laying down in it, because people often done that to fool folks,
+and when a chap had pulled a skiff out most to it they'd raise up and
+laugh at him.  But it warn't so this time.  It was a drift-canoe sure
+enough, and I clumb in and paddled her ashore.  Thinks I, the old man
+will be glad when he sees this--she's worth ten dollars.  But when I
+got to shore pap wasn't in sight yet, and as I was running her into a
+little creek like a gully, all hung over with vines and willows, I struck
+another idea:  I judged I'd hide her good, and then, 'stead of taking to
+the woods when I run off, I'd go down the river about fifty mile and camp
+in one place for good, and not have such a rough time tramping on foot.
+
+It was pretty close to the shanty, and I thought I heard the old man
+coming all the time; but I got her hid; and then I out and looked around
+a bunch of willows, and there was the old man down the path a piece just
+drawing a bead on a bird with his gun.  So he hadn't seen anything.
+
+When he got along I was hard at it taking up a "trot" line.  He abused me
+a little for being so slow; but I told him I fell in the river, and that
+was what made me so long.  I knowed he would see I was wet, and then he
+would be asking questions.  We got five catfish off the lines and went
+home.
+
+While we laid off after breakfast to sleep up, both of us being about
+wore out, I got to thinking that if I could fix up some way to keep pap
+and the widow from trying to follow me, it would be a certainer thing
+than trusting to luck to get far enough off before they missed me; you
+see, all kinds of things might happen.  Well, I didn't see no way for a
+while, but by and by pap raised up a minute to drink another barrel of
+water, and he says:
+
+"Another time a man comes a-prowling round here you roust me out, you
+hear? That man warn't here for no good.  I'd a shot him.  Next time you
+roust me out, you hear?"
+
+Then he dropped down and went to sleep again; but what he had been saying
+give me the very idea I wanted.  I says to myself, I can fix it now so
+nobody won't think of following me.
+
+About twelve o'clock we turned out and went along up the bank.  The river
+was coming up pretty fast, and lots of driftwood going by on the rise.
+By and by along comes part of a log raft--nine logs fast together.  We
+went out with the skiff and towed it ashore.  Then we had dinner.
+Anybody but pap would a waited and seen the day through, so as to catch
+more stuff; but that warn't pap's style.  Nine logs was enough for one
+time; he must shove right over to town and sell.  So he locked me in and
+took the skiff, and started off towing the raft about half-past three.  I
+judged he wouldn't come back that night.  I waited till I reckoned he had
+got a good start; then I out with my saw, and went to work on that log
+again.  Before he was t'other side of the river I was out of the hole;
+him and his raft was just a speck on the water away off yonder.
+
+I took the sack of corn meal and took it to where the canoe was hid, and
+shoved the vines and branches apart and put it in; then I done the same
+with the side of bacon; then the whisky-jug.  I took all the coffee and
+sugar there was, and all the ammunition; I took the wadding; I took the
+bucket and gourd; I took a dipper and a tin cup, and my old saw and two
+blankets, and the skillet and the coffee-pot.  I took fish-lines and
+matches and other things--everything that was worth a cent.  I cleaned
+out the place.  I wanted an axe, but there wasn't any, only the one out
+at the woodpile, and I knowed why I was going to leave that.  I fetched
+out the gun, and now I was done.
+
+I had wore the ground a good deal crawling out of the hole and dragging
+out so many things.  So I fixed that as good as I could from the outside
+by scattering dust on the place, which covered up the smoothness and the
+sawdust.  Then I fixed the piece of log back into its place, and put two
+rocks under it and one against it to hold it there, for it was bent up at
+that place and didn't quite touch ground.  If you stood four or five foot
+away and didn't know it was sawed, you wouldn't never notice it; and
+besides, this was the back of the cabin, and it warn't likely anybody
+would go fooling around there.
+
+It was all grass clear to the canoe, so I hadn't left a track.  I
+followed around to see.  I stood on the bank and looked out over the
+river.  All safe.  So I took the gun and went up a piece into the woods,
+and was hunting around for some birds when I see a wild pig; hogs soon
+went wild in them bottoms after they had got away from the prairie farms.
+I shot this fellow and took him into camp.
+
+I took the axe and smashed in the door.  I beat it and hacked it
+considerable a-doing it.  I fetched the pig in, and took him back nearly
+to the table and hacked into his throat with the axe, and laid him down
+on the ground to bleed; I say ground because it was ground--hard packed,
+and no boards.  Well, next I took an old sack and put a lot of big rocks
+in it--all I could drag--and I started it from the pig, and dragged it
+to the door and through the woods down to the river and dumped it in, and
+down it sunk, out of sight.  You could easy see that something had been
+dragged over the ground.  I did wish Tom Sawyer was there; I knowed he
+would take an interest in this kind of business, and throw in the fancy
+touches.  Nobody could spread himself like Tom Sawyer in such a thing as
+that.
+
+Well, last I pulled out some of my hair, and blooded the axe good, and
+stuck it on the back side, and slung the axe in the corner.  Then I took
+up the pig and held him to my breast with my jacket (so he couldn't drip)
+till I got a good piece below the house and then dumped him into the
+river.  Now I thought of something else.  So I went and got the bag of
+meal and my old saw out of the canoe, and fetched them to the house.  I
+took the bag to where it used to stand, and ripped a hole in the bottom
+of it with the saw, for there warn't no knives and forks on the place
+--pap done everything with his clasp-knife about the cooking.  Then I
+carried the sack about a hundred yards across the grass and through the
+willows east of the house, to a shallow lake that was five mile wide and
+full of rushes--and ducks too, you might say, in the season.  There was a
+slough or a creek leading out of it on the other side that went miles
+away, I don't know where, but it didn't go to the river.  The meal sifted
+out and made a little track all the way to the lake.  I dropped pap's
+whetstone there too, so as to look like it had been done by accident.
+Then I tied up the rip in the meal sack with a string, so it wouldn't
+leak no more, and took it and my saw to the canoe again.
+
+It was about dark now; so I dropped the canoe down the river under some
+willows that hung over the bank, and waited for the moon to rise.  I made
+fast to a willow; then I took a bite to eat, and by and by laid down in
+the canoe to smoke a pipe and lay out a plan.  I says to myself, they'll
+follow the track of that sackful of rocks to the shore and then drag the
+river for me.  And they'll follow that meal track to the lake and go
+browsing down the creek that leads out of it to find the robbers that
+killed me and took the things.  They won't ever hunt the river for
+anything but my dead carcass. They'll soon get tired of that, and won't
+bother no more about me.  All right; I can stop anywhere I want to.
+Jackson's Island is good enough for me; I know that island pretty well,
+and nobody ever comes there.  And then I can paddle over to town nights,
+and slink around and pick up things I want. Jackson's Island's the place.
+
+I was pretty tired, and the first thing I knowed I was asleep.  When I
+woke up I didn't know where I was for a minute.  I set up and looked
+around, a little scared.  Then I remembered.  The river looked miles and
+miles across.  The moon was so bright I could a counted the drift logs
+that went a-slipping along, black and still, hundreds of yards out from
+shore. Everything was dead quiet, and it looked late, and SMELT late.
+You know what I mean--I don't know the words to put it in.
+
+I took a good gap and a stretch, and was just going to unhitch and start
+when I heard a sound away over the water.  I listened.  Pretty soon I
+made it out.  It was that dull kind of a regular sound that comes from
+oars working in rowlocks when it's a still night.  I peeped out through
+the willow branches, and there it was--a skiff, away across the water.  I
+couldn't tell how many was in it.  It kept a-coming, and when it was
+abreast of me I see there warn't but one man in it.  Think's I, maybe
+it's pap, though I warn't expecting him.  He dropped below me with the
+current, and by and by he came a-swinging up shore in the easy water, and
+he went by so close I could a reached out the gun and touched him.  Well,
+it WAS pap, sure enough--and sober, too, by the way he laid his oars.
+
+I didn't lose no time.  The next minute I was a-spinning down stream soft
+but quick in the shade of the bank.  I made two mile and a half, and then
+struck out a quarter of a mile or more towards the middle of the river,
+because pretty soon I would be passing the ferry landing, and people
+might see me and hail me.  I got out amongst the driftwood, and then laid
+down in the bottom of the canoe and let her float.  I laid there, and had
+a good rest and a smoke out of my pipe, looking away into the sky; not a
+cloud in it.  The sky looks ever so deep when you lay down on your back
+in the moonshine; I never knowed it before.  And how far a body can hear
+on the water such nights!  I heard people talking at the ferry landing.
+I heard what they said, too--every word of it.  One man said it was
+getting towards the long days and the short nights now.  T'other one said
+THIS warn't one of the short ones, he reckoned--and then they laughed,
+and he said it over again, and they laughed again; then they waked up
+another fellow and told him, and laughed, but he didn't laugh; he ripped
+out something brisk, and said let him alone.  The first fellow said he
+'lowed to tell it to his old woman--she would think it was pretty good;
+but he said that warn't nothing to some things he had said in his time.
+I heard one man say it was nearly three o'clock, and he hoped daylight
+wouldn't wait more than about a week longer.  After that the talk got
+further and further away, and I couldn't make out the words any more; but
+I could hear the mumble, and now and then a laugh, too, but it seemed a
+long ways off.
+
+I was away below the ferry now.  I rose up, and there was Jackson's
+Island, about two mile and a half down stream, heavy timbered and
+standing up out of the middle of the river, big and dark and solid, like
+a steamboat without any lights.  There warn't any signs of the bar at the
+head--it was all under water now.
+
+It didn't take me long to get there.  I shot past the head at a ripping
+rate, the current was so swift, and then I got into the dead water and
+landed on the side towards the Illinois shore.  I run the canoe into a
+deep dent in the bank that I knowed about; I had to part the willow
+branches to get in; and when I made fast nobody could a seen the canoe
+from the outside.
+
+I went up and set down on a log at the head of the island, and looked out
+on the big river and the black driftwood and away over to the town, three
+mile away, where there was three or four lights twinkling.  A monstrous
+big lumber-raft was about a mile up stream, coming along down, with a
+lantern in the middle of it.  I watched it come creeping down, and when
+it was most abreast of where I stood I heard a man say, "Stern oars,
+there! heave her head to stabboard!"  I heard that just as plain as if
+the man was by my side.
+
+There was a little gray in the sky now; so I stepped into the woods, and
+laid down for a nap before breakfast.
+
+
+
+
+CHAPTER VIII.
+
+THE sun was up so high when I waked that I judged it was after eight
+o'clock.  I laid there in the grass and the cool shade thinking about
+things, and feeling rested and ruther comfortable and satisfied.  I could
+see the sun out at one or two holes, but mostly it was big trees all
+about, and gloomy in there amongst them.  There was freckled places on
+the ground where the light sifted down through the leaves, and the
+freckled places swapped about a little, showing there was a little breeze
+up there.  A couple of squirrels set on a limb and jabbered at me very
+friendly.
+
+I was powerful lazy and comfortable--didn't want to get up and cook
+breakfast.  Well, I was dozing off again when I thinks I hears a deep
+sound of "boom!" away up the river.  I rouses up, and rests on my elbow
+and listens; pretty soon I hears it again.  I hopped up, and went and
+looked out at a hole in the leaves, and I see a bunch of smoke laying on
+the water a long ways up--about abreast the ferry.  And there was the
+ferryboat full of people floating along down.  I knowed what was the
+matter now.  "Boom!" I see the white smoke squirt out of the ferryboat's
+side.  You see, they was firing cannon over the water, trying to make my
+carcass come to the top.
+
+I was pretty hungry, but it warn't going to do for me to start a fire,
+because they might see the smoke.  So I set there and watched the
+cannon-smoke and listened to the boom.  The river was a mile wide there,
+and it always looks pretty on a summer morning--so I was having a good
+enough time seeing them hunt for my remainders if I only had a bite to
+eat. Well, then I happened to think how they always put quicksilver in
+loaves of bread and float them off, because they always go right to the
+drownded carcass and stop there.  So, says I, I'll keep a lookout, and if
+any of them's floating around after me I'll give them a show.  I changed
+to the Illinois edge of the island to see what luck I could have, and I
+warn't disappointed.  A big double loaf come along, and I most got it
+with a long stick, but my foot slipped and she floated out further.  Of
+course I was where the current set in the closest to the shore--I knowed
+enough for that.  But by and by along comes another one, and this time I
+won.  I took out the plug and shook out the little dab of quicksilver,
+and set my teeth in.  It was "baker's bread"--what the quality eat; none
+of your low-down corn-pone.
+
+I got a good place amongst the leaves, and set there on a log, munching
+the bread and watching the ferry-boat, and very well satisfied.  And then
+something struck me.  I says, now I reckon the widow or the parson or
+somebody prayed that this bread would find me, and here it has gone and
+done it.  So there ain't no doubt but there is something in that thing
+--that is, there's something in it when a body like the widow or the parson
+prays, but it don't work for me, and I reckon it don't work for only just
+the right kind.
+
+I lit a pipe and had a good long smoke, and went on watching.  The
+ferryboat was floating with the current, and I allowed I'd have a chance
+to see who was aboard when she come along, because she would come in
+close, where the bread did.  When she'd got pretty well along down
+towards me, I put out my pipe and went to where I fished out the bread,
+and laid down behind a log on the bank in a little open place.  Where the
+log forked I could peep through.
+
+By and by she come along, and she drifted in so close that they could a
+run out a plank and walked ashore.  Most everybody was on the boat.  Pap,
+and Judge Thatcher, and Bessie Thatcher, and Jo Harper, and Tom Sawyer,
+and his old Aunt Polly, and Sid and Mary, and plenty more.  Everybody was
+talking about the murder, but the captain broke in and says:
+
+"Look sharp, now; the current sets in the closest here, and maybe he's
+washed ashore and got tangled amongst the brush at the water's edge.  I
+hope so, anyway."
+
+I didn't hope so.  They all crowded up and leaned over the rails, nearly
+in my face, and kept still, watching with all their might.  I could see
+them first-rate, but they couldn't see me.  Then the captain sung out:
+
+"Stand away!" and the cannon let off such a blast right before me that it
+made me deef with the noise and pretty near blind with the smoke, and I
+judged I was gone.  If they'd a had some bullets in, I reckon they'd a
+got the corpse they was after.  Well, I see I warn't hurt, thanks to
+goodness. The boat floated on and went out of sight around the shoulder
+of the island.  I could hear the booming now and then, further and
+further off, and by and by, after an hour, I didn't hear it no more.  The
+island was three mile long.  I judged they had got to the foot, and was
+giving it up.  But they didn't yet a while.  They turned around the foot
+of the island and started up the channel on the Missouri side, under
+steam, and booming once in a while as they went.  I crossed over to that
+side and watched them. When they got abreast the head of the island they
+quit shooting and dropped over to the Missouri shore and went home to the
+town.
+
+I knowed I was all right now.  Nobody else would come a-hunting after me.
+I got my traps out of the canoe and made me a nice camp in the thick
+woods.  I made a kind of a tent out of my blankets to put my things under
+so the rain couldn't get at them.  I catched a catfish and haggled him
+open with my saw, and towards sundown I started my camp fire and had
+supper.  Then I set out a line to catch some fish for breakfast.
+
+When it was dark I set by my camp fire smoking, and feeling pretty well
+satisfied; but by and by it got sort of lonesome, and so I went and set
+on the bank and listened to the current swashing along, and counted the
+stars and drift logs and rafts that come down, and then went to bed;
+there ain't no better way to put in time when you are lonesome; you can't
+stay so, you soon get over it.
+
+And so for three days and nights.  No difference--just the same thing.
+But the next day I went exploring around down through the island.  I was
+boss of it; it all belonged to me, so to say, and I wanted to know all
+about it; but mainly I wanted to put in the time.  I found plenty
+strawberries, ripe and prime; and green summer grapes, and green
+razberries; and the green blackberries was just beginning to show.  They
+would all come handy by and by, I judged.
+
+Well, I went fooling along in the deep woods till I judged I warn't far
+from the foot of the island.  I had my gun along, but I hadn't shot
+nothing; it was for protection; thought I would kill some game nigh home.
+About this time I mighty near stepped on a good-sized snake, and it went
+sliding off through the grass and flowers, and I after it, trying to get
+a shot at it. I clipped along, and all of a sudden I bounded right on to
+the ashes of a camp fire that was still smoking.
+
+My heart jumped up amongst my lungs.  I never waited for to look further,
+but uncocked my gun and went sneaking back on my tiptoes as fast as ever
+I could.  Every now and then I stopped a second amongst the thick leaves
+and listened, but my breath come so hard I couldn't hear nothing else.  I
+slunk along another piece further, then listened again; and so on, and so
+on.  If I see a stump, I took it for a man; if I trod on a stick and
+broke it, it made me feel like a person had cut one of my breaths in two
+and I only got half, and the short half, too.
+
+When I got to camp I warn't feeling very brash, there warn't much sand in
+my craw; but I says, this ain't no time to be fooling around.  So I got
+all my traps into my canoe again so as to have them out of sight, and I
+put out the fire and scattered the ashes around to look like an old last
+year's camp, and then clumb a tree.
+
+I reckon I was up in the tree two hours; but I didn't see nothing, I
+didn't hear nothing--I only THOUGHT I heard and seen as much as a
+thousand things.  Well, I couldn't stay up there forever; so at last I
+got down, but I kept in the thick woods and on the lookout all the time.
+All I could get to eat was berries and what was left over from breakfast.
+
+By the time it was night I was pretty hungry.  So when it was good and
+dark I slid out from shore before moonrise and paddled over to the
+Illinois bank--about a quarter of a mile.  I went out in the woods and
+cooked a supper, and I had about made up my mind I would stay there all
+night when I hear a PLUNKETY-PLUNK, PLUNKETY-PLUNK, and says to myself,
+horses coming; and next I hear people's voices.  I got everything into
+the canoe as quick as I could, and then went creeping through the woods
+to see what I could find out.  I hadn't got far when I hear a man say:
+
+"We better camp here if we can find a good place; the horses is about
+beat out.  Let's look around."
+
+I didn't wait, but shoved out and paddled away easy.  I tied up in the
+old place, and reckoned I would sleep in the canoe.
+
+I didn't sleep much.  I couldn't, somehow, for thinking.  And every time
+I waked up I thought somebody had me by the neck.  So the sleep didn't do
+me no good.  By and by I says to myself, I can't live this way; I'm
+a-going to find out who it is that's here on the island with me; I'll
+find it out or bust.  Well, I felt better right off.
+
+So I took my paddle and slid out from shore just a step or two, and then
+let the canoe drop along down amongst the shadows.  The moon was shining,
+and outside of the shadows it made it most as light as day.  I poked
+along well on to an hour, everything still as rocks and sound asleep.
+Well, by this time I was most down to the foot of the island.  A little
+ripply, cool breeze begun to blow, and that was as good as saying the
+night was about done.  I give her a turn with the paddle and brung her
+nose to shore; then I got my gun and slipped out and into the edge of the
+woods.  I sat down there on a log, and looked out through the leaves.  I
+see the moon go off watch, and the darkness begin to blanket the river.
+But in a little while I see a pale streak over the treetops, and knowed
+the day was coming.  So I took my gun and slipped off towards where I had
+run across that camp fire, stopping every minute or two to listen.  But I
+hadn't no luck somehow; I couldn't seem to find the place.  But by and
+by, sure enough, I catched a glimpse of fire away through the trees.  I
+went for it, cautious and slow.  By and by I was close enough to have a
+look, and there laid a man on the ground.  It most give me the fan-tods.
+He had a blanket around his head, and his head was nearly in the fire.  I
+set there behind a clump of bushes, in about six foot of him, and kept my
+eyes on him steady.  It was getting gray daylight now.  Pretty soon he
+gapped and stretched himself and hove off the blanket, and it was Miss
+Watson's Jim!  I bet I was glad to see him.  I says:
+
+"Hello, Jim!" and skipped out.
+
+He bounced up and stared at me wild.  Then he drops down on his knees,
+and puts his hands together and says:
+
+"Doan' hurt me--don't!  I hain't ever done no harm to a ghos'.  I alwuz
+liked dead people, en done all I could for 'em.  You go en git in de
+river agin, whah you b'longs, en doan' do nuffn to Ole Jim, 'at 'uz awluz
+yo' fren'."
+
+Well, I warn't long making him understand I warn't dead.  I was ever so
+glad to see Jim.  I warn't lonesome now.  I told him I warn't afraid of
+HIM telling the people where I was.  I talked along, but he only set
+there and looked at me; never said nothing.  Then I says:
+
+"It's good daylight.  Le's get breakfast.  Make up your camp fire good."
+
+"What's de use er makin' up de camp fire to cook strawbries en sich
+truck? But you got a gun, hain't you?  Den we kin git sumfn better den
+strawbries."
+
+"Strawberries and such truck," I says.  "Is that what you live on?"
+
+"I couldn' git nuffn else," he says.
+
+"Why, how long you been on the island, Jim?"
+
+"I come heah de night arter you's killed."
+
+"What, all that time?"
+
+"Yes--indeedy."
+
+"And ain't you had nothing but that kind of rubbage to eat?"
+
+"No, sah--nuffn else."
+
+"Well, you must be most starved, ain't you?"
+
+"I reck'n I could eat a hoss.  I think I could. How long you ben on de
+islan'?"
+
+"Since the night I got killed."
+
+"No!  W'y, what has you lived on?  But you got a gun.  Oh, yes, you got a
+gun.  Dat's good.  Now you kill sumfn en I'll make up de fire."
+
+So we went over to where the canoe was, and while he built a fire in a
+grassy open place amongst the trees, I fetched meal and bacon and coffee,
+and coffee-pot and frying-pan, and sugar and tin cups, and the nigger was
+set back considerable, because he reckoned it was all done with
+witchcraft. I catched a good big catfish, too, and Jim cleaned him with
+his knife, and fried him.
+
+When breakfast was ready we lolled on the grass and eat it smoking hot.
+Jim laid it in with all his might, for he was most about starved.  Then
+when we had got pretty well stuffed, we laid off and lazied.  By and by
+Jim says:
+
+"But looky here, Huck, who wuz it dat 'uz killed in dat shanty ef it
+warn't you?"
+
+Then I told him the whole thing, and he said it was smart.  He said Tom
+Sawyer couldn't get up no better plan than what I had.  Then I says:
+
+"How do you come to be here, Jim, and how'd you get here?"
+
+He looked pretty uneasy, and didn't say nothing for a minute.  Then he
+says:
+
+"Maybe I better not tell."
+
+"Why, Jim?"
+
+"Well, dey's reasons.  But you wouldn' tell on me ef I uz to tell you,
+would you, Huck?"
+
+"Blamed if I would, Jim."
+
+"Well, I b'lieve you, Huck.  I--I RUN OFF."
+
+"Jim!"
+
+"But mind, you said you wouldn' tell--you know you said you wouldn' tell,
+Huck."
+
+"Well, I did.  I said I wouldn't, and I'll stick to it.  Honest INJUN, I
+will.  People would call me a low-down Abolitionist and despise me for
+keeping mum--but that don't make no difference.  I ain't a-going to tell,
+and I ain't a-going back there, anyways.  So, now, le's know all about
+it."
+
+"Well, you see, it 'uz dis way.  Ole missus--dat's Miss Watson--she pecks
+on me all de time, en treats me pooty rough, but she awluz said she
+wouldn' sell me down to Orleans.  But I noticed dey wuz a nigger trader
+roun' de place considable lately, en I begin to git oneasy.  Well, one
+night I creeps to de do' pooty late, en de do' warn't quite shet, en I
+hear old missus tell de widder she gwyne to sell me down to Orleans, but
+she didn' want to, but she could git eight hund'd dollars for me, en it
+'uz sich a big stack o' money she couldn' resis'.  De widder she try to
+git her to say she wouldn' do it, but I never waited to hear de res'.  I
+lit out mighty qui

<TRUNCATED>

[16/50] [abbrv] incubator-ignite git commit: Merge branch 'ignite-113' into sprint-1

Posted by se...@apache.org.
Merge branch 'ignite-113' into sprint-1


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

Branch: refs/heads/ignite-132
Commit: 5203363e7b1cd297032da02611f81f24cbe60e6c
Parents: 57f55f6 9e74899
Author: Artem SHutak <as...@gridgain.com>
Authored: Fri Jan 30 18:15:14 2015 +0300
Committer: Artem SHutak <as...@gridgain.com>
Committed: Fri Jan 30 18:15:14 2015 +0300

----------------------------------------------------------------------
 examples/config/servlet/WEB-INF/web.xml         |    2 +-
 .../main/java/org/apache/ignite/Ignition.java   |    6 +-
 .../apache/ignite/cache/query/CacheQuery.java   |    3 +-
 .../cache/query/CacheQuerySqlFunction.java      |    4 +-
 .../cache/query/annotations/QuerySqlField.java  |    2 +-
 .../query/annotations/QuerySqlFunction.java     |    2 +-
 .../apache/ignite/cache/store/CacheStore.java   |    2 +-
 .../ignite/compute/gridify/GridifySetToSet.java |    2 +-
 .../compute/gridify/GridifySetToValue.java      |    2 +-
 .../configuration/GridQueryConfiguration.java   |  201 ---
 .../configuration/IgniteConfiguration.java      |    8 +-
 .../configuration/IgniteQueryConfiguration.java |  201 +++
 .../ignite/spi/checkpoint/CheckpointSpi.java    |    2 +-
 .../ignite/spi/deployment/DeploymentSpi.java    |    2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |    2 +-
 .../apache/ignite/transactions/IgniteTx.java    |    2 +-
 modules/core/src/test/webapp/WEB-INF/web.xml    |    2 +-
 .../hibernate/CacheHibernateBlobStore.java      |  593 ++++++++
 .../CacheHibernateBlobStoreEntry.hbm.xml        |   29 +
 .../hibernate/CacheHibernateBlobStoreEntry.java |   86 ++
 .../hibernate/GridCacheHibernateBlobStore.java  |  593 --------
 .../GridCacheHibernateBlobStoreEntry.hbm.xml    |   29 -
 .../GridCacheHibernateBlobStoreEntry.java       |   86 --
 ...idHibernateL2CacheTransactionalSelfTest.java |    2 +-
 .../CacheHibernateBlobStoreSelfTest.java        |  108 ++
 .../GridCacheHibernateBlobStoreSelfTest.java    |  108 --
 .../cache/store/hibernate/hibernate.cfg.xml     |    2 +-
 .../testsuites/IgniteHibernateTestSuite.java    |    2 +-
 .../processors/query/h2/IgniteH2Indexing.java   |    6 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |    2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |    2 +-
 .../query/h2/sql/GridQueryParsingTest.java      |    2 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |   50 +
 .../ignite/cache/jta/GridCacheTmLookup.java     |   50 -
 .../cache/jta/jndi/CacheJndiTmLookup.java       |   74 +
 .../cache/jta/jndi/GridCacheJndiTmLookup.java   |   74 -
 .../jta/reflect/CacheReflectionTmLookup.java    |  115 ++
 .../reflect/GridCacheReflectionTmLookup.java    |  115 --
 .../processors/cache/jta/CacheJtaManager.java   |    4 +-
 ...CacheJtaConfigurationValidationSelfTest.java |    2 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |    2 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |    4 +-
 .../ignite/cache/spring/SpringCacheManager.java |    2 +-
 .../ignite/tools/javadoc/GridLinkTaglet.java    |  165 ---
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |  165 +++
 .../uri/GridUriDeploymentFileProcessor.java     |    2 +-
 .../deployment/uri/GridUriDeploymentSpi.java    | 1367 ------------------
 .../uri/GridUriDeploymentSpiMBean.java          |   53 -
 .../spi/deployment/uri/UriDeploymentSpi.java    | 1367 ++++++++++++++++++
 .../deployment/uri/UriDeploymentSpiMBean.java   |   53 +
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |    2 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |    2 +-
 .../uri/GridUriDeploymentAbstractSelfTest.java  |    2 +-
 .../GridUriDeploymentClassLoaderSelfTest.java   |    2 +-
 ...riDeploymentClassloaderRegisterSelfTest.java |    4 +-
 .../uri/GridUriDeploymentConfigSelfTest.java    |   10 +-
 .../GridUriDeploymentFileProcessorSelfTest.java |    2 +-
 .../uri/GridUriDeploymentMd5CheckSelfTest.java  |    2 +-
 ...loymentMultiScannersErrorThrottlingTest.java |    2 +-
 .../GridUriDeploymentMultiScannersSelfTest.java |    2 +-
 .../uri/GridUriDeploymentSimpleSelfTest.java    |   10 +-
 .../file/GridFileDeploymentSelfTest.java        |    2 +-
 .../GridFileDeploymentUndeploySelfTest.java     |    8 +-
 .../uri/scanners/ftp/GridFtpDeploymentTest.java |    2 +-
 .../http/GridHttpDeploymentSelfTest.java        |    2 +-
 .../IgniteUriDeploymentTestSuite.java           |    3 +-
 .../cache/websession/GridWebSessionFilter.java  |    4 +-
 .../GridServletContextListenerStartup.java      |  181 ---
 .../startup/servlet/GridServletStartup.java     |  187 ---
 .../IgniteServletContextListenerStartup.java    |  181 +++
 .../startup/servlet/IgniteServletStartup.java   |  187 +++
 pom.xml                                         |    6 +-
 72 files changed, 3279 insertions(+), 3283 deletions(-)
----------------------------------------------------------------------



[07/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-86

Posted by se...@apache.org.
Merge remote-tracking branch 'remotes/origin/sprint-1' into ignite-86


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

Branch: refs/heads/ignite-132
Commit: 258ee1c0fe0deb89c598695f5b674ead98d9620a
Parents: 7e1ed4e 4da5e29
Author: ivasilinets <iv...@gridgain.com>
Authored: Fri Jan 30 14:30:06 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Fri Jan 30 14:30:06 2015 +0300

----------------------------------------------------------------------
 NOTICE.txt                                      |   14 +-
 assembly/libs/readme.txt                        |  111 +-
 assembly/release-base-fabric.xml                |    2 +-
 assembly/release-hadoop.xml                     |    6 +-
 docs/core-site.gridgain.xml                     |   89 -
 docs/core-site.ignite.xml                       |   89 +
 docs/gridgain_readme.md                         |  149 -
 docs/gridgain_readme.pdf                        |  Bin 407698 -> 0 bytes
 docs/hadoop_readme.md                           |   80 +-
 docs/hadoop_readme.pdf                          |  Bin 411788 -> 82297 bytes
 docs/hive-site.gridgain.xml                     |   36 -
 docs/hive-site.ignite.xml                       |   36 +
 docs/ignite_readme.md                           |  100 +
 docs/ignite_readme.pdf                          |  Bin 0 -> 76810 bytes
 docs/mapred-site.gridgain.xml                   |   79 -
 docs/mapred-site.ignite.xml                     |   79 +
 examples/config/filesystem/readme.txt           |    4 +-
 .../hibernate/example-hibernate-L2-cache.xml    |   14 +-
 examples/config/hibernate/readme.txt            |    4 +-
 examples/config/servlet/readme.txt              |    2 +-
 .../ComputeFibonacciContinuationExample.java    |   13 +-
 .../compute/ComputeRunnableExample.java         |    7 +-
 .../datagrid/CacheDataLoaderExample.java        |   15 +-
 .../HibernateL2CacheExampleNodeStartup.java     |    6 +-
 .../examples/ScalarContinuationExample.scala    |   11 +-
 ipc/readme.txt                                  |    4 +-
 ipc/shmem/Makefile.am                           |    2 +-
 ipc/shmem/Makefile.in                           |    2 +-
 ipc/shmem/configure                             |    4 +-
 ipc/shmem/configure.ac                          |    2 +-
 ipc/shmem/ggshmem/Makefile.am                   |   23 -
 ipc/shmem/ggshmem/Makefile.in                   |  589 --
 ..._util_ipc_shmem_GridIpcSharedMemoryUtils.cpp |  882 --
 ipc/shmem/igniteshmem/Makefile.am               |   23 +
 ipc/shmem/igniteshmem/Makefile.in               |  589 ++
 ...rnal_util_ipc_shmem_IpcSharedMemoryUtils.cpp |  882 ++
 ipc/shmem/include/Makefile.am                   |    2 +-
 ipc/shmem/include/Makefile.in                   |    2 +-
 ...ternal_util_ipc_shmem_IpcSharedMemoryUtils.h |  117 +
 ...id_util_ipc_shmem_GridIpcSharedMemoryUtils.h |  117 -
 ipc/shmem/readme.txt                            |   17 +-
 modules/aop/readme.txt                          |   12 +-
 .../apache/ignite/gridify/AbstractAopTest.java  |    2 +-
 .../apache/ignite/gridify/TestGridifyTask.java  |    2 +-
 .../singlesplit/SingleSplitsLoadTest.java       |    2 +-
 modules/aws/readme.txt                          |   12 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |    4 +-
 .../spi/checkpoint/s3/S3CheckpointSpiMBean.java |   12 +-
 .../ClientAbstractMultiThreadedSelfTest.java    |    8 +-
 .../ignite/client/ClientStartNodeTask.java      |    2 +-
 .../ClientPropertiesConfigurationSelfTest.java  |    4 +-
 .../ClientAbstractMultiNodeSelfTest.java        |    5 +-
 .../integration/ClientAbstractSelfTest.java     |   28 +-
 .../rest/AbstractRestProcessorSelfTest.java     |    2 +
 .../rest/ClientMemcachedProtocolSelfTest.java   |    4 +-
 .../rest/RestBinaryProtocolSelfTest.java        |   11 +-
 .../rest/RestMemcacheProtocolSelfTest.java      |    9 +-
 .../rest/RestProcessorStartSelfTest.java        |    3 +-
 .../rest/TaskCommandHandlerSelfTest.java        |    2 +-
 .../java/META-INF/native/linux64/libggshmem.so  |  Bin 138023 -> 0 bytes
 .../META-INF/native/linux64/libigniteshmem.so   |  Bin 0 -> 138345 bytes
 .../java/META-INF/native/osx/libggshmem.dylib   |  Bin 32940 -> 0 bytes
 .../META-INF/native/osx/libigniteshmem.dylib    |  Bin 0 -> 33116 bytes
 .../src/main/java/org/apache/ignite/Ignite.java |   10 +
 .../java/org/apache/ignite/IgniteCache.java     |   55 +-
 .../apache/ignite/IgniteCheckedException.java   |    2 +-
 .../java/org/apache/ignite/IgniteCluster.java   |    2 +-
 .../java/org/apache/ignite/IgniteCompute.java   |    2 +-
 .../org/apache/ignite/IgniteDataLoader.java     |   14 +-
 .../java/org/apache/ignite/IgniteEvents.java    |    2 +-
 .../java/org/apache/ignite/IgniteException.java |    2 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |    2 +-
 .../java/org/apache/ignite/IgniteManaged.java   |    2 +-
 .../java/org/apache/ignite/IgniteMessaging.java |    2 +-
 .../java/org/apache/ignite/IgniteScheduler.java |    6 +-
 .../apache/ignite/IgniteSystemProperties.java   |    6 +-
 .../main/java/org/apache/ignite/Ignition.java   |   38 +-
 .../org/apache/ignite/cache/CacheEntry.java     |   27 +-
 .../java/org/apache/ignite/cache/CacheLock.java |   57 -
 .../org/apache/ignite/cache/CacheMBean.java     |  295 -
 .../org/apache/ignite/cache/CacheManager.java   |  172 +-
 .../org/apache/ignite/cache/CacheMetrics.java   |  416 +-
 .../apache/ignite/cache/CacheProjection.java    |   43 +-
 .../apache/ignite/cache/CachingProvider.java    |    2 +-
 .../java/org/apache/ignite/cache/GridCache.java |   20 +-
 .../ignite/cache/GridCacheVersionedEntry.java   |   82 +
 .../ignite/cache/affinity/CacheAffinity.java    |    9 +-
 .../fifo/CacheFifoEvictionPolicyMBean.java      |   10 +-
 ...CacheGgfsPerBlockLruEvictionPolicyMBean.java |   18 +-
 .../lru/CacheLruEvictionPolicyMBean.java        |   10 +-
 .../random/CacheRandomEvictionPolicyMBean.java  |    6 +-
 .../apache/ignite/cache/query/CacheQueries.java |    7 +-
 .../ignite/cache/query/CacheQueryFuture.java    |    4 +-
 .../client/router/GridTcpRouterMBean.java       |   16 +-
 .../apache/ignite/cluster/ClusterMetrics.java   |  697 +-
 .../org/apache/ignite/cluster/ClusterNode.java  |   40 +-
 .../ignite/cluster/ClusterNodeMetrics.java      |  695 --
 .../ignite/compute/ComputeTaskFuture.java       |    4 +-
 .../ignite/compute/ComputeTaskSession.java      |    3 +-
 .../ignite/fs/mapreduce/IgniteFsTask.java       |    2 +-
 .../org/apache/ignite/hadoop/GridHadoop.java    |    6 +-
 .../ignite/internal/ClusterGroupAdapter.java    |    4 +-
 .../internal/ClusterLocalNodeMetrics.java       |  311 -
 .../ClusterLocalNodeMetricsMXBeanImpl.java      |  309 +
 .../ignite/internal/ClusterMetricsImpl.java     |  813 --
 .../ignite/internal/ClusterMetricsSnapshot.java | 1397 +++
 .../internal/ClusterNodeLocalMapImpl.java       |    2 +-
 .../internal/ClusterNodeMetricsMBean.java       |   29 -
 .../java/org/apache/ignite/internal/GridEx.java |  143 -
 .../org/apache/ignite/internal/GridGainEx.java  | 2399 -----
 .../ignite/internal/GridJobSessionImpl.java     |    2 +-
 .../org/apache/ignite/internal/GridKernal.java  | 3308 -------
 .../ignite/internal/GridKernalContext.java      |    2 +-
 .../ignite/internal/GridKernalContextImpl.java  |    8 +-
 .../apache/ignite/internal/GridLoggerProxy.java |    2 +-
 .../ignite/internal/GridTaskSessionImpl.java    |    2 +-
 .../ignite/internal/GridUpdateNotifier.java     |    2 +-
 .../ignite/internal/IgniteClusterAsyncImpl.java |   14 +-
 .../ignite/internal/IgniteComputeImpl.java      |   70 +-
 .../ignite/internal/IgniteEventsImpl.java       |    9 +-
 .../org/apache/ignite/internal/IgniteEx.java    |  143 +
 .../ignite/internal/IgniteInternalFuture.java   |  190 +
 .../apache/ignite/internal/IgniteKernal.java    | 3322 +++++++
 .../ignite/internal/IgniteManagedImpl.java      |    2 +-
 .../ignite/internal/IgniteMessagingImpl.java    |   12 +-
 .../ignite/internal/IgniteSchedulerImpl.java    |    6 +-
 .../internal/IgniteThreadPoolMBeanAdapter.java  |  149 -
 .../internal/IgniteThreadPoolMXBeanAdapter.java |  129 +
 .../org/apache/ignite/internal/IgnitionEx.java  | 2396 +++++
 .../ignite/internal/IgnitionMBeanAdapter.java   |   59 -
 .../ignite/internal/IgnitionMXBeanAdapter.java  |   59 +
 .../internal/executor/GridExecutorService.java  |   46 +-
 .../managers/communication/GridIoManager.java   |    3 +-
 .../discovery/GridDiscoveryManager.java         |    6 +-
 .../eventstorage/GridEventStorageManager.java   |    4 +-
 .../internal/mxbean/IgniteStandardMXBean.java   |  277 +
 .../apache/ignite/internal/mxbean/package.html  |   24 +
 .../affinity/GridAffinityAssignment.java        |   10 +-
 .../affinity/GridAffinityAssignmentCache.java   |    5 +-
 .../affinity/GridAffinityProcessor.java         |  338 +-
 .../processors/affinity/GridAffinityUtils.java  |    2 +-
 .../processors/cache/CacheLockImpl.java         |  134 +-
 .../processors/cache/CacheMetricsImpl.java      |  586 ++
 .../cache/CacheMetricsMXBeanImpl.java           |  310 +
 .../processors/cache/CacheMetricsSnapshot.java  |  518 +
 .../processors/cache/GridCacheAdapter.java      |  719 +-
 .../cache/GridCacheAffinityManager.java         |    8 +-
 .../cache/GridCacheAtomicVersionComparator.java |    2 +
 .../cache/GridCacheBatchSwapEntry.java          |    1 +
 .../cache/GridCacheClearAllRunnable.java        |    1 +
 .../processors/cache/GridCacheContext.java      |   60 +-
 .../cache/GridCacheDeploymentManager.java       |    2 +-
 .../processors/cache/GridCacheEntryEx.java      |    9 +
 .../processors/cache/GridCacheEntryImpl.java    |   27 +-
 .../processors/cache/GridCacheEntryInfo.java    |    1 +
 .../cache/GridCacheEvictionEntry.java           |   27 +-
 .../cache/GridCacheEvictionManager.java         |    8 +-
 .../cache/GridCacheEvictionRequest.java         |    1 +
 .../cache/GridCacheExplicitLockSpan.java        |    5 +-
 .../cache/GridCacheFilterEvaluationEntry.java   |   27 +-
 .../processors/cache/GridCacheFuture.java       |    4 +-
 .../processors/cache/GridCacheIoManager.java    |   15 +-
 .../cache/GridCacheLockTimeoutException.java    |    2 +
 .../processors/cache/GridCacheMBeanAdapter.java |  217 -
 .../processors/cache/GridCacheMapEntry.java     |  172 +-
 .../cache/GridCacheMetricsAdapter.java          |  260 -
 .../cache/GridCacheMultiTxFuture.java           |    6 +-
 .../processors/cache/GridCacheMvcc.java         |    1 +
 .../cache/GridCacheMvccCandidate.java           |    5 +-
 .../processors/cache/GridCacheMvccManager.java  |   30 +-
 .../cache/GridCacheOffheapSwapEntry.java        |    1 +
 .../GridCachePartitionExchangeManager.java      |    9 +-
 .../processors/cache/GridCachePreloader.java    |    7 +-
 .../cache/GridCachePreloaderAdapter.java        |    9 +-
 .../processors/cache/GridCacheProcessor.java    |   47 +-
 .../processors/cache/GridCacheProjectionEx.java |   28 +-
 .../cache/GridCacheProjectionImpl.java          |   70 +-
 .../processors/cache/GridCacheProxyImpl.java    |   99 +-
 .../cache/GridCacheSharedContext.java           |   14 +-
 .../processors/cache/GridCacheStoreManager.java |   44 +-
 .../processors/cache/GridCacheSwapEntry.java    |    1 +
 .../cache/GridCacheSwapEntryImpl.java           |    1 +
 .../processors/cache/GridCacheSwapManager.java  |    1 +
 .../processors/cache/GridCacheTtlManager.java   |    4 +
 .../cache/GridCacheUpdateAtomicResult.java      |    7 +-
 .../processors/cache/GridCacheUtils.java        |    8 +-
 .../processors/cache/GridCacheVersion.java      |  256 -
 .../processors/cache/GridCacheVersionEx.java    |  104 -
 .../cache/GridCacheVersionManager.java          |  281 -
 .../processors/cache/GridCacheVersionable.java  |   28 -
 .../processors/cache/GridDrResolveResult.java   |   63 -
 .../cache/IgniteCacheExpiryPolicy.java          |    1 +
 .../processors/cache/IgniteCacheProxy.java      |   98 +-
 .../GridCacheAtomicSequenceImpl.java            |    3 +-
 .../GridCacheDataStructuresManager.java         |    4 +-
 .../distributed/GridCacheCommittedTxInfo.java   |    2 +-
 .../distributed/GridCacheMappedVersion.java     |    2 +-
 ...ridCacheOptimisticCheckPreparedTxFuture.java |    8 +-
 ...idCacheOptimisticCheckPreparedTxRequest.java |    2 +-
 ...dCacheOptimisticCheckPreparedTxResponse.java |    2 +-
 .../GridCachePerThreadTxCommitBuffer.java       |    1 +
 ...dCachePessimisticCheckCommittedTxFuture.java |    8 +-
 ...CachePessimisticCheckCommittedTxRequest.java |    2 +-
 ...achePessimisticCheckCommittedTxResponse.java |    1 +
 .../distributed/GridCacheTtlUpdateRequest.java  |    1 +
 .../distributed/GridCacheTxCommitBuffer.java    |    2 +-
 .../distributed/GridCacheTxFinishSync.java      |    8 +-
 .../distributed/GridDistributedBaseMessage.java |    1 +
 .../GridDistributedCacheAdapter.java            |    8 +-
 .../distributed/GridDistributedCacheEntry.java  |    1 +
 .../distributed/GridDistributedLockRequest.java |    1 +
 .../GridDistributedLockResponse.java            |    1 +
 .../GridDistributedTxFinishRequest.java         |    1 +
 .../GridDistributedTxFinishResponse.java        |    1 +
 .../distributed/GridDistributedTxMapping.java   |    1 +
 .../GridDistributedTxPrepareRequest.java        |    1 +
 .../GridDistributedTxPrepareResponse.java       |    1 +
 .../GridDistributedTxRemoteAdapter.java         |   55 +-
 .../cache/distributed/dht/GridDhtCache.java     |   12 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   13 +-
 .../distributed/dht/GridDhtCacheEntry.java      |    8 +-
 .../distributed/dht/GridDhtEmbeddedFuture.java  |    8 +-
 .../cache/distributed/dht/GridDhtFuture.java    |    4 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |   12 +-
 .../distributed/dht/GridDhtLocalPartition.java  |    6 +-
 .../distributed/dht/GridDhtLockFuture.java      |   12 +-
 .../distributed/dht/GridDhtLockRequest.java     |    1 +
 .../distributed/dht/GridDhtLockResponse.java    |    1 +
 .../distributed/dht/GridDhtTopologyFuture.java  |    4 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |   30 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   12 +-
 .../distributed/dht/GridDhtTxFinishRequest.java |    1 +
 .../dht/GridDhtTxFinishResponse.java            |    2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   20 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   12 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |   12 +-
 .../dht/GridDhtTxPrepareRequest.java            |    1 +
 .../dht/GridDhtTxPrepareResponse.java           |    1 +
 .../cache/distributed/dht/GridDhtTxRemote.java  |    1 +
 .../dht/GridPartitionedGetFuture.java           |   35 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  159 +-
 .../GridDhtAtomicDeferredUpdateResponse.java    |    1 +
 .../dht/atomic/GridDhtAtomicUpdateFuture.java   |    1 +
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |    1 +
 .../dht/atomic/GridDhtAtomicUpdateResponse.java |    1 +
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |   35 +-
 .../dht/atomic/GridNearAtomicUpdateRequest.java |    1 +
 .../atomic/GridNearAtomicUpdateResponse.java    |    1 +
 .../dht/colocated/GridDhtColocatedCache.java    |   29 +-
 .../colocated/GridDhtColocatedLockFuture.java   |   24 +-
 .../colocated/GridDhtDetachedCacheEntry.java    |    1 +
 .../dht/preloader/GridDhtForceKeysFuture.java   |    7 +-
 .../preloader/GridDhtPartitionDemandPool.java   |   13 +-
 .../GridDhtPartitionsAbstractMessage.java       |    1 +
 .../GridDhtPartitionsExchangeFuture.java        |   21 +-
 .../preloader/GridDhtPartitionsFullMessage.java |    1 +
 .../GridDhtPartitionsSingleMessage.java         |    1 +
 .../dht/preloader/GridDhtPreloader.java         |   29 +-
 .../distributed/near/GridNearAtomicCache.java   |   46 +-
 .../distributed/near/GridNearCacheAdapter.java  |   23 +-
 .../near/GridNearCacheClearAllRunnable.java     |    1 +
 .../distributed/near/GridNearCacheEntry.java    |    4 +-
 .../distributed/near/GridNearGetFuture.java     |   45 +-
 .../distributed/near/GridNearGetRequest.java    |    1 +
 .../distributed/near/GridNearGetResponse.java   |    1 +
 .../distributed/near/GridNearLockFuture.java    |   30 +-
 .../distributed/near/GridNearLockRequest.java   |    1 +
 .../distributed/near/GridNearLockResponse.java  |    1 +
 .../near/GridNearTransactionalCache.java        |   10 +-
 .../near/GridNearTxFinishFuture.java            |   18 +-
 .../near/GridNearTxFinishRequest.java           |    2 +-
 .../near/GridNearTxFinishResponse.java          |    1 +
 .../cache/distributed/near/GridNearTxLocal.java |   59 +-
 .../near/GridNearTxPrepareFuture.java           |   18 +-
 .../near/GridNearTxPrepareResponse.java         |    1 +
 .../distributed/near/GridNearTxRemote.java      |    1 +
 .../cache/dr/GridCacheDrExpirationInfo.java     |    2 +-
 .../processors/cache/dr/GridCacheDrInfo.java    |    2 +-
 .../processors/cache/dr/GridCacheDrManager.java |   58 +-
 .../cache/dr/os/GridOsCacheDrManager.java       |   36 +-
 .../extras/GridCacheAttributesEntryExtras.java  |    1 +
 .../GridCacheAttributesMvccEntryExtras.java     |    1 +
 ...dCacheAttributesMvccObsoleteEntryExtras.java |    1 +
 ...cheAttributesMvccObsoleteTtlEntryExtras.java |    1 +
 .../GridCacheAttributesMvccTtlEntryExtras.java  |    1 +
 .../GridCacheAttributesObsoleteEntryExtras.java |    1 +
 ...idCacheAttributesObsoleteTtlEntryExtras.java |    1 +
 .../GridCacheAttributesTtlEntryExtras.java      |    1 +
 .../cache/extras/GridCacheEntryExtras.java      |    1 +
 .../extras/GridCacheEntryExtrasAdapter.java     |    1 +
 .../cache/extras/GridCacheMvccEntryExtras.java  |    1 +
 .../GridCacheMvccObsoleteEntryExtras.java       |    1 +
 .../GridCacheMvccObsoleteTtlEntryExtras.java    |    1 +
 .../extras/GridCacheMvccTtlEntryExtras.java     |    1 +
 .../extras/GridCacheObsoleteEntryExtras.java    |    1 +
 .../extras/GridCacheObsoleteTtlEntryExtras.java |    1 +
 .../cache/extras/GridCacheTtlEntryExtras.java   |    1 +
 .../processors/cache/local/GridLocalCache.java  |    8 +-
 .../cache/local/GridLocalCacheEntry.java        |    1 +
 .../cache/local/GridLocalLockFuture.java        |    1 +
 .../processors/cache/local/GridLocalTx.java     |   12 +-
 .../cache/local/GridLocalTxFuture.java          |    1 +
 .../local/atomic/GridLocalAtomicCache.java      |  162 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |    4 +-
 .../query/GridCacheDistributedQueryManager.java |    9 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |    3 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |    4 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |    3 +-
 .../cache/query/GridCacheQueriesEx.java         |    6 +-
 .../cache/query/GridCacheQueriesImpl.java       |   11 +-
 .../cache/query/GridCacheQueriesProxy.java      |   11 +-
 .../cache/query/GridCacheQueryManager.java      |   54 +-
 .../query/GridCacheQueryMetadataAware.java      |    4 +-
 .../GridCacheContinuousQueryEntry.java          |   27 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |    2 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |    2 +-
 .../transactions/IgniteTransactionsImpl.java    |    3 +-
 .../cache/transactions/IgniteTxAdapter.java     |   59 +-
 .../cache/transactions/IgniteTxEntry.java       |    1 +
 .../cache/transactions/IgniteTxEx.java          |   10 +-
 .../cache/transactions/IgniteTxHandler.java     |   49 +-
 .../transactions/IgniteTxLocalAdapter.java      |  201 +-
 .../cache/transactions/IgniteTxLocalEx.java     |   18 +-
 .../cache/transactions/IgniteTxManager.java     |   21 +-
 .../cache/transactions/IgniteTxProxyImpl.java   |   11 +-
 .../cache/transactions/IgniteTxRemoteEx.java    |    2 +-
 .../version/GridCachePlainVersionedEntry.java   |  131 +
 .../version/GridCacheRawVersionedEntry.java     |  238 +
 .../cache/version/GridCacheVersion.java         |  256 +
 ...ridCacheVersionAbstractConflictResolver.java |   56 +
 .../GridCacheVersionConflictContext.java        |   73 +
 .../GridCacheVersionConflictContextImpl.java    |  188 +
 .../GridCacheVersionConflictResolver.java       |   59 +
 .../cache/version/GridCacheVersionEx.java       |  104 +
 .../cache/version/GridCacheVersionManager.java  |  282 +
 .../cache/version/GridCacheVersionable.java     |   28 +
 .../version/GridCacheVersionedEntryEx.java      |   31 +
 .../closure/GridClosureProcessor.java           |   56 +-
 .../continuous/GridContinuousProcessor.java     |    4 +-
 .../dataload/GridDataLoaderProcessor.java       |    5 +-
 .../dataload/IgniteDataLoaderImpl.java          |   87 +-
 .../dr/GridDrDataLoadCacheUpdater.java          |    8 +-
 .../processors/dr/GridRawVersionedEntry.java    |  210 -
 .../processors/dr/GridVersionedEntry.java       |   80 -
 .../email/IgniteEmailProcessorAdapter.java      |    5 +-
 .../email/IgniteNoopEmailProcessor.java         |    5 +-
 .../processors/fs/GridGgfsAsyncImpl.java        |   10 +-
 .../processors/fs/GridGgfsDataManager.java      |   30 +-
 .../internal/processors/fs/GridGgfsEx.java      |    3 +-
 .../internal/processors/fs/GridGgfsImpl.java    |   20 +-
 .../processors/fs/GridGgfsInputStreamImpl.java  |   19 +-
 .../processors/fs/GridGgfsIpcHandler.java       |    4 +-
 .../processors/fs/GridGgfsMetaManager.java      |    9 +-
 .../internal/processors/fs/GridGgfsServer.java  |   34 +-
 .../processors/fs/GridGgfsServerHandler.java    |    4 +-
 .../processors/fs/GridGgfsServerManager.java    |    8 +-
 .../processors/fs/IgniteFsNoopProcessor.java    |    2 +-
 .../processors/fs/IgniteFsOutputStreamImpl.java |    3 +-
 .../processors/fs/IgniteFsProcessor.java        |    4 +-
 .../processors/fs/IgniteFsProcessorAdapter.java |    2 +-
 .../hadoop/IgniteHadoopNoopProcessor.java       |    5 +-
 .../hadoop/IgniteHadoopProcessorAdapter.java    |    5 +-
 .../processors/query/GridQueryIndexing.java     |    4 +-
 .../processors/query/GridQueryProcessor.java    |   12 +-
 .../resource/GridResourceProcessor.java         |    2 +-
 .../resource/GridSpringResourceContext.java     |    2 +-
 .../processors/rest/GridRestProcessor.java      |   18 +-
 .../rest/GridRestProtocolHandler.java           |    4 +-
 .../rest/handlers/GridRestCommandHandler.java   |    4 +-
 .../handlers/cache/GridCacheCommandHandler.java |   71 +-
 .../cache/GridCacheQueryCommandHandler.java     |   16 +-
 .../handlers/cache/GridCacheRestMetrics.java    |   77 +-
 .../handlers/log/GridLogCommandHandler.java     |    3 +-
 .../metadata/GridPortableMetadataHandler.java   |    3 +-
 .../handlers/task/GridTaskCommandHandler.java   |   14 +-
 .../top/GridTopologyCommandHandler.java         |    5 +-
 .../version/GridVersionCommandHandler.java      |    3 +-
 .../tcp/GridTcpMemcachedNioListener.java        |   17 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |    5 +-
 .../service/GridServiceProcessor.java           |   22 +-
 .../processors/service/GridServiceProxy.java    |    2 +-
 .../processors/streamer/IgniteStreamerImpl.java |    4 +-
 .../apache/ignite/internal/util/GridUtils.java  | 9100 -----------------
 .../ignite/internal/util/IgniteUtils.java       | 9141 ++++++++++++++++++
 .../GridTcpCommunicationMessageAdapter.java     |    1 +
 .../GridTcpCommunicationMessageState.java       |    3 +-
 .../util/future/GridCompoundFuture.java         |   28 +-
 .../util/future/GridCompoundIdentityFuture.java |    2 +-
 .../util/future/GridEmbeddedFuture.java         |   38 +-
 .../util/future/GridFinishedFuture.java         |    8 +-
 .../util/future/GridFinishedFutureEx.java       |    9 +-
 .../internal/util/future/GridFutureAdapter.java |   30 +-
 .../util/future/GridFutureAdapterEx.java        |   31 +-
 .../util/future/GridFutureChainListener.java    |    8 +-
 .../internal/util/ipc/GridIpcEndpoint.java      |   49 -
 .../util/ipc/GridIpcEndpointBindException.java  |   47 -
 .../util/ipc/GridIpcEndpointFactory.java        |   84 -
 .../internal/util/ipc/GridIpcEndpointType.java  |   29 -
 .../util/ipc/GridIpcServerEndpoint.java         |   73 -
 .../ipc/GridIpcServerEndpointDeserializer.java  |   66 -
 .../internal/util/ipc/GridIpcToNioAdapter.java  |  250 -
 .../ignite/internal/util/ipc/IpcEndpoint.java   |   49 +
 .../util/ipc/IpcEndpointBindException.java      |   47 +
 .../internal/util/ipc/IpcEndpointFactory.java   |   84 +
 .../internal/util/ipc/IpcEndpointType.java      |   29 +
 .../internal/util/ipc/IpcServerEndpoint.java    |   73 +
 .../util/ipc/IpcServerEndpointDeserializer.java |   66 +
 .../internal/util/ipc/IpcToNioAdapter.java      |  250 +
 .../ipc/loopback/GridIpcClientTcpEndpoint.java  |   87 -
 .../ipc/loopback/GridIpcServerTcpEndpoint.java  |  179 -
 .../util/ipc/loopback/IpcClientTcpEndpoint.java |   87 +
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |  179 +
 .../GridIpcOutOfSystemResourcesException.java   |   59 -
 .../GridIpcSharedMemoryClientEndpoint.java      |  336 -
 .../shmem/GridIpcSharedMemoryInitRequest.java   |   67 -
 .../shmem/GridIpcSharedMemoryInitResponse.java  |  171 -
 .../shmem/GridIpcSharedMemoryInputStream.java   |   99 -
 .../shmem/GridIpcSharedMemoryNativeLoader.java  |  242 -
 ...cSharedMemoryOperationTimedoutException.java |   59 -
 .../shmem/GridIpcSharedMemoryOutputStream.java  |   80 -
 .../GridIpcSharedMemoryServerEndpoint.java      |  707 --
 .../ipc/shmem/GridIpcSharedMemorySpace.java     |  374 -
 .../ipc/shmem/GridIpcSharedMemoryUtils.java     |  242 -
 .../shmem/IpcOutOfSystemResourcesException.java |   59 +
 .../shmem/IpcSharedMemoryClientEndpoint.java    |  336 +
 .../ipc/shmem/IpcSharedMemoryInitRequest.java   |   67 +
 .../ipc/shmem/IpcSharedMemoryInitResponse.java  |  171 +
 .../ipc/shmem/IpcSharedMemoryInputStream.java   |   99 +
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |  261 +
 ...cSharedMemoryOperationTimedoutException.java |   59 +
 .../ipc/shmem/IpcSharedMemoryOutputStream.java  |   80 +
 .../shmem/IpcSharedMemoryServerEndpoint.java    |  707 ++
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |  374 +
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |  242 +
 .../ignite/internal/util/lang/GridFunc.java     |   53 +-
 .../ignite/internal/util/nio/GridNioFuture.java |    2 +-
 .../util/nio/GridShmemCommunicationClient.java  |    4 +-
 .../apache/ignite/internal/util/typedef/X.java  |    6 +-
 .../internal/util/typedef/internal/U.java       |    4 +-
 .../apache/ignite/internal/visor/VisorJob.java  |    2 +-
 .../internal/visor/VisorMultiNodeTask.java      |    2 +-
 .../ignite/internal/visor/cache/VisorCache.java |    2 +-
 .../internal/visor/cache/VisorCacheMetrics.java |   37 +-
 .../visor/cache/VisorCachePreloadTask.java      |    6 +-
 .../visor/cache/VisorCacheResetMetricsTask.java |    2 +-
 .../compute/VisorComputeMonitoringHolder.java   |   10 +-
 .../visor/misc/VisorResolveHostNameTask.java    |    2 +-
 .../visor/node/VisorBasicConfiguration.java     |    2 +-
 .../visor/node/VisorGridConfiguration.java      |    2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    6 +-
 .../internal/visor/node/VisorNodeGcTask.java    |    2 +-
 .../internal/visor/query/VisorQueryTask.java    |    2 +-
 .../internal/visor/query/VisorQueryUtils.java   |    4 +-
 .../apache/ignite/lang/IgniteAsyncSupport.java  |    6 +-
 .../ignite/lang/IgniteAsyncSupportAdapter.java  |   25 +-
 .../ignite/lang/IgniteAsyncSupported.java       |    2 +-
 .../org/apache/ignite/lang/IgniteFuture.java    |  189 -
 .../optimized/IgniteOptimizedMarshaller.java    |    2 +-
 .../ignite/mxbean/CacheMetricsMXBean.java       |  245 +
 .../mxbean/ClusterLocalNodeMetricsMXBean.java   |  240 +
 .../apache/ignite/mxbean/IgniteCacheMXBean.java |   72 -
 .../org/apache/ignite/mxbean/IgniteMBean.java   |  386 -
 .../ignite/mxbean/IgniteMBeanDescription.java   |   34 -
 .../IgniteMBeanParametersDescriptions.java      |   34 -
 .../mxbean/IgniteMBeanParametersNames.java      |   34 -
 .../org/apache/ignite/mxbean/IgniteMXBean.java  |  386 +
 .../ignite/mxbean/IgniteMXBeanDescription.java  |   34 +
 .../IgniteMXBeanParametersDescriptions.java     |   34 +
 .../mxbean/IgniteMXBeanParametersNames.java     |   34 +
 .../ignite/mxbean/IgniteStandardMBean.java      |  275 -
 .../ignite/mxbean/IgniteThreadPoolMBean.java    |  152 -
 .../ignite/mxbean/IgniteThreadPoolMXBean.java   |  152 +
 .../org/apache/ignite/mxbean/IgnitionMBean.java |  151 -
 .../apache/ignite/mxbean/IgnitionMXBean.java    |  151 +
 .../ignite/scheduler/SchedulerFuture.java       |    4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |   14 +-
 .../noop/NoopAuthenticationSpiMBean.java        |    2 +-
 .../cache/CacheCheckpointSpiMBean.java          |    4 +-
 .../checkpoint/jdbc/JdbcCheckpointSpiMBean.java |   24 +-
 .../sharedfs/SharedFsCheckpointSpiMBean.java    |    6 +-
 .../fifoqueue/FifoQueueCollisionSpiMBean.java   |   18 +-
 .../JobStealingCollisionSpiMBean.java           |   36 +-
 .../PriorityQueueCollisionSpiMBean.java         |   34 +-
 .../communication/tcp/TcpCommunicationSpi.java  |   24 +-
 .../tcp/TcpCommunicationSpiMBean.java           |   58 +-
 .../local/LocalDeploymentSpiMBean.java          |    2 +-
 .../spi/discovery/DiscoveryMetricsHelper.java   |  368 -
 .../spi/discovery/DiscoveryMetricsProvider.java |    2 +-
 .../discovery/DiscoveryNodeMetricsAdapter.java  | 1068 --
 .../discovery/tcp/TcpClientDiscoverySpi.java    |    6 +-
 .../tcp/TcpClientDiscoverySpiMBean.java         |   34 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   16 +-
 .../spi/discovery/tcp/TcpDiscoverySpiMBean.java |   62 +-
 .../tcp/internal/TcpDiscoveryNode.java          |   16 +-
 .../messages/TcpDiscoveryHeartbeatMessage.java  |   36 +-
 .../memory/MemoryEventStorageSpiMBean.java      |   10 +-
 .../failover/always/AlwaysFailoverSpiMBean.java |    6 +-
 .../JobStealingFailoverSpiMBean.java            |    8 +-
 .../failover/never/NeverFailoverSpiMBean.java   |    2 +-
 .../adaptive/AdaptiveCpuLoadProbe.java          |    2 +-
 .../adaptive/AdaptiveJobCountLoadProbe.java     |    2 +-
 .../adaptive/AdaptiveLoadBalancingSpiMBean.java |    4 +-
 .../AdaptiveProcessingTimeLoadProbe.java        |    2 +-
 .../RoundRobinLoadBalancingSpiMBean.java        |    4 +-
 .../WeightedRandomLoadBalancingSpiMBean.java    |    6 +-
 .../noop/NoopSecureSessionSpiMBean.java         |    2 +-
 .../swapspace/file/FileSwapSpaceSpiMBean.java   |   12 +-
 .../apache/ignite/streamer/StreamerMBean.java   |   34 +-
 .../ignite/streamer/StreamerStageMBean.java     |   24 +-
 .../ignite/streamer/StreamerWindowMBean.java    |   10 +-
 .../index/StreamerIndexProviderMBean.java       |   12 +-
 .../StreamerCacheAffinityEventRouter.java       |    2 +-
 .../ignite/GridExceptionHelpLinksSelfTest.java  |  106 -
 .../ignite/GridExternalizableAbstractTest.java  |   41 -
 .../org/apache/ignite/GridTestTaskSession.java  |    4 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |  283 +
 .../IgniteExceptionHelpLinksSelfTest.java       |  105 +
 .../IgniteExternalizableAbstractTest.java       |   41 +
 ...CachePartitionFairAffinityNodesSelfTest.java |    6 +-
 .../store/GridCacheBalancingStoreSelfTest.java  |    3 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |    7 +-
 .../fs/GridGgfsEventsAbstractSelfTest.java      |    2 +-
 .../ignite/fs/GridGgfsFragmentizerSelfTest.java |    2 +-
 .../ignite/internal/ClusterMetricsSelfTest.java |  124 +-
 .../internal/ClusterNodeMetricsSelfTest.java    |    6 +-
 .../internal/GridCancelOnGridStopSelfTest.java  |    2 +-
 .../GridCancelledJobsMetricsSelfTest.java       |    2 +-
 .../internal/GridContinuousTaskSelfTest.java    |    4 +-
 .../internal/GridDiscoveryEventSelfTest.java    |    3 +-
 .../ignite/internal/GridDiscoverySelfTest.java  |    6 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |    4 +-
 .../internal/GridExecutorServiceTest.java       |  315 -
 .../GridExplicitImplicitDeploymentSelfTest.java |  476 -
 .../GridFailoverCustomTopologySelfTest.java     |    2 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |   90 +-
 .../ignite/internal/GridKernalTestUtils.java    |    3 +-
 .../internal/GridListenActorSelfTest.java       |    3 +-
 .../internal/GridMultipleJobsSelfTest.java      |    8 +-
 .../internal/GridNonHistoryMetricsSelfTest.java |    4 +-
 .../internal/GridProjectionAbstractTest.java    |   40 +-
 .../ignite/internal/GridReduceSelfTest.java     |    4 +-
 .../GridTaskCancelSingleNodeSelfTest.java       |    2 +-
 .../internal/GridTaskExecutionSelfTest.java     |    2 +-
 .../GridTaskFutureImplStopGridSelfTest.java     |    5 +-
 .../GridTaskInstanceExecutionSelfTest.java      |    2 +-
 .../internal/GridTaskJobRejectSelfTest.java     |    2 +-
 .../internal/GridTaskListenerSelfTest.java      |    4 +-
 .../GridTopicExternalizableSelfTest.java        |    3 +-
 .../GridTopologyBuildVersionSelfTest.java       |    2 +-
 .../internal/GridUpdateNotifierSelfTest.java    |    3 +-
 .../internal/IgniteExecutorServiceTest.java     |  315 +
 ...gniteExplicitImplicitDeploymentSelfTest.java |  476 +
 .../GridCheckpointManagerAbstractSelfTest.java  |    6 +-
 .../GridCommunicationSendMessageSelfTest.java   |    4 +-
 .../GridDeploymentMessageCountSelfTest.java     |    4 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |    2 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |    6 +-
 .../events/GridEventStorageManagerSelfTest.java |    3 +-
 .../swapspace/GridSwapSpaceManagerSelfTest.java |    2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |    6 +-
 .../GridCacheAbstractFailoverSelfTest.java      |    3 +-
 .../cache/GridCacheAbstractFlagsTest.java       |    4 +-
 ...cheAbstractFullApiMultithreadedSelfTest.java |    5 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |  473 +-
 .../GridCacheAbstractIteratorsSelfTest.java     |   10 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |  752 +-
 .../GridCacheAbstractProjectionSelfTest.java    |   50 +
 .../GridCacheAbstractRemoveFailureTest.java     |    6 +-
 .../cache/GridCacheAbstractSelfTest.java        |    2 +-
 .../cache/GridCacheAffinityApiSelfTest.java     |    4 +-
 .../GridCacheAsyncOperationsLimitSelfTest.java  |    8 +-
 .../cache/GridCacheBasicApiAbstractTest.java    |  229 +-
 .../cache/GridCacheConcurrentMapTest.java       |    6 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |    6 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |    7 +-
 .../GridCacheFinishPartitionsSelfTest.java      |   52 +-
 ...CacheFullTextQueryMultithreadedSelfTest.java |    6 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |    4 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |   19 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |    7 +-
 .../cache/GridCacheIncrementTransformTest.java  |    4 +-
 .../processors/cache/GridCacheLeakTest.java     |    2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |   18 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |    3 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |    6 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |    5 +-
 .../cache/GridCacheMvccFlagsTest.java           |    5 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |    4 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |    5 +-
 .../processors/cache/GridCacheMvccSelfTest.java |    5 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |   15 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |    2 +-
 ...HeapMultiThreadedUpdateAbstractSelfTest.java |    5 +-
 .../GridCacheOffHeapTieredAbstractSelfTest.java |   11 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |    2 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |    6 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |    2 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |    8 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |   17 +-
 .../GridCacheQueryInternalKeysSelfTest.java     |    2 +-
 .../GridCacheReferenceCleanupSelfTest.java      |    6 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |    4 +-
 .../GridCacheReturnValueTransferSelfTest.java   |    2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |    4 +-
 .../processors/cache/GridCacheStopSelfTest.java |    6 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |    4 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |    4 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |    2 +-
 .../processors/cache/GridCacheTestEntryEx.java  |    6 +
 ...cheTransactionalAbstractMetricsSelfTest.java |   20 +-
 .../cache/GridCacheTtlManagerLoadTest.java      |    5 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |    2 +-
 .../GridCacheVariableTopologySelfTest.java      |    4 +-
 .../cache/GridCacheVersionSelfTest.java         |    1 +
 ...idCacheWriteBehindStoreAbstractSelfTest.java |    4 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |    4 +-
 .../GridCacheWriteBehindStoreSelfTest.java      |    6 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |    7 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |   14 +-
 .../processors/cache/IgniteTxAbstractTest.java  |    2 +-
 .../IgniteTxConcurrentGetAbstractTest.java      |    3 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |    2 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |    6 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |    6 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |    2 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |   27 +-
 ...actQueueFailoverDataConsistencySelfTest.java |    9 +-
 .../GridCacheCountDownLatchSelfTest.java        |   10 +-
 .../GridCacheQueueCleanupSelfTest.java          |    5 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |   11 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |   17 +-
 .../GridCacheSetAbstractSelfTest.java           |   15 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |    6 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |    6 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |    6 +-
 .../GridCacheAbstractJobExecutionTest.java      |    8 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |   11 +-
 .../GridCacheBasicOpAbstractTest.java           |    7 +-
 .../distributed/GridCacheEventAbstractTest.java |    2 +-
 ...heExpiredEntriesPreloadAbstractSelfTest.java |    2 +-
 .../distributed/GridCacheLockAbstractTest.java  |   68 +-
 .../GridCacheMultiNodeAbstractTest.java         |   15 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |  141 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |    4 +-
 .../GridCacheNodeFailureAbstractTest.java       |    6 +-
 .../IgniteCrossCacheTxStoreSelfTest.java        |  288 +
 ...iteTxConsistencyRestartAbstractSelfTest.java |    4 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |   10 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |   24 +-
 .../IgniteTxPreloadAbstractTest.java            |    4 +-
 .../dht/GridCacheAtomicFullApiSelfTest.java     |   11 +-
 .../dht/GridCacheAtomicNearCacheSelfTest.java   |    2 +-
 .../dht/GridCacheColocatedDebugTest.java        |   54 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |    2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |   10 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |   12 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |    2 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |    2 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |    6 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |    5 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |    5 +-
 .../dht/GridCacheGlobalLoadTest.java            |    2 +-
 ...ePartitionedNearDisabledMetricsSelfTest.java |   14 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |   60 +-
 ...itionedTxOriginatingNodeFailureSelfTest.java |    8 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |    6 +-
 .../atomic/GridCacheAtomicPreloadSelfTest.java  |    4 +-
 ...GridCacheValueConsistencyAtomicSelfTest.java |    2 +-
 ...AtomicPartitionedTckMetricsSelfTestImpl.java |  183 +
 .../near/GridCacheNearMetricsSelfTest.java      |  163 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |   67 +-
 .../near/GridCacheNearOneNodeSelfTest.java      |   42 +-
 .../near/GridCacheNearReadersSelfTest.java      |   17 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |    2 +-
 .../near/GridCachePartitionedBasicApiTest.java  |    4 +-
 .../GridCachePartitionedEntryLockSelfTest.java  |    7 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |    6 +-
 .../GridCachePartitionedFullApiSelfTest.java    |    4 +-
 .../GridCachePartitionedLoadCacheSelfTest.java  |    2 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |    2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |    7 +-
 .../GridCachePartitionedProjectionSelfTest.java |    4 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |    6 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |    5 +-
 .../GridCacheReplicatedBasicApiTest.java        |    4 +-
 .../GridCacheReplicatedEvictionSelfTest.java    |    5 +-
 .../GridCacheBatchEvictUnswapSelfTest.java      |    5 +-
 ...heConcurrentEvictionConsistencySelfTest.java |    4 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |    4 +-
 .../GridCacheEvictionLockUnlockSelfTest.java    |    7 +-
 .../cache/eviction/GridCacheMockEntry.java      |   27 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |    4 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |    2 +-
 .../IgniteCacheTxStoreSessionTest.java          |   11 +-
 ...dCacheAtomicLocalTckMetricsSelfTestImpl.java |  161 +
 .../local/GridCacheLocalBasicApiSelfTest.java   |    4 +-
 .../cache/local/GridCacheLocalLockSelfTest.java |   81 +-
 .../GridCacheLocalMultithreadedSelfTest.java    |   85 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |    4 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |    6 +-
 .../closure/GridClosureProcessorSelfTest.java   |   43 +-
 .../continuous/GridEventConsumeSelfTest.java    |   18 +-
 .../continuous/GridMessageListenSelfTest.java   |    4 +-
 .../GridDataLoaderProcessorSelfTest.java        |   23 +-
 .../processors/fs/GridGgfsAbstractSelfTest.java |    6 +-
 .../fs/GridGgfsDataManagerSelfTest.java         |    9 +-
 .../processors/fs/GridGgfsModesSelfTest.java    |    4 +-
 .../fs/GridGgfsProcessorSelfTest.java           |    2 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |    6 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |    4 +-
 .../processors/fs/GridGgfsSizeSelfTest.java     |    8 +-
 .../processors/fs/GridGgfsTaskSelfTest.java     |    7 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |   13 +-
 .../GridServiceProcessorAbstractSelfTest.java   |   38 +-
 .../GridServiceProcessorMultiNodeSelfTest.java  |   14 +-
 .../GridServiceReassignmentSelfTest.java        |    2 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |    4 +-
 .../streamer/GridStreamerSelfTest.java          |    2 +-
 .../timeout/GridTimeoutProcessorSelfTest.java   |    5 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |    2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    4 +-
 .../internal/util/GridTestClockTimer.java       |    6 +-
 .../ignite/internal/util/GridUtilsSelfTest.java |  717 --
 .../internal/util/IgniteUtilsSelfTest.java      |  728 ++
 .../util/future/GridCompoundFutureSelfTest.java |    8 +-
 .../util/future/GridEmbeddedFutureSelfTest.java |    7 +-
 .../util/future/GridFinishedFutureSelfTest.java |    9 +-
 .../util/future/GridFutureAdapterSelfTest.java  |   23 +-
 .../future/GridFutureListenPerformanceTest.java |    5 +-
 ...idIpcServerEndpointDeserializerSelfTest.java |  160 -
 .../IpcServerEndpointDeserializerSelfTest.java  |  160 +
 .../ipc/shmem/GgfsSharedMemoryTestClient.java   |   76 +
 .../ipc/shmem/GgfsSharedMemoryTestServer.java   |   71 +
 .../shmem/GridGgfsSharedMemoryTestClient.java   |   76 -
 .../shmem/GridGgfsSharedMemoryTestServer.java   |   71 -
 ...idIpcSharedMemoryCrashDetectionSelfTest.java |  500 -
 .../shmem/GridIpcSharedMemoryFakeClient.java    |   36 -
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |   87 -
 .../shmem/GridIpcSharedMemorySpaceSelfTest.java |  259 -
 .../shmem/GridIpcSharedMemoryUtilsSelfTest.java |   84 -
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |  500 +
 .../ipc/shmem/IpcSharedMemoryFakeClient.java    |   36 +
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |   78 +
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |   87 +
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |  267 +
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |   84 +
 .../LoadWithCorruptedLibFileTestRunner.java     |   65 +
 .../GridIpcSharedMemoryBenchmarkParty.java      |   35 -
 .../GridIpcSharedMemoryBenchmarkReader.java     |  133 -
 .../GridIpcSharedMemoryBenchmarkWriter.java     |  125 -
 .../IpcSharedMemoryBenchmarkParty.java          |   35 +
 .../IpcSharedMemoryBenchmarkReader.java         |  133 +
 .../IpcSharedMemoryBenchmarkWriter.java         |  125 +
 .../internal/util/nio/GridNioSelfTest.java      |    8 +-
 .../offheap/GridOffHeapMapAbstractSelfTest.java |    7 +-
 ...idOffHeapPartitionedMapAbstractSelfTest.java |    3 +-
 ...apPartitionedMapPerformanceAbstractTest.java |   10 +-
 .../unsafe/GridUnsafeMemorySelfTest.java        |    6 +-
 .../ignite/jvmtest/ConcurrentMapTest.java       |    4 +-
 .../ignite/jvmtest/NetworkFailureTest.java      |   16 +-
 .../QueueSizeCounterMultiThreadedTest.java      |    4 +-
 .../jvmtest/ReadWriteLockMultiThreadedTest.java |   10 +-
 .../ignite/lang/GridBasicPerformanceTest.java   |    5 +-
 .../apache/ignite/lang/GridFuncSelfTest.java    |   13 +-
 .../lang/GridFutureListenPerformanceTest.java   |    5 +-
 .../ignite/lang/GridSetWrapperSelfTest.java     |    2 +-
 .../loadtest/GridSingleExecutionTest.java       |    2 +-
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |    6 +-
 .../cache/GridCacheAbstractLoadTest.java        |    6 +-
 .../cache/GridCachePutRemoveLoadTest.java       |    2 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |   13 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |    4 +-
 .../loadtests/colocation/GridTestMain.java      |   12 +-
 .../communication/GridIoManagerBenchmark.java   |   10 +-
 .../communication/GridIoManagerBenchmark0.java  |   22 +-
 .../GridContinuousOperationsLoadTest.java       |    4 +-
 .../multisplit/GridMultiSplitsLoadTest.java     |    2 +-
 ...ridSingleSplitsNewNodesAbstractLoadTest.java |    2 +-
 .../ignite/loadtests/dsi/GridDsiClient.java     |    2 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |    2 +-
 .../loadtests/hashmap/GridCacheTestContext.java |    1 +
 .../loadtests/hashmap/GridHashMapLoadTest.java  |    1 +
 ...GridJobExecutionLoadTestClientSemaphore.java |    7 +-
 ...JobExecutionSingleNodeSemaphoreLoadTest.java |    9 +-
 .../loadtests/job/GridJobLoadTestSubmitter.java |    2 +-
 .../mergesort/GridMergeSortLoadTask.java        |    8 +-
 ...apPartitionedMapPerformanceAbstractTest.java |   10 +-
 .../streamer/GridStreamerIndexLoadTest.java     |    8 +-
 .../marshaller/GridMarshallerAbstractTest.java  |   20 +-
 .../ignite/messaging/GridMessagingSelfTest.java |   10 +-
 .../ignite/p2p/GridP2PClassLoadingSelfTest.java |    2 +-
 .../GridP2PContinuousDeploymentSelfTest.java    |    4 +-
 .../p2p/GridP2PLocalDeploymentSelfTest.java     |   10 +-
 .../GridP2PMissedResourceCacheSizeSelfTest.java |    8 +-
 .../ignite/p2p/GridP2PTimeoutSelfTest.java      |    8 +-
 .../ignite/p2p/GridP2PUndeploySelfTest.java     |    2 +-
 ...idSessionFutureWaitJobAttributeSelfTest.java |    2 +-
 ...GridSessionSetJobAttributeOrderSelfTest.java |    2 +-
 ...sionSetJobAttributeWaitListenerSelfTest.java |    2 +-
 .../GridSessionSetTaskAttributeSelfTest.java    |    2 +-
 ...GridSessionTaskWaitJobAttributeSelfTest.java |    2 +-
 .../GridSessionWaitAttributeSelfTest.java       |    2 +-
 ...redFsCheckpointSpiMultiThreadedSelfTest.java |    8 +-
 .../collision/GridTestCollisionTaskSession.java |    3 +-
 ...bStealingCollisionSpiAttributesSelfTest.java |    4 +-
 ...alingCollisionSpiCustomTopologySelfTest.java |    4 +-
 .../GridJobStealingCollisionSpiSelfTest.java    |    4 +-
 .../tcp/GridCacheDhtLockBackupSelfTest.java     |   21 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |    3 +-
 .../tcp/GridTcpCommunicationSpiLanTest.java     |    3 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |    9 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |    7 +-
 ...ClusterMetricsSnapshotSerializeSelfTest.java |  170 +
 .../GridDiscoveryMetricsHelperSelfTest.java     |  149 -
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |    7 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |   14 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |    7 +-
 .../GridCacheStoreValueBytesTest.java           |    7 +-
 .../index/GridStreamerIndexSelfTest.java        |    8 +-
 .../window/GridStreamerWindowSelfTest.java      |    4 +-
 .../testframework/GridSpiTestContext.java       |    6 +-
 .../ignite/testframework/GridTestNode.java      |    8 +-
 .../ignite/testframework/GridTestUtils.java     |   12 +-
 .../testframework/junits/GridAbstractTest.java  |   22 +-
 .../testframework/junits/GridTestIgnite.java    |    6 +
 .../junits/GridTestKernalContext.java           |    2 +-
 .../cache/GridAbstractCacheStoreSelfTest.java   |    5 +-
 .../junits/common/GridCommonAbstractTest.java   |   34 +-
 .../junits/spi/GridSpiAbstractTest.java         |    2 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |    2 +-
 .../IgniteCacheMetricsSelfTestSuite.java        |    4 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |    2 +
 .../testsuites/IgniteComputeGridTestSuite.java  |    6 +-
 .../ignite/testsuites/IgniteFsTestSuite.java    |    2 +-
 .../IgniteIpcSharedMemorySelfTestSuite.java     |    7 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |    4 +-
 ...dConcurrentLinkedDequeMultiThreadedTest.java |    6 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |   10 +-
 .../apache/ignite/util/GridIndexFillTest.java   |    4 +-
 .../ignite/util/GridSnapshotLockSelfTest.java   |    6 +-
 .../util/GridSpinReadWriteLockSelfTest.java     |    4 +-
 .../util/GridTopologyHeapSizeSelfTest.java      |    4 +-
 .../ignite/util/mbeans/GridMBeanSelfTest.java   |   49 +-
 modules/core/src/test/resources/readme.txt      |    2 +-
 modules/email/readme.txt                        |   12 +-
 .../processors/email/IgniteEmailProcessor.java  |    5 +-
 modules/hadoop/readme.txt                       |   12 +-
 .../GridHadoopClientProtocolProvider.java       |    8 +-
 .../internal/fs/hadoop/GridGgfsHadoopIpcIo.java |   10 +-
 .../hadoop/GridHadoopClassLoader.java           |    4 +-
 .../processors/hadoop/GridHadoopImpl.java       |    6 +-
 .../hadoop/IgniteHadoopProcessor.java           |    5 +-
 .../hadoop/jobtracker/GridHadoopJobTracker.java |   19 +-
 .../GridHadoopDefaultMapReducePlanner.java      |    2 +-
 .../proto/GridHadoopProtocolJobStatusTask.java  |    7 +-
 .../hadoop/shuffle/GridHadoopShuffle.java       |    2 +-
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |    7 +-
 .../GridHadoopExternalTaskExecutor.java         |   16 +-
 .../child/GridHadoopChildProcessRunner.java     |   18 +-
 .../GridHadoopExternalCommunication.java        |   26 +-
 .../GridHadoopIpcToNioAdapter.java              |    6 +-
 ...doop20FileSystemLoopbackPrimarySelfTest.java |    2 +-
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |    2 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |    4 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |    2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |    2 +-
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    2 +-
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |    8 +-
 .../fs/GridGgfsNearOnlyMultiNodeSelfTest.java   |    4 +-
 .../ignite/fs/IgniteFsEventsTestSuite.java      |    4 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |    4 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java |   16 +-
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |    5 +-
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |    4 +-
 .../hadoop/GridHadoopMapReduceTest.java         |    4 +-
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |   12 +-
 .../GridHadoopExecutorServiceTest.java          |    4 +-
 ...GridHadoopExternalTaskExecutionSelfTest.java |    6 +-
 .../ggfs/GridGgfsPerformanceBenchmark.java      |    4 +-
 modules/hibernate/readme.txt                    |   14 +-
 .../hibernate/GridHibernateRegionFactory.java   |   10 +-
 modules/indexing/readme.txt                     |   12 +-
 .../processors/query/h2/IgniteH2Indexing.java   |    4 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |    2 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |    6 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |    8 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |    2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |   24 +-
 ...idCacheReduceQueryMultithreadedSelfTest.java |    6 +-
 ...idCachePartitionedHitsAndMissesSelfTest.java |    5 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |    5 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |    2 +-
 .../GridCacheReplicatedQuerySelfTest.java       |    6 +-
 .../query/h2/GridH2IndexRebuildTest.java        |    7 +-
 .../query/h2/GridH2IndexingGeoSelfTest.java     |    6 +-
 .../query/h2/sql/GridQueryParsingTest.java      |    2 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |    4 +-
 modules/jcl/readme.txt                          |   12 +-
 modules/jta/readme.txt                          |   12 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |    2 +-
 modules/log4j/readme.txt                        |   12 +-
 modules/rest-http/readme.txt                    |   12 +-
 modules/scalar/readme.txt                       |    8 +-
 .../scalar/pimps/ScalarProjectionPimp.scala     |   33 +-
 modules/schedule/readme.txt                     |   12 +-
 .../processors/schedule/ScheduleFutureImpl.java |   22 +-
 .../schedule/GridScheduleSelfTest.java          |   13 +-
 modules/slf4j/readme.txt                        |   12 +-
 modules/spring/readme.txt                       |   12 +-
 .../java/org/apache/ignite/IgniteSpring.java    |    8 +-
 .../org/apache/ignite/IgniteSpringBean.java     |    6 +
 .../cache/spring/SpringDynamicCacheManager.java |    2 +-
 modules/ssh/readme.txt                          |   12 +-
 .../GridProjectionStartStopRestartSelfTest.java |    2 +-
 modules/urideploy/readme.txt                    |   12 +-
 .../uri/GridUriDeploymentSpiMBean.java          |    8 +-
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |    2 +-
 .../ignite/visor/commands/VisorConsole.scala    |    6 +-
 .../commands/alert/VisorAlertCommand.scala      |    7 +-
 .../config/VisorConfigurationCommand.scala      |    6 +-
 .../commands/deploy/VisorDeployCommand.scala    |    4 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |    4 +-
 .../commands/events/VisorEventsCommand.scala    |    4 +-
 .../visor/commands/gc/VisorGcCommand.scala      |   13 +-
 .../visor/commands/node/VisorNodeCommand.scala  |    4 +-
 .../commands/start/VisorStartCommand.scala      |    4 +-
 .../commands/tasks/VisorTasksCommand.scala      |    4 +-
 .../commands/top/VisorTopologyCommand.scala     |   15 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |    8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |   30 +-
 .../visor/commands/gc/VisorGcCommandSpec.scala  |   25 +-
 .../commands/tasks/VisorTasksCommandSpec.scala  |    2 +-
 modules/web/readme.txt                          |   16 +-
 .../GridServletContextListenerStartup.java      |    4 +-
 .../startup/servlet/GridServletStartup.java     |    4 +-
 .../internal/websession/WebSessionSelfTest.java |    4 +-
 pom.xml                                         |    4 +-
 937 files changed, 39037 insertions(+), 35301 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCachePreloaderAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSwapManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionDemandPool.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/258ee1c0/modules/core/src/main/java/org/apache/ignite/internal/processors/streamer/IgniteStreamerImpl.java
----------------------------------------------------------------------


[21/50] [abbrv] incubator-ignite git commit: gg*{sh, bat} renamed to ignite*{sh, bat}

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/montecarlo/CreditRiskExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/montecarlo/CreditRiskExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/montecarlo/CreditRiskExample.java
index ce36999..49a2667 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/montecarlo/CreditRiskExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/montecarlo/CreditRiskExample.java
@@ -27,7 +27,7 @@ import java.util.*;
  * Monte-Carlo example. Demonstrates distributed credit risk calculation.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheAffinityExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheAffinityExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheAffinityExample.java
index a0be78e..8d6b275 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheAffinityExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheAffinityExample.java
@@ -30,7 +30,7 @@ import java.util.*;
  * example is to provide the simplest code example of this logic.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheApiExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheApiExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheApiExample.java
index 218d734..26057c5 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheApiExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheApiExample.java
@@ -28,7 +28,7 @@ import java.util.concurrent.*;
  * This example demonstrates some of the cache rich API capabilities.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousQueryExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousQueryExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousQueryExample.java
index 2084921..d801148 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousQueryExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheContinuousQueryExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * This examples demonstrates continuous query API.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheDataLoaderExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheDataLoaderExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheDataLoaderExample.java
index 853a72d..b13b625 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheDataLoaderExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheDataLoaderExample.java
@@ -27,7 +27,7 @@ import org.apache.ignite.examples.*;
  * together and properly manages load on remote nodes.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheEventsExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheEventsExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheEventsExample.java
index bc2c01e..80b4217 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheEventsExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheEventsExample.java
@@ -31,7 +31,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  * must be specifically enabled, just like in {@code examples/config/example-cache.xml} file.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePopularNumbersExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePopularNumbersExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePopularNumbersExample.java
index ac73134..1617662 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePopularNumbersExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePopularNumbersExample.java
@@ -30,7 +30,7 @@ import java.util.*;
  * Real time popular numbers counter.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePutGetExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePutGetExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePutGetExample.java
index a6b8f6c..9df8fe5 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePutGetExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CachePutGetExample.java
@@ -26,7 +26,7 @@ import java.util.*;
  * This example demonstrates very basic operations on cache, such as 'put' and 'get'.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheQueryExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheQueryExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheQueryExample.java
index f7ade22..a0205d6 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheQueryExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheQueryExample.java
@@ -59,7 +59,7 @@ import java.util.*;
  * </ul>
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheTransactionExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheTransactionExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheTransactionExample.java
index db61b22..1e1793f 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheTransactionExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/CacheTransactionExample.java
@@ -31,7 +31,7 @@ import static org.apache.ignite.transactions.IgniteTxIsolation.*;
  * Demonstrates how to use cache transactions.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicLongExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicLongExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicLongExample.java
index 3e7996e..51359fd 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicLongExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicLongExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates a simple usage of distributed atomic long.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicReferenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicReferenceExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicReferenceExample.java
index eae31f3..fa86d21 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicReferenceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicReferenceExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates a simple usage of distributed atomic reference.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicSequenceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicSequenceExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicSequenceExample.java
index d4ad2ce..1e509ba 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicSequenceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicSequenceExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates a simple usage of distributed atomic sequence.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicStampedExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicStampedExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicStampedExample.java
index eb70edd..696c2fe 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicStampedExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheAtomicStampedExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates a simple usage of distributed atomic stamped.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheCountDownLatchExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheCountDownLatchExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheCountDownLatchExample.java
index 495d8ac..bd3c68b 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheCountDownLatchExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheCountDownLatchExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates a simple usage of distributed count down latch.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheQueueExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheQueueExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheQueueExample.java
index 5ab64c6..ae1f3b9 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheQueueExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheQueueExample.java
@@ -29,7 +29,7 @@ import java.util.*;
  * cache queue.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheSetExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheSetExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheSetExample.java
index cff0046..dc68b1e 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheSetExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/datastructures/CacheSetExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Grid cache distributed set example.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java b/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java
index 65bd6c3..e5a79d4 100644
--- a/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/datagrid/starschema/CacheStarSchemaExample.java
@@ -42,7 +42,7 @@ import java.util.concurrent.*;
  * in various ways.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link CacheNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-cache.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/events/EventsExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/events/EventsExample.java b/examples/src/main/java/org/apache/ignite/examples/events/EventsExample.java
index 6877935..fb30474 100644
--- a/examples/src/main/java/org/apache/ignite/examples/events/EventsExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/events/EventsExample.java
@@ -33,7 +33,7 @@ import static org.apache.ignite.events.IgniteEventType.*;
  * Note that grid events are disabled by default and must be specifically enabled,
  * just like in {@code examples/config/example-compute.xml} file.
  * <p>
- * Remote nodes should always be started with configuration: {@code 'ggstart.sh examples/config/example-compute.xml'}.
+ * Remote nodes should always be started with configuration: {@code 'ignite.sh examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start
  * GridGain node with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsExample.java b/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsExample.java
index 496541c..b8fa35e 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsExample.java
@@ -30,7 +30,7 @@ import java.util.*;
  * files, create, list and delete directories).
  * <p>
  * Remote nodes should always be started with configuration file which includes
- * GGFS: {@code 'ggstart.sh examples/config/filesystem/example-ggfs.xml'}.
+ * GGFS: {@code 'ignite.sh examples/config/filesystem/example-ggfs.xml'}.
  * <p>
  * Alternatively you can run {@link GgfsNodeStartup} in another JVM which will start
  * GridGain node with {@code examples/config/filesystem/example-ggfs.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsMapReduceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsMapReduceExample.java b/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsMapReduceExample.java
index 1ba193f..3813e2d 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsMapReduceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsMapReduceExample.java
@@ -31,7 +31,7 @@ import java.util.*;
  * the same way as {@code grep} command does.
  * <p>
  * Remote nodes should always be started with configuration file which includes
- * GGFS: {@code 'ggstart.sh examples/config/filesystem/example-ggfs.xml'}.
+ * GGFS: {@code 'ignite.sh examples/config/filesystem/example-ggfs.xml'}.
  * <p>
  * Alternatively you can run {@link GgfsNodeStartup} in another JVM which will start
  * GridGain node with {@code examples/config/filesystem/example-ggfs.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsNodeStartup.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsNodeStartup.java b/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsNodeStartup.java
index 381de6b..e2cfea6 100644
--- a/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsNodeStartup.java
+++ b/examples/src/main/java/org/apache/ignite/examples/ggfs/GgfsNodeStartup.java
@@ -22,8 +22,8 @@ import org.apache.ignite.*;
 /**
  * Starts up an empty node with GGFS configuration.
  * You can also start a stand-alone GridGain instance by passing the path
- * to configuration file to {@code 'ggstart.{sh|bat}'} script, like so:
- * {@code 'ggstart.sh examples/config/filesystem/example-ggfs.xml'}.
+ * to configuration file to {@code 'ignite.{sh|bat}'} script, like so:
+ * {@code 'ignite.sh examples/config/filesystem/example-ggfs.xml'}.
  * <p>
  * The difference is that running this class from IDE adds all example classes to classpath
  * but running from command line doesn't.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingExample.java b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingExample.java
index 8aabf4e..2629a64 100644
--- a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingExample.java
@@ -34,7 +34,7 @@ import java.util.concurrent.*;
  * To run this example you must have at least one remote node started.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java
index 11edc44..a22b2aa 100644
--- a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongExample.java
@@ -33,7 +33,7 @@ import java.util.concurrent.*;
  * To run this example you must have at least one remote node started.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongListenActorExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongListenActorExample.java b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongListenActorExample.java
index 65fa6ae..eec94a7 100644
--- a/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongListenActorExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/messaging/MessagingPingPongListenActorExample.java
@@ -31,7 +31,7 @@ import java.util.concurrent.*;
  * To run this example you must have at least one remote node started.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/misc/deployment/DeploymentExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/misc/deployment/DeploymentExample.java b/examples/src/main/java/org/apache/ignite/examples/misc/deployment/DeploymentExample.java
index 873a63f..64151f6 100644
--- a/examples/src/main/java/org/apache/ignite/examples/misc/deployment/DeploymentExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/misc/deployment/DeploymentExample.java
@@ -40,7 +40,7 @@ import java.util.*;
  * in system classpath, so even in this case the deployment step is unnecessary.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-cache.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-cache.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will
  * start GridGain node with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/misc/springbean/SpringBeanExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/misc/springbean/SpringBeanExample.java b/examples/src/main/java/org/apache/ignite/examples/misc/springbean/SpringBeanExample.java
index 83a3e17..709fb2b 100644
--- a/examples/src/main/java/org/apache/ignite/examples/misc/springbean/SpringBeanExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/misc/springbean/SpringBeanExample.java
@@ -36,7 +36,7 @@ import java.util.concurrent.*;
  * apply grid bean destructor and stop the grid.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/services/ServicesExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/services/ServicesExample.java b/examples/src/main/java/org/apache/ignite/examples/services/ServicesExample.java
index c5d0c51..7481137 100644
--- a/examples/src/main/java/org/apache/ignite/examples/services/ServicesExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/services/ServicesExample.java
@@ -34,7 +34,7 @@ import java.util.*;
  * which will start GridGain node with {@code examples/config/example-compute.xml} configuration.
  * <p>
  * NOTE:<br/>
- * Starting {@code ggstart.sh} directly will not work, as distributed services
+ * Starting {@code ignite.sh} directly will not work, as distributed services
  * cannot be peer-deployed and classes must be on the classpath for every node.
  */
 public class ServicesExample {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingCheckInExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingCheckInExample.java b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingCheckInExample.java
index 2b3c0e8..6423d1e 100644
--- a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingCheckInExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingCheckInExample.java
@@ -52,7 +52,7 @@ import java.util.concurrent.*;
  * the users that have checked-in in the known places within the last 10 seconds.
  * <p>
  * Remote nodes should always be started with special configuration file:
- * {@code 'ggstart.{sh|bat} examples/config/example-streamer.xml'}.
+ * {@code 'ignite.{sh|bat} examples/config/example-streamer.xml'}.
  * When starting nodes this way JAR file containing the examples code
  * should be placed to {@code IGNITE_HOME/libs} folder. You can build
  * {@code gridgain-examples.jar} by running {@code mvn package} in

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPopularNumbersExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPopularNumbersExample.java b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPopularNumbersExample.java
index 56712bf..81e91f9 100644
--- a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPopularNumbersExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPopularNumbersExample.java
@@ -35,7 +35,7 @@ import java.util.*;
  * is set to {@code 10,000}.
  * <p>
  * Remote nodes should always be started with special configuration file:
- * {@code 'ggstart.{sh|bat} examples/config/example-streamer.xml'}.
+ * {@code 'ignite.{sh|bat} examples/config/example-streamer.xml'}.
  * When starting nodes this way JAR file containing the examples code
  * should be placed to {@code IGNITE_HOME/libs} folder. You can build
  * {@code gridgain-examples.jar} by running {@code mvn package} in

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPriceBarsExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPriceBarsExample.java b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPriceBarsExample.java
index 708564e..584e55a 100644
--- a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPriceBarsExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingPriceBarsExample.java
@@ -46,7 +46,7 @@ import java.util.concurrent.*;
  * with purpose to demonstrate multi-stage streaming processing.
  * <p>
  * Remote nodes should always be started with special configuration file:
- * {@code 'ggstart.{sh|bat} examples/config/example-streamer.xml'}.
+ * {@code 'ignite.{sh|bat} examples/config/example-streamer.xml'}.
  * When starting nodes this way JAR file containing the examples code
  * should be placed to {@code IGNITE_HOME/libs} folder. You can build
  * {@code gridgain-examples.jar} by running {@code mvn package} in

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingRunningAverageExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingRunningAverageExample.java b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingRunningAverageExample.java
index 3b6f52e..7ccbf42 100644
--- a/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingRunningAverageExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/streaming/StreamingRunningAverageExample.java
@@ -32,7 +32,7 @@ import java.util.concurrent.*;
  * continuously maintains a running average over last {@code 500} numbers.
  * <p>
  * Remote nodes should always be started with special configuration file:
- * {@code 'ggstart.{sh|bat} examples/config/example-streamer.xml'}.
+ * {@code 'ignite.{sh|bat} examples/config/example-streamer.xml'}.
  * When starting nodes this way JAR file containing the examples code
  * should be placed to {@code IGNITE_HOME/libs} folder. You can build
  * {@code gridgain-examples.jar} by running {@code mvn package} in

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java8/org/apache/ignite/examples/ComputeExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java8/org/apache/ignite/examples/ComputeExample.java b/examples/src/main/java8/org/apache/ignite/examples/ComputeExample.java
index 6bcb12c..71b9946 100644
--- a/examples/src/main/java8/org/apache/ignite/examples/ComputeExample.java
+++ b/examples/src/main/java8/org/apache/ignite/examples/ComputeExample.java
@@ -26,7 +26,7 @@ import org.apache.ignite.lang.IgniteCallable;
  * Demonstrates broadcasting and unicasting computations within grid projection.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  */
 public class ComputeExample {
     /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java8/org/apache/ignite/examples/MessagingExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java8/org/apache/ignite/examples/MessagingExample.java b/examples/src/main/java8/org/apache/ignite/examples/MessagingExample.java
index dd7e1ea..c69c3ab 100644
--- a/examples/src/main/java8/org/apache/ignite/examples/MessagingExample.java
+++ b/examples/src/main/java8/org/apache/ignite/examples/MessagingExample.java
@@ -31,7 +31,7 @@ import java.util.concurrent.*;
  * To run this example you must have at least one remote node started.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala
index 2598e93..b0ca960 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample1.scala
@@ -34,7 +34,7 @@ import java.util.concurrent.Callable
  * keys.
  *
  * Remote nodes should always be started with configuration file which includes
- * cache: `'ggstart.sh examples/config/example-cache.xml'`. Local node can
+ * cache: `'ignite.sh examples/config/example-cache.xml'`. Local node can
  * be started with or without cache.
  */
 object ScalarCacheAffinityExample1 {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala
index bc6f0a1..e12f3bf 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinityExample2.scala
@@ -28,7 +28,7 @@ import scala.util.control.Breaks._
  * Note that affinity routing is enabled for all caches.
  *
  * Remote nodes should always be started with configuration file which includes
- * cache: `'ggstart.sh examples/config/example-cache.xml'`. Local node can
+ * cache: `'ignite.sh examples/config/example-cache.xml'`. Local node can
  * be started with or without cache.
  */
 object ScalarCacheAffinityExample2 {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala
index 103bcb3..12c2f96 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheAffinitySimpleExample.scala
@@ -32,7 +32,7 @@ import org.apache.ignite.scalar.scalar._
  * Note also that for affinity routing is enabled for all caches.
  *
  * Remote nodes should always be started with configuration file which includes
- * cache: `'ggstart.sh examples/config/example-cache.xml'`. Local node can
+ * cache: `'ignite.sh examples/config/example-cache.xml'`. Local node can
  * be started with or without cache.
  */
 object ScalarCacheAffinitySimpleExample extends App {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala
index 574006f..22ab99e 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheExample.scala
@@ -30,7 +30,7 @@ import scala.collection.JavaConversions._
  * Demonstrates basic In-Memory Data Grid operations with Scalar.
  * <p>
  * Remote nodes should always be started with configuration file which includes
- * cache: `'ggstart.sh examples/config/example-cache.xml'`. Local node can
+ * cache: `'ignite.sh examples/config/example-cache.xml'`. Local node can
  * be started with or without cache.
  */
 object ScalarCacheExample extends App {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala
index 4cf0b04..e52f431 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCachePopularNumbersExample.scala
@@ -30,7 +30,7 @@ import scala.util.Random
  * Real time popular number counter.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `ggstart.sh examples/config/example-cache.xml`
+ * enables P2P class loading: `ignite.sh examples/config/example-cache.xml`
  * <p>
  * Alternatively you can run [[CacheNodeStartup]] in another JVM which will
  * start GridGain node with `examples/config/example-cache.xml` configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala
index 99334f4..d189e9f 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCacheQueryExample.scala
@@ -31,7 +31,7 @@ import java.util._
  * Demonstrates cache ad-hoc queries with Scalar.
  * <p>
  * Remote nodes should always be started with configuration file which includes
- * cache: `'ggstart.sh examples/config/example-cache.xml'`. Local node can
+ * cache: `'ignite.sh examples/config/example-cache.xml'`. Local node can
  * be started with or without cache.
  */
 object ScalarCacheQueryExample {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarClosureExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarClosureExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarClosureExample.scala
index 3587356..fc4b46b 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarClosureExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarClosureExample.scala
@@ -25,7 +25,7 @@ import org.apache.ignite.scalar.scalar._
  * Demonstrates various closure executions on the cloud using Scalar.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarClosureExample extends App {
     scalar("examples/config/example-compute.xml") {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarContinuationExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarContinuationExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarContinuationExample.scala
index 7218490..1c1dc46 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarContinuationExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarContinuationExample.scala
@@ -40,7 +40,7 @@ import java.util
  * the more values it will be cached on remote nodes.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarContinuationExample {
     def main(args: Array[String]) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCreditRiskExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCreditRiskExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCreditRiskExample.scala
index 1affeb9..65393f7 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCreditRiskExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarCreditRiskExample.scala
@@ -27,7 +27,7 @@ import scala.util.control.Breaks._
  * Scalar-based Monte-Carlo example.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarCreditRiskExample {
     def main(args: Array[String]) {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPiCalculationExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPiCalculationExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPiCalculationExample.scala
index 3064108..12b72b7 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPiCalculationExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPiCalculationExample.scala
@@ -28,7 +28,7 @@ import scala.math._
  * or any explicit deployment.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarPiCalculationExample {
     /** Number of iterations per node. */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPingPongExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPingPongExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPingPongExample.scala
index bff48a4..dbdd9e0 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPingPongExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPingPongExample.scala
@@ -29,7 +29,7 @@ import java.util.concurrent.CountDownLatch
  * two nodes. It is analogous to `GridMessagingPingPongExample` on Java side.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarPingPongExample extends App {
     scalar("examples/config/example-compute.xml") {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPrimeExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPrimeExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPrimeExample.scala
index 1165ef9..3a29101 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPrimeExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarPrimeExample.scala
@@ -30,7 +30,7 @@ import scala.util.control.Breaks._
  * ==Starting Remote Nodes==
  * To try this example you should (but don't have to) start remote grid instances.
  * You can start as many as you like by executing the following script:
- * `{IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-compute.xml`
+ * `{IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-compute.xml`
  *
  * Once remote instances are started, you can execute this example from
  * Eclipse, IntelliJ IDEA, or NetBeans (and any other Java IDE) by simply hitting run

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarScheduleExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarScheduleExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarScheduleExample.scala
index a5b79ca..299bc0f 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarScheduleExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarScheduleExample.scala
@@ -26,7 +26,7 @@ import org.apache.ignite.scalar.scalar._
  * three times with initial scheduling delay equal to five seconds.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarScheduleExample extends App {
     scalar("examples/config/example-compute.xml") {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
index 574a816..9791d87 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarSnowflakeSchemaExample.scala
@@ -44,7 +44,7 @@ import scala.collection.JavaConversions._
  * in various ways.
  * <p>
  * Remote nodes should always be started with configuration file which includes
- * cache: `'ggstart.sh examples/config/example-cache.xml'`.
+ * cache: `'ignite.sh examples/config/example-cache.xml'`.
  */
 object ScalarSnowflakeSchemaExample {
     /** Name of replicated cache specified in spring configuration. */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarTaskExample.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarTaskExample.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarTaskExample.scala
index cd98f06..7dc8c5f 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarTaskExample.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarTaskExample.scala
@@ -32,7 +32,7 @@ import scala.collection.JavaConversions._
  * As a trade off in such cases the more code needs to be written vs. simple closure execution.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarTaskExample extends App {
     scalar("examples/config/example-compute.xml") {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarWorldShortestMapReduce.scala
----------------------------------------------------------------------
diff --git a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarWorldShortestMapReduce.scala b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarWorldShortestMapReduce.scala
index 674c69a..8d73cda 100644
--- a/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarWorldShortestMapReduce.scala
+++ b/examples/src/main/scala/org/apache/ignite/scalar/examples/ScalarWorldShortestMapReduce.scala
@@ -26,7 +26,7 @@ import org.apache.ignite.scalar.scalar._
  * on thousands requiring no special configuration or deployment.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: `'ggstart.{sh|bat} examples/config/example-compute.xml'`.
+ * enables P2P class loading: `'ignite.{sh|bat} examples/config/example-compute.xml'`.
  */
 object ScalarWorldShortestMapReduce extends App {
     scalar("examples/config/example-compute.xml") {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/aop/readme.txt
----------------------------------------------------------------------
diff --git a/modules/aop/readme.txt b/modules/aop/readme.txt
index 75c5f49..4d04630 100644
--- a/modules/aop/readme.txt
+++ b/modules/aop/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite AOP module provides capability to turn any Java method to a distri
 adding @Gridify annotation to it.
 
 To enable AOP module when starting a standalone node, move 'optional/ignite-aop' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing AOP Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/aws/readme.txt
----------------------------------------------------------------------
diff --git a/modules/aws/readme.txt b/modules/aws/readme.txt
index 317369c..1819915 100644
--- a/modules/aws/readme.txt
+++ b/modules/aws/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite AWS Module
 Apache Ignite AWS module provides S3-based implementations of checkpoint SPI and IP finder for TCP discovery.
 
 To enable AWS module when starting a standalone node, move 'optional/ignite-aws' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing AWS Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/bin/start-nodes.cmd
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/bin/start-nodes.cmd b/modules/clients/src/test/bin/start-nodes.cmd
index ece9ee2..5e1fdb2 100644
--- a/modules/clients/src/test/bin/start-nodes.cmd
+++ b/modules/clients/src/test/bin/start-nodes.cmd
@@ -35,9 +35,9 @@ mkdir %IGNITE_HOME%\work\log
 
 set JVM_OPTS=-DCLIENTS_MODULE_PATH=%CLIENTS_MODULE_PATH%
 
-FOR /L %%G IN (1,1,%NODES_COUNT%) DO start "Node #%%G" /low /MIN cmd /C "%BIN_PATH%\ggstart.bat -v %CONFIG_DIR%\spring-server-node.xml >> %IGNITE_HOME%\work\log\node-%%G.log 2>&1"
-FOR /L %%G IN (1,1,%NODES_COUNT%) DO start "SSL Node #%%G" /low /MIN cmd /C "%BIN_PATH%\ggstart.bat -v %CONFIG_DIR%\spring-server-ssl-node.xml >> %IGNITE_HOME%\work\log\node-ssl-%%G.log 2>&1"
-FOR /L %%G IN (1,1,%NODES_COUNT%) DO start "Cache Node #%%G" /low /MIN cmd /C "%BIN_PATH%\ggstart.bat -v %CONFIG_DIR%\spring-cache.xml >> %IGNITE_HOME%\work\log\cache-node-%%G.log 2>&1"
+FOR /L %%G IN (1,1,%NODES_COUNT%) DO start "Node #%%G" /low /MIN cmd /C "%BIN_PATH%\ignite.bat -v %CONFIG_DIR%\spring-server-node.xml >> %IGNITE_HOME%\work\log\node-%%G.log 2>&1"
+FOR /L %%G IN (1,1,%NODES_COUNT%) DO start "SSL Node #%%G" /low /MIN cmd /C "%BIN_PATH%\ignite.bat -v %CONFIG_DIR%\spring-server-ssl-node.xml >> %IGNITE_HOME%\work\log\node-ssl-%%G.log 2>&1"
+FOR /L %%G IN (1,1,%NODES_COUNT%) DO start "Cache Node #%%G" /low /MIN cmd /C "%BIN_PATH%\ignite.bat -v %CONFIG_DIR%\spring-cache.xml >> %IGNITE_HOME%\work\log\cache-node-%%G.log 2>&1"
 
 echo Wait 60 seconds while nodes started.
 ping -n 60 127.0.0.1 > NUL
@@ -45,8 +45,8 @@ ping -n 60 127.0.0.1 > NUL
 rem Disable hostname verification for self-signed certificates.
 set JVM_OPTS=%JVM_OPTS% -DIGNITE_DISABLE_HOSTNAME_VERIFIER=true
 
-FOR /L %%G IN (1,1,1) DO start "Router #%%G" /low /MIN cmd /C "%BIN_PATH%\ggrouter.bat -v %CONFIG_DIR%\spring-router.xml >> %IGNITE_HOME%\work\log\router-%%G.log 2>&1"
-FOR /L %%G IN (1,1,1) DO start "SSL Router #%%G" /low /MIN cmd /C "%BIN_PATH%\ggrouter.bat -v %CONFIG_DIR%\spring-router-ssl.xml >> %IGNITE_HOME%\work\log\router-ssl-%%G.log 2>&1"
+FOR /L %%G IN (1,1,1) DO start "Router #%%G" /low /MIN cmd /C "%BIN_PATH%\igniterouter.bat -v %CONFIG_DIR%\spring-router.xml >> %IGNITE_HOME%\work\log\router-%%G.log 2>&1"
+FOR /L %%G IN (1,1,1) DO start "SSL Router #%%G" /low /MIN cmd /C "%BIN_PATH%\igniterouter.bat -v %CONFIG_DIR%\spring-router-ssl.xml >> %IGNITE_HOME%\work\log\router-ssl-%%G.log 2>&1"
 
 echo Wait 10 seconds while routers started.
 ping -n 10 127.0.0.1 > NUL

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/bin/start-nodes.sh
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/bin/start-nodes.sh b/modules/clients/src/test/bin/start-nodes.sh
index 739a81e..cb68204 100644
--- a/modules/clients/src/test/bin/start-nodes.sh
+++ b/modules/clients/src/test/bin/start-nodes.sh
@@ -63,7 +63,7 @@ do
     LOG_FILE=${IGNITE_HOME}/work/log/node-${iter}.log
 
     echo Start node ${iter}: ${LOG_FILE}
-    nohup /bin/bash $BIN_PATH/ggstart.sh $CONFIG_DIR/spring-server-node.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
+    nohup /bin/bash $BIN_PATH/ignite.sh $CONFIG_DIR/spring-server-node.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
 done
 
 for iter in {1..2}
@@ -71,7 +71,7 @@ do
     LOG_FILE=${IGNITE_HOME}/work/log/node-ssl-${iter}.log
 
     echo Start SSL node ${iter}: ${LOG_FILE}
-    nohup /bin/bash $BIN_PATH/ggstart.sh $CONFIG_DIR/spring-server-ssl-node.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
+    nohup /bin/bash $BIN_PATH/ignite.sh $CONFIG_DIR/spring-server-ssl-node.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
 done
 
 echo Wait 60 seconds while nodes start.
@@ -79,14 +79,14 @@ sleep 60
 
 LOG_FILE=${IGNITE_HOME}/work/log/router.log
 echo Start Router: ${LOG_FILE}
-nohup /bin/bash $BIN_PATH/ggrouter.sh $CONFIG_DIR/spring-router.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
+nohup /bin/bash $BIN_PATH/igniterouter.sh $CONFIG_DIR/spring-router.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
 
 # Disable hostname verification for self-signed certificates.
 export JVM_OPTS="${JVM_OPTS} -DIGNITE_DISABLE_HOSTNAME_VERIFIER=true"
 
 LOG_FILE=${IGNITE_HOME}/work/log/router-ssl.log
 echo Start Router SSL: ${LOG_FILE}
-nohup /bin/bash $BIN_PATH/ggrouter.sh $CONFIG_DIR/spring-router-ssl.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
+nohup /bin/bash $BIN_PATH/igniterouter.sh $CONFIG_DIR/spring-router-ssl.xml -v < /dev/null > ${LOG_FILE} 2>&1 &
 
 echo Wait 30 seconds while router starts.
 sleep 30

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/resources/spring-cache.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-cache.xml b/modules/clients/src/test/resources/spring-cache.xml
index b675635..a2e62a9 100644
--- a/modules/clients/src/test/resources/spring-cache.xml
+++ b/modules/clients/src/test/resources/spring-cache.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/resources/spring-router-ssl.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-router-ssl.xml b/modules/clients/src/test/resources/spring-router-ssl.xml
index e4906c9..bf1a342 100644
--- a/modules/clients/src/test/resources/spring-router-ssl.xml
+++ b/modules/clients/src/test/resources/spring-router-ssl.xml
@@ -21,7 +21,7 @@
     Default rest router configuration.
 
     This file is automatically scanned by
-    $IGNITE_HOME/bin/ggrouter.sh and $IGNITE_HOME/bin/ggrouter.bat
+    $IGNITE_HOME/bin/igniterouter.sh and $IGNITE_HOME/bin/igniterouter.bat
     for org.gridgain.client.router.GridTcpRestRouterConfiguration and
     org.gridgain.client.router.GridHttpRestRouterConfiguration bean definitions.
     First found are used to start corresponding router instances.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/resources/spring-router.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-router.xml b/modules/clients/src/test/resources/spring-router.xml
index 09e68d8..ba078f5 100644
--- a/modules/clients/src/test/resources/spring-router.xml
+++ b/modules/clients/src/test/resources/spring-router.xml
@@ -21,7 +21,7 @@
     Default rest router configuration.
 
     This file is automatically scanned by
-    $IGNITE_HOME/bin/ggrouter.sh and $IGNITE_HOME/bin/ggrouter.bat
+    $IGNITE_HOME/bin/igniterouter.sh and $IGNITE_HOME/bin/igniterouter.bat
     for org.gridgain.client.router.GridTcpRestRouterConfiguration and
     org.gridgain.client.router.GridHttpRestRouterConfiguration bean definitions.
     First found are used to start corresponding router instances.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/resources/spring-server-node.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-server-node.xml b/modules/clients/src/test/resources/spring-server-node.xml
index 690fd7d..ccfcf0f 100644
--- a/modules/clients/src/test/resources/spring-server-node.xml
+++ b/modules/clients/src/test/resources/spring-server-node.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/clients/src/test/resources/spring-server-ssl-node.xml
----------------------------------------------------------------------
diff --git a/modules/clients/src/test/resources/spring-server-ssl-node.xml b/modules/clients/src/test/resources/spring-server-ssl-node.xml
index e02727d..68774da 100644
--- a/modules/clients/src/test/resources/spring-server-ssl-node.xml
+++ b/modules/clients/src/test/resources/spring-server-ssl-node.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java b/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
index c518ec8..6613fdd 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteCluster.java
@@ -312,7 +312,7 @@ public interface IgniteCluster extends ClusterGroup, IgniteAsyncSupport {
      * Restarts nodes satisfying optional set of predicates.
      * <p>
      * <b>NOTE:</b> this command only works for grid nodes started with GridGain
-     * {@code ggstart.sh} or {@code ggstart.bat} scripts.
+     * {@code ignite.sh} or {@code ignite.bat} scripts.
      *
      * @throws IgniteCheckedException In case of error.
      */
@@ -322,7 +322,7 @@ public interface IgniteCluster extends ClusterGroup, IgniteAsyncSupport {
      * Restarts nodes defined by provided IDs.
      * <p>
      * <b>NOTE:</b> this command only works for grid nodes started with GridGain
-     * {@code ggstart.sh} or {@code ggstart.bat} scripts.
+     * {@code ignite.sh} or {@code ignite.bat} scripts.
      *
      * @param ids IDs defining nodes to restart.
      * @throws IgniteCheckedException In case of error.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/IgniteFs.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteFs.java b/modules/core/src/main/java/org/apache/ignite/IgniteFs.java
index ff7a9b6..7e672f1 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteFs.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteFs.java
@@ -39,8 +39,8 @@ import java.util.*;
  * This API is fully thread-safe and you can use it from several threads.
  * <h1 class="header">GGFS Configuration</h1>
  * The simplest way to run a GridGain node with configured file system is to pass
- * special configuration file included in GridGain distribution to {@code ggstart.sh} or
- * {@code ggstart.bat} scripts, like this: {@code ggstart.sh config/hadoop/default-config.xml}
+ * special configuration file included in GridGain distribution to {@code ignite.sh} or
+ * {@code ignite.bat} scripts, like this: {@code ignite.sh config/hadoop/default-config.xml}
  * <p>
  * {@code GGFS} can be started as a data node or as a client node. Data node is responsible for
  * caching data, while client node is responsible for basic file system operations and accessing

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/IgniteLogger.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteLogger.java b/modules/core/src/main/java/org/apache/ignite/IgniteLogger.java
index 0c7dd32..9245e6b 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteLogger.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteLogger.java
@@ -60,7 +60,7 @@ import org.jetbrains.annotations.*;
  * will operate in normal un-suppressed logging mode. Note that all output in "quiet" mode is
  * done through standard output (STDOUT).
  * <p>
- * Note that GridGain's standard startup scripts <tt>$IGNITE_HOME/bin/ggstart.{sh|bat}</tt> start
+ * Note that GridGain's standard startup scripts <tt>$IGNITE_HOME/bin/ignite.{sh|bat}</tt> start
  * by default in "quiet" mode. Both scripts accept {@code -v} arguments to turn off "quiet" mode.
  */
 @GridToStringExclude

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/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 0af1487..2e3b6aa 100644
--- a/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
@@ -114,7 +114,7 @@ public final class IgniteSystemProperties {
      * of Ignite. In quiet mode, only warning and errors are printed into the log
      * additionally to a shortened version of standard output on the start.
      * <p>
-     * Note that if you use <tt>ggstart.{sh|bat}</tt> scripts to start Ignite they
+     * Note that if you use <tt>ignite.{sh|bat}</tt> scripts to start Ignite they
      * start by default in quiet mode. You can supply <tt>-v</tt> flag to override it.
      */
     public static final String IGNITE_QUIET = "IGNITE_QUIET";
@@ -135,7 +135,7 @@ public final class IgniteSystemProperties {
     /**
      * Name of the system property defining success file name. This file
      * is used with auto-restarting functionality when Ignite is started
-     * by supplied <tt>ggstart.{bat|sh}</tt> scripts.
+     * by supplied <tt>ignite.{bat|sh}</tt> scripts.
      */
     public static final String IGNITE_SUCCESS_FILE = "IGNITE_SUCCESS_FILE";
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/Ignition.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignition.java b/modules/core/src/main/java/org/apache/ignite/Ignition.java
index ee878ca..478021c 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignition.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignition.java
@@ -85,7 +85,7 @@ public class Ignition {
      * for a JVM to restart itself from Java application and therefore we rely on
      * external tools to provide that capability.
      * <p>
-     * Note that standard <tt>ggstart.{sh|bat}</tt> scripts support restarting when
+     * Note that standard <tt>ignite.{sh|bat}</tt> scripts support restarting when
      * JVM process exits with this code.
      */
     public static final int RESTART_EXIT_CODE = 250;
@@ -226,7 +226,7 @@ public class Ignition {
      * should be responsible for stopping it.
      * <p>
      * Note also that restarting functionality only works with the tools that specifically
-     * support GridGain's protocol for restarting. Currently only standard <tt>ggstart.{sh|bat}</tt>
+     * support GridGain's protocol for restarting. Currently only standard <tt>ignite.{sh|bat}</tt>
      * scripts support restarting of JVM GridGain's process.
      *
      * @param cancel If {@code true} then all jobs currently executing on

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/client/router/GridRouterFactory.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/client/router/GridRouterFactory.java b/modules/core/src/main/java/org/apache/ignite/client/router/GridRouterFactory.java
index d8ea4f4..4d44c2f 100644
--- a/modules/core/src/main/java/org/apache/ignite/client/router/GridRouterFactory.java
+++ b/modules/core/src/main/java/org/apache/ignite/client/router/GridRouterFactory.java
@@ -34,7 +34,7 @@ import java.util.concurrent.*;
  * See {@link GridTcpRouter} for example on how to configure and start embedded router.
  * <h1 class="header">Standalone router startup</h1>
  * Alternatively you can run routers as a standalone processes by executing
- * {@code IGNITE_HOME/bin/ggrouter.sh} or {@code IGNITE_HOME/bin/ggrouter.bat}.
+ * {@code IGNITE_HOME/bin/igniterouter.sh} or {@code IGNITE_HOME/bin/igniterouter.bat}.
  * They both accept path to a configuration file as first command line argument.
  * See {@code IGNITE_HOME/config/router/default-router.xml} for configuration example.
  *

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
index e14066c..ba410bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteDeploymentMode.java
@@ -61,7 +61,7 @@ import org.jetbrains.annotations.*;
  * <ol>
  *  <li>
  *      Simply startup stand-alone GridGain nodes by executing
- *      {@code IGNITE_HOME/ggstart.{sh|bat}} scripts.
+ *      {@code IGNITE_HOME/ignite.{sh|bat}} scripts.
  *  </li>
  *  <li>
  *      Now, all jobs executing locally or remotely can have a single instance of cache

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/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 4bd44d6..dc9d81d 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
@@ -1678,7 +1678,7 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit
         if (ctx.isEnterprise())
             U.quietAndInfo(log, "To start GUI Management & Monitoring run ggvisorui.{sh|bat}");
         else
-            U.quietAndInfo(log, "To start Console Management & Monitoring run ggvisorcmd.{sh|bat}");
+            U.quietAndInfo(log, "To start Console Management & Monitoring run ignitevisorcmd.{sh|bat}");
     }
 
     /**
@@ -1718,7 +1718,7 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit
                     U.quiet(false, "  ^-- Logging to file '" +  fileName + '\'');
 
                 U.quiet(false,
-                    "  ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or \"-v\" to ggstart.{sh|bat}",
+                    "  ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or \"-v\" to ignite.{sh|bat}",
                     "");
             }
 
@@ -2226,7 +2226,7 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit
 
     /**
      * Whether or not node restart is enabled. Node restart us supported when this node was started
-     * with {@code bin/ggstart.{sh|bat}} script using {@code -r} argument. Node can be
+     * with {@code bin/ignite.{sh|bat}} script using {@code -r} argument. Node can be
      * programmatically restarted using {@link org.apache.ignite.Ignition#restart(boolean)}} method.
      *
      * @return {@code True} if restart mode is enabled, {@code false} otherwise.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index 0f062dd..7dd9e73 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -336,7 +336,7 @@ public class IgnitionEx {
      * should be responsible for stopping it.
      * <p>
      * Note also that restarting functionality only works with the tools that specifically
-     * support GridGain's protocol for restarting. Currently only standard <tt>ggstart.{sh|bat}</tt>
+     * support GridGain's protocol for restarting. Currently only standard <tt>ignite.{sh|bat}</tt>
      * scripts support restarting of JVM GridGain's process.
      *
      * @param cancel If {@code true} then all jobs currently executing on

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/lifecycle/LifecycleBean.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/lifecycle/LifecycleBean.java b/modules/core/src/main/java/org/apache/ignite/lifecycle/LifecycleBean.java
index b6366b1..0095661 100644
--- a/modules/core/src/main/java/org/apache/ignite/lifecycle/LifecycleBean.java
+++ b/modules/core/src/main/java/org/apache/ignite/lifecycle/LifecycleBean.java
@@ -66,7 +66,7 @@ import org.apache.ignite.*;
  * If you need to tie your application logic into GridGain lifecycle,
  * you can configure lifecycle beans via standard grid configuration, add your
  * application library dependencies into {@code IGNITE_HOME/libs} folder, and
- * simply start {@code IGNITE_HOME/ggstart.{sh|bat}} scripts.
+ * simply start {@code IGNITE_HOME/ignite.{sh|bat}} scripts.
  * <p>
  * <h1 class="header">Configuration</h1>
  * Grid lifecycle beans can be configured programmatically as follows:

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
index e1d297c..bed865c 100644
--- a/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
+++ b/modules/core/src/main/java/org/apache/ignite/plugin/segmentation/GridSegmentationPolicy.java
@@ -27,7 +27,7 @@ public enum GridSegmentationPolicy {
      * When segmentation policy is {@code RESTART_JVM}, all listeners will receive
      * {@link org.apache.ignite.events.IgniteEventType#EVT_NODE_SEGMENTED} event and then JVM will be restarted.
      * Note, that this will work <b>only</b> if GridGain is started with {@link org.apache.ignite.startup.cmdline.CommandLineStartup}
-     * via standard {@code ggstart.{sh|bat}} shell script.
+     * via standard {@code ignite.{sh|bat}} shell script.
      */
     RESTART_JVM,
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
index 7ee575a..52d5f20 100644
--- a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
+++ b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineStartup.java
@@ -47,7 +47,7 @@ import static org.apache.ignite.internal.GridProductImpl.*;
  * parameter which is Spring XML configuration file path. You can run this class from command
  * line without parameters to get help message.
  * <p>
- * Note that scripts {@code ${IGNITE_HOME}/bin/ggstart.{sh|bat}} shipped with GridGain use
+ * Note that scripts {@code ${IGNITE_HOME}/bin/ignite.{sh|bat}} shipped with GridGain use
  * this startup and you can use them as an example.
  */
 @SuppressWarnings({"CallToSystemExit"})
@@ -144,23 +144,23 @@ public final class CommandLineStartup {
         if (errMsg != null)
             X.error(errMsg);
 
-        String runner = System.getProperty(IGNITE_PROG_NAME, "ggstart.{sh|bat}");
+        String runner = System.getProperty(IGNITE_PROG_NAME, "ignite.{sh|bat}");
 
         int space = runner.indexOf(' ');
 
         runner = runner.substring(0, space == -1 ? runner.length() : space);
 
         if (showUsage) {
-            boolean ggstart = runner.contains("ggstart.");
+            boolean ignite = runner.contains("ignite.");
 
             X.error(
                 "Usage:",
-                "    " + runner + (ggstart ? " [?]|[path {-v}]|[-i]" : " [?]|[-v]"),
+                "    " + runner + (ignite ? " [?]|[path {-v}]|[-i]" : " [?]|[-v]"),
                 "    Where:",
                 "    ?, /help, -help - show this message.",
                 "    -v              - verbose mode (quiet by default).");
 
-            if (ggstart) {
+            if (ignite) {
                 X.error(
                     "    -i              - interactive mode (choose configuration file from list).",
                     "    path            - path to Spring XML configuration file.",

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineTransformer.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineTransformer.java b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineTransformer.java
index e9e3726..2a29095 100644
--- a/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineTransformer.java
+++ b/modules/core/src/main/java/org/apache/ignite/startup/cmdline/CommandLineTransformer.java
@@ -26,12 +26,12 @@ import java.util.*;
  * Windows batch usage variables.
  * <p>
  * The idea behind the workaround is:<br>
- * 1. User runs ggstart.bat with some args.<br>
- * 2. ggstart.bat calls parseargs.bat with all that args.<br>
+ * 1. User runs ignite.bat with some args.<br>
+ * 2. ignite.bat calls parseargs.bat with all that args.<br>
  * 3. parsearg.bat runs this class with all that args.<br>
  * 4. This class transforms the args and prints them out.<br>
  * 5. parseargs.bat splits the output of this class and sets each variable it found.<br>
- * 6. ggstart.bat uses environment variables as if they were defined by a user.
+ * 6. ignite.bat uses environment variables as if they were defined by a user.
  * <p>
  *
  * @see <a href="http://jcommander.org/">JCommander command line parameters parsing library</a>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/bin/start-nodes-custom.bat
----------------------------------------------------------------------
diff --git a/modules/core/src/test/bin/start-nodes-custom.bat b/modules/core/src/test/bin/start-nodes-custom.bat
index ad4829b..51fbce0 100644
--- a/modules/core/src/test/bin/start-nodes-custom.bat
+++ b/modules/core/src/test/bin/start-nodes-custom.bat
@@ -19,4 +19,4 @@ if %SCRIPT_DIR:~-1,1% == \ set SCRIPT_DIR=%SCRIPT_DIR:~0,-1%
 
 :: -np option is mandatory, if it is not provided then we will wait for a user input,
 :: as a result ggservice windows service hangs forever
-call "%SCRIPT_DIR%\..\..\..\..\..\bin\ggstart.bat" -v -np modules\core\src\test\config\spring-start-nodes-attr.xml
+call "%SCRIPT_DIR%\..\..\..\..\..\bin\ignite.bat" -v -np modules\core\src\test\config\spring-start-nodes-attr.xml

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/bin/start-nodes-custom.sh
----------------------------------------------------------------------
diff --git a/modules/core/src/test/bin/start-nodes-custom.sh b/modules/core/src/test/bin/start-nodes-custom.sh
index 6845b79..75dba94 100755
--- a/modules/core/src/test/bin/start-nodes-custom.sh
+++ b/modules/core/src/test/bin/start-nodes-custom.sh
@@ -18,4 +18,4 @@ SCRIPT_DIR=$(cd $(dirname "$0"); pwd)
 
 BIN_DIR="${SCRIPT_DIR}"/../../../../..
 
-"${BIN_DIR}"/bin/ggstart.sh -v modules/core/src/test/config/spring-start-nodes-attr.xml
+"${BIN_DIR}"/bin/ignite.sh -v modules/core/src/test/config/spring-start-nodes-attr.xml


[46/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/alice-in-wonderland.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/alice-in-wonderland.txt b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/alice-in-wonderland.txt
deleted file mode 100644
index d65883a..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/alice-in-wonderland.txt
+++ /dev/null
@@ -1,3735 +0,0 @@
-Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever.  You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.org
-
-
-Title: Alice's Adventures in Wonderland
-
-Author: Lewis Carroll
-
-Posting Date: June 25, 2008 [EBook #11]
-Release Date: March, 1994
-[Last updated: December 20, 2011]
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK ALICE'S ADVENTURES IN WONDERLAND ***
-
-
-
-
-
-
-
-
-
-
-ALICE'S ADVENTURES IN WONDERLAND
-
-Lewis Carroll
-
-THE MILLENNIUM FULCRUM EDITION 3.0
-
-
-
-
-CHAPTER I. Down the Rabbit-Hole
-
-Alice was beginning to get very tired of sitting by her sister on the
-bank, and of having nothing to do: once or twice she had peeped into the
-book her sister was reading, but it had no pictures or conversations in
-it, 'and what is the use of a book,' thought Alice 'without pictures or
-conversation?'
-
-So she was considering in her own mind (as well as she could, for the
-hot day made her feel very sleepy and stupid), whether the pleasure
-of making a daisy-chain would be worth the trouble of getting up and
-picking the daisies, when suddenly a White Rabbit with pink eyes ran
-close by her.
-
-There was nothing so VERY remarkable in that; nor did Alice think it so
-VERY much out of the way to hear the Rabbit say to itself, 'Oh dear!
-Oh dear! I shall be late!' (when she thought it over afterwards, it
-occurred to her that she ought to have wondered at this, but at the time
-it all seemed quite natural); but when the Rabbit actually TOOK A WATCH
-OUT OF ITS WAISTCOAT-POCKET, and looked at it, and then hurried on,
-Alice started to her feet, for it flashed across her mind that she had
-never before seen a rabbit with either a waistcoat-pocket, or a watch
-to take out of it, and burning with curiosity, she ran across the field
-after it, and fortunately was just in time to see it pop down a large
-rabbit-hole under the hedge.
-
-In another moment down went Alice after it, never once considering how
-in the world she was to get out again.
-
-The rabbit-hole went straight on like a tunnel for some way, and then
-dipped suddenly down, so suddenly that Alice had not a moment to think
-about stopping herself before she found herself falling down a very deep
-well.
-
-Either the well was very deep, or she fell very slowly, for she had
-plenty of time as she went down to look about her and to wonder what was
-going to happen next. First, she tried to look down and make out what
-she was coming to, but it was too dark to see anything; then she
-looked at the sides of the well, and noticed that they were filled with
-cupboards and book-shelves; here and there she saw maps and pictures
-hung upon pegs. She took down a jar from one of the shelves as
-she passed; it was labelled 'ORANGE MARMALADE', but to her great
-disappointment it was empty: she did not like to drop the jar for fear
-of killing somebody, so managed to put it into one of the cupboards as
-she fell past it.
-
-'Well!' thought Alice to herself, 'after such a fall as this, I shall
-think nothing of tumbling down stairs! How brave they'll all think me at
-home! Why, I wouldn't say anything about it, even if I fell off the top
-of the house!' (Which was very likely true.)
-
-Down, down, down. Would the fall NEVER come to an end! 'I wonder how
-many miles I've fallen by this time?' she said aloud. 'I must be getting
-somewhere near the centre of the earth. Let me see: that would be four
-thousand miles down, I think--' (for, you see, Alice had learnt several
-things of this sort in her lessons in the schoolroom, and though this
-was not a VERY good opportunity for showing off her knowledge, as there
-was no one to listen to her, still it was good practice to say it over)
-'--yes, that's about the right distance--but then I wonder what Latitude
-or Longitude I've got to?' (Alice had no idea what Latitude was, or
-Longitude either, but thought they were nice grand words to say.)
-
-Presently she began again. 'I wonder if I shall fall right THROUGH the
-earth! How funny it'll seem to come out among the people that walk with
-their heads downward! The Antipathies, I think--' (she was rather glad
-there WAS no one listening, this time, as it didn't sound at all the
-right word) '--but I shall have to ask them what the name of the country
-is, you know. Please, Ma'am, is this New Zealand or Australia?' (and
-she tried to curtsey as she spoke--fancy CURTSEYING as you're falling
-through the air! Do you think you could manage it?) 'And what an
-ignorant little girl she'll think me for asking! No, it'll never do to
-ask: perhaps I shall see it written up somewhere.'
-
-Down, down, down. There was nothing else to do, so Alice soon began
-talking again. 'Dinah'll miss me very much to-night, I should think!'
-(Dinah was the cat.) 'I hope they'll remember her saucer of milk at
-tea-time. Dinah my dear! I wish you were down here with me! There are no
-mice in the air, I'm afraid, but you might catch a bat, and that's very
-like a mouse, you know. But do cats eat bats, I wonder?' And here Alice
-began to get rather sleepy, and went on saying to herself, in a dreamy
-sort of way, 'Do cats eat bats? Do cats eat bats?' and sometimes, 'Do
-bats eat cats?' for, you see, as she couldn't answer either question,
-it didn't much matter which way she put it. She felt that she was dozing
-off, and had just begun to dream that she was walking hand in hand with
-Dinah, and saying to her very earnestly, 'Now, Dinah, tell me the truth:
-did you ever eat a bat?' when suddenly, thump! thump! down she came upon
-a heap of sticks and dry leaves, and the fall was over.
-
-Alice was not a bit hurt, and she jumped up on to her feet in a moment:
-she looked up, but it was all dark overhead; before her was another
-long passage, and the White Rabbit was still in sight, hurrying down it.
-There was not a moment to be lost: away went Alice like the wind, and
-was just in time to hear it say, as it turned a corner, 'Oh my ears
-and whiskers, how late it's getting!' She was close behind it when she
-turned the corner, but the Rabbit was no longer to be seen: she found
-herself in a long, low hall, which was lit up by a row of lamps hanging
-from the roof.
-
-There were doors all round the hall, but they were all locked; and when
-Alice had been all the way down one side and up the other, trying every
-door, she walked sadly down the middle, wondering how she was ever to
-get out again.
-
-Suddenly she came upon a little three-legged table, all made of solid
-glass; there was nothing on it except a tiny golden key, and Alice's
-first thought was that it might belong to one of the doors of the hall;
-but, alas! either the locks were too large, or the key was too small,
-but at any rate it would not open any of them. However, on the second
-time round, she came upon a low curtain she had not noticed before, and
-behind it was a little door about fifteen inches high: she tried the
-little golden key in the lock, and to her great delight it fitted!
-
-Alice opened the door and found that it led into a small passage, not
-much larger than a rat-hole: she knelt down and looked along the passage
-into the loveliest garden you ever saw. How she longed to get out of
-that dark hall, and wander about among those beds of bright flowers and
-those cool fountains, but she could not even get her head through the
-doorway; 'and even if my head would go through,' thought poor Alice, 'it
-would be of very little use without my shoulders. Oh, how I wish I could
-shut up like a telescope! I think I could, if I only know how to begin.'
-For, you see, so many out-of-the-way things had happened lately,
-that Alice had begun to think that very few things indeed were really
-impossible.
-
-There seemed to be no use in waiting by the little door, so she went
-back to the table, half hoping she might find another key on it, or at
-any rate a book of rules for shutting people up like telescopes: this
-time she found a little bottle on it, ('which certainly was not here
-before,' said Alice,) and round the neck of the bottle was a paper
-label, with the words 'DRINK ME' beautifully printed on it in large
-letters.
-
-It was all very well to say 'Drink me,' but the wise little Alice was
-not going to do THAT in a hurry. 'No, I'll look first,' she said, 'and
-see whether it's marked "poison" or not'; for she had read several nice
-little histories about children who had got burnt, and eaten up by wild
-beasts and other unpleasant things, all because they WOULD not remember
-the simple rules their friends had taught them: such as, that a red-hot
-poker will burn you if you hold it too long; and that if you cut your
-finger VERY deeply with a knife, it usually bleeds; and she had never
-forgotten that, if you drink much from a bottle marked 'poison,' it is
-almost certain to disagree with you, sooner or later.
-
-However, this bottle was NOT marked 'poison,' so Alice ventured to taste
-it, and finding it very nice, (it had, in fact, a sort of mixed flavour
-of cherry-tart, custard, pine-apple, roast turkey, toffee, and hot
-buttered toast,) she very soon finished it off.
-
-  *    *    *    *    *    *    *
-
-    *    *    *    *    *    *
-
-  *    *    *    *    *    *    *
-
-'What a curious feeling!' said Alice; 'I must be shutting up like a
-telescope.'
-
-And so it was indeed: she was now only ten inches high, and her face
-brightened up at the thought that she was now the right size for going
-through the little door into that lovely garden. First, however, she
-waited for a few minutes to see if she was going to shrink any further:
-she felt a little nervous about this; 'for it might end, you know,' said
-Alice to herself, 'in my going out altogether, like a candle. I wonder
-what I should be like then?' And she tried to fancy what the flame of a
-candle is like after the candle is blown out, for she could not remember
-ever having seen such a thing.
-
-After a while, finding that nothing more happened, she decided on going
-into the garden at once; but, alas for poor Alice! when she got to the
-door, she found she had forgotten the little golden key, and when she
-went back to the table for it, she found she could not possibly reach
-it: she could see it quite plainly through the glass, and she tried her
-best to climb up one of the legs of the table, but it was too slippery;
-and when she had tired herself out with trying, the poor little thing
-sat down and cried.
-
-'Come, there's no use in crying like that!' said Alice to herself,
-rather sharply; 'I advise you to leave off this minute!' She generally
-gave herself very good advice, (though she very seldom followed it),
-and sometimes she scolded herself so severely as to bring tears into
-her eyes; and once she remembered trying to box her own ears for having
-cheated herself in a game of croquet she was playing against herself,
-for this curious child was very fond of pretending to be two people.
-'But it's no use now,' thought poor Alice, 'to pretend to be two people!
-Why, there's hardly enough of me left to make ONE respectable person!'
-
-Soon her eye fell on a little glass box that was lying under the table:
-she opened it, and found in it a very small cake, on which the words
-'EAT ME' were beautifully marked in currants. 'Well, I'll eat it,' said
-Alice, 'and if it makes me grow larger, I can reach the key; and if it
-makes me grow smaller, I can creep under the door; so either way I'll
-get into the garden, and I don't care which happens!'
-
-She ate a little bit, and said anxiously to herself, 'Which way? Which
-way?', holding her hand on the top of her head to feel which way it was
-growing, and she was quite surprised to find that she remained the same
-size: to be sure, this generally happens when one eats cake, but Alice
-had got so much into the way of expecting nothing but out-of-the-way
-things to happen, that it seemed quite dull and stupid for life to go on
-in the common way.
-
-So she set to work, and very soon finished off the cake.
-
-  *    *    *    *    *    *    *
-
-    *    *    *    *    *    *
-
-  *    *    *    *    *    *    *
-
-
-
-
-CHAPTER II. The Pool of Tears
-
-'Curiouser and curiouser!' cried Alice (she was so much surprised, that
-for the moment she quite forgot how to speak good English); 'now I'm
-opening out like the largest telescope that ever was! Good-bye, feet!'
-(for when she looked down at her feet, they seemed to be almost out of
-sight, they were getting so far off). 'Oh, my poor little feet, I wonder
-who will put on your shoes and stockings for you now, dears? I'm sure
-_I_ shan't be able! I shall be a great deal too far off to trouble
-myself about you: you must manage the best way you can;--but I must be
-kind to them,' thought Alice, 'or perhaps they won't walk the way I want
-to go! Let me see: I'll give them a new pair of boots every Christmas.'
-
-And she went on planning to herself how she would manage it. 'They must
-go by the carrier,' she thought; 'and how funny it'll seem, sending
-presents to one's own feet! And how odd the directions will look!
-
-     ALICE'S RIGHT FOOT, ESQ.
-       HEARTHRUG,
-         NEAR THE FENDER,
-           (WITH ALICE'S LOVE).
-
-Oh dear, what nonsense I'm talking!'
-
-Just then her head struck against the roof of the hall: in fact she was
-now more than nine feet high, and she at once took up the little golden
-key and hurried off to the garden door.
-
-Poor Alice! It was as much as she could do, lying down on one side, to
-look through into the garden with one eye; but to get through was more
-hopeless than ever: she sat down and began to cry again.
-
-'You ought to be ashamed of yourself,' said Alice, 'a great girl like
-you,' (she might well say this), 'to go on crying in this way! Stop this
-moment, I tell you!' But she went on all the same, shedding gallons of
-tears, until there was a large pool all round her, about four inches
-deep and reaching half down the hall.
-
-After a time she heard a little pattering of feet in the distance, and
-she hastily dried her eyes to see what was coming. It was the White
-Rabbit returning, splendidly dressed, with a pair of white kid gloves in
-one hand and a large fan in the other: he came trotting along in a great
-hurry, muttering to himself as he came, 'Oh! the Duchess, the Duchess!
-Oh! won't she be savage if I've kept her waiting!' Alice felt so
-desperate that she was ready to ask help of any one; so, when the Rabbit
-came near her, she began, in a low, timid voice, 'If you please, sir--'
-The Rabbit started violently, dropped the white kid gloves and the fan,
-and skurried away into the darkness as hard as he could go.
-
-Alice took up the fan and gloves, and, as the hall was very hot, she
-kept fanning herself all the time she went on talking: 'Dear, dear! How
-queer everything is to-day! And yesterday things went on just as usual.
-I wonder if I've been changed in the night? Let me think: was I the
-same when I got up this morning? I almost think I can remember feeling a
-little different. But if I'm not the same, the next question is, Who
-in the world am I? Ah, THAT'S the great puzzle!' And she began thinking
-over all the children she knew that were of the same age as herself, to
-see if she could have been changed for any of them.
-
-'I'm sure I'm not Ada,' she said, 'for her hair goes in such long
-ringlets, and mine doesn't go in ringlets at all; and I'm sure I can't
-be Mabel, for I know all sorts of things, and she, oh! she knows such a
-very little! Besides, SHE'S she, and I'm I, and--oh dear, how puzzling
-it all is! I'll try if I know all the things I used to know. Let me
-see: four times five is twelve, and four times six is thirteen, and
-four times seven is--oh dear! I shall never get to twenty at that rate!
-However, the Multiplication Table doesn't signify: let's try Geography.
-London is the capital of Paris, and Paris is the capital of Rome, and
-Rome--no, THAT'S all wrong, I'm certain! I must have been changed for
-Mabel! I'll try and say "How doth the little--"' and she crossed her
-hands on her lap as if she were saying lessons, and began to repeat it,
-but her voice sounded hoarse and strange, and the words did not come the
-same as they used to do:--
-
-     'How doth the little crocodile
-      Improve his shining tail,
-     And pour the waters of the Nile
-      On every golden scale!
-
-     'How cheerfully he seems to grin,
-      How neatly spread his claws,
-     And welcome little fishes in
-      With gently smiling jaws!'
-
-'I'm sure those are not the right words,' said poor Alice, and her eyes
-filled with tears again as she went on, 'I must be Mabel after all, and
-I shall have to go and live in that poky little house, and have next to
-no toys to play with, and oh! ever so many lessons to learn! No, I've
-made up my mind about it; if I'm Mabel, I'll stay down here! It'll be no
-use their putting their heads down and saying "Come up again, dear!" I
-shall only look up and say "Who am I then? Tell me that first, and then,
-if I like being that person, I'll come up: if not, I'll stay down here
-till I'm somebody else"--but, oh dear!' cried Alice, with a sudden burst
-of tears, 'I do wish they WOULD put their heads down! I am so VERY tired
-of being all alone here!'
-
-As she said this she looked down at her hands, and was surprised to see
-that she had put on one of the Rabbit's little white kid gloves while
-she was talking. 'How CAN I have done that?' she thought. 'I must
-be growing small again.' She got up and went to the table to measure
-herself by it, and found that, as nearly as she could guess, she was now
-about two feet high, and was going on shrinking rapidly: she soon found
-out that the cause of this was the fan she was holding, and she dropped
-it hastily, just in time to avoid shrinking away altogether.
-
-'That WAS a narrow escape!' said Alice, a good deal frightened at the
-sudden change, but very glad to find herself still in existence; 'and
-now for the garden!' and she ran with all speed back to the little door:
-but, alas! the little door was shut again, and the little golden key was
-lying on the glass table as before, 'and things are worse than ever,'
-thought the poor child, 'for I never was so small as this before, never!
-And I declare it's too bad, that it is!'
-
-As she said these words her foot slipped, and in another moment, splash!
-she was up to her chin in salt water. Her first idea was that she
-had somehow fallen into the sea, 'and in that case I can go back by
-railway,' she said to herself. (Alice had been to the seaside once in
-her life, and had come to the general conclusion, that wherever you go
-to on the English coast you find a number of bathing machines in the
-sea, some children digging in the sand with wooden spades, then a row
-of lodging houses, and behind them a railway station.) However, she soon
-made out that she was in the pool of tears which she had wept when she
-was nine feet high.
-
-'I wish I hadn't cried so much!' said Alice, as she swam about, trying
-to find her way out. 'I shall be punished for it now, I suppose, by
-being drowned in my own tears! That WILL be a queer thing, to be sure!
-However, everything is queer to-day.'
-
-Just then she heard something splashing about in the pool a little way
-off, and she swam nearer to make out what it was: at first she thought
-it must be a walrus or hippopotamus, but then she remembered how small
-she was now, and she soon made out that it was only a mouse that had
-slipped in like herself.
-
-'Would it be of any use, now,' thought Alice, 'to speak to this mouse?
-Everything is so out-of-the-way down here, that I should think very
-likely it can talk: at any rate, there's no harm in trying.' So she
-began: 'O Mouse, do you know the way out of this pool? I am very tired
-of swimming about here, O Mouse!' (Alice thought this must be the right
-way of speaking to a mouse: she had never done such a thing before, but
-she remembered having seen in her brother's Latin Grammar, 'A mouse--of
-a mouse--to a mouse--a mouse--O mouse!') The Mouse looked at her rather
-inquisitively, and seemed to her to wink with one of its little eyes,
-but it said nothing.
-
-'Perhaps it doesn't understand English,' thought Alice; 'I daresay it's
-a French mouse, come over with William the Conqueror.' (For, with all
-her knowledge of history, Alice had no very clear notion how long ago
-anything had happened.) So she began again: 'Ou est ma chatte?' which
-was the first sentence in her French lesson-book. The Mouse gave a
-sudden leap out of the water, and seemed to quiver all over with fright.
-'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt
-the poor animal's feelings. 'I quite forgot you didn't like cats.'
-
-'Not like cats!' cried the Mouse, in a shrill, passionate voice. 'Would
-YOU like cats if you were me?'
-
-'Well, perhaps not,' said Alice in a soothing tone: 'don't be angry
-about it. And yet I wish I could show you our cat Dinah: I think you'd
-take a fancy to cats if you could only see her. She is such a dear quiet
-thing,' Alice went on, half to herself, as she swam lazily about in the
-pool, 'and she sits purring so nicely by the fire, licking her paws and
-washing her face--and she is such a nice soft thing to nurse--and she's
-such a capital one for catching mice--oh, I beg your pardon!' cried
-Alice again, for this time the Mouse was bristling all over, and she
-felt certain it must be really offended. 'We won't talk about her any
-more if you'd rather not.'
-
-'We indeed!' cried the Mouse, who was trembling down to the end of his
-tail. 'As if I would talk on such a subject! Our family always HATED
-cats: nasty, low, vulgar things! Don't let me hear the name again!'
-
-'I won't indeed!' said Alice, in a great hurry to change the subject of
-conversation. 'Are you--are you fond--of--of dogs?' The Mouse did not
-answer, so Alice went on eagerly: 'There is such a nice little dog near
-our house I should like to show you! A little bright-eyed terrier, you
-know, with oh, such long curly brown hair! And it'll fetch things when
-you throw them, and it'll sit up and beg for its dinner, and all sorts
-of things--I can't remember half of them--and it belongs to a farmer,
-you know, and he says it's so useful, it's worth a hundred pounds! He
-says it kills all the rats and--oh dear!' cried Alice in a sorrowful
-tone, 'I'm afraid I've offended it again!' For the Mouse was swimming
-away from her as hard as it could go, and making quite a commotion in
-the pool as it went.
-
-So she called softly after it, 'Mouse dear! Do come back again, and we
-won't talk about cats or dogs either, if you don't like them!' When the
-Mouse heard this, it turned round and swam slowly back to her: its
-face was quite pale (with passion, Alice thought), and it said in a low
-trembling voice, 'Let us get to the shore, and then I'll tell you my
-history, and you'll understand why it is I hate cats and dogs.'
-
-It was high time to go, for the pool was getting quite crowded with the
-birds and animals that had fallen into it: there were a Duck and a Dodo,
-a Lory and an Eaglet, and several other curious creatures. Alice led the
-way, and the whole party swam to the shore.
-
-
-
-
-CHAPTER III. A Caucus-Race and a Long Tale
-
-They were indeed a queer-looking party that assembled on the bank--the
-birds with draggled feathers, the animals with their fur clinging close
-to them, and all dripping wet, cross, and uncomfortable.
-
-The first question of course was, how to get dry again: they had a
-consultation about this, and after a few minutes it seemed quite natural
-to Alice to find herself talking familiarly with them, as if she had
-known them all her life. Indeed, she had quite a long argument with the
-Lory, who at last turned sulky, and would only say, 'I am older than
-you, and must know better'; and this Alice would not allow without
-knowing how old it was, and, as the Lory positively refused to tell its
-age, there was no more to be said.
-
-At last the Mouse, who seemed to be a person of authority among them,
-called out, 'Sit down, all of you, and listen to me! I'LL soon make you
-dry enough!' They all sat down at once, in a large ring, with the Mouse
-in the middle. Alice kept her eyes anxiously fixed on it, for she felt
-sure she would catch a bad cold if she did not get dry very soon.
-
-'Ahem!' said the Mouse with an important air, 'are you all ready? This
-is the driest thing I know. Silence all round, if you please! "William
-the Conqueror, whose cause was favoured by the pope, was soon submitted
-to by the English, who wanted leaders, and had been of late much
-accustomed to usurpation and conquest. Edwin and Morcar, the earls of
-Mercia and Northumbria--"'
-
-'Ugh!' said the Lory, with a shiver.
-
-'I beg your pardon!' said the Mouse, frowning, but very politely: 'Did
-you speak?'
-
-'Not I!' said the Lory hastily.
-
-'I thought you did,' said the Mouse. '--I proceed. "Edwin and Morcar,
-the earls of Mercia and Northumbria, declared for him: and even Stigand,
-the patriotic archbishop of Canterbury, found it advisable--"'
-
-'Found WHAT?' said the Duck.
-
-'Found IT,' the Mouse replied rather crossly: 'of course you know what
-"it" means.'
-
-'I know what "it" means well enough, when I find a thing,' said the
-Duck: 'it's generally a frog or a worm. The question is, what did the
-archbishop find?'
-
-The Mouse did not notice this question, but hurriedly went on, '"--found
-it advisable to go with Edgar Atheling to meet William and offer him the
-crown. William's conduct at first was moderate. But the insolence of his
-Normans--" How are you getting on now, my dear?' it continued, turning
-to Alice as it spoke.
-
-'As wet as ever,' said Alice in a melancholy tone: 'it doesn't seem to
-dry me at all.'
-
-'In that case,' said the Dodo solemnly, rising to its feet, 'I move
-that the meeting adjourn, for the immediate adoption of more energetic
-remedies--'
-
-'Speak English!' said the Eaglet. 'I don't know the meaning of half
-those long words, and, what's more, I don't believe you do either!' And
-the Eaglet bent down its head to hide a smile: some of the other birds
-tittered audibly.
-
-'What I was going to say,' said the Dodo in an offended tone, 'was, that
-the best thing to get us dry would be a Caucus-race.'
-
-'What IS a Caucus-race?' said Alice; not that she wanted much to know,
-but the Dodo had paused as if it thought that SOMEBODY ought to speak,
-and no one else seemed inclined to say anything.
-
-'Why,' said the Dodo, 'the best way to explain it is to do it.' (And, as
-you might like to try the thing yourself, some winter day, I will tell
-you how the Dodo managed it.)
-
-First it marked out a race-course, in a sort of circle, ('the exact
-shape doesn't matter,' it said,) and then all the party were placed
-along the course, here and there. There was no 'One, two, three, and
-away,' but they began running when they liked, and left off when they
-liked, so that it was not easy to know when the race was over. However,
-when they had been running half an hour or so, and were quite dry again,
-the Dodo suddenly called out 'The race is over!' and they all crowded
-round it, panting, and asking, 'But who has won?'
-
-This question the Dodo could not answer without a great deal of thought,
-and it sat for a long time with one finger pressed upon its forehead
-(the position in which you usually see Shakespeare, in the pictures
-of him), while the rest waited in silence. At last the Dodo said,
-'EVERYBODY has won, and all must have prizes.'
-
-'But who is to give the prizes?' quite a chorus of voices asked.
-
-'Why, SHE, of course,' said the Dodo, pointing to Alice with one finger;
-and the whole party at once crowded round her, calling out in a confused
-way, 'Prizes! Prizes!'
-
-Alice had no idea what to do, and in despair she put her hand in her
-pocket, and pulled out a box of comfits, (luckily the salt water had
-not got into it), and handed them round as prizes. There was exactly one
-a-piece all round.
-
-'But she must have a prize herself, you know,' said the Mouse.
-
-'Of course,' the Dodo replied very gravely. 'What else have you got in
-your pocket?' he went on, turning to Alice.
-
-'Only a thimble,' said Alice sadly.
-
-'Hand it over here,' said the Dodo.
-
-Then they all crowded round her once more, while the Dodo solemnly
-presented the thimble, saying 'We beg your acceptance of this elegant
-thimble'; and, when it had finished this short speech, they all cheered.
-
-Alice thought the whole thing very absurd, but they all looked so grave
-that she did not dare to laugh; and, as she could not think of anything
-to say, she simply bowed, and took the thimble, looking as solemn as she
-could.
-
-The next thing was to eat the comfits: this caused some noise and
-confusion, as the large birds complained that they could not taste
-theirs, and the small ones choked and had to be patted on the back.
-However, it was over at last, and they sat down again in a ring, and
-begged the Mouse to tell them something more.
-
-'You promised to tell me your history, you know,' said Alice, 'and why
-it is you hate--C and D,' she added in a whisper, half afraid that it
-would be offended again.
-
-'Mine is a long and a sad tale!' said the Mouse, turning to Alice, and
-sighing.
-
-'It IS a long tail, certainly,' said Alice, looking down with wonder at
-the Mouse's tail; 'but why do you call it sad?' And she kept on puzzling
-about it while the Mouse was speaking, so that her idea of the tale was
-something like this:--
-
-         'Fury said to a
-         mouse, That he
-        met in the
-       house,
-     "Let us
-      both go to
-       law: I will
-        prosecute
-         YOU.--Come,
-           I'll take no
-           denial; We
-          must have a
-        trial: For
-      really this
-     morning I've
-    nothing
-    to do."
-     Said the
-      mouse to the
-       cur, "Such
-        a trial,
-         dear Sir,
-            With
-          no jury
-        or judge,
-       would be
-      wasting
-      our
-      breath."
-       "I'll be
-        judge, I'll
-         be jury,"
-            Said
-         cunning
-          old Fury:
-          "I'll
-          try the
-            whole
-            cause,
-              and
-           condemn
-           you
-          to
-           death."'
-
-
-'You are not attending!' said the Mouse to Alice severely. 'What are you
-thinking of?'
-
-'I beg your pardon,' said Alice very humbly: 'you had got to the fifth
-bend, I think?'
-
-'I had NOT!' cried the Mouse, sharply and very angrily.
-
-'A knot!' said Alice, always ready to make herself useful, and looking
-anxiously about her. 'Oh, do let me help to undo it!'
-
-'I shall do nothing of the sort,' said the Mouse, getting up and walking
-away. 'You insult me by talking such nonsense!'
-
-'I didn't mean it!' pleaded poor Alice. 'But you're so easily offended,
-you know!'
-
-The Mouse only growled in reply.
-
-'Please come back and finish your story!' Alice called after it; and the
-others all joined in chorus, 'Yes, please do!' but the Mouse only shook
-its head impatiently, and walked a little quicker.
-
-'What a pity it wouldn't stay!' sighed the Lory, as soon as it was quite
-out of sight; and an old Crab took the opportunity of saying to her
-daughter 'Ah, my dear! Let this be a lesson to you never to lose
-YOUR temper!' 'Hold your tongue, Ma!' said the young Crab, a little
-snappishly. 'You're enough to try the patience of an oyster!'
-
-'I wish I had our Dinah here, I know I do!' said Alice aloud, addressing
-nobody in particular. 'She'd soon fetch it back!'
-
-'And who is Dinah, if I might venture to ask the question?' said the
-Lory.
-
-Alice replied eagerly, for she was always ready to talk about her pet:
-'Dinah's our cat. And she's such a capital one for catching mice you
-can't think! And oh, I wish you could see her after the birds! Why,
-she'll eat a little bird as soon as look at it!'
-
-This speech caused a remarkable sensation among the party. Some of the
-birds hurried off at once: one old Magpie began wrapping itself up very
-carefully, remarking, 'I really must be getting home; the night-air
-doesn't suit my throat!' and a Canary called out in a trembling voice to
-its children, 'Come away, my dears! It's high time you were all in bed!'
-On various pretexts they all moved off, and Alice was soon left alone.
-
-'I wish I hadn't mentioned Dinah!' she said to herself in a melancholy
-tone. 'Nobody seems to like her, down here, and I'm sure she's the best
-cat in the world! Oh, my dear Dinah! I wonder if I shall ever see you
-any more!' And here poor Alice began to cry again, for she felt very
-lonely and low-spirited. In a little while, however, she again heard
-a little pattering of footsteps in the distance, and she looked up
-eagerly, half hoping that the Mouse had changed his mind, and was coming
-back to finish his story.
-
-
-
-
-CHAPTER IV. The Rabbit Sends in a Little Bill
-
-It was the White Rabbit, trotting slowly back again, and looking
-anxiously about as it went, as if it had lost something; and she heard
-it muttering to itself 'The Duchess! The Duchess! Oh my dear paws! Oh
-my fur and whiskers! She'll get me executed, as sure as ferrets are
-ferrets! Where CAN I have dropped them, I wonder?' Alice guessed in a
-moment that it was looking for the fan and the pair of white kid gloves,
-and she very good-naturedly began hunting about for them, but they were
-nowhere to be seen--everything seemed to have changed since her swim in
-the pool, and the great hall, with the glass table and the little door,
-had vanished completely.
-
-Very soon the Rabbit noticed Alice, as she went hunting about, and
-called out to her in an angry tone, 'Why, Mary Ann, what ARE you doing
-out here? Run home this moment, and fetch me a pair of gloves and a fan!
-Quick, now!' And Alice was so much frightened that she ran off at once
-in the direction it pointed to, without trying to explain the mistake it
-had made.
-
-'He took me for his housemaid,' she said to herself as she ran. 'How
-surprised he'll be when he finds out who I am! But I'd better take him
-his fan and gloves--that is, if I can find them.' As she said this, she
-came upon a neat little house, on the door of which was a bright brass
-plate with the name 'W. RABBIT' engraved upon it. She went in without
-knocking, and hurried upstairs, in great fear lest she should meet the
-real Mary Ann, and be turned out of the house before she had found the
-fan and gloves.
-
-'How queer it seems,' Alice said to herself, 'to be going messages for
-a rabbit! I suppose Dinah'll be sending me on messages next!' And she
-began fancying the sort of thing that would happen: '"Miss Alice! Come
-here directly, and get ready for your walk!" "Coming in a minute,
-nurse! But I've got to see that the mouse doesn't get out." Only I don't
-think,' Alice went on, 'that they'd let Dinah stop in the house if it
-began ordering people about like that!'
-
-By this time she had found her way into a tidy little room with a table
-in the window, and on it (as she had hoped) a fan and two or three pairs
-of tiny white kid gloves: she took up the fan and a pair of the gloves,
-and was just going to leave the room, when her eye fell upon a little
-bottle that stood near the looking-glass. There was no label this time
-with the words 'DRINK ME,' but nevertheless she uncorked it and put it
-to her lips. 'I know SOMETHING interesting is sure to happen,' she said
-to herself, 'whenever I eat or drink anything; so I'll just see what
-this bottle does. I do hope it'll make me grow large again, for really
-I'm quite tired of being such a tiny little thing!'
-
-It did so indeed, and much sooner than she had expected: before she had
-drunk half the bottle, she found her head pressing against the ceiling,
-and had to stoop to save her neck from being broken. She hastily put
-down the bottle, saying to herself 'That's quite enough--I hope I shan't
-grow any more--As it is, I can't get out at the door--I do wish I hadn't
-drunk quite so much!'
-
-Alas! it was too late to wish that! She went on growing, and growing,
-and very soon had to kneel down on the floor: in another minute there
-was not even room for this, and she tried the effect of lying down with
-one elbow against the door, and the other arm curled round her head.
-Still she went on growing, and, as a last resource, she put one arm out
-of the window, and one foot up the chimney, and said to herself 'Now I
-can do no more, whatever happens. What WILL become of me?'
-
-Luckily for Alice, the little magic bottle had now had its full effect,
-and she grew no larger: still it was very uncomfortable, and, as there
-seemed to be no sort of chance of her ever getting out of the room
-again, no wonder she felt unhappy.
-
-'It was much pleasanter at home,' thought poor Alice, 'when one wasn't
-always growing larger and smaller, and being ordered about by mice and
-rabbits. I almost wish I hadn't gone down that rabbit-hole--and yet--and
-yet--it's rather curious, you know, this sort of life! I do wonder what
-CAN have happened to me! When I used to read fairy-tales, I fancied that
-kind of thing never happened, and now here I am in the middle of one!
-There ought to be a book written about me, that there ought! And when I
-grow up, I'll write one--but I'm grown up now,' she added in a sorrowful
-tone; 'at least there's no room to grow up any more HERE.'
-
-'But then,' thought Alice, 'shall I NEVER get any older than I am
-now? That'll be a comfort, one way--never to be an old woman--but
-then--always to have lessons to learn! Oh, I shouldn't like THAT!'
-
-'Oh, you foolish Alice!' she answered herself. 'How can you learn
-lessons in here? Why, there's hardly room for YOU, and no room at all
-for any lesson-books!'
-
-And so she went on, taking first one side and then the other, and making
-quite a conversation of it altogether; but after a few minutes she heard
-a voice outside, and stopped to listen.
-
-'Mary Ann! Mary Ann!' said the voice. 'Fetch me my gloves this moment!'
-Then came a little pattering of feet on the stairs. Alice knew it was
-the Rabbit coming to look for her, and she trembled till she shook the
-house, quite forgetting that she was now about a thousand times as large
-as the Rabbit, and had no reason to be afraid of it.
-
-Presently the Rabbit came up to the door, and tried to open it; but, as
-the door opened inwards, and Alice's elbow was pressed hard against it,
-that attempt proved a failure. Alice heard it say to itself 'Then I'll
-go round and get in at the window.'
-
-'THAT you won't' thought Alice, and, after waiting till she fancied
-she heard the Rabbit just under the window, she suddenly spread out her
-hand, and made a snatch in the air. She did not get hold of anything,
-but she heard a little shriek and a fall, and a crash of broken glass,
-from which she concluded that it was just possible it had fallen into a
-cucumber-frame, or something of the sort.
-
-Next came an angry voice--the Rabbit's--'Pat! Pat! Where are you?' And
-then a voice she had never heard before, 'Sure then I'm here! Digging
-for apples, yer honour!'
-
-'Digging for apples, indeed!' said the Rabbit angrily. 'Here! Come and
-help me out of THIS!' (Sounds of more broken glass.)
-
-'Now tell me, Pat, what's that in the window?'
-
-'Sure, it's an arm, yer honour!' (He pronounced it 'arrum.')
-
-'An arm, you goose! Who ever saw one that size? Why, it fills the whole
-window!'
-
-'Sure, it does, yer honour: but it's an arm for all that.'
-
-'Well, it's got no business there, at any rate: go and take it away!'
-
-There was a long silence after this, and Alice could only hear whispers
-now and then; such as, 'Sure, I don't like it, yer honour, at all, at
-all!' 'Do as I tell you, you coward!' and at last she spread out her
-hand again, and made another snatch in the air. This time there were
-TWO little shrieks, and more sounds of broken glass. 'What a number of
-cucumber-frames there must be!' thought Alice. 'I wonder what they'll do
-next! As for pulling me out of the window, I only wish they COULD! I'm
-sure I don't want to stay in here any longer!'
-
-She waited for some time without hearing anything more: at last came a
-rumbling of little cartwheels, and the sound of a good many voices
-all talking together: she made out the words: 'Where's the other
-ladder?--Why, I hadn't to bring but one; Bill's got the other--Bill!
-fetch it here, lad!--Here, put 'em up at this corner--No, tie 'em
-together first--they don't reach half high enough yet--Oh! they'll
-do well enough; don't be particular--Here, Bill! catch hold of this
-rope--Will the roof bear?--Mind that loose slate--Oh, it's coming
-down! Heads below!' (a loud crash)--'Now, who did that?--It was Bill, I
-fancy--Who's to go down the chimney?--Nay, I shan't! YOU do it!--That I
-won't, then!--Bill's to go down--Here, Bill! the master says you're to
-go down the chimney!'
-
-'Oh! So Bill's got to come down the chimney, has he?' said Alice to
-herself. 'Shy, they seem to put everything upon Bill! I wouldn't be in
-Bill's place for a good deal: this fireplace is narrow, to be sure; but
-I THINK I can kick a little!'
-
-She drew her foot as far down the chimney as she could, and waited
-till she heard a little animal (she couldn't guess of what sort it was)
-scratching and scrambling about in the chimney close above her: then,
-saying to herself 'This is Bill,' she gave one sharp kick, and waited to
-see what would happen next.
-
-The first thing she heard was a general chorus of 'There goes Bill!'
-then the Rabbit's voice along--'Catch him, you by the hedge!' then
-silence, and then another confusion of voices--'Hold up his head--Brandy
-now--Don't choke him--How was it, old fellow? What happened to you? Tell
-us all about it!'
-
-Last came a little feeble, squeaking voice, ('That's Bill,' thought
-Alice,) 'Well, I hardly know--No more, thank ye; I'm better now--but I'm
-a deal too flustered to tell you--all I know is, something comes at me
-like a Jack-in-the-box, and up I goes like a sky-rocket!'
-
-'So you did, old fellow!' said the others.
-
-'We must burn the house down!' said the Rabbit's voice; and Alice called
-out as loud as she could, 'If you do. I'll set Dinah at you!'
-
-There was a dead silence instantly, and Alice thought to herself, 'I
-wonder what they WILL do next! If they had any sense, they'd take the
-roof off.' After a minute or two, they began moving about again, and
-Alice heard the Rabbit say, 'A barrowful will do, to begin with.'
-
-'A barrowful of WHAT?' thought Alice; but she had not long to doubt,
-for the next moment a shower of little pebbles came rattling in at the
-window, and some of them hit her in the face. 'I'll put a stop to this,'
-she said to herself, and shouted out, 'You'd better not do that again!'
-which produced another dead silence.
-
-Alice noticed with some surprise that the pebbles were all turning into
-little cakes as they lay on the floor, and a bright idea came into her
-head. 'If I eat one of these cakes,' she thought, 'it's sure to make
-SOME change in my size; and as it can't possibly make me larger, it must
-make me smaller, I suppose.'
-
-So she swallowed one of the cakes, and was delighted to find that she
-began shrinking directly. As soon as she was small enough to get through
-the door, she ran out of the house, and found quite a crowd of little
-animals and birds waiting outside. The poor little Lizard, Bill, was
-in the middle, being held up by two guinea-pigs, who were giving it
-something out of a bottle. They all made a rush at Alice the moment she
-appeared; but she ran off as hard as she could, and soon found herself
-safe in a thick wood.
-
-'The first thing I've got to do,' said Alice to herself, as she wandered
-about in the wood, 'is to grow to my right size again; and the second
-thing is to find my way into that lovely garden. I think that will be
-the best plan.'
-
-It sounded an excellent plan, no doubt, and very neatly and simply
-arranged; the only difficulty was, that she had not the smallest idea
-how to set about it; and while she was peering about anxiously among
-the trees, a little sharp bark just over her head made her look up in a
-great hurry.
-
-An enormous puppy was looking down at her with large round eyes, and
-feebly stretching out one paw, trying to touch her. 'Poor little thing!'
-said Alice, in a coaxing tone, and she tried hard to whistle to it; but
-she was terribly frightened all the time at the thought that it might be
-hungry, in which case it would be very likely to eat her up in spite of
-all her coaxing.
-
-Hardly knowing what she did, she picked up a little bit of stick, and
-held it out to the puppy; whereupon the puppy jumped into the air off
-all its feet at once, with a yelp of delight, and rushed at the stick,
-and made believe to worry it; then Alice dodged behind a great thistle,
-to keep herself from being run over; and the moment she appeared on the
-other side, the puppy made another rush at the stick, and tumbled head
-over heels in its hurry to get hold of it; then Alice, thinking it was
-very like having a game of play with a cart-horse, and expecting every
-moment to be trampled under its feet, ran round the thistle again; then
-the puppy began a series of short charges at the stick, running a very
-little way forwards each time and a long way back, and barking hoarsely
-all the while, till at last it sat down a good way off, panting, with
-its tongue hanging out of its mouth, and its great eyes half shut.
-
-This seemed to Alice a good opportunity for making her escape; so she
-set off at once, and ran till she was quite tired and out of breath, and
-till the puppy's bark sounded quite faint in the distance.
-
-'And yet what a dear little puppy it was!' said Alice, as she leant
-against a buttercup to rest herself, and fanned herself with one of the
-leaves: 'I should have liked teaching it tricks very much, if--if I'd
-only been the right size to do it! Oh dear! I'd nearly forgotten that
-I've got to grow up again! Let me see--how IS it to be managed? I
-suppose I ought to eat or drink something or other; but the great
-question is, what?'
-
-The great question certainly was, what? Alice looked all round her at
-the flowers and the blades of grass, but she did not see anything that
-looked like the right thing to eat or drink under the circumstances.
-There was a large mushroom growing near her, about the same height as
-herself; and when she had looked under it, and on both sides of it, and
-behind it, it occurred to her that she might as well look and see what
-was on the top of it.
-
-She stretched herself up on tiptoe, and peeped over the edge of the
-mushroom, and her eyes immediately met those of a large caterpillar,
-that was sitting on the top with its arms folded, quietly smoking a long
-hookah, and taking not the smallest notice of her or of anything else.
-
-
-
-
-CHAPTER V. Advice from a Caterpillar
-
-The Caterpillar and Alice looked at each other for some time in silence:
-at last the Caterpillar took the hookah out of its mouth, and addressed
-her in a languid, sleepy voice.
-
-'Who are YOU?' said the Caterpillar.
-
-This was not an encouraging opening for a conversation. Alice replied,
-rather shyly, 'I--I hardly know, sir, just at present--at least I know
-who I WAS when I got up this morning, but I think I must have been
-changed several times since then.'
-
-'What do you mean by that?' said the Caterpillar sternly. 'Explain
-yourself!'
-
-'I can't explain MYSELF, I'm afraid, sir' said Alice, 'because I'm not
-myself, you see.'
-
-'I don't see,' said the Caterpillar.
-
-'I'm afraid I can't put it more clearly,' Alice replied very politely,
-'for I can't understand it myself to begin with; and being so many
-different sizes in a day is very confusing.'
-
-'It isn't,' said the Caterpillar.
-
-'Well, perhaps you haven't found it so yet,' said Alice; 'but when you
-have to turn into a chrysalis--you will some day, you know--and then
-after that into a butterfly, I should think you'll feel it a little
-queer, won't you?'
-
-'Not a bit,' said the Caterpillar.
-
-'Well, perhaps your feelings may be different,' said Alice; 'all I know
-is, it would feel very queer to ME.'
-
-'You!' said the Caterpillar contemptuously. 'Who are YOU?'
-
-Which brought them back again to the beginning of the conversation.
-Alice felt a little irritated at the Caterpillar's making such VERY
-short remarks, and she drew herself up and said, very gravely, 'I think,
-you ought to tell me who YOU are, first.'
-
-'Why?' said the Caterpillar.
-
-Here was another puzzling question; and as Alice could not think of any
-good reason, and as the Caterpillar seemed to be in a VERY unpleasant
-state of mind, she turned away.
-
-'Come back!' the Caterpillar called after her. 'I've something important
-to say!'
-
-This sounded promising, certainly: Alice turned and came back again.
-
-'Keep your temper,' said the Caterpillar.
-
-'Is that all?' said Alice, swallowing down her anger as well as she
-could.
-
-'No,' said the Caterpillar.
-
-Alice thought she might as well wait, as she had nothing else to do, and
-perhaps after all it might tell her something worth hearing. For some
-minutes it puffed away without speaking, but at last it unfolded its
-arms, took the hookah out of its mouth again, and said, 'So you think
-you're changed, do you?'
-
-'I'm afraid I am, sir,' said Alice; 'I can't remember things as I
-used--and I don't keep the same size for ten minutes together!'
-
-'Can't remember WHAT things?' said the Caterpillar.
-
-'Well, I've tried to say "HOW DOTH THE LITTLE BUSY BEE," but it all came
-different!' Alice replied in a very melancholy voice.
-
-'Repeat, "YOU ARE OLD, FATHER WILLIAM,"' said the Caterpillar.
-
-Alice folded her hands, and began:--
-
-   'You are old, Father William,' the young man said,
-    'And your hair has become very white;
-   And yet you incessantly stand on your head--
-    Do you think, at your age, it is right?'
-
-   'In my youth,' Father William replied to his son,
-    'I feared it might injure the brain;
-   But, now that I'm perfectly sure I have none,
-    Why, I do it again and again.'
-
-   'You are old,' said the youth, 'as I mentioned before,
-    And have grown most uncommonly fat;
-   Yet you turned a back-somersault in at the door--
-    Pray, what is the reason of that?'
-
-   'In my youth,' said the sage, as he shook his grey locks,
-    'I kept all my limbs very supple
-   By the use of this ointment--one shilling the box--
-    Allow me to sell you a couple?'
-
-   'You are old,' said the youth, 'and your jaws are too weak
-    For anything tougher than suet;
-   Yet you finished the goose, with the bones and the beak--
-    Pray how did you manage to do it?'
-
-   'In my youth,' said his father, 'I took to the law,
-    And argued each case with my wife;
-   And the muscular strength, which it gave to my jaw,
-    Has lasted the rest of my life.'
-
-   'You are old,' said the youth, 'one would hardly suppose
-    That your eye was as steady as ever;
-   Yet you balanced an eel on the end of your nose--
-    What made you so awfully clever?'
-
-   'I have answered three questions, and that is enough,'
-    Said his father; 'don't give yourself airs!
-   Do you think I can listen all day to such stuff?
-    Be off, or I'll kick you down stairs!'
-
-
-'That is not said right,' said the Caterpillar.
-
-'Not QUITE right, I'm afraid,' said Alice, timidly; 'some of the words
-have got altered.'
-
-'It is wrong from beginning to end,' said the Caterpillar decidedly, and
-there was silence for some minutes.
-
-The Caterpillar was the first to speak.
-
-'What size do you want to be?' it asked.
-
-'Oh, I'm not particular as to size,' Alice hastily replied; 'only one
-doesn't like changing so often, you know.'
-
-'I DON'T know,' said the Caterpillar.
-
-Alice said nothing: she had never been so much contradicted in her life
-before, and she felt that she was losing her temper.
-
-'Are you content now?' said the Caterpillar.
-
-'Well, I should like to be a LITTLE larger, sir, if you wouldn't mind,'
-said Alice: 'three inches is such a wretched height to be.'
-
-'It is a very good height indeed!' said the Caterpillar angrily, rearing
-itself upright as it spoke (it was exactly three inches high).
-
-'But I'm not used to it!' pleaded poor Alice in a piteous tone. And
-she thought of herself, 'I wish the creatures wouldn't be so easily
-offended!'
-
-'You'll get used to it in time,' said the Caterpillar; and it put the
-hookah into its mouth and began smoking again.
-
-This time Alice waited patiently until it chose to speak again. In
-a minute or two the Caterpillar took the hookah out of its mouth
-and yawned once or twice, and shook itself. Then it got down off the
-mushroom, and crawled away in the grass, merely remarking as it went,
-'One side will make you grow taller, and the other side will make you
-grow shorter.'
-
-'One side of WHAT? The other side of WHAT?' thought Alice to herself.
-
-'Of the mushroom,' said the Caterpillar, just as if she had asked it
-aloud; and in another moment it was out of sight.
-
-Alice remained looking thoughtfully at the mushroom for a minute, trying
-to make out which were the two sides of it; and as it was perfectly
-round, she found this a very difficult question. However, at last she
-stretched her arms round it as far as they would go, and broke off a bit
-of the edge with each hand.
-
-'And now which is which?' she said to herself, and nibbled a little of
-the right-hand bit to try the effect: the next moment she felt a violent
-blow underneath her chin: it had struck her foot!
-
-She was a good deal frightened by this very sudden change, but she felt
-that there was no time to be lost, as she was shrinking rapidly; so she
-set to work at once to eat some of the other bit. Her chin was pressed
-so closely against her foot, that there was hardly room to open her
-mouth; but she did it at last, and managed to swallow a morsel of the
-lefthand bit.
-
-
-  *    *    *    *    *    *    *
-
-    *    *    *    *    *    *
-
-  *    *    *    *    *    *    *
-
-'Come, my head's free at last!' said Alice in a tone of delight, which
-changed into alarm in another moment, when she found that her shoulders
-were nowhere to be found: all she could see, when she looked down, was
-an immense length of neck, which seemed to rise like a stalk out of a
-sea of green leaves that lay far below her.
-
-'What CAN all that green stuff be?' said Alice. 'And where HAVE my
-shoulders got to? And oh, my poor hands, how is it I can't see you?'
-She was moving them about as she spoke, but no result seemed to follow,
-except a little shaking among the distant green leaves.
-
-As there seemed to be no chance of getting her hands up to her head, she
-tried to get her head down to them, and was delighted to find that her
-neck would bend about easily in any direction, like a serpent. She had
-just succeeded in curving it down into a graceful zigzag, and was going
-to dive in among the leaves, which she found to be nothing but the tops
-of the trees under which she had been wandering, when a sharp hiss made
-her draw back in a hurry: a large pigeon had flown into her face, and
-was beating her violently with its wings.
-
-'Serpent!' screamed the Pigeon.
-
-'I'm NOT a serpent!' said Alice indignantly. 'Let me alone!'
-
-'Serpent, I say again!' repeated the Pigeon, but in a more subdued tone,
-and added with a kind of sob, 'I've tried every way, and nothing seems
-to suit them!'
-
-'I haven't the least idea what you're talking about,' said Alice.
-
-'I've tried the roots of trees, and I've tried banks, and I've tried
-hedges,' the Pigeon went on, without attending to her; 'but those
-serpents! There's no pleasing them!'
-
-Alice was more and more puzzled, but she thought there was no use in
-saying anything more till the Pigeon had finished.
-
-'As if it wasn't trouble enough hatching the eggs,' said the Pigeon;
-'but I must be on the look-out for serpents night and day! Why, I
-haven't had a wink of sleep these three weeks!'
-
-'I'm very sorry you've been annoyed,' said Alice, who was beginning to
-see its meaning.
-
-'And just as I'd taken the highest tree in the wood,' continued the
-Pigeon, raising its voice to a shriek, 'and just as I was thinking I
-should be free of them at last, they must needs come wriggling down from
-the sky! Ugh, Serpent!'
-
-'But I'm NOT a serpent, I tell you!' said Alice. 'I'm a--I'm a--'
-
-'Well! WHAT are you?' said the Pigeon. 'I can see you're trying to
-invent something!'
-
-'I--I'm a little girl,' said Alice, rather doubtfully, as she remembered
-the number of changes she had gone through that day.
-
-'A likely story indeed!' said the Pigeon in a tone of the deepest
-contempt. 'I've seen a good many little girls in my time, but never ONE
-with such a neck as that! No, no! You're a serpent; and there's no use
-denying it. I suppose you'll be telling me next that you never tasted an
-egg!'
-
-'I HAVE tasted eggs, certainly,' said Alice, who was a very truthful
-child; 'but little girls eat eggs quite as much as serpents do, you
-know.'
-
-'I don't believe it,' said the Pigeon; 'but if they do, why then they're
-a kind of serpent, that's all I can say.'
-
-This was such a new idea to Alice, that she was quite silent for a
-minute or two, which gave the Pigeon the opportunity of adding, 'You're
-looking for eggs, I know THAT well enough; and what does it matter to me
-whether you're a little girl or a serpent?'
-
-'It matters a good deal to ME,' said Alice hastily; 'but I'm not looking
-for eggs, as it happens; and if I was, I shouldn't want YOURS: I don't
-like them raw.'
-
-'Well, be off, then!' said the Pigeon in a sulky tone, as it settled
-down again into its nest. Alice crouched down among the trees as well as
-she could, for her neck kept getting entangled among the branches, and
-every now and then she had to stop and untwist it. After a while she
-remembered that she still held the pieces of mushroom in her hands, and
-she set to work very carefully, nibbling first at one and then at the
-other, and growing sometimes taller and sometimes shorter, until she had
-succeeded in bringing herself down to her usual height.
-
-It was so long since she had been anything near the right size, that it
-felt quite strange at first; but she got used to it in a few minutes,
-and began talking to herself, as usual. 'Come, there's half my plan done
-now! How puzzling all these changes are! I'm never sure what I'm going
-to be, from one minute to another! However, I've got back to my right
-size: the next thing is, to get into that beautiful garden--how IS that
-to be done, I wonder?' As she said this, she came suddenly upon an open
-place, with a little house in it about four feet high. 'Whoever lives
-there,' thought Alice, 'it'll never do to come upon them THIS size: why,
-I should frighten them out of their wits!' So she began nibbling at the
-righthand bit again, and did not venture to go near the house till she
-had brought herself down to nine inches high.
-
-
-
-
-CHAPTER VI. Pig and Pepper
-
-For a minute or two she stood looking at the house, and wondering what
-to do next, when suddenly a footman in livery came running out of the
-wood--(she considered him to be a footman because he was in livery:
-otherwise, judging by his face only, she would have called him a
-fish)--and rapped loudly at the door with his knuckles. It was opened
-by another footman in livery, with a round face, and large eyes like a
-frog; and both footmen, Alice noticed, had powdered hair that curled all
-over their heads. She felt very curious to know what it was all about,
-and crept a little way out of the wood to listen.
-
-The Fish-Footman began by producing from under his arm a great letter,
-nearly as large as himself, and this he handed over to the other,
-saying, in a solemn tone, 'For the Duchess. An invitation from the Queen
-to play croquet.' The Frog-Footman repeated, in the same solemn tone,
-only changing the order of the words a little, 'From the Queen. An
-invitation for the Duchess to play croquet.'
-
-Then they both bowed low, and their curls got entangled together.
-
-Alice laughed so much at this, that she had to run back into the
-wood for fear of their hearing her; and when she next peeped out the
-Fish-Footman was gone, and the other was sitting on the ground near the
-door, staring stupidly up into the sky.
-
-Alice went timidly up to the door, and knocked.
-
-'There's no sort of use in knocking,' said the Footman, 'and that for
-two reasons. First, because I'm on the same side of the door as you
-are; secondly, because they're making such a noise inside, no one could
-possibly hear you.' And certainly there was a most extraordinary noise
-going on within--a constant howling and sneezing, and every now and then
-a great crash, as if a dish or kettle had been broken to pieces.
-
-'Please, then,' said Alice, 'how am I to get in?'
-
-'There might be some sense in your knocking,' the Footman went on
-without attending to her, 'if we had the door between us. For instance,
-if you were INSIDE, you might knock, and I could let you out, you know.'
-He was looking up into the sky all the time he was speaking, and this
-Alice thought decidedly uncivil. 'But perhaps he can't help it,' she
-said to herself; 'his eyes are so VERY nearly at the top of his head.
-But at any rate he might answer questions.--How am I to get in?' she
-repeated, aloud.
-
-'I shall sit here,' the Footman remarked, 'till tomorrow--'
-
-At this moment the door of the house opened, and a large plate came
-skimming out, straight at the Footman's head: it just grazed his nose,
-and broke to pieces against one of the trees behind him.
-
-'--or next day, maybe,' the Footman continued in the same tone, exactly
-as if nothing had happened.
-
-'How am I to get in?' asked Alice again, in a louder tone.
-
-'ARE you to get in at all?' said the Footman. 'That's the first
-question, you know.'
-
-It was, no doubt: only Alice did not like to be told so. 'It's really
-dreadful,' she muttered to herself, 'the way all the creatures argue.
-It's enough to drive one crazy!'
-
-The Footman seemed to think this a good opportunity for repeating his
-remark, with variations. 'I shall sit here,' he said, 'on and off, for
-days and days.'
-
-'But what am I to do?' said Alice.
-
-'Anything you like,' said the Footman, and began whistling.
-
-'Oh, there's no use in talking to him,' said Alice desperately: 'he's
-perfectly idiotic!' And she opened the door and went in.
-
-The door led right into a large kitchen, which was full of smoke from
-one end to the other: the Duchess was sitting on a three-legged stool in
-the middle, nursing a baby; the cook was leaning over the fire, stirring
-a large cauldron which seemed to be full of soup.
-
-'There's certainly too much pepper in that soup!' Alice said to herself,
-as well as she could for sneezing.
-
-There was certainly too much of it in the air. Even the Duchess
-sneezed occasionally; and as for the baby, it was sneezing and howling
-alternately without a moment's pause. The only things in the kitchen
-that did not sneeze, were the cook, and a large cat which was sitting on
-the hearth and grinning from ear to ear.
-
-'Please would you tell me,' said Alice, a little timidly, for she was
-not quite sure whether it was good manners for her to speak first, 'why
-your cat grins like that?'
-
-'It's a Cheshire cat,' said the Duchess, 'and that's why. Pig!'
-
-She said the last word with such sudden violence that Alice quite
-jumped; but she saw in another moment that it was addressed to the baby,
-and not to her, so she took courage, and went on again:--
-
-'I didn't know that Cheshire cats always grinned; in fact, I didn't know
-that cats COULD grin.'
-
-'They all can,' said the Duchess; 'and most of 'em do.'
-
-'I don't know of any that do,' Alice said very politely, feeling quite
-pleased to have got into a conversation.
-
-'You don't know much,' said the Duchess; 'and that's a fact.'
-
-Alice did not at all like the tone of this remark, and thought it would
-be as well to introduce some other subject of conversation. While she
-was trying to fix on one, the cook took the cauldron of soup off the
-fire, and at once set to work throwing everything within her reach at
-the Duchess and the baby--the fire-irons came first; then followed a
-shower of saucepans, plates, and dishes. The Duchess took no notice of
-them even when they hit her; and the baby was howling so much already,
-that it was quite impossible to say whether the blows hurt it or not.
-
-'Oh, PLEASE mind what you're doing!' cried Alice, jumping up and down in
-an agony of terror. 'Oh, there goes his PRECIOUS nose'; as an unusually
-large saucepan flew close by it, and very nearly carried it off.
-
-'If everybody minded their own business,' the Duchess said in a hoarse
-growl, 'the world would go round a deal faster than it does.'
-
-'Which would NOT be an advantage,' said Alice, who felt very glad to get
-an opportunity of showing off a little of her knowledge. 'Just think of
-what work it would make with the day and night! You see the earth takes
-twenty-four hours to turn round on its axis--'
-
-'Talking of axes,' said the Duchess, 'chop off her head!'
-
-Alice glanced rather anxiously at the cook, to see if she meant to take
-the hint; but the cook was busily stirring the soup, and seemed not to
-be listening, so she went on again: 'Twenty-four hours, I THINK; or is
-it twelve? I--'
-
-'Oh, don't bother ME,' said the Duchess; 'I never could abide figures!'
-And with that she began nursing her child again, singing a sort of
-lullaby to it as she did so, and giving it a violent shake at the end of
-every line:
-
-   'Speak roughly to your little boy,
-    And beat him when he sneezes:
-   He only does it to annoy,
-    Because he knows it teases.'
-
-         CHORUS.
-
- (In which the cook and the baby joined):--
-
-       'Wow! wow! wow!'
-
-While the Duchess sang the second verse of the song, she kept tossing
-the baby violently up and down, and the poor little thing howled so,
-that Alice could hardly hear the words:--
-
-   'I speak severely to my boy,
-    I beat him when he sneezes;
-   For he can thoroughly enjoy
-    The pepper when he pleases!'
-
-         CHORUS.
-
-       'Wow! wow! wow!'
-
-'Here! you may nurse it a bit, if you like!' the Duchess said to Alice,
-flinging the baby at her as she spoke. 'I must go and get ready to play
-croquet with the Queen,' and she hurried out of the room. The cook threw
-a frying-pan after her as she went out, but it just missed her.
-
-Alice caught the baby with some difficulty, as it was a queer-shaped
-little creature, and held out its arms and legs in all directions, 'just
-like a star-fish,' thought Alice. The poor little thing was snorting
-like a steam-engine when she caught it, and kept doubling itself up and
-straightening itself out again, so that altogether, for the first minute
-or two, it was as much as she could do to hold it.
-
-As soon as she had made out the proper way of nursing it, (which was to
-twist it up into a sort of knot, and then keep tight hold of its right
-ear and left foot, so as to prevent its undoing itself,) she carried
-it out into the open air. 'IF I don't take this child away with me,'
-thought Alice, 'they're sure to kill it in a day or two: wouldn't it be
-murder to leave it behind?' She said the last words out loud, and the
-little thing grunted in reply (it had left off sneezing by this time).
-'Don't grunt,' said Alice; 'that's not at all a proper way of expressing
-yourself.'
-
-The baby grunted again, and Alice looked very anxiously into its face to
-see what was the matter with it. There could be no doubt that it had
-a VERY turn-up nose, much more like a snout than a real nose; also its
-eyes were getting extremely small for a baby: altogether Alice did not
-like the look of the thing at all. 'But perhaps it was only sobbing,'
-she thought, and looked into its eyes again, to see if there were any
-tears.
-
-No, there were no tears. 'If you're going to turn into a pig, my dear,'
-said Alice, seriously, 'I'll have nothing more to do with you. Mind
-now!' The poor little thing sobbed again (or grunted, it was impossible
-to say which), and they went on for some while in silence.
-
-Alice was just beginning to think to herself, 'Now, what am I to do with
-this creature when I get it home?' when it grunted again, so violently,
-that she looked down into its face in some alarm. This time there could
-be NO mistake about it: it was neither more nor less than a pig, and she
-felt that it would be quite absurd for her to carry it further.
-
-So she set the little creature down, and felt quite relieved to see
-it trot away quietly into the wood. 'If it had grown up,' she said
-to herself, 'it would have made a dreadfully ugly child: but it makes
-rather a handsome pig, I think.' And she began thinking over other
-children she knew, who might do very well as pigs, and was just saying
-to herself, 'if one only knew the right way to change them--' when she
-was a little startled by seeing the Cheshire Cat sitting on a bough of a
-tree a few yards off.
-
-The Cat only grinned when it saw Alice. It looked good-natured, she
-thought: still it had VERY long claws and a great many teeth, so she
-felt that it ought to be treated with respect.
-
-'Cheshire Puss,' she began, rather timidly, as she did not at all know
-whether it would like the name: however, it only grinned a little wider.
-'Come, it's pleased so far,' thought Alice, and she went on. 'Would you
-tell me, please, which way I ought to go from here?'
-
-'That depends a good deal on where you want to get to,' said the Cat.
-
-'I don't much care where--' said Alice.
-
-'Then it doesn't matter which way you go,' said the Cat.
-
-'--so long as I get SOMEWHERE,' Alice added as an explanation.
-
-'Oh, you're sure to do that,' said the Cat, 'if you only walk long
-enough.'
-
-Alice felt that this could not be denied, so she tried another question.
-'What sort of people live about here?'
-
-'In THAT direction,' the Cat said, waving its right paw round, 'lives
-a Hatter: and in THAT direction,' waving the other paw, 'lives a March
-Hare. Visit either you like: they're both mad.'
-
-'But I don't want to go among mad people,' Alice remarked.
-
-'Oh, you can't help that,' said the Cat: 'we're all mad here. I'm mad.
-You're mad.'
-
-'How do you know I'm mad?' said Alice.
-
-'You must be,' said the Cat, 'or you wouldn't have come here.'
-
-Alice didn't think that proved it at all; however, she went on 'And how
-do you know that you're mad?'
-
-'To begin with,' said the Cat, 'a dog's not mad. You grant that?'
-
-'I suppose so,' said Alice.
-
-'Well, then,' the Cat went on, 'you see, a dog growls when it's angry,
-and wags its tail when it's pleased. Now I growl when I'm pleased, and
-wag my tail when I'm angry. Therefore I'm mad.'
-
-'I call it purring, not growling,' said Alice.
-
-'Call it what you like,' said the Cat. 'Do you play croquet with the
-Queen to-day?'
-
-'I should like it very much,' said Alice, 'but I haven't been invited
-yet.'
-
-'You'll see me there,' said the Cat, and vanished.
-
-Alice was not much surprised at this, she was getting so used to queer
-things happening. While she was looking at the place where it had been,
-it suddenly appeared again.
-
-'By-the-bye, what became of the baby?' said the Cat. 'I'd nearly
-forgotten to ask.'
-
-'It turned into a pig,' Alice quietly said, just as if it had come back
-in a natural way.
-
-'I thought it would,' said the Cat, and vanished again.
-
-Alice waited a little, half expecting to see it again, but it did not
-appear, and after a minute or two she walked on in the direction in
-which the March Hare was said to live. 'I've seen hatters before,' she
-said to herself; 'the March Hare will be much the most interesting, and
-perhaps as this is May it won't be raving mad--at least not so mad as
-it was in March.' As she said this, she looked up, and there was the Cat
-again, sitting on a branch of a tree.
-
-'Did you say pig, or fig?' said the Cat.
-
-'I said pig,' replied Alice; 'and I wish you wouldn't keep appearing and
-vanishing so suddenly: you make one quite giddy.'
-
-'All right,' said the Cat; and this time it vanished quite slowly,
-beginning with the end of the tail, and ending with the grin, which
-remained some time after the rest of it had gone.
-
-'Well! I've often seen a cat without a grin,' thought Alice; 'but a grin
-without a cat! It's the most curious thing I ever saw in my life!'
-
-She had not gone much farther before she came in sight of the house
-of the March Hare: she thought it must be the right house, because the
-chimneys were shaped like ears and the roof was thatched with fur. It
-was so large a house, that she did not like to go nearer till she had
-nibbled some more of the lefthand bit of mushroom, and raised herself to
-about two feet high: even then she walked up towards it rather timidly,
-saying to herself 'Suppose it should be raving mad after all! I almost
-wish I'd gone to see the Hatter instead!'
-
-
-
-
-CHAPTER VII. A Mad Tea-Party
-
-There was a table set out under a tree in front of the house, and the
-March Hare and the Hatter were having tea at it: a Dormouse was sitting
-between them, fast asleep, and the other two were using it as a
-cushion, resting their elbows on it, and talking over its head. 'Very
-uncomfortable for the Dormouse,' thought Alice; 'only, as it's asleep, I
-suppose it doesn't mind.'
-
-The table was a large one, but the three were all crowded together at
-one corner of it: 'No room! No room!' they cried out when they saw Alice
-coming. 'There's PLENTY of room!' said Alice indignantly, and she sat
-down in a large arm-chair at one end of the table.
-
-'Have some wine,' the March Hare said in an encouraging tone.
-
-Alice looked all round the table, but there was nothing on it but tea.
-'I don't see any wine,' she remarked.
-
-'There isn't any,' said the March Hare.
-
-'Then it wasn't very civil of you to offer it,' said Alice angrily.
-
-'It wasn't very civil of you to sit down without being invited,' said
-the March Hare.
-
-'I didn't know it was YOUR table,' said Alice; 'it's laid for a great
-many more than three.'
-
-'Your hair wants cutting,' said the Hatter. He had been looking at Alice
-for some time with great curiosity, and this was his first speech.
-
-'You should learn not to make personal remarks,' Alice said with some
-severity; 'it's very rude.'
-
-The Hatter opened his eyes very wide on hearing this; but all he SAID
-was, 'Why is a raven like a writing-desk?'
-
-'Come, we shall have some fun now!' thought Alice. 'I'm glad they've
-begun asking riddles.--I believe I can guess that,' she added aloud.
-
-'Do you mean that you think you can find out the answer to it?' said the
-March Hare.
-
-'Exactly so,' said Alice.
-
-'Then you should say what you mean,' the March Hare went on.
-
-'I do,' Alice hastily replied; 'at least--at least I mean what I
-say--that's the same thing, you know.'
-
-'Not the same thing a bit!' said the Hatter. 'You might just as well say
-that "I see what I eat" is the same thing as "I eat what I see"!'
-
-'You might just as well say,' added the March Hare, 'that "I like what I
-get" is the same thing as "I get what I like"!'
-
-'You might just as well say,' added the Dormouse, who seemed to be
-talking in his sleep, 'that "I breathe when I sleep" is the same thing
-as "I sleep when I breathe"!'
-
-'It IS the same thing with you,' said the Hatter, and here the
-conversation dropped, and the party sat silent for a minute, while Alice
-thought over all she could remember about ravens and writing-desks,
-which wasn't much.
-
-The Hatter was the first to break the silence. 'What day of the month
-is it?' he said, turning to Alice: he had taken his watch out of his
-pocket, and was looking at it uneasily, shaking it every now and then,
-and holding it to his ear.
-
-Alice considered a little, and then said 'The fourth.'
-
-'Two days wrong!' sighed the Hatter. 'I told you butter wouldn't suit
-the works!' he added looking angrily at the March Hare.
-
-'It was the BEST butter,' the March Hare meekly replied.
-
-'Yes, but some crumbs must have got in as well,' the Hatter grumbled:
-'you shouldn't have put it in with the bread-knife.'
-
-The March Hare took the watch and looked at it gloomily: then he dipped
-it into his cup of tea, and looked at it again: but he could think of
-nothing better to say than his first remark, 'It was the BEST butter,
-you know.'
-
-Alice had been looking over his shoulder with some curiosity. 'What a
-funny watch!' she remarked. 'It tells the day of the month, and doesn't
-tell what o'clock it is!'
-
-'Why should it?' muttered the Hatter. 'Does YOUR watch tell you what
-year it is?'
-
-'Of course not,' Alice replied very readily: 'but that's because it
-stays the same year for such a long time together.'
-
-'Which is just the case with MINE,' said the Hatter.
-
-Alice felt dreadfully puzzled. The Hatter's remark seemed to have no
-sort of meaning in it, and yet it was certainly English. 'I don't quite
-understand you,' she said, as politely as she could.
-
-'The Dormouse is asleep again,' said the Hatter, and he poured a little
-hot tea upon its nose.
-
-The Dormouse shook its head impatiently, and said, without opening its
-eyes, 'Of course, of course; just what I was going to remark myself.'
-
-'Have you guessed the riddle yet?' the Hatter said, turning to Alice
-again.
-
-'No, I give it up,' Alice replied: 'what's the answer?'
-
-'I haven't the slightest idea,' said the Hatter.
-
-'Nor I,' said the March Hare.
-
-Alice sighed wearily. 'I think you might do something better with the
-time,' she said, 'than waste it in asking riddles that have no answers.'
-
-'If you knew Time as well as I do,' said the Hatter, 'you wouldn't talk
-about wasting IT. It's HIM.'
-
-'I don't know what you mean,' said Alice.
-
-'Of course you don't!' the Hatter said, tossing his head contemptuously.
-'I dare say you never even spoke to Time!'
-
-'Perhaps not,' Alice cautiously replied: 'but I know I have to beat time
-when I learn music.'
-
-'Ah! that accounts for it,' said the Hatter. 'He won't stand beating.
-Now, if you only kept on good terms with him, he'd do almost anything
-you liked with the clock. For instance, suppose it were nine o'clock in
-the morning, just time to begin lessons: you'd only have to whisper a
-hint to Time, and round goes the clock in a twinkling! Half-past one,
-time for dinner!'
-
-('I only wish it was,' the March Hare said to itself in a whisper.)
-
-'That would be grand, certainly,' said Alice thoughtfully: 'but then--I
-shouldn't be hungry for it, you know.'
-
-'Not at first, perhaps,' said the Hatter: 'but you could keep it to
-half-past one as long as you liked.'
-
-'Is that the way YOU manage?' Alice asked.
-
-The Hatter shook his head mournfully. 'Not I!' he replied. 'We
-quarrelled last March--just before HE went mad, you know--' (pointing
-with his tea spoon at the March Hare,) '--it was at the great concert
-given by the Queen of Hearts, and I had to sing
-
-     "Twinkle, twinkle, little bat!
-     How I wonder what you're at!"
-
-You know the song, perhaps?'
-
-'I've heard something like it,' said Alice.
-
-'It goes on, you know,' the Hatter continued, 'in this way:--
-
-     "Up above the world you fly,
-     Like a tea-tray in the sky.
-         Twinkle, twinkle--"'
-
-Here the Dormouse shook itself, and began singing in its sleep 'Twinkle,
-twinkle, twinkle, twinkle--' and went on so long that they had to pinch
-it to make it stop.
-
-'Well, I'd hardly finished the first verse,' said the Hatter, 'when the
-Queen jumped up and bawled out, "He's murdering the time! Off with his
-head!"'
-
-'How dreadfully savage!' exclaimed Alice.
-
-'And ever since that,' the Hatter went on in a mournful tone, 'he won't
-do a thing I ask! It's always six o'clock now.'
-
-A bright idea came into Alice's head. 'Is that the reason so many
-tea-things are put out here?' she asked.
-
-'Yes, that's it,' said the Hatter with a sigh: 'it's always tea-time,
-and we've no time to wash the things between whiles.'
-
-'Then you keep moving round, I suppose?' said Alice.
-
-'Exactly so,' said the Hatter: 'as the things get used up.'
-
-'But what happens when you come to the beginning again?' Alice ventured
-to ask.
-
-'Suppose we change the subject,' the March Hare interrupted, yawning.
-'I'm getting tired of this. I vote the young lady tells us a story.'
-
-'I'm afraid I don't know one,' said Alice, rather alarmed at the
-proposal.
-
-'Then the Dormouse shall!' they both cried. 'Wake up, Dormouse!' And
-they pinched it on both sides at once.
-
-The Dormouse slowly opened his eyes. 'I wasn't asleep,' he said in a
-hoarse, feeble voice: 'I heard every word you fellows were saying.'
-
-'Tell us a story!' said the March Hare.
-
-'Yes, please do!' pleaded Alice.
-
-'And be quick about it,' added the Hatter, 'or you'll be asleep again
-before it's done.'
-
-'Once upon a time there were three little sisters,' the Dormouse began
-in a great hurry; 'and their names were Elsie, Lacie, and Tillie; and
-they lived at the bottom of a well--'
-
-'What did they live on?' said Alice, who always took a great interest in
-questions of eating and drinking.
-
-'They lived on treacle,' said the Dormouse, after thinking a minute or
-two.
-
-'They couldn't have done that, you know,' Alice gently remarked; 'they'd
-have been ill.'
-
-'So they were,' said the Dormouse; 'VERY ill.'
-
-Alice tried to fancy to herself what such an extraordinary ways of
-living would be like, but it puzzled her too much, so she went on: 'But
-why did they live at the bottom of a well?'
-
-'Take some more tea,' the March Hare said to Alice, very earnestly.
-
-'I've had nothing yet,' Alice replied in an offended tone, 'so I can't
-take more.'
-
-'You mean you can't take LESS,' said the Hatter: 'it's very easy to take
-MORE than nothing.'
-
-'Nobody asked YOUR opinion,' said Alice.
-
-'Who's making personal remarks now?' the Hatter asked triumphantly.
-
-Alice did not quite know what to say to this: so she helped herself
-to some tea and bread-and-butter, and then turned to the Dormouse, and
-repeated her question. 'Why did they live at the bottom of a well?'
-
-The Dormouse again took a minute or two to think about it, and then
-said, 'It was a treacle-well.'
-
-'There's no such thing!' Alice was beginning very angrily, but the
-Hatter and the March Hare went 'Sh! sh!' and the Dormouse sulkily
-remarked, 'If you can't be civil, you'd better finish the story for
-yourself.'
-
-'No, please go on!' Alice said very humbly; 'I won't interrupt again. I
-dare say there may be ONE.'
-
-'One, indeed!' said the Dormouse indignantly. However, he consented to
-go on. 'And so these three little sisters--they were learning to draw,
-you know--'
-
-'What did they draw?' said Alice, quite forgetting her promise.
-
-'Treacle,' said the Dormouse, without considering at all this time.
-
-'I want a clean cup,' interrupted the Hatter: 'let's all move one place
-on.'
-
-He moved on as he spoke, and the Dormouse followed him: the March Hare
-moved into the Dormouse's place, and Alice rather unwillingly took
-the place of the March Hare. The Hatter was the only one who got any
-advantage from the change: and Alice was a good deal worse off than
-before, as the March Hare had just upset the milk-jug into his plate.
-
-Alice did not wish to offend the Dormouse again, so she began very
-cautiously: 'But I don't understand. Where did they draw the treacle
-from?'
-
-'You can draw water out of a water-well,' said the Hatter; 'so I should
-think you could draw treacle out of a treacle-well--eh, stupid?'
-
-'But they were IN the well,' Alice said to the Dormouse, not choosing to
-notice this last remark.
-
-'Of course they were', said the Dormouse; '--well in.'
-
-This answer so confused poor Alice, that she let the Dormouse go on for
-some time without interrupting it.
-
-'They were learning to draw,' the Dormouse went on, yawning and rubbing
-its eyes, for it was getting very sleepy; 'and they drew all manner of
-things--everything that begins with an M--'
-
-'Why with an M?' said Alice.
-
-'Why not?' said the March Hare.
-
-Alice was silent.
-
-The Dormouse had closed its eyes by this time, and was going off into
-a doze; but, on being pinched by the Hatter, it woke up again with
-a little shriek, and went on: '--that begins with an M, such as
-mouse-traps, and the moon, and memory, and muchness--you know you say
-things are "much of a muchness"--did you ever see such a thing as a
-drawing of a muchness?'
-
-'Really, now you ask me,' said Alice, very much confused, 'I don't
-think--'
-
-'Then you shouldn't talk,' said the Hatter.
-
-This piece of rudeness was more than Alice could bear: she got up in
-great disgust, and walked off; the Dormouse fell asleep instantly, and
-neither of the others took the least notice of her going, though she
-looked back once or twice, half hoping that they would call after her:
-the last time she saw them, they were trying to put the Dormouse into
-the teapot.
-
-'At any rate I'll never go THERE again!' said Alice as she picked her
-way through the wood. 'It's the stupidest tea-party I ever was at in all
-my life!'
-
-Just as she said this, she noticed that one of the trees had a door
-leading right into it. 'That's very curious!' she thought. 'But
-everything's curious today. I think I may as well go in at once.' And in
-she went.
-
-Once more she found herself in the long hall, and close to the little
-glass table. 'Now, I'll manage better this time,' she said to herself,
-and began by taking the little golden key, and unlocking the door that
-led into the garden. Then she went to work nibbling at the mushroom (she
-had kept a piece of it in her pocket) till she was about a foot high:
-then she walked down the little passage: and THEN--she found herself at
-last in the beautiful garden, among the bright flower-beds and the cool
-fountains.
-
-
-
-
-CHAPTER VIII. The Queen's Croquet-Ground
-
-A large rose-tree stood near the entrance of the garden: the roses
-growing on it were white, but there were three gardeners at it, busily
-painting them red. Alice thought this a very curious thing, and she went
-nearer to watch them, and just as she came up to them she heard one of
-them say, 'Look out now, Five! Don't go splashing paint over me like
-that!'
-
-'I couldn't help it,' said Five, in a sulky tone; 'Seven jogged my
-elbow.'
-
-On which Seven looked up and said, 'That's right, Five! Always lay the
-blame on others!'
-
-'YOU'D better not talk!' said Five. 'I heard the Queen say only
-yesterday you deserved to be beheaded!'
-
-'What for?' said the one who had spoken first.
-
-'That's none of YOUR business, Two!' said Seven.
-
-'Yes, it IS his business!' said Five, 'and I'll tell him--it was for
-bringing the cook tulip-roots instead of onions.'
-
-Seven flung down his brush, and had just begun 'Well, of all the unjust
-things--' when his eye chanced to fall upon Alice, as she stood watching
-them, and he checked himself suddenly: the others looked round also, and
-all of them bowed low.
-
-'Would you tell me,' said Alice, a little timidly, 'why you are painting
-those roses?'
-
-Five and Seven said nothing, but looked at Two. Two began in a low
-voice, 'Why the fact is, you see, Miss, this here ought to have been a
-RED rose-tree, and we put a white one in by mistake; and if the Queen
-was to find it out, we should all have our heads cut off, you know.
-So you see, Miss, we're doing our best, afore she comes, to--' At this
-moment Five, who had been anxiously looking across the garden, called
-out 'The Queen! The Queen!' and the three gardeners instantly threw
-themselves flat upon their faces. There was a sound of many footsteps,
-and Alice looked round, eager to see the Queen.
-


<TRUNCATED>

[20/50] [abbrv] incubator-ignite git commit: gg*{sh, bat} renamed to ignite*{sh, bat}

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
index 0103f7c..ba632f3 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-1.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
index 5a2aece..f22430e 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-2.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
index 041a003..25078bc 100644
--- a/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
+++ b/modules/core/src/test/config/benchmark/spring-cache-client-benchmark-3.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/example-cache.xml b/modules/core/src/test/config/example-cache.xml
index 0382d07..2217994 100644
--- a/modules/core/src/test/config/example-cache.xml
+++ b/modules/core/src/test/config/example-cache.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file to GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/ggfs-loopback.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-loopback.xml b/modules/core/src/test/config/ggfs-loopback.xml
index d736e31..94cab9a 100644
--- a/modules/core/src/test/config/ggfs-loopback.xml
+++ b/modules/core/src/test/config/ggfs-loopback.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-ggfs-loopback.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-ggfs-loopback.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-ggfs-loopback.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/ggfs-shmem.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/ggfs-shmem.xml b/modules/core/src/test/config/ggfs-shmem.xml
index 535b363..48a1ca1 100644
--- a/modules/core/src/test/config/ggfs-shmem.xml
+++ b/modules/core/src/test/config/ggfs-shmem.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-ggfs-shmem.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-ggfs-shmem.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-ggfs-shmem.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/spring-cache-load.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-cache-load.xml b/modules/core/src/test/config/spring-cache-load.xml
index 687a4c0..05f6c53 100644
--- a/modules/core/src/test/config/spring-cache-load.xml
+++ b/modules/core/src/test/config/spring-cache-load.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/spring-multicache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-multicache.xml b/modules/core/src/test/config/spring-multicache.xml
index f11b24f..c5261ff 100644
--- a/modules/core/src/test/config/spring-multicache.xml
+++ b/modules/core/src/test/config/spring-multicache.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/streamer/average/spring-streamer-average-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/average/spring-streamer-average-base.xml b/modules/core/src/test/config/streamer/average/spring-streamer-average-base.xml
index 6675989..5f90c9f 100644
--- a/modules/core/src/test/config/streamer/average/spring-streamer-average-base.xml
+++ b/modules/core/src/test/config/streamer/average/spring-streamer-average-base.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/streamer/average/spring-streamer-average-local.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/average/spring-streamer-average-local.xml b/modules/core/src/test/config/streamer/average/spring-streamer-average-local.xml
index aa9facd..8db31aa 100644
--- a/modules/core/src/test/config/streamer/average/spring-streamer-average-local.xml
+++ b/modules/core/src/test/config/streamer/average/spring-streamer-average-local.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/streamer/average/spring-streamer-average-random.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/average/spring-streamer-average-random.xml b/modules/core/src/test/config/streamer/average/spring-streamer-average-random.xml
index 53925db..463820a 100644
--- a/modules/core/src/test/config/streamer/average/spring-streamer-average-random.xml
+++ b/modules/core/src/test/config/streamer/average/spring-streamer-average-random.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/config/streamer/spring-streamer-base.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/streamer/spring-streamer-base.xml b/modules/core/src/test/config/streamer/spring-streamer-base.xml
index 326124f..3cfe8cb 100644
--- a/modules/core/src/test/config/streamer/spring-streamer-base.xml
+++ b/modules/core/src/test/config/streamer/spring-streamer-base.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheMultiNodeDataStructureTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheMultiNodeDataStructureTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheMultiNodeDataStructureTest.java
index b739318..a265a51 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheMultiNodeDataStructureTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheMultiNodeDataStructureTest.java
@@ -25,8 +25,8 @@ import org.apache.ignite.internal.util.typedef.*;
 /**
  * Starts up an node with cache configuration.
  * You can also must start a stand-alone GridGain instance by passing the path
- * to configuration file to {@code 'ggstart.{sh|bat}'} script, like so:
- * {@code 'ggstart.sh examples/config/example-cache.xml'}.
+ * to configuration file to {@code 'ignite.{sh|bat}'} script, like so:
+ * {@code 'ignite.sh examples/config/example-cache.xml'}.
  */
 public class GridCacheMultiNodeDataStructureTest {
     /** Ensure singleton. */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/java/org/apache/ignite/loadtests/capacity/spring-capacity-cache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/capacity/spring-capacity-cache.xml b/modules/core/src/test/java/org/apache/ignite/loadtests/capacity/spring-capacity-cache.xml
index 00b787c..6374e35 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/capacity/spring-capacity-cache.xml
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/capacity/spring-capacity-cache.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/java/org/apache/ignite/loadtests/colocation/spring-colocation.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/colocation/spring-colocation.xml b/modules/core/src/test/java/org/apache/ignite/loadtests/colocation/spring-colocation.xml
index 2d8a89d..7592340 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/colocation/spring-colocation.xml
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/colocation/spring-colocation.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/example-benchmark.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/java/org/apache/ignite/loadtests/mapper/GridNodeStartup.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/loadtests/mapper/GridNodeStartup.java b/modules/core/src/test/java/org/apache/ignite/loadtests/mapper/GridNodeStartup.java
index 22f906f..1fb7d71 100644
--- a/modules/core/src/test/java/org/apache/ignite/loadtests/mapper/GridNodeStartup.java
+++ b/modules/core/src/test/java/org/apache/ignite/loadtests/mapper/GridNodeStartup.java
@@ -25,8 +25,8 @@ import javax.swing.*;
 /**
  * Starts up an empty node with cache configuration.
  * You can also start a stand-alone GridGain instance by passing the path
- * to configuration file to {@code 'ggstart.{sh|bat}'} script, like so:
- * {@code 'ggstart.sh examples/config/example-cache.xml'}.
+ * to configuration file to {@code 'ignite.{sh|bat}'} script, like so:
+ * {@code 'ignite.sh examples/config/example-cache.xml'}.
  * <p>
  * The difference is that running this class from IDE adds all example classes to classpath
  * but running from command line doesn't.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java b/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
index f8629d6..b8c24f8 100644
--- a/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
+++ b/modules/core/src/test/java/org/apache/ignite/startup/GridRandomCommandLineLoader.java
@@ -125,7 +125,7 @@ public final class GridRandomCommandLineLoader {
         if (errMsg != null)
             echo("ERROR: " + errMsg);
 
-        String runner = System.getProperty(IGNITE_PROG_NAME, "randggstart.{sh|bat}");
+        String runner = System.getProperty(IGNITE_PROG_NAME, "randignite.{sh|bat}");
 
         int space = runner.indexOf(' ');
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/java/org/apache/ignite/startup/GridVmNodesStarter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/startup/GridVmNodesStarter.java b/modules/core/src/test/java/org/apache/ignite/startup/GridVmNodesStarter.java
index 16c8f80..e02ae4a 100644
--- a/modules/core/src/test/java/org/apache/ignite/startup/GridVmNodesStarter.java
+++ b/modules/core/src/test/java/org/apache/ignite/startup/GridVmNodesStarter.java
@@ -99,7 +99,7 @@ public final class GridVmNodesStarter {
         if (errMsg != null)
             echo("ERROR: " + errMsg);
 
-        String runner = System.getProperty(IGNITE_PROG_NAME, "randggstart.{sh|bat}");
+        String runner = System.getProperty(IGNITE_PROG_NAME, "randignite.{sh|bat}");
 
         int space = runner.indexOf(' ');
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/core/src/test/webapp/META-INF/gg-config.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/webapp/META-INF/gg-config.xml b/modules/core/src/test/webapp/META-INF/gg-config.xml
index aa6bb69..0b8d1fa 100644
--- a/modules/core/src/test/webapp/META-INF/gg-config.xml
+++ b/modules/core/src/test/webapp/META-INF/gg-config.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/spring-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/spring-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/spring-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/email/readme.txt
----------------------------------------------------------------------
diff --git a/modules/email/readme.txt b/modules/email/readme.txt
index 9fd9108..2e434de 100644
--- a/modules/email/readme.txt
+++ b/modules/email/readme.txt
@@ -6,7 +6,7 @@ expiration or fatal system errors (this should be also configured via 'GridConfi
 configuration properties).
 
 To enable email module when starting a standalone node, move 'optional/ignite-email' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing email Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/hadoop/readme.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/readme.txt b/modules/hadoop/readme.txt
index 0212371..37b7a65 100644
--- a/modules/hadoop/readme.txt
+++ b/modules/hadoop/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite Hadoop module provides In-Memory MapReduce engine and driver to us
 which are 100% compatible with HDFS and YARN.
 
 To enable Hadoop module when starting a standalone node, move 'optional/ignite-hadoop' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Hadoop Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/hibernate/readme.txt
----------------------------------------------------------------------
diff --git a/modules/hibernate/readme.txt b/modules/hibernate/readme.txt
index 7b4b70a..5a33622 100644
--- a/modules/hibernate/readme.txt
+++ b/modules/hibernate/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite Hibernate module provides Hibernate second-level cache (L2 cache)
 on Apache Ignite In-Memory Data Grid.
 
 To enable Hibernate module when starting a standalone node, move 'optional/ignite-hibernate' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Hibernate Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/indexing/readme.txt
----------------------------------------------------------------------
diff --git a/modules/indexing/readme.txt b/modules/indexing/readme.txt
index 699b2ee..f0ea6ba 100644
--- a/modules/indexing/readme.txt
+++ b/modules/indexing/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite indexing module provides capabilities to index cache context and r
 individual field queries against these indexes.
 
 To enable indexing module when starting a standalone node, move 'optional/ignite-indexing' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing indexing Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/jcl/readme.txt
----------------------------------------------------------------------
diff --git a/modules/jcl/readme.txt b/modules/jcl/readme.txt
index 0f713dc..ac37421 100644
--- a/modules/jcl/readme.txt
+++ b/modules/jcl/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite JCL module provides GridLogger implementation that can delegate to
 on Jakarta Commons Logging (JCL).
 
 To enable JCL module when starting a standalone node, move 'optional/ignite-jcl' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing JCL Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/jta/readme.txt
----------------------------------------------------------------------
diff --git a/modules/jta/readme.txt b/modules/jta/readme.txt
index 5893824..c6c08b2 100644
--- a/modules/jta/readme.txt
+++ b/modules/jta/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite JTA Module
 Apache Ignite JTA module provides capabilities to integrate Apache Ignite cache transactions with JTA.
 
 To enable JTA module when starting a standalone node, move 'optional/ignite-jta' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing JTA Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/log4j/readme.txt
----------------------------------------------------------------------
diff --git a/modules/log4j/readme.txt b/modules/log4j/readme.txt
index 8d8ff4f..9ca3c55 100644
--- a/modules/log4j/readme.txt
+++ b/modules/log4j/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite Log4J Module
 Apache Ignite Log4J module provides GridLogger implementation based on Apache Log4J.
 
 To enable Log4J module when starting a standalone node, move 'optional/ignite-log4j' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Log4J Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/rest-http/readme.txt
----------------------------------------------------------------------
diff --git a/modules/rest-http/readme.txt b/modules/rest-http/readme.txt
index 139f287..0df2cf5 100644
--- a/modules/rest-http/readme.txt
+++ b/modules/rest-http/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite REST-HTTP module provides Jetty-based server which can be used to
 in grid using REST approach via HTTP protocol.
 
 To enable REST-HTTP module when starting a standalone node, move 'optional/ignite-rest-http' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing REST-HTTP Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/scalar/readme.txt
----------------------------------------------------------------------
diff --git a/modules/scalar/readme.txt b/modules/scalar/readme.txt
index 88bb921..38c5879 100644
--- a/modules/scalar/readme.txt
+++ b/modules/scalar/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite Scalar Module
 Apache Ignite Scalar module provides Scala-based DSL with extensions and shortcuts for Apache Ignite API.
 
 To enable Scalar module when starting a standalone node, move 'optional/ignite-scalar' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Scalar Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/schedule/readme.txt
----------------------------------------------------------------------
diff --git a/modules/schedule/readme.txt b/modules/schedule/readme.txt
index ba51203..4ca7ac8 100644
--- a/modules/schedule/readme.txt
+++ b/modules/schedule/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite Schedule Module
 Apache Ignite Schedule module provides functionality for scheduling jobs locally using UNIX cron-based syntax.
 
 To enable Schedule module when starting a standalone node, move 'optional/ignite-schedule' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Schedule Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/slf4j/readme.txt
----------------------------------------------------------------------
diff --git a/modules/slf4j/readme.txt b/modules/slf4j/readme.txt
index c6fadc3..2583ce3 100644
--- a/modules/slf4j/readme.txt
+++ b/modules/slf4j/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite SLF4J Module
 Apache Ignite SLF4J module provides GridLogger implementation based on SLF4J.
 
 To enable SLF4J module when starting a standalone node, move 'optional/ignite-slf4j' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing SLF4J Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/spring/readme.txt
----------------------------------------------------------------------
diff --git a/modules/spring/readme.txt b/modules/spring/readme.txt
index 93eade9..24718b7 100644
--- a/modules/spring/readme.txt
+++ b/modules/spring/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite Spring module provides resources injection capabilities and parser
 configuration XML files.
 
 To enable Spring module when starting a standalone node, move 'optional/ignite-spring' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Spring Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCacheManager.java
----------------------------------------------------------------------
diff --git a/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCacheManager.java b/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCacheManager.java
index e7f2a46..bd13e60 100644
--- a/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCacheManager.java
+++ b/modules/spring/src/main/java/org/apache/ignite/cache/spring/SpringCacheManager.java
@@ -125,7 +125,7 @@ import java.util.*;
  * <h1>Starting Remote Nodes</h1>
  * Remember that the node started inside your application is an entry point
  * to the whole topology it connects to. You can start as many remote standalone
- * nodes as you need using {@code bin/ggstart.{sh|bat}} scripts provided in
+ * nodes as you need using {@code bin/ignite.{sh|bat}} scripts provided in
  * GridGain distribution, and all these nodes will participate
  * in caching data.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/ssh/readme.txt
----------------------------------------------------------------------
diff --git a/modules/ssh/readme.txt b/modules/ssh/readme.txt
index e69c896..a0876e7 100644
--- a/modules/ssh/readme.txt
+++ b/modules/ssh/readme.txt
@@ -4,7 +4,7 @@ Apache Ignite SSH Module
 Apache Ignite SSH module provides capabilities to start Apache Ignite nodes on remote machines via SSH.
 
 To enable SSH module when starting a standalone node, move 'optional/ignite-ssh' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing SSH Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/GridNodeCallableImpl.java
----------------------------------------------------------------------
diff --git a/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/GridNodeCallableImpl.java b/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/GridNodeCallableImpl.java
index 77f3f96..0d80430 100644
--- a/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/GridNodeCallableImpl.java
+++ b/modules/ssh/src/main/java/org/apache/ignite/internal/util/nodestart/GridNodeCallableImpl.java
@@ -41,10 +41,10 @@ public class GridNodeCallableImpl implements GridNodeCallable {
     private static final String DFLT_IGNITE_HOME_LINUX = "$IGNITE_HOME";
 
     /** Default start script path for Windows. */
-    private static final String DFLT_SCRIPT_WIN = "bin\\ggstart.bat -v -np";
+    private static final String DFLT_SCRIPT_WIN = "bin\\ignite.bat -v -np";
 
     /** Default start script path for Linux. */
-    private static final String DFLT_SCRIPT_LINUX = "bin/ggstart.sh -v";
+    private static final String DFLT_SCRIPT_LINUX = "bin/ignite.sh -v";
 
     /**
      * Logs folder for Windows.
@@ -301,11 +301,11 @@ public class GridNodeCallableImpl implements GridNodeCallable {
     }
 
     /**
-     * Builds ggstart.sh attributes to set up SSH username and password and log directory for started node.
+     * Builds ignite.sh attributes to set up SSH username and password and log directory for started node.
      *
      * @param username SSH user name.
      * @param host Host.
-     * @return {@code ggstart.sh} script arguments.
+     * @return {@code ignite.sh} script arguments.
      */
     private String buildRemoteLogArguments(String username, String host) {
         assert username != null;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/urideploy/readme.txt
----------------------------------------------------------------------
diff --git a/modules/urideploy/readme.txt b/modules/urideploy/readme.txt
index a641ddf..a2cdb62 100644
--- a/modules/urideploy/readme.txt
+++ b/modules/urideploy/readme.txt
@@ -5,7 +5,7 @@ Apache Ignite URI Deploy module provides capabilities to deploy tasks from diffe
 File System, HTTP, FTP, or even Email.
 
 To enable URI Deploy module when starting a standalone node, move 'optional/ignite-urideploy' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing URI Deploy Module In Maven Project

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/visor-console/src/main/scala/org/apache/ignite/visor/Packet.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/Packet.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/Packet.scala
index b389df5..3aefa2a 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/Packet.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/Packet.scala
@@ -31,7 +31,7 @@ package org.apache.ignite
  * Visor console provides monitoring capabilities for GridGain.
  *
  * ==Usage==
- * GridGain ships with `IGNITE_HOME/bin/ggvisorcmd.{sh|bat}` script that starts Visor console.
+ * GridGain ships with `IGNITE_HOME/bin/ignitevisorcmd.{sh|bat}` script that starts Visor console.
  *
  * Just type:<ex>help</ex> in Visor console to get help and get started.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/Packet.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/Packet.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/Packet.scala
index 8d3edf7..457f201 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/Packet.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/Packet.scala
@@ -66,8 +66,8 @@ package org.apache.ignite.visor.commands
  *         If not provided, default GridGain configuration is used.
  *     -s=<path>
  *         Path to start script (relative to GridGain home).
- *         Default is "bin/ggstart.sh" for Unix or
- *         "bin\ggstart.bat" for Windows.
+ *         Default is "bin/ignite.sh" for Unix or
+ *         "bin\ignite.bat" for Windows.
  *     -m=<num>
  *         Defines maximum number of nodes that can be started in parallel on one host.
  *         This actually means number of parallel SSH connections to each SSH server.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/VisorStartCommand.scala
----------------------------------------------------------------------
diff --git a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/VisorStartCommand.scala b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/VisorStartCommand.scala
index b6592c3..d4affc1 100644
--- a/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/VisorStartCommand.scala
+++ b/modules/visor-console/src/main/scala/org/apache/ignite/visor/commands/start/VisorStartCommand.scala
@@ -92,8 +92,8 @@ private case class Result(
  *         If not provided, default GridGain configuration is used.
  *     -s=<path>
  *         Path to start script (relative to GridGain home).
- *         Default is "bin/ggstart.sh" for Unix or
- *         "bin\ggstart.bat" for Windows.
+ *         Default is "bin/ignite.sh" for Unix or
+ *         "bin\ignite.bat" for Windows.
  *     -m=<num>
  *         Defines maximum number of nodes that can be started in parallel on one host.
  *         This actually means number of parallel SSH connections to each SSH server.
@@ -384,8 +384,8 @@ object VisorStartCommand {
             ),
             "-s=<path>" -> List(
                 "Path to start script (relative to GridGain home).",
-                "Default is \"bin/ggstart.sh\" for Unix or",
-                "\"bin\\ggstart.bat\" for Windows."
+                "Default is \"bin/ignite.sh\" for Unix or",
+                "\"bin\\ignite.bat\" for Windows."
             ),
             "-m=<num>" -> List(
                 "Defines maximum number of nodes that can be started in parallel on one host.",

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/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 e69d7ee..476714e 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
@@ -115,7 +115,7 @@ trait VisorTag
  * Visor console provides monitoring capabilities for GridGain.
  *
  * ==Usage==
- * GridGain ships with `IGNITE_HOME/bin/ggvisorcmd.{sh|bat}` script that starts Visor console.
+ * GridGain ships with `IGNITE_HOME/bin/ignitevisorcmd.{sh|bat}` script that starts Visor console.
  *
  * Just type:<ex>help</ex> in Visor console to get help and get started.
  */

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/modules/web/readme.txt
----------------------------------------------------------------------
diff --git a/modules/web/readme.txt b/modules/web/readme.txt
index 5acdf40..68f62b3 100644
--- a/modules/web/readme.txt
+++ b/modules/web/readme.txt
@@ -6,7 +6,7 @@ which allow to start Apache Ignite inside any web container. Additionally this m
 capabilities to cache web sessions in Apache Ignite cache.
 
 To enable Web module when starting a standalone node, move 'optional/ignite-web' folder to
-'libs' folder before running 'ggstart.{sh|bat}' script. The content of the module folder will
+'libs' folder before running 'ignite.{sh|bat}' script. The content of the module folder will
 be added to classpath in this case.
 
 Importing Web Module In Maven Project


[17/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branches 'remotes/origin/ignite-69', 'remotes/origin/ignite-71' and 'remotes/origin/ignite-72-1' into sprint-1

Posted by se...@apache.org.
Merge remote-tracking branches 'remotes/origin/ignite-69', 'remotes/origin/ignite-71' and 'remotes/origin/ignite-72-1' into sprint-1


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

Branch: refs/heads/ignite-132
Commit: f64485ba826858addfb68943db8fcf1b146af2e8
Parents: 5203363 43d54c2 8df3ac4 ae74087
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Fri Jan 30 21:01:27 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Fri Jan 30 21:01:27 2015 +0300

----------------------------------------------------------------------
 assembly/release-base.xml                       |     2 +-
 config/gridgain-log4j.xml                       |   152 -
 config/ignite-log4j.xml                         |   152 +
 config/java.util.logging.properties             |    14 +-
 .../apache/ignite/examples/ComputeExample.java  |    59 +
 .../ignite/examples/MessagingExample.java       |   166 +
 .../org/gridgain/examples/ComputeExample.java   |    59 -
 .../org/gridgain/examples/MessagingExample.java |   166 -
 .../integration/ClientAbstractSelfTest.java     |     2 +-
 .../rest/RestBinaryProtocolSelfTest.java        |     2 +-
 .../java/org/apache/ignite/IgniteLogger.java    |     2 +-
 .../impl/GridRouterCommandLineStartup.java      |     2 +-
 .../apache/ignite/internal/GridProductImpl.java |     2 +-
 .../apache/ignite/internal/IgniteKernal.java    |     8 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |     6 +-
 .../handlers/log/GridLogCommandHandler.java     |     2 +-
 .../java/IgniteJavaLoggerFileHandler.java       |     2 +-
 .../ignite/thread/IgniteThreadFactory.java      |     2 +-
 modules/core/src/test/config/log4j-test.xml     |     2 +-
 .../loadtests/nio/GridNioBenchmarkTest.java     |     2 +-
 .../startup/GridRandomCommandLineLoader.java    |     2 +-
 .../testframework/junits/GridAbstractTest.java  |     2 +-
 .../logger/GridLog4jRollingFileAppender.java    |     2 +-
 .../junits/logger/GridTestLog4jLogger.java      |     2 +-
 .../src/test/resources/log/gridgain.log.tst     | 13706 -----------------
 .../core/src/test/resources/log/ignite.log.tst  | 13706 +++++++++++++++++
 .../child/GridHadoopExternalProcessStarter.java |     2 +-
 .../apache/ignite/logger/jcl/GridJclLogger.java |     4 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |     2 +-
 .../logger/log4j/IgniteLog4jNodeIdFilePath.java |     4 +-
 .../log4j/GridLog4jCorrectFileNameTest.java     |     4 +-
 .../rest/protocols/http/jetty/rest.html         |     6 +-
 modules/scalar/pom.xml                          |     6 +-
 .../util/nodestart/GridNodeCallableImpl.java    |     2 +-
 pom.xml                                         |    10 +-
 35 files changed, 14132 insertions(+), 14132 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f64485ba/modules/scalar/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/f64485ba/pom.xml
----------------------------------------------------------------------


[18/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-67' into sprint-1

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletContextListenerStartup.java
----------------------------------------------------------------------
diff --cc modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletContextListenerStartup.java
index e28f3e2,0000000..79f3f3a
mode 100644,000000..100644
--- a/modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletContextListenerStartup.java
+++ b/modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletContextListenerStartup.java
@@@ -1,181 -1,0 +1,181 @@@
 +/*
 + * 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.startup.servlet;
 +
 +import org.apache.ignite.*;
 +import org.apache.ignite.configuration.*;
 +import org.apache.ignite.internal.*;
 +import org.apache.ignite.lang.*;
 +import org.apache.ignite.internal.processors.resource.*;
 +import org.apache.ignite.internal.util.typedef.*;
 +import org.apache.ignite.internal.util.typedef.internal.*;
 +
 +import javax.servlet.*;
 +import java.net.*;
 +import java.util.*;
 +
 +/**
 + * This class defines GridGain startup based on servlet context listener.
 + * This startup can be used to start GridGain inside any web container.
 + * <p>
 + * This startup must be defined in {@code web.xml} file.
 + * <pre name="code" class="xml">
 + * &lt;listener&gt;
 + *     &lt;listener-class&gt;org.apache.ignite.startup.servlet.IgniteServletContextListenerStartup&lt;/listener-class&gt;
 + * &lt;/listener&gt;
 + *
 + * &lt;context-param&gt;
-  *     &lt;param-name&gt;GridGainConfigurationFilePath&lt;/param-name&gt;
++ *     &lt;param-name&gt;IgniteConfigurationFilePath&lt;/param-name&gt;
 + *     &lt;param-value&gt;config/default-config.xml&lt;/param-value&gt;
 + * &lt;/context-param&gt;
 + * </pre>
 + * <p>
 + * Servlet context listener based startup may be used in any web container like Tomcat, Jetty and etc.
 + * Depending on the way this startup is deployed the GridGain instance can be accessed
 + * by either all web applications or by only one. See web container class loading architecture:
 + * <ul>
 + * <li><a target=_blank href="http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html">http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html</a></li>
 + * <li><a target=_blank href="http://docs.codehaus.org/display/JETTY/Classloading">http://docs.codehaus.org/display/JETTY/Classloading</a></li>
 + * </ul>
 + * <p>
 + * <h2 class="header">Tomcat</h2>
 + * There are two ways to start GridGain on Tomcat.
 + * <ul>
 + * <li>GridGain started when web container starts and GridGain instance is accessible only to all web applications.
 + *     <ol>
 + *     <li>Add GridGain libraries in Tomcat common loader.
 + *         Add in file {@code $TOMCAT_HOME/conf/catalina.properties} for property {@code common.loader}
-  *         the following {@code $GRIDGAIN_HOME/*.jar,$GRIDGAIN_HOME/libs/*.jar}
-  *         (replace {@code $GRIDGAIN_HOME} with absolute path).
++ *         the following {@code $IGNITE_HOME/*.jar,$IGNITE_HOME/libs/*.jar}
++ *         (replace {@code $IGNITE_HOME} with absolute path).
 + *     </li>
 + *     <li>Configure this startup in {@code $TOMCAT_HOME/conf/web.xml}
 + *         <pre name="code" class="xml">
 + *         &lt;listener&gt;
 + *             &lt;listener-class&gt;org.apache.ignite.startup.servlet.IgniteServletContextListenerStartup&lt;/listener-class&gt;
 + *         &lt;/listener&gt;
 + *
 + *         &lt;context-param&gt;
-  *             &lt;param-name&gt;GridGainConfigurationFilePath&lt;/param-name&gt;
++ *             &lt;param-name&gt;IgniteConfigurationFilePath&lt;/param-name&gt;
 + *             &lt;param-value&gt;config/default-config.xml&lt;/param-value&gt;
 + *         &lt;/context-param&gt;
 + *         </pre>
 + *     </li>
 + *     </ol>
 + * </li>
 + * <li>
 + * GridGain started from WAR-file and GridGain instance is accessible only to that web application.
 + * Difference with approach described above is that {@code web.xml} file and all libraries should
 + * be added in WAR file without changes in Tomcat configuration files.
 + * </li>
 + * </ul>
 + */
 +public class IgniteServletContextListenerStartup implements ServletContextListener {
 +    /** Configuration file path parameter name. */
-     public static final String GRIDGAIN_CFG_FILE_PATH_PARAM = "GridGainConfigurationFilePath";
++    public static final String IGNITE_CFG_FILE_PATH_PARAM = "IgniteConfigurationFilePath";
 +
 +    /** Names of started grids. */
 +    private final Collection<String> gridNames = new ArrayList<>();
 +
 +    /** {@inheritDoc} */
 +    @Override public void contextInitialized(ServletContextEvent evt) {
 +        ServletContext ctx = evt.getServletContext();
 +
-         String cfgFile = ctx.getInitParameter(GRIDGAIN_CFG_FILE_PATH_PARAM);
++        String cfgFile = ctx.getInitParameter(IGNITE_CFG_FILE_PATH_PARAM);
 +
 +        Collection<IgniteConfiguration> cfgs;
 +        GridSpringResourceContext rsrcCtx = null;
 +
 +        if (cfgFile != null) {
 +            URL cfgUrl = null;
 +
 +            try {
 +                cfgUrl = evt.getServletContext().getResource("/META-INF/" + cfgFile);
 +            }
 +            catch (MalformedURLException ignored) {
-                 // Ignore, we still need to try with GRIDGAIN_HOME.
++                // Ignore, we still need to try with IGNITE_HOME.
 +            }
 +
 +            if (cfgUrl == null)
-                 // Try with GRIDGAIN_HOME and with context class loader.
++                // Try with IGNITE_HOME and with context class loader.
 +                cfgUrl = U.resolveGridGainUrl(cfgFile);
 +
 +            if (cfgUrl == null)
 +                throw new IgniteException("Failed to find Spring configuration file (path provided should be " +
-                     "either absolute, relative to GRIDGAIN_HOME, or relative to META-INF folder): " + cfgFile);
++                    "either absolute, relative to IGNITE_HOME, or relative to META-INF folder): " + cfgFile);
 +
 +            IgniteBiTuple<Collection<IgniteConfiguration>, ? extends GridSpringResourceContext> t;
 +
 +            try {
 +                t = IgnitionEx.loadConfigurations(cfgUrl);
 +            }
 +            catch (IgniteCheckedException e) {
 +                throw new IgniteException("Failed to load GridGain configuration.", e);
 +            }
 +
 +            cfgs = t.get1();
 +            rsrcCtx  = t.get2();
 +
 +            if (cfgs.isEmpty())
 +                throw new IgniteException("Can't find grid factory configuration in: " + cfgUrl);
 +        }
 +        else
 +            cfgs = Collections.<IgniteConfiguration>singleton(new IgniteConfiguration());
 +
 +        try {
 +            assert !cfgs.isEmpty();
 +
 +            for (IgniteConfiguration cfg : cfgs) {
 +                assert cfg != null;
 +
 +                Ignite ignite;
 +
 +                synchronized (IgniteServletContextListenerStartup.class) {
 +                    try {
 +                        ignite = G.ignite(cfg.getGridName());
 +                    }
 +                    catch (IgniteIllegalStateException ignored) {
 +                        ignite = IgnitionEx.start(new IgniteConfiguration(cfg), rsrcCtx);
 +                    }
 +                }
 +
 +                // Check if grid is not null - started properly.
 +                if (ignite != null)
 +                    gridNames.add(ignite.name());
 +            }
 +        }
 +        catch (IgniteCheckedException e) {
 +            // Stop started grids only.
 +            for (String name : gridNames)
 +                G.stop(name, true);
 +
 +            throw new IgniteException("Failed to start GridGain.", e);
 +        }
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void contextDestroyed(ServletContextEvent evt) {
 +        // Stop started grids only.
 +        for (String name: gridNames)
 +            G.stop(name, true);
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String toString() {
 +        return S.toString(IgniteServletContextListenerStartup.class, this);
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletStartup.java
----------------------------------------------------------------------
diff --cc modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletStartup.java
index 32c456c,0000000..20ea055
mode 100644,000000..100644
--- a/modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletStartup.java
+++ b/modules/web/src/main/java/org/apache/ignite/startup/servlet/IgniteServletStartup.java
@@@ -1,187 -1,0 +1,187 @@@
 +/*
 + * 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.startup.servlet;
 +
 +import org.apache.ignite.*;
 +import org.apache.ignite.configuration.*;
 +import org.apache.ignite.internal.*;
 +import org.apache.ignite.lang.*;
 +import org.apache.ignite.internal.processors.resource.*;
 +import org.apache.ignite.internal.util.typedef.*;
 +import org.apache.ignite.internal.util.typedef.internal.*;
 +
 +import javax.servlet.*;
 +import javax.servlet.http.*;
 +import java.net.*;
 +import java.util.*;
 +
 +/**
 + * This class defines servlet-based GridGain startup. This startup can be used to start GridGain
 + * inside any web container as servlet.
 + * <p>
 + * This startup must be defined in {@code web.xml} file.
 + * <pre name="code" class="xml">
 + * &lt;servlet&gt;
 + *     &lt;servlet-name&gt;GridGain&lt;/servlet-name&gt;
 + *     &lt;servlet-class&gt;org.apache.ignite.startup.servlet.IgniteServletStartup&lt;/servlet-class&gt;
 + *     &lt;init-param&gt;
 + *         &lt;param-name&gt;cfgFilePath&lt;/param-name&gt;
 + *         &lt;param-value&gt;config/default-config.xml&lt;/param-value&gt;
 + *     &lt;/init-param&gt;
 + *     &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
 + * &lt;/servlet&gt;
 + * </pre>
 + * <p>
 + * Servlet-based startup may be used in any web container like Tomcat, Jetty and etc.
 + * Depending on the way this startup is deployed the GridGain instance can be accessed
 + * by either all web applications or by only one. See web container class loading architecture:
 + * <ul>
 + * <li><a target=_blank href="http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html">http://tomcat.apache.org/tomcat-7.0-doc/class-loader-howto.html</a></li>
 + * <li><a target=_blank href="http://docs.codehaus.org/display/JETTY/Classloading">http://docs.codehaus.org/display/JETTY/Classloading</a></li>
 + * </ul>
 + * <p>
 + * <h2 class="header">Tomcat</h2>
 + * There are two ways to start GridGain on Tomcat.
 + * <ul>
 + * <li>GridGain started when web container starts and GridGain instance is accessible only to all web applications.
 + * <ol>
 + *     <li>Add GridGain libraries in Tomcat common loader.
 + *         Add in file {@code $TOMCAT_HOME/conf/catalina.properties} for property {@code shared.loader}
-  *         the following {@code $GRIDGAIN_HOME/gridgain.jar,$GRIDGAIN_HOME/libs/*.jar}
-  *         (replace {@code $GRIDGAIN_HOME} with absolute path).
++ *         the following {@code $IGNITE_HOME/gridgain.jar,$IGNITE_HOME/libs/*.jar}
++ *         (replace {@code $IGNITE_HOME} with absolute path).
 + *     </li>
 + *     <li>Configure startup in {@code $TOMCAT_HOME/conf/web.xml}
 + *         <pre name="code" class="xml">
 + *         &lt;servlet&gt;
 + *             &lt;servlet-name&gt;GridGain&lt;/servlet-name&gt;
 + *             &lt;servlet-class&gt;org.apache.ignite.startup.servlet.IgniteServletStartup&lt;/servlet-class&gt;
 + *             &lt;init-param&gt;
 + *                 &lt;param-name&gt;cfgFilePath&lt;/param-name&gt;
 + *                 &lt;param-value&gt;config/default-config.xml&lt;/param-value&gt;
 + *             &lt;/init-param&gt;
 + *             &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
 + *         &lt;/servlet&gt;
 + *         </pre>
 + *     </li>
 + *     </ol>
 + * </li>
 + * <li>
 + * GridGain started from WAR-file and GridGain instance is accessible only to that web application.
 + * Difference with approach described above is that {@code web.xml} file and all libraries should
 + * be added in WAR file without changes in Tomcat configuration files.
 + * </li>
 + * </ul>
 + * <p>
 + * <h2 class="header">Jetty</h2>
 + * Below is Java code example with Jetty API:
 + * <pre name="code" class="java">
 + * Server service = new Server();
 + *
 + * service.addListener("localhost:8090");
 + *
 + * ServletHttpContext ctx = (ServletHttpContext)service.getContext("/");
 + *
 + * ServletHolder servlet = ctx.addServlet("GridGain", "/GridGainStartup",
 + *      "org.apache.ignite.startup.servlet.IgniteServletStartup");
 + *
 + * servlet.setInitParameter("cfgFilePath", "config/default-config.xml");
 + *
 + * servlet.setInitOrder(1);
 + *
 + * servlet.start();
 + *
 + * service.start();
 + * </pre>
 + */
 +public class IgniteServletStartup extends HttpServlet {
 +    /** */
 +    private static final long serialVersionUID = 0L;
 +
 +    /** Grid loaded flag. */
 +    private static boolean loaded;
 +
 +    /** Configuration file path variable name. */
 +    private static final String cfgFilePathParam = "cfgFilePath";
 +
 +    /** */
 +    private Collection<String> gridNames = new ArrayList<>();
 +
 +    /** {@inheritDoc} */
 +    @SuppressWarnings({"unchecked"})
 +    @Override public void init() throws ServletException {
 +        // Avoid multiple servlet instances. GridGain should be loaded once.
 +        if (loaded)
 +            return;
 +
 +        String cfgFile = getServletConfig().getInitParameter(cfgFilePathParam);
 +
 +        if (cfgFile == null)
 +            throw new ServletException("Failed to read property: " + cfgFilePathParam);
 +
 +        URL cfgUrl = U.resolveGridGainUrl(cfgFile);
 +
 +        if (cfgUrl == null)
 +            throw new ServletException("Failed to find Spring configuration file (path provided should be " +
-                 "either absolute, relative to GRIDGAIN_HOME, or relative to META-INF folder): " + cfgFile);
++                "either absolute, relative to IGNITE_HOME, or relative to META-INF folder): " + cfgFile);
 +
 +        try {
 +            IgniteBiTuple<Collection<IgniteConfiguration>, ? extends GridSpringResourceContext> t =
 +                IgnitionEx.loadConfigurations(cfgUrl);
 +
 +            Collection<IgniteConfiguration> cfgs = t.get1();
 +
 +            if (cfgs == null)
 +                throw new ServletException("Failed to find a single grid factory configuration in: " + cfgUrl);
 +
 +            for (IgniteConfiguration cfg : cfgs) {
 +                assert cfg != null;
 +
 +                IgniteConfiguration adapter = new IgniteConfiguration(cfg);
 +
 +                Ignite ignite = IgnitionEx.start(adapter, t.get2());
 +
 +                // Test if grid is not null - started properly.
 +                if (ignite != null)
 +                    gridNames.add(ignite.name());
 +            }
 +        }
 +        catch (IgniteCheckedException e) {
 +            // Stop started grids only.
 +            for (String name: gridNames)
 +                G.stop(name, true);
 +
 +            throw new ServletException("Failed to start GridGain.", e);
 +        }
 +
 +        loaded = true;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void destroy() {
 +        // Stop started grids only.
 +        for (String name: gridNames)
 +            G.stop(name, true);
 +
 +        loaded = false;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public String toString() {
 +        return S.toString(IgniteServletStartup.class, this);
 +    }
 +}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/115f5979/pom.xml
----------------------------------------------------------------------


[02/50] [abbrv] incubator-ignite git commit: Merge remote-tracking branch 'origin/sprint-1' into sprint-1

Posted by se...@apache.org.
Merge remote-tracking branch 'origin/sprint-1' into sprint-1


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

Branch: refs/heads/ignite-132
Commit: 71442e29f702a9c8ffc51d8f291a410292a517d5
Parents: 746ce78 4da5e29
Author: Artem SHutak <as...@gridgain.com>
Authored: Fri Jan 30 13:21:59 2015 +0300
Committer: Artem SHutak <as...@gridgain.com>
Committed: Fri Jan 30 13:21:59 2015 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/messaging/GridMessagingSelfTest.java    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[32/50] [abbrv] incubator-ignite git commit: Merge branches 'ignite-132' and 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-132

Posted by se...@apache.org.
Merge branches 'ignite-132' and 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into ignite-132

Conflicts:
	modules/core/src/main/java/org/apache/ignite/internal/GridEx.java
	modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopDefaultMapReducePlannerSelfTest.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/36dc41a5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/36dc41a5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/36dc41a5

Branch: refs/heads/ignite-132
Commit: 36dc41a53fcb5e6b64551fda60b4af1f4063c444
Parents: 583e702 ff7ee6d
Author: S.Vladykin <sv...@gridgain.com>
Authored: Tue Feb 3 00:30:05 2015 +0300
Committer: S.Vladykin <sv...@gridgain.com>
Committed: Tue Feb 3 00:30:05 2015 +0300

----------------------------------------------------------------------
 assembly/libs/readme.txt                        |   115 +-
 assembly/release-base-fabric.xml                |     6 +-
 assembly/release-base.xml                       |     6 +-
 assembly/release-hadoop.xml                     |     6 +-
 bin/ggrouter.bat                                |    33 -
 bin/ggrouter.sh                                 |    50 -
 bin/ggstart.bat                                 |   228 -
 bin/ggstart.sh                                  |   176 -
 bin/ggvisorcmd.bat                              |   144 -
 bin/ggvisorcmd.sh                               |   124 -
 bin/ignite.bat                                  |   228 +
 bin/ignite.sh                                   |   176 +
 bin/igniterouter.bat                            |    33 +
 bin/igniterouter.sh                             |    50 +
 bin/ignitevisorcmd.bat                          |   144 +
 bin/ignitevisorcmd.sh                           |   124 +
 bin/include/functions.sh                        |    42 +-
 bin/include/hadoop-classpath.bat                |     2 +-
 bin/include/hadoop-classpath.sh                 |     4 +-
 bin/include/parseargs.bat                       |     2 +-
 bin/include/parseargs.sh                        |     6 +-
 bin/include/service.sh                          |    12 +-
 bin/include/setenv.bat                          |    28 +-
 bin/include/setenv.sh                           |    34 +-
 bin/include/target-classpath.bat                |     8 +-
 bin/include/target-classpath.sh                 |    14 +-
 bin/setup-hadoop.bat                            |     2 +-
 bin/setup-hadoop.sh                             |    12 +-
 config/gridgain-log4j.xml                       |   152 -
 config/hadoop/default-config.xml                |     2 +-
 config/ignite-log4j.xml                         |   152 +
 config/java.util.logging.properties             |    16 +-
 config/router/default-router.xml                |     2 +-
 docs/core-site.gridgain.xml                     |    89 -
 docs/core-site.ignite.xml                       |    89 +
 docs/gridgain_readme.md                         |   149 -
 docs/gridgain_readme.pdf                        |   Bin 407698 -> 0 bytes
 docs/hadoop_readme.md                           |    84 +-
 docs/hadoop_readme.pdf                          |   Bin 411788 -> 82297 bytes
 docs/hive-site.gridgain.xml                     |    36 -
 docs/hive-site.ignite.xml                       |    36 +
 docs/ignite_readme.md                           |   100 +
 docs/ignite_readme.pdf                          |   Bin 0 -> 76810 bytes
 docs/mapred-site.gridgain.xml                   |    79 -
 docs/mapred-site.ignite.xml                     |    79 +
 examples/config/example-cache.xml               |     2 +-
 examples/config/example-streamer.xml            |     8 +-
 examples/config/filesystem/example-ggfs.xml     |     2 +-
 examples/config/filesystem/readme.txt           |     4 +-
 .../hibernate/example-hibernate-L2-cache.xml    |    14 +-
 examples/config/hibernate/readme.txt            |     4 +-
 examples/config/servlet/WEB-INF/web.xml         |     4 +-
 examples/config/servlet/readme.txt              |     2 +-
 examples/rest/http-rest-example.php             |     2 +-
 examples/rest/memcache-rest-example.php         |     2 +-
 .../compute/ComputeBroadcastExample.java        |     2 +-
 .../compute/ComputeCallableExample.java         |     2 +-
 .../examples/compute/ComputeClosureExample.java |     2 +-
 .../compute/ComputeContinuousMapperExample.java |     2 +-
 .../compute/ComputeExecutorServiceExample.java  |     2 +-
 .../ComputeFibonacciContinuationExample.java    |    13 +-
 .../compute/ComputeProjectionExample.java       |     2 +-
 .../examples/compute/ComputeReducerExample.java |     2 +-
 .../compute/ComputeRunnableExample.java         |     7 +-
 .../compute/ComputeScheduleExample.java         |     2 +-
 .../examples/compute/ComputeTaskMapExample.java |     2 +-
 .../compute/ComputeTaskSplitExample.java        |     2 +-
 .../compute/montecarlo/CreditRiskExample.java   |     2 +-
 .../examples/datagrid/CacheAffinityExample.java |     2 +-
 .../examples/datagrid/CacheApiExample.java      |     2 +-
 .../datagrid/CacheContinuousQueryExample.java   |     2 +-
 .../datagrid/CacheDataLoaderExample.java        |    17 +-
 .../examples/datagrid/CacheEventsExample.java   |     2 +-
 .../datagrid/CachePopularNumbersExample.java    |     2 +-
 .../examples/datagrid/CachePutGetExample.java   |     2 +-
 .../examples/datagrid/CacheQueryExample.java    |     2 +-
 .../datagrid/CacheTransactionExample.java       |     2 +-
 .../datastructures/CacheAtomicLongExample.java  |     2 +-
 .../CacheAtomicReferenceExample.java            |     2 +-
 .../CacheAtomicSequenceExample.java             |     2 +-
 .../CacheAtomicStampedExample.java              |     2 +-
 .../CacheCountDownLatchExample.java             |     2 +-
 .../datastructures/CacheQueueExample.java       |     2 +-
 .../datastructures/CacheSetExample.java         |     2 +-
 .../hibernate/HibernateL2CacheExample.java      |     2 +-
 .../HibernateL2CacheExampleNodeStartup.java     |     6 +-
 .../starschema/CacheStarSchemaExample.java      |     2 +-
 .../ignite/examples/events/EventsExample.java   |     2 +-
 .../ignite/examples/ggfs/GgfsExample.java       |     2 +-
 .../examples/ggfs/GgfsMapReduceExample.java     |     2 +-
 .../ignite/examples/ggfs/GgfsNodeStartup.java   |     4 +-
 .../examples/messaging/MessagingExample.java    |     2 +-
 .../messaging/MessagingPingPongExample.java     |     2 +-
 .../MessagingPingPongListenActorExample.java    |     2 +-
 .../misc/deployment/DeploymentExample.java      |     2 +-
 .../misc/springbean/SpringBeanExample.java      |     2 +-
 .../examples/services/ServicesExample.java      |     2 +-
 .../streaming/StreamingCheckInExample.java      |     8 +-
 .../StreamingPopularNumbersExample.java         |     8 +-
 .../streaming/StreamingPriceBarsExample.java    |     8 +-
 .../StreamingRunningAverageExample.java         |     8 +-
 .../apache/ignite/examples/ComputeExample.java  |    59 +
 .../ignite/examples/MessagingExample.java       |   166 +
 .../org/gridgain/examples/ComputeExample.java   |    59 -
 .../org/gridgain/examples/MessagingExample.java |   166 -
 .../examples/ScalarCacheAffinityExample1.scala  |     2 +-
 .../examples/ScalarCacheAffinityExample2.scala  |     2 +-
 .../ScalarCacheAffinitySimpleExample.scala      |     2 +-
 .../scalar/examples/ScalarCacheExample.scala    |     2 +-
 .../ScalarCachePopularNumbersExample.scala      |     2 +-
 .../examples/ScalarCacheQueryExample.scala      |     2 +-
 .../scalar/examples/ScalarClosureExample.scala  |     2 +-
 .../examples/ScalarContinuationExample.scala    |    11 +-
 .../examples/ScalarCreditRiskExample.scala      |     2 +-
 .../examples/ScalarPiCalculationExample.scala   |     2 +-
 .../scalar/examples/ScalarPingPongExample.scala |     2 +-
 .../scalar/examples/ScalarPrimeExample.scala    |     2 +-
 .../scalar/examples/ScalarScheduleExample.scala |     2 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |     2 +-
 .../scalar/examples/ScalarTaskExample.scala     |     2 +-
 .../examples/ScalarWorldShortestMapReduce.scala |     2 +-
 .../GridMonteCarloExamplesSelfTest.java         |     4 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |     2 +-
 .../ScalarExamplesSelfTestSuite.scala           |     2 +-
 ipc/readme.txt                                  |     4 +-
 ipc/shmem/Makefile.am                           |     2 +-
 ipc/shmem/Makefile.in                           |     2 +-
 ipc/shmem/configure                             |     4 +-
 ipc/shmem/configure.ac                          |     2 +-
 ipc/shmem/ggshmem/Makefile.am                   |    23 -
 ipc/shmem/ggshmem/Makefile.in                   |   589 -
 ..._util_ipc_shmem_GridIpcSharedMemoryUtils.cpp |   882 --
 ipc/shmem/igniteshmem/Makefile.am               |    23 +
 ipc/shmem/igniteshmem/Makefile.in               |   589 +
 ...rnal_util_ipc_shmem_IpcSharedMemoryUtils.cpp |   882 ++
 ipc/shmem/include/Makefile.am                   |     2 +-
 ipc/shmem/include/Makefile.in                   |     2 +-
 ...ternal_util_ipc_shmem_IpcSharedMemoryUtils.h |   117 +
 ...id_util_ipc_shmem_GridIpcSharedMemoryUtils.h |   117 -
 ipc/shmem/readme.txt                            |    17 +-
 modules/aop/readme.txt                          |    14 +-
 .../GridifySetToXXXNonSpringAopSelfTest.java    |    20 +-
 .../GridifySetToXXXSpringAopSelfTest.java       |    20 +-
 .../ignite/gridify/NonSpringAopSelfTest.java    |    20 +-
 .../optimized/OptimizedMarshallerAopTest.java   |     4 +-
 .../testsuites/IgniteAopSelfTestSuite.java      |     2 +-
 .../gridify/ExternalNonSpringAopSelfTest.java   |    20 +-
 modules/aws/readme.txt                          |    14 +-
 .../spi/checkpoint/s3/S3CheckpointSpi.java      |     4 +-
 modules/clients/src/test/bin/start-nodes-ssh.sh |     2 +-
 modules/clients/src/test/bin/start-nodes.cmd    |    24 +-
 modules/clients/src/test/bin/start-nodes.sh     |    34 +-
 .../ClientAbstractMultiThreadedSelfTest.java    |     8 +-
 .../client/ClientDefaultCacheSelfTest.java      |     4 +-
 .../client/ClientTopologyCacheSelfTest.java     |     2 +-
 .../ClientPropertiesConfigurationSelfTest.java  |     4 +-
 .../ClientAbstractMultiNodeSelfTest.java        |     4 +-
 .../integration/ClientAbstractSelfTest.java     |    14 +-
 .../client/router/ClientFailedInitSelfTest.java |     4 +-
 .../client/router/RouterFactorySelfTest.java    |     4 +-
 .../JettyRestProcessorAbstractSelfTest.java     |     4 +-
 .../rest/RestBinaryProtocolSelfTest.java        |     4 +-
 .../rest/RestProcessorStartSelfTest.java        |     3 +-
 .../rest/TaskCommandHandlerSelfTest.java        |     6 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |     6 +-
 .../src/test/resources/jetty/rest-jetty-ssl.xml |    10 +-
 .../src/test/resources/jetty/rest-jetty.xml     |     8 +-
 .../test/resources/jetty/router-jetty-ssl.xml   |     8 +-
 .../src/test/resources/jetty/router-jetty.xml   |     8 +-
 modules/clients/src/test/resources/log4j.xml    |     4 +-
 .../clients/src/test/resources/spring-cache.xml |     2 +-
 .../src/test/resources/spring-router-ssl.xml    |     4 +-
 .../src/test/resources/spring-router.xml        |     4 +-
 .../src/test/resources/spring-server-node.xml   |     2 +-
 .../test/resources/spring-server-ssl-node.xml   |     2 +-
 .../java/META-INF/native/linux64/libggshmem.so  |   Bin 138023 -> 0 bytes
 .../META-INF/native/linux64/libigniteshmem.so   |   Bin 0 -> 138345 bytes
 .../java/META-INF/native/osx/libggshmem.dylib   |   Bin 32940 -> 0 bytes
 .../META-INF/native/osx/libigniteshmem.dylib    |   Bin 0 -> 33116 bytes
 .../apache/ignite/IgniteBasicWarmupClosure.java |     6 +-
 .../apache/ignite/IgniteCheckedException.java   |     2 +-
 .../java/org/apache/ignite/IgniteCluster.java   |     6 +-
 .../org/apache/ignite/IgniteDataLoader.java     |    14 +-
 .../java/org/apache/ignite/IgniteException.java |     2 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |     4 +-
 .../java/org/apache/ignite/IgniteLogger.java    |     6 +-
 .../java/org/apache/ignite/IgniteScheduler.java |     6 +-
 .../apache/ignite/IgniteSystemProperties.java   |   198 +-
 .../main/java/org/apache/ignite/Ignition.java   |    54 +-
 .../apache/ignite/cache/CacheConfiguration.java |     3 +-
 .../org/apache/ignite/cache/CacheEntry.java     |    27 +-
 .../apache/ignite/cache/CacheProjection.java    |    43 +-
 .../apache/ignite/cache/CachingProvider.java    |     2 +-
 .../java/org/apache/ignite/cache/GridCache.java |     5 +-
 .../CacheConsistentHashAffinityFunction.java    |     2 +-
 .../apache/ignite/cache/query/CacheQueries.java |     7 +-
 .../apache/ignite/cache/query/CacheQuery.java   |     3 +-
 .../ignite/cache/query/CacheQueryFuture.java    |     4 +-
 .../cache/query/CacheQuerySqlFunction.java      |     4 +-
 .../cache/query/annotations/QuerySqlField.java  |     2 +-
 .../query/annotations/QuerySqlFunction.java     |     2 +-
 .../apache/ignite/cache/store/CacheStore.java   |     2 +-
 .../apache/ignite/client/GridClientCompute.java |     8 +-
 .../ignite/client/router/GridRouterFactory.java |     4 +-
 .../impl/GridRouterCommandLineStartup.java      |     4 +-
 .../router/impl/GridTcpRouterNioParser.java     |     4 +-
 .../ignite/compute/ComputeTaskFuture.java       |     4 +-
 .../ignite/compute/ComputeTaskSession.java      |     3 +-
 .../apache/ignite/compute/gridify/Gridify.java  |     2 +-
 .../ignite/compute/gridify/GridifySetToSet.java |     4 +-
 .../compute/gridify/GridifySetToValue.java      |     4 +-
 .../ClientConnectionConfiguration.java          |    16 +-
 .../configuration/GridQueryConfiguration.java   |   201 -
 .../configuration/IgniteConfiguration.java      |   102 +-
 .../configuration/IgniteDeploymentMode.java     |     4 +-
 .../configuration/IgniteQueryConfiguration.java |   201 +
 .../apache/ignite/fs/IgniteFsConfiguration.java |     2 +-
 .../ignite/fs/mapreduce/IgniteFsTask.java       |     2 +-
 .../org/apache/ignite/hadoop/GridHadoop.java    |     6 +-
 .../ignite/internal/ClusterGroupAdapter.java    |     2 +-
 .../internal/ClusterNodeLocalMapImpl.java       |     2 +-
 .../java/org/apache/ignite/internal/GridEx.java |   151 -
 .../org/apache/ignite/internal/GridGainEx.java  |  2399 ---
 .../ignite/internal/GridJobSessionImpl.java     |     2 +-
 .../org/apache/ignite/internal/GridKernal.java  |  3322 ----
 .../ignite/internal/GridKernalContext.java      |    10 +-
 .../ignite/internal/GridKernalContextImpl.java  |    22 +-
 .../apache/ignite/internal/GridLoggerProxy.java |     6 +-
 .../internal/GridPerformanceSuggestions.java    |     4 +-
 .../apache/ignite/internal/GridProductImpl.java |     2 +-
 .../ignite/internal/GridTaskSessionImpl.java    |     2 +-
 .../ignite/internal/GridUpdateNotifier.java     |     2 +-
 .../ignite/internal/IgniteClusterAsyncImpl.java |     4 +-
 .../org/apache/ignite/internal/IgniteEx.java    |   135 +
 .../ignite/internal/IgniteInternalFuture.java   |   190 +
 .../apache/ignite/internal/IgniteKernal.java    |  3315 ++++
 .../ignite/internal/IgniteSchedulerImpl.java    |     6 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |  2395 +++
 .../internal/executor/GridExecutorService.java  |    44 +-
 .../managers/communication/GridIoManager.java   |     3 +-
 .../GridDeploymentPerLoaderStore.java           |    20 +-
 .../GridDeploymentPerVersionStore.java          |     4 +-
 .../discovery/GridDiscoveryManager.java         |     2 +-
 .../eventstorage/GridEventStorageManager.java   |     4 +-
 .../affinity/GridAffinityAssignmentCache.java   |     5 +-
 .../affinity/GridAffinityProcessor.java         |     8 +-
 .../processors/affinity/GridAffinityUtils.java  |     2 +-
 .../processors/cache/CacheLockImpl.java         |     4 +-
 .../processors/cache/GridCacheAdapter.java      |   371 +-
 .../cache/GridCacheAffinityManager.java         |     8 +-
 .../processors/cache/GridCacheContext.java      |    59 +-
 .../cache/GridCacheDeploymentManager.java       |   163 +-
 .../processors/cache/GridCacheEntryEx.java      |     8 +
 .../processors/cache/GridCacheEntryImpl.java    |    27 +-
 .../cache/GridCacheEvictionEntry.java           |    27 +-
 .../cache/GridCacheEvictionManager.java         |     4 +-
 .../cache/GridCacheExplicitLockSpan.java        |     4 +-
 .../cache/GridCacheFilterEvaluationEntry.java   |    27 +-
 .../processors/cache/GridCacheFuture.java       |     3 +-
 .../processors/cache/GridCacheIoManager.java    |    15 +-
 .../processors/cache/GridCacheMapEntry.java     |   116 +-
 .../cache/GridCacheMultiTxFuture.java           |     6 +-
 .../cache/GridCacheMvccCandidate.java           |     4 +-
 .../processors/cache/GridCacheMvccManager.java  |    29 +-
 .../GridCachePartitionExchangeManager.java      |    11 +-
 .../processors/cache/GridCachePreloader.java    |     7 +-
 .../cache/GridCachePreloaderAdapter.java        |    11 +-
 .../processors/cache/GridCacheProcessor.java    |    18 +-
 .../processors/cache/GridCacheProjectionEx.java |    27 +-
 .../cache/GridCacheProjectionImpl.java          |    69 +-
 .../processors/cache/GridCacheProxyImpl.java    |    73 +-
 .../cache/GridCacheSharedContext.java           |    13 +-
 .../processors/cache/GridCacheStoreManager.java |    62 +-
 .../processors/cache/GridCacheSwapManager.java  |     3 +-
 .../cache/GridCacheUpdateAtomicResult.java      |     6 +-
 .../processors/cache/GridCacheUtils.java        |     9 +-
 .../cache/GridCacheWriteBehindStore.java        |    21 +-
 .../processors/cache/GridDrResolveResult.java   |    63 -
 .../processors/cache/IgniteCacheProxy.java      |    37 +-
 .../GridCacheAtomicSequenceImpl.java            |     3 +-
 .../GridCacheDataStructuresManager.java         |     4 +-
 ...ridCacheOptimisticCheckPreparedTxFuture.java |     7 +-
 ...dCachePessimisticCheckCommittedTxFuture.java |     7 +-
 .../distributed/GridCacheTxFinishSync.java      |     8 +-
 .../GridDistributedCacheAdapter.java            |     7 +-
 .../GridDistributedTxRemoteAdapter.java         |    54 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |    12 +-
 .../distributed/dht/GridDhtCacheEntry.java      |     7 +-
 .../distributed/dht/GridDhtEmbeddedFuture.java  |     8 +-
 .../cache/distributed/dht/GridDhtFuture.java    |     4 +-
 .../cache/distributed/dht/GridDhtGetFuture.java |    11 +-
 .../distributed/dht/GridDhtLocalPartition.java  |     7 +-
 .../distributed/dht/GridDhtLockFuture.java      |    11 +-
 .../distributed/dht/GridDhtTopologyFuture.java  |     4 +-
 .../dht/GridDhtTransactionalCacheAdapter.java   |    29 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |    11 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |    19 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |    11 +-
 .../distributed/dht/GridDhtTxPrepareFuture.java |    11 +-
 .../dht/GridPartitionedGetFuture.java           |    34 +-
 .../dht/atomic/GridDhtAtomicCache.java          |   132 +-
 .../dht/atomic/GridNearAtomicUpdateFuture.java  |    34 +-
 .../dht/colocated/GridDhtColocatedCache.java    |    24 +-
 .../colocated/GridDhtColocatedLockFuture.java   |    23 +-
 .../dht/preloader/GridDhtForceKeysFuture.java   |     7 +-
 .../preloader/GridDhtPartitionDemandPool.java   |    15 +-
 .../GridDhtPartitionsExchangeFuture.java        |    20 +-
 .../dht/preloader/GridDhtPreloader.java         |    29 +-
 .../distributed/near/GridNearAtomicCache.java   |    47 +-
 .../distributed/near/GridNearCacheAdapter.java  |    15 +-
 .../distributed/near/GridNearGetFuture.java     |    38 +-
 .../distributed/near/GridNearLockFuture.java    |    23 +-
 .../near/GridNearTransactionalCache.java        |     9 +-
 .../near/GridNearTxFinishFuture.java            |    17 +-
 .../cache/distributed/near/GridNearTxLocal.java |    58 +-
 .../near/GridNearTxPrepareFuture.java           |    17 +-
 .../processors/cache/dr/GridCacheDrManager.java |    57 +-
 .../cache/dr/os/GridOsCacheDrManager.java       |    35 +-
 .../processors/cache/local/GridLocalCache.java  |     7 +-
 .../processors/cache/local/GridLocalTx.java     |    12 +-
 .../local/atomic/GridLocalAtomicCache.java      |   139 +-
 .../GridCacheDistributedFieldsQueryFuture.java  |     4 +-
 .../query/GridCacheDistributedQueryManager.java |     9 +-
 .../query/GridCacheFieldsQueryErrorFuture.java  |     3 +-
 .../query/GridCacheLocalFieldsQueryFuture.java  |     4 +-
 .../cache/query/GridCacheLocalQueryFuture.java  |     3 +-
 .../cache/query/GridCacheQueriesEx.java         |     6 +-
 .../cache/query/GridCacheQueriesImpl.java       |    11 +-
 .../cache/query/GridCacheQueriesProxy.java      |    11 +-
 .../cache/query/GridCacheQueryManager.java      |    50 +-
 .../query/GridCacheQueryMetadataAware.java      |     4 +-
 .../GridCacheContinuousQueryEntry.java          |    27 +-
 .../jdbc/GridCacheQueryJdbcMetadataTask.java    |     2 +-
 .../query/jdbc/GridCacheQueryJdbcTask.java      |     2 +-
 .../transactions/IgniteTransactionsImpl.java    |     3 +-
 .../cache/transactions/IgniteTxAdapter.java     |    52 +-
 .../cache/transactions/IgniteTxEx.java          |     9 +-
 .../cache/transactions/IgniteTxHandler.java     |    48 +-
 .../transactions/IgniteTxLocalAdapter.java      |   200 +-
 .../cache/transactions/IgniteTxLocalEx.java     |    17 +-
 .../cache/transactions/IgniteTxManager.java     |    25 +-
 .../cache/transactions/IgniteTxProxyImpl.java   |     9 +-
 ...ridCacheVersionAbstractConflictResolver.java |    56 +
 .../GridCacheVersionConflictContext.java        |    73 +
 .../GridCacheVersionConflictContextImpl.java    |   188 +
 .../GridCacheVersionConflictResolver.java       |    59 +
 .../version/GridCacheVersionedEntryEx.java      |     2 +-
 .../closure/GridClosureProcessor.java           |    56 +-
 .../continuous/GridContinuousProcessor.java     |     4 +-
 .../dataload/GridDataLoaderProcessor.java       |     5 +-
 .../dataload/IgniteDataLoaderImpl.java          |    87 +-
 .../dr/GridDrDataLoadCacheUpdater.java          |     5 +-
 .../email/IgniteEmailProcessorAdapter.java      |     5 +-
 .../email/IgniteNoopEmailProcessor.java         |     5 +-
 .../processors/fs/GridGgfsAsyncImpl.java        |     3 +-
 .../processors/fs/GridGgfsDataManager.java      |    30 +-
 .../internal/processors/fs/GridGgfsEx.java      |     3 +-
 .../internal/processors/fs/GridGgfsImpl.java    |    18 +-
 .../processors/fs/GridGgfsInputStreamImpl.java  |    19 +-
 .../processors/fs/GridGgfsIpcHandler.java       |     4 +-
 .../processors/fs/GridGgfsMetaManager.java      |     9 +-
 .../internal/processors/fs/GridGgfsServer.java  |    34 +-
 .../processors/fs/GridGgfsServerHandler.java    |     4 +-
 .../processors/fs/GridGgfsServerManager.java    |     8 +-
 .../processors/fs/IgniteFsNoopProcessor.java    |     2 +-
 .../processors/fs/IgniteFsOutputStreamImpl.java |     3 +-
 .../processors/fs/IgniteFsProcessor.java        |    12 +-
 .../processors/fs/IgniteFsProcessorAdapter.java |     2 +-
 .../hadoop/IgniteHadoopNoopProcessor.java       |     5 +-
 .../hadoop/IgniteHadoopProcessorAdapter.java    |     5 +-
 .../processors/interop/GridInteropAware.java    |    49 -
 .../interop/GridInteropProcessor.java           |    82 -
 .../interop/GridInteropProcessorAdapter.java    |    31 -
 .../processors/interop/GridInteropTarget.java   |   109 -
 .../interop/os/GridOsInteropProcessor.java      |    80 -
 .../internal/processors/interop/os/package.html |    23 -
 .../internal/processors/interop/package.html    |    23 -
 .../processors/job/GridJobProcessor.java        |     2 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |     4 +-
 .../plugin/IgnitePluginProcessor.java           |    10 +-
 .../processors/query/GridQueryIndexing.java     |     4 +-
 .../processors/query/GridQueryProcessor.java    |    12 +-
 .../resource/GridResourceProcessor.java         |     2 +-
 .../resource/GridSpringResourceContext.java     |     2 +-
 .../processors/rest/GridRestProcessor.java      |    18 +-
 .../rest/GridRestProtocolHandler.java           |     4 +-
 .../rest/handlers/GridRestCommandHandler.java   |     4 +-
 .../handlers/cache/GridCacheCommandHandler.java |    60 +-
 .../cache/GridCacheQueryCommandHandler.java     |    12 +-
 .../handlers/log/GridLogCommandHandler.java     |     7 +-
 .../metadata/GridPortableMetadataHandler.java   |     3 +-
 .../handlers/task/GridTaskCommandHandler.java   |    12 +-
 .../top/GridTopologyCommandHandler.java         |     3 +-
 .../version/GridVersionCommandHandler.java      |     3 +-
 .../protocols/tcp/GridClientPacketType.java     |     4 +-
 .../protocols/tcp/GridMemcachedMessage.java     |     4 +-
 .../tcp/GridTcpMemcachedNioListener.java        |    17 +-
 .../protocols/tcp/GridTcpRestNioListener.java   |     5 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |    18 +-
 .../service/GridServiceProcessor.java           |    22 +-
 .../processors/service/GridServiceProxy.java    |     2 +-
 .../streamer/GridStreamProcessor.java           |    11 +-
 .../processors/streamer/IgniteStreamerEx.java   |     3 +-
 .../processors/streamer/IgniteStreamerImpl.java |     9 +-
 .../internal/util/GridConcurrentFactory.java    |     3 +-
 .../internal/util/GridConfigurationFinder.java  |     4 +-
 .../internal/util/GridReflectionCache.java      |     3 +-
 .../apache/ignite/internal/util/GridUtils.java  |  9100 -----------
 .../ignite/internal/util/IgniteUtils.java       |  9141 +++++++++++
 .../util/future/GridCompoundFuture.java         |    28 +-
 .../util/future/GridCompoundIdentityFuture.java |     2 +-
 .../util/future/GridEmbeddedFuture.java         |    38 +-
 .../util/future/GridFinishedFuture.java         |    10 +-
 .../util/future/GridFinishedFutureEx.java       |     9 +-
 .../internal/util/future/GridFutureAdapter.java |    34 +-
 .../util/future/GridFutureAdapterEx.java        |    31 +-
 .../util/future/GridFutureChainListener.java    |     8 +-
 .../internal/util/io/GridUnsafeDataInput.java   |     2 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |     2 +-
 .../internal/util/ipc/GridIpcEndpoint.java      |    49 -
 .../util/ipc/GridIpcEndpointBindException.java  |    47 -
 .../util/ipc/GridIpcEndpointFactory.java        |    84 -
 .../internal/util/ipc/GridIpcEndpointType.java  |    29 -
 .../util/ipc/GridIpcServerEndpoint.java         |    73 -
 .../ipc/GridIpcServerEndpointDeserializer.java  |    66 -
 .../internal/util/ipc/GridIpcToNioAdapter.java  |   250 -
 .../ignite/internal/util/ipc/IpcEndpoint.java   |    49 +
 .../util/ipc/IpcEndpointBindException.java      |    47 +
 .../internal/util/ipc/IpcEndpointFactory.java   |    84 +
 .../internal/util/ipc/IpcEndpointType.java      |    29 +
 .../internal/util/ipc/IpcServerEndpoint.java    |    73 +
 .../util/ipc/IpcServerEndpointDeserializer.java |    66 +
 .../internal/util/ipc/IpcToNioAdapter.java      |   250 +
 .../ipc/loopback/GridIpcClientTcpEndpoint.java  |    87 -
 .../ipc/loopback/GridIpcServerTcpEndpoint.java  |   179 -
 .../util/ipc/loopback/IpcClientTcpEndpoint.java |    87 +
 .../util/ipc/loopback/IpcServerTcpEndpoint.java |   179 +
 .../GridIpcOutOfSystemResourcesException.java   |    59 -
 .../GridIpcSharedMemoryClientEndpoint.java      |   336 -
 .../shmem/GridIpcSharedMemoryInitRequest.java   |    67 -
 .../shmem/GridIpcSharedMemoryInitResponse.java  |   171 -
 .../shmem/GridIpcSharedMemoryInputStream.java   |    99 -
 .../shmem/GridIpcSharedMemoryNativeLoader.java  |   242 -
 ...cSharedMemoryOperationTimedoutException.java |    59 -
 .../shmem/GridIpcSharedMemoryOutputStream.java  |    80 -
 .../GridIpcSharedMemoryServerEndpoint.java      |   707 -
 .../ipc/shmem/GridIpcSharedMemorySpace.java     |   374 -
 .../ipc/shmem/GridIpcSharedMemoryUtils.java     |   242 -
 .../shmem/IpcOutOfSystemResourcesException.java |    59 +
 .../shmem/IpcSharedMemoryClientEndpoint.java    |   336 +
 .../ipc/shmem/IpcSharedMemoryInitRequest.java   |    67 +
 .../ipc/shmem/IpcSharedMemoryInitResponse.java  |   171 +
 .../ipc/shmem/IpcSharedMemoryInputStream.java   |    99 +
 .../ipc/shmem/IpcSharedMemoryNativeLoader.java  |   261 +
 ...cSharedMemoryOperationTimedoutException.java |    59 +
 .../ipc/shmem/IpcSharedMemoryOutputStream.java  |    80 +
 .../shmem/IpcSharedMemoryServerEndpoint.java    |   707 +
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |   374 +
 .../util/ipc/shmem/IpcSharedMemoryUtils.java    |   242 +
 .../ignite/internal/util/lang/GridFunc.java     |    53 +-
 .../internal/util/nio/GridBufferedParser.java   |     2 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |    18 +-
 .../ignite/internal/util/nio/GridNioFuture.java |     2 +-
 .../util/nio/GridShmemCommunicationClient.java  |     4 +-
 .../util/nodestart/GridNodeStartUtils.java      |    10 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |     2 +-
 .../util/portscanner/GridJmxPortFinder.java     |     4 +-
 .../apache/ignite/internal/util/typedef/X.java  |    10 +-
 .../internal/util/typedef/internal/U.java       |     4 +-
 .../apache/ignite/internal/visor/VisorJob.java  |     2 +-
 .../internal/visor/VisorMultiNodeTask.java      |     2 +-
 .../ignite/internal/visor/cache/VisorCache.java |     2 +-
 .../visor/cache/VisorCachePreloadTask.java      |     6 +-
 .../compute/VisorComputeMonitoringHolder.java   |    10 +-
 .../visor/misc/VisorResolveHostNameTask.java    |     2 +-
 .../visor/node/VisorBasicConfiguration.java     |    28 +-
 .../visor/node/VisorEmailConfiguration.java     |    14 +-
 .../visor/node/VisorGridConfiguration.java      |     2 +-
 .../visor/node/VisorLifecycleConfiguration.java |     2 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |     6 +-
 .../visor/node/VisorRestConfiguration.java      |     4 +-
 .../internal/visor/query/VisorQueryTask.java    |     2 +-
 .../internal/visor/query/VisorQueryUtils.java   |     4 +-
 .../apache/ignite/jdbc/IgniteJdbcDriver.java    |     2 +-
 .../apache/ignite/lang/IgniteAsyncSupport.java  |     4 +-
 .../ignite/lang/IgniteAsyncSupportAdapter.java  |    38 +-
 .../org/apache/ignite/lang/IgniteFuture.java    |   189 -
 .../apache/ignite/lifecycle/LifecycleBean.java  |     4 +-
 .../ignite/logger/java/IgniteJavaLogger.java    |     4 +-
 .../java/IgniteJavaLoggerFileHandler.java       |     4 +-
 .../optimized/IgniteOptimizedMarshaller.java    |     4 +-
 .../segmentation/GridSegmentationPolicy.java    |     2 +-
 .../ignite/scheduler/SchedulerFuture.java       |     4 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |     4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |     2 +-
 .../ignite/spi/checkpoint/CheckpointSpi.java    |     2 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |     6 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    36 +-
 .../ignite/spi/deployment/DeploymentSpi.java    |     2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |     8 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |     2 +-
 .../TcpDiscoveryMulticastIpFinder.java          |    18 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |     2 +-
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |     2 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |     4 +-
 .../ignite/startup/BasicWarmupClosure.java      |     6 +-
 .../startup/cmdline/CommandLineStartup.java     |    18 +-
 .../startup/cmdline/CommandLineTransformer.java |     8 +-
 .../StreamerCacheAffinityEventRouter.java       |     2 +-
 .../ignite/thread/IgniteThreadFactory.java      |     2 +-
 .../apache/ignite/transactions/IgniteTx.java    |     2 +-
 .../core/src/test/bin/start-nodes-custom.bat    |     2 +-
 modules/core/src/test/bin/start-nodes-custom.sh |     2 +-
 .../spring-cache-client-benchmark-1.xml         |     2 +-
 .../spring-cache-client-benchmark-2.xml         |     2 +-
 .../spring-cache-client-benchmark-3.xml         |     2 +-
 modules/core/src/test/config/example-cache.xml  |     2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |     2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |     2 +-
 modules/core/src/test/config/log4j-test.xml     |     2 +-
 .../core/src/test/config/spring-cache-load.xml  |     2 +-
 .../core/src/test/config/spring-multicache.xml  |     2 +-
 .../average/spring-streamer-average-base.xml    |     2 +-
 .../average/spring-streamer-average-local.xml   |     2 +-
 .../average/spring-streamer-average-random.xml  |     2 +-
 .../config/streamer/spring-streamer-base.xml    |     2 +-
 modules/core/src/test/config/tests.properties   |    10 +-
 .../ignite/GridExceptionHelpLinksSelfTest.java  |   106 -
 .../ignite/GridExternalizableAbstractTest.java  |    41 -
 .../org/apache/ignite/GridTestTaskSession.java  |     4 +-
 .../ignite/IgniteCacheAffinitySelfTest.java     |   283 +
 .../apache/ignite/IgniteCacheAffinityTest.java  |   283 -
 .../IgniteExceptionHelpLinksSelfTest.java       |   105 +
 .../IgniteExternalizableAbstractTest.java       |    41 +
 ...CachePartitionFairAffinityNodesSelfTest.java |     6 +-
 .../store/GridCacheBalancingStoreSelfTest.java  |     3 +-
 ...CacheJdbcBlobStoreMultithreadedSelfTest.java |     7 +-
 .../fs/GridGgfsEventsAbstractSelfTest.java      |     2 +-
 .../ignite/fs/GridGgfsFragmentizerSelfTest.java |     2 +-
 .../internal/GridDiscoveryEventSelfTest.java    |     3 +-
 .../ignite/internal/GridDiscoverySelfTest.java  |     4 +-
 .../GridEventStorageCheckAllEventsSelfTest.java |     2 +-
 .../internal/GridExecutorServiceTest.java       |   315 -
 .../GridExplicitImplicitDeploymentSelfTest.java |   476 -
 .../internal/GridFactoryVmShutdownTest.java     |     2 +-
 .../ignite/internal/GridHomePathSelfTest.java   |     2 +-
 .../GridJobMasterLeaveAwareSelfTest.java        |    56 +-
 .../ignite/internal/GridKernalTestUtils.java    |     3 +-
 .../internal/GridListenActorSelfTest.java       |     3 +-
 .../internal/GridMultipleJobsSelfTest.java      |     6 +-
 .../GridNodeVisorAttributesSelfTest.java        |     4 +-
 .../internal/GridProjectionAbstractTest.java    |    20 +-
 .../ignite/internal/GridReduceSelfTest.java     |     2 +-
 .../ignite/internal/GridStartStopSelfTest.java  |     2 +-
 .../GridTaskFutureImplStopGridSelfTest.java     |     5 +-
 .../internal/GridTaskListenerSelfTest.java      |     4 +-
 .../GridTopicExternalizableSelfTest.java        |     3 +-
 .../GridTopologyBuildVersionSelfTest.java       |     2 +-
 .../internal/GridUpdateNotifierSelfTest.java    |     3 +-
 .../ignite/internal/GridVersionSelfTest.java    |     8 +-
 .../internal/IgniteExecutorServiceTest.java     |   315 +
 ...gniteExplicitImplicitDeploymentSelfTest.java |   476 +
 .../GridCheckpointManagerAbstractSelfTest.java  |     4 +-
 .../GridCommunicationSendMessageSelfTest.java   |     4 +-
 .../GridDiscoveryManagerAliveCacheSelfTest.java |     2 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |     6 +-
 .../events/GridEventStorageManagerSelfTest.java |     3 +-
 .../swapspace/GridSwapSpaceManagerSelfTest.java |     2 +-
 .../GridAffinityProcessorAbstractSelfTest.java  |     6 +-
 .../GridCacheAbstractFailoverSelfTest.java      |     3 +-
 .../cache/GridCacheAbstractFlagsTest.java       |     4 +-
 ...cheAbstractFullApiMultithreadedSelfTest.java |     5 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |   381 +-
 .../GridCacheAbstractIteratorsSelfTest.java     |    10 +-
 .../cache/GridCacheAbstractMetricsSelfTest.java |    28 +-
 .../GridCacheAbstractProjectionSelfTest.java    |    50 +
 .../GridCacheAbstractRemoveFailureTest.java     |    12 +-
 .../cache/GridCacheAbstractSelfTest.java        |     2 +-
 .../cache/GridCacheAffinityApiSelfTest.java     |     4 +-
 .../GridCacheAsyncOperationsLimitSelfTest.java  |     8 +-
 .../cache/GridCacheConcurrentMapTest.java       |     6 +-
 .../GridCacheConcurrentTxMultiNodeTest.java     |     4 +-
 .../cache/GridCacheEntryVersionSelfTest.java    |     4 +-
 .../GridCacheFinishPartitionsSelfTest.java      |    27 +-
 ...CacheFullTextQueryMultithreadedSelfTest.java |     6 +-
 ...idCacheGetAndTransformStoreAbstractTest.java |     4 +-
 .../GridCacheGroupLockAbstractSelfTest.java     |     6 +-
 .../GridCacheGroupLockFailoverSelfTest.java     |     5 +-
 .../cache/GridCacheIncrementTransformTest.java  |     4 +-
 .../processors/cache/GridCacheLeakTest.java     |     2 +-
 .../cache/GridCacheLuceneQueryIndexTest.java    |    18 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |     9 +-
 ...GridCacheMixedPartitionExchangeSelfTest.java |     6 +-
 .../cache/GridCacheMultiUpdateLockSelfTest.java |     5 +-
 .../cache/GridCacheMvccFlagsTest.java           |     4 +-
 .../cache/GridCacheMvccManagerSelfTest.java     |     4 +-
 .../cache/GridCacheMvccPartitionedSelfTest.java |     4 +-
 .../processors/cache/GridCacheMvccSelfTest.java |     4 +-
 .../cache/GridCacheNestedTxAbstractTest.java    |     2 +-
 .../cache/GridCacheObjectToStringSelfTest.java  |     2 +-
 ...HeapMultiThreadedUpdateAbstractSelfTest.java |     5 +-
 .../GridCacheOrderedPreloadingSelfTest.java     |     2 +-
 .../cache/GridCacheP2PUndeploySelfTest.java     |     6 +-
 .../cache/GridCachePartitionedGetSelfTest.java  |     2 +-
 .../GridCachePreloadingEvictionsSelfTest.java   |     8 +-
 .../cache/GridCachePutAllFailoverSelfTest.java  |    17 +-
 .../GridCacheQueryInternalKeysSelfTest.java     |     2 +-
 .../GridCacheReferenceCleanupSelfTest.java      |     6 +-
 ...ridCacheReplicatedSynchronousCommitTest.java |     4 +-
 .../GridCacheReturnValueTransferSelfTest.java   |     2 +-
 .../cache/GridCacheSlowTxWarnTest.java          |     6 +-
 .../processors/cache/GridCacheStopSelfTest.java |     6 +-
 .../cache/GridCacheStoreValueBytesSelfTest.java |     4 +-
 .../cache/GridCacheSwapPreloadSelfTest.java     |     4 +-
 .../cache/GridCacheSwapReloadSelfTest.java      |     2 +-
 .../processors/cache/GridCacheTestEntryEx.java  |     5 +
 .../cache/GridCacheTtlManagerLoadTest.java      |     5 +-
 .../cache/GridCacheTtlManagerSelfTest.java      |     2 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |     6 +-
 .../GridCacheVariableTopologySelfTest.java      |     4 +-
 ...idCacheWriteBehindStoreAbstractSelfTest.java |     4 +-
 .../GridCacheWriteBehindStoreAbstractTest.java  |     4 +-
 .../GridCacheWriteBehindStoreSelfTest.java      |     6 +-
 .../IgniteCacheEntryListenerAbstractTest.java   |     7 +-
 .../cache/IgniteCacheInvokeAbstractTest.java    |    10 +-
 .../processors/cache/IgniteTxAbstractTest.java  |     2 +-
 .../IgniteTxConcurrentGetAbstractTest.java      |     3 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |     2 +-
 .../cache/IgniteTxMultiNodeAbstractTest.java    |     6 +-
 .../IgniteTxMultiThreadedAbstractTest.java      |     6 +-
 .../IgniteTxStoreExceptionAbstractSelfTest.java |     2 +-
 ...eAbstractDataStructuresFailoverSelfTest.java |    27 +-
 ...actQueueFailoverDataConsistencySelfTest.java |     9 +-
 .../GridCacheCountDownLatchSelfTest.java        |     8 +-
 .../GridCacheMultiNodeDataStructureTest.java    |     4 +-
 .../GridCacheQueueCleanupSelfTest.java          |     5 +-
 ...ridCacheQueueJoinedNodeSelfAbstractTest.java |     7 +-
 ...GridCacheQueueMultiNodeAbstractSelfTest.java |    17 +-
 .../GridCacheSetAbstractSelfTest.java           |    15 +-
 .../GridCacheSetFailoverAbstractSelfTest.java   |     6 +-
 ...PartitionedQueueCreateMultiNodeSelfTest.java |     6 +-
 ...dCachePartitionedQueueEntryMoveSelfTest.java |     6 +-
 .../GridCacheAbstractJobExecutionTest.java      |     6 +-
 .../GridCacheAtomicTimeoutSelfTest.java         |    11 +-
 .../GridCacheBasicOpAbstractTest.java           |     7 +-
 .../distributed/GridCacheEventAbstractTest.java |     2 +-
 ...heExpiredEntriesPreloadAbstractSelfTest.java |     2 +-
 .../distributed/GridCacheLockAbstractTest.java  |     6 +-
 .../GridCacheMultiNodeAbstractTest.java         |    15 +-
 .../GridCacheMultiNodeLockAbstractTest.java     |     2 +-
 ...dCacheMultithreadedFailoverAbstractTest.java |     4 +-
 .../GridCacheNodeFailureAbstractTest.java       |     8 +-
 .../IgniteCrossCacheTxStoreSelfTest.java        |   288 +
 ...iteTxConsistencyRestartAbstractSelfTest.java |     4 +-
 ...xOriginatingNodeFailureAbstractSelfTest.java |    10 +-
 ...cOriginatingNodeFailureAbstractSelfTest.java |    22 +-
 .../IgniteTxPreloadAbstractTest.java            |     4 +-
 .../dht/GridCacheAtomicFullApiSelfTest.java     |    11 +-
 .../dht/GridCacheAtomicNearCacheSelfTest.java   |     2 +-
 .../dht/GridCacheColocatedDebugTest.java        |    11 +-
 .../dht/GridCacheDhtEntrySelfTest.java          |     2 +-
 ...GridCacheDhtEvictionNearReadersSelfTest.java |    10 +-
 .../dht/GridCacheDhtEvictionSelfTest.java       |    12 +-
 .../dht/GridCacheDhtMappingSelfTest.java        |     2 +-
 .../dht/GridCacheDhtPreloadDelayedSelfTest.java |     2 +-
 .../dht/GridCacheDhtPreloadPutGetSelfTest.java  |     6 +-
 .../dht/GridCacheDhtPreloadSelfTest.java        |     5 +-
 .../GridCacheDhtPreloadStartStopSelfTest.java   |     5 +-
 ...dCachePartitionedTopologyChangeSelfTest.java |    60 +-
 ...itionedTxOriginatingNodeFailureSelfTest.java |     8 +-
 ...eAtomicInvalidPartitionHandlingSelfTest.java |     5 +-
 .../atomic/GridCacheAtomicPreloadSelfTest.java  |     4 +-
 ...GridCacheValueConsistencyAtomicSelfTest.java |     2 +-
 .../near/GridCacheNearMultiNodeSelfTest.java    |     6 +-
 .../near/GridCacheNearReadersSelfTest.java      |     4 +-
 .../near/GridCacheNearTxMultiNodeSelfTest.java  |     2 +-
 .../GridCachePartitionedEntryLockSelfTest.java  |     5 +-
 ...titionedExplicitLockNodeFailureSelfTest.java |     6 +-
 .../GridCachePartitionedFullApiSelfTest.java    |     4 +-
 ...achePartitionedMultiNodeCounterSelfTest.java |     2 +-
 ...achePartitionedMultiNodeFullApiSelfTest.java |     5 +-
 .../GridCachePartitionedProjectionSelfTest.java |     4 +-
 ...hePartitionedQueryMultiThreadedSelfTest.java |     6 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |    11 +-
 .../GridCacheReplicatedEvictionSelfTest.java    |     5 +-
 .../GridCacheBatchEvictUnswapSelfTest.java      |     5 +-
 ...heConcurrentEvictionConsistencySelfTest.java |     4 +-
 .../GridCacheConcurrentEvictionsSelfTest.java   |     4 +-
 .../cache/eviction/GridCacheMockEntry.java      |    27 +-
 ...cheSynchronousEvictionsFailoverSelfTest.java |     4 +-
 .../IgniteCacheExpiryPolicyAbstractTest.java    |     2 +-
 .../IgniteCacheTxStoreSessionTest.java          |    11 +-
 ...ridCacheContinuousQueryAbstractSelfTest.java |     4 +-
 .../clock/GridTimeSyncProcessorSelfTest.java    |     6 +-
 .../closure/GridClosureProcessorSelfTest.java   |    27 +-
 .../continuous/GridEventConsumeSelfTest.java    |    10 +-
 .../GridDataLoaderProcessorSelfTest.java        |    23 +-
 .../processors/fs/GridGgfsAbstractSelfTest.java |     6 +-
 .../fs/GridGgfsDataManagerSelfTest.java         |     9 +-
 .../processors/fs/GridGgfsModesSelfTest.java    |     4 +-
 .../fs/GridGgfsProcessorSelfTest.java           |     2 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |     6 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |     4 +-
 .../processors/fs/GridGgfsSizeSelfTest.java     |     8 +-
 .../processors/fs/GridGgfsTaskSelfTest.java     |     5 +-
 .../cache/GridCacheCommandHandlerSelfTest.java  |    15 +-
 .../GridServiceProcessorAbstractSelfTest.java   |    20 +-
 .../GridServiceProcessorMultiNodeSelfTest.java  |     8 +-
 .../GridServiceReassignmentSelfTest.java        |     2 +-
 .../streamer/GridStreamerFailoverSelfTest.java  |     4 +-
 .../timeout/GridTimeoutProcessorSelfTest.java   |     5 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |     4 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |    10 +-
 .../internal/util/GridTestClockTimer.java       |     6 +-
 .../ignite/internal/util/GridUtilsSelfTest.java |   717 -
 .../internal/util/IgniteUtilsSelfTest.java      |   728 +
 .../util/future/GridCompoundFutureSelfTest.java |     8 +-
 .../util/future/GridEmbeddedFutureSelfTest.java |     7 +-
 .../util/future/GridFinishedFutureSelfTest.java |     9 +-
 .../util/future/GridFutureAdapterSelfTest.java  |    23 +-
 .../future/GridFutureListenPerformanceTest.java |     5 +-
 ...GridUnsafeDataOutputArraySizingSelfTest.java |     2 +-
 ...idIpcServerEndpointDeserializerSelfTest.java |   160 -
 .../IpcServerEndpointDeserializerSelfTest.java  |   160 +
 .../ipc/shmem/GgfsSharedMemoryTestClient.java   |    76 +
 .../ipc/shmem/GgfsSharedMemoryTestServer.java   |    71 +
 .../shmem/GridGgfsSharedMemoryTestClient.java   |    76 -
 .../shmem/GridGgfsSharedMemoryTestServer.java   |    71 -
 ...idIpcSharedMemoryCrashDetectionSelfTest.java |   500 -
 .../shmem/GridIpcSharedMemoryFakeClient.java    |    36 -
 .../shmem/GridIpcSharedMemoryNodeStartup.java   |    87 -
 .../shmem/GridIpcSharedMemorySpaceSelfTest.java |   259 -
 .../shmem/GridIpcSharedMemoryUtilsSelfTest.java |    84 -
 .../IpcSharedMemoryCrashDetectionSelfTest.java  |   500 +
 .../ipc/shmem/IpcSharedMemoryFakeClient.java    |    36 +
 .../IpcSharedMemoryNativeLoaderSelfTest.java    |    78 +
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |    87 +
 .../ipc/shmem/IpcSharedMemorySpaceSelfTest.java |   267 +
 .../ipc/shmem/IpcSharedMemoryUtilsSelfTest.java |    84 +
 .../LoadWithCorruptedLibFileTestRunner.java     |    65 +
 .../GridIpcSharedMemoryBenchmarkParty.java      |    35 -
 .../GridIpcSharedMemoryBenchmarkReader.java     |   133 -
 .../GridIpcSharedMemoryBenchmarkWriter.java     |   125 -
 .../IpcSharedMemoryBenchmarkParty.java          |    35 +
 .../IpcSharedMemoryBenchmarkReader.java         |   133 +
 .../IpcSharedMemoryBenchmarkWriter.java         |   125 +
 .../internal/util/nio/GridNioSelfTest.java      |     8 +-
 .../offheap/GridOffHeapMapAbstractSelfTest.java |     7 +-
 ...idOffHeapPartitionedMapAbstractSelfTest.java |     3 +-
 ...apPartitionedMapPerformanceAbstractTest.java |    10 +-
 .../unsafe/GridUnsafeMemorySelfTest.java        |     6 +-
 .../ignite/jvmtest/ConcurrentMapTest.java       |     4 +-
 .../ignite/jvmtest/NetworkFailureTest.java      |    16 +-
 .../QueueSizeCounterMultiThreadedTest.java      |     4 +-
 .../jvmtest/ReadWriteLockMultiThreadedTest.java |    10 +-
 .../ignite/lang/GridBasicPerformanceTest.java   |     5 +-
 .../apache/ignite/lang/GridFuncSelfTest.java    |    13 +-
 .../lang/GridFutureListenPerformanceTest.java   |     5 +-
 .../ignite/lang/GridSetWrapperSelfTest.java     |     2 +-
 .../loadtest/GridSingleExecutionTest.java       |     4 +-
 ...idFileSwapSpaceSpiMultithreadedLoadTest.java |     6 +-
 .../cache/GridCacheAbstractLoadTest.java        |     8 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |     2 +-
 .../loadtests/cache/GridCacheLoadTest.java      |     2 +-
 .../cache/GridCachePutRemoveLoadTest.java       |     2 +-
 .../loadtests/cache/GridCacheSwapLoadTest.java  |    13 +-
 .../GridCacheWriteBehindStoreLoadTest.java      |     4 +-
 .../capacity/spring-capacity-cache.xml          |     2 +-
 .../loadtests/colocation/GridTestMain.java      |    10 +-
 .../loadtests/colocation/spring-colocation.xml  |     2 +-
 .../communication/GridIoManagerBenchmark.java   |    10 +-
 .../communication/GridIoManagerBenchmark0.java  |    22 +-
 .../GridContinuousOperationsLoadTest.java       |    22 +-
 .../ignite/loadtests/dsi/GridDsiPerfJob.java    |     2 +-
 ...GridJobExecutionLoadTestClientSemaphore.java |     5 +-
 ...JobExecutionSingleNodeSemaphoreLoadTest.java |     7 +-
 .../loadtests/mapper/GridNodeStartup.java       |     4 +-
 .../mergesort/GridMergeSortLoadTask.java        |     6 +-
 .../loadtests/nio/GridNioBenchmarkTest.java     |     2 +-
 ...apPartitionedMapPerformanceAbstractTest.java |    10 +-
 .../streamer/GridStreamerIndexLoadTest.java     |    10 +-
 .../ignite/loadtests/util/GridLoadTestArgs.java |     8 +-
 .../marshaller/GridMarshallerAbstractTest.java  |    20 +-
 .../ignite/messaging/GridMessagingSelfTest.java |     8 +-
 ...redFsCheckpointSpiMultiThreadedSelfTest.java |     8 +-
 .../collision/GridTestCollisionTaskSession.java |     3 +-
 ...mmunicationSpiConcurrentConnectSelfTest.java |     3 +-
 .../tcp/GridTcpCommunicationSpiLanTest.java     |     3 +-
 ...cpCommunicationSpiMultithreadedSelfTest.java |     9 +-
 ...GridTcpCommunicationSpiRecoverySelfTest.java |     7 +-
 ...ClusterMetricsSnapshotSerializeSelfTest.java |    52 +-
 .../tcp/GridTcpDiscoveryMultiThreadedTest.java  |     7 +-
 .../discovery/tcp/GridTcpDiscoverySelfTest.java |    14 +-
 .../file/GridFileSwapSpaceSpiSelfTest.java      |     7 +-
 .../startup/GridRandomCommandLineLoader.java    |    10 +-
 .../ignite/startup/GridVmNodesStarter.java      |     8 +-
 .../GridCommandLineTransformerSelfTest.java     |     6 +-
 .../GridCacheStoreValueBytesTest.java           |     7 +-
 .../index/GridStreamerIndexSelfTest.java        |     8 +-
 .../window/GridStreamerWindowSelfTest.java      |     4 +-
 .../ignite/testframework/GridTestUtils.java     |    22 +-
 .../config/GridTestProperties.java              |    16 +-
 .../testframework/junits/GridAbstractTest.java  |    26 +-
 .../junits/GridTestKernalContext.java           |     2 +-
 .../cache/GridAbstractCacheStoreSelfTest.java   |     3 +-
 .../junits/common/GridCommonAbstractTest.java   |    26 +-
 .../logger/GridLog4jRollingFileAppender.java    |     4 +-
 .../junits/logger/GridTestLog4jLogger.java      |     8 +-
 .../ignite/testsuites/IgniteBasicTestSuite.java |     2 +-
 .../ignite/testsuites/IgniteCacheTestSuite.java |     3 +-
 .../testsuites/IgniteComputeGridTestSuite.java  |     4 +-
 .../ignite/testsuites/IgniteFsTestSuite.java    |     2 +-
 .../IgniteIpcSharedMemorySelfTestSuite.java     |     7 +-
 .../testsuites/IgniteUtilSelfTestSuite.java     |     2 +-
 ...dConcurrentLinkedDequeMultiThreadedTest.java |     6 +-
 ...rrentLinkedHashMapMultiThreadedSelfTest.java |    10 +-
 .../apache/ignite/util/GridIndexFillTest.java   |     4 +-
 .../ignite/util/GridSnapshotLockSelfTest.java   |     6 +-
 .../util/GridSpinReadWriteLockSelfTest.java     |     4 +-
 .../src/test/resources/log/gridgain.log.tst     | 13706 -----------------
 .../core/src/test/resources/log/ignite.log.tst  | 13706 +++++++++++++++++
 modules/core/src/test/resources/readme.txt      |     2 +-
 .../core/src/test/webapp/META-INF/gg-config.xml |     2 +-
 modules/core/src/test/webapp/WEB-INF/web.xml    |     2 +-
 modules/email/readme.txt                        |    14 +-
 .../processors/email/IgniteEmailProcessor.java  |     5 +-
 modules/hadoop/readme.txt                       |    14 +-
 .../GridHadoopClientProtocolProvider.java       |     8 +-
 .../fs/hadoop/v1/GridGgfsHadoopFileSystem.java  |     6 +-
 .../fs/hadoop/v2/GridGgfsHadoopFileSystem.java  |     6 +-
 .../apache/ignite/hadoop/GridHadoopSetup.java   |    16 +-
 .../internal/fs/hadoop/GridGgfsHadoopIpcIo.java |    10 +-
 .../hadoop/GridHadoopClassLoader.java           |     4 +-
 .../processors/hadoop/GridHadoopImpl.java       |     6 +-
 .../hadoop/IgniteHadoopProcessor.java           |     5 +-
 .../hadoop/jobtracker/GridHadoopJobTracker.java |    19 +-
 .../GridHadoopDefaultMapReducePlanner.java      |     2 +-
 .../proto/GridHadoopProtocolJobStatusTask.java  |     7 +-
 .../hadoop/shuffle/GridHadoopShuffle.java       |     2 +-
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |     7 +-
 .../GridHadoopExternalTaskExecutor.java         |    18 +-
 .../child/GridHadoopChildProcessRunner.java     |    18 +-
 .../child/GridHadoopExternalProcessStarter.java |     2 +-
 .../GridHadoopExternalCommunication.java        |    26 +-
 .../GridHadoopIpcToNioAdapter.java              |     6 +-
 ...doop20FileSystemLoopbackPrimarySelfTest.java |     2 +-
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |     2 +-
 .../GridGgfsHadoopFileSystemClientSelfTest.java |     4 +-
 ...idGgfsHadoopFileSystemHandshakeSelfTest.java |     2 +-
 ...ridGgfsHadoopFileSystemIpcCacheSelfTest.java |     2 +-
 ...adoopFileSystemLoopbackAbstractSelfTest.java |     2 +-
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |     8 +-
 .../fs/GridGgfsNearOnlyMultiNodeSelfTest.java   |     4 +-
 .../ignite/fs/IgniteFsEventsTestSuite.java      |     4 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |     6 +-
 .../hadoop/GridHadoopCommandLineTest.java       |     4 +-
 ...idHadoopDefaultMapReducePlannerSelfTest.java |    23 +-
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |     5 +-
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |     4 +-
 .../hadoop/GridHadoopMapReduceTest.java         |     4 +-
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |    12 +-
 .../GridHadoopExecutorServiceTest.java          |     4 +-
 ...GridHadoopExternalTaskExecutionSelfTest.java |     6 +-
 .../ggfs/GridGgfsPerformanceBenchmark.java      |     4 +-
 modules/hibernate/readme.txt                    |    16 +-
 .../hibernate/GridHibernateRegionFactory.java   |    10 +-
 .../hibernate/CacheHibernateBlobStore.java      |   593 +
 .../CacheHibernateBlobStoreEntry.hbm.xml        |    29 +
 .../hibernate/CacheHibernateBlobStoreEntry.java |    86 +
 .../hibernate/GridCacheHibernateBlobStore.java  |   593 -
 .../GridCacheHibernateBlobStoreEntry.hbm.xml    |    29 -
 .../GridCacheHibernateBlobStoreEntry.java       |    86 -
 ...idHibernateL2CacheTransactionalSelfTest.java |     2 +-
 .../CacheHibernateBlobStoreSelfTest.java        |   108 +
 .../GridCacheHibernateBlobStoreSelfTest.java    |   108 -
 .../cache/store/hibernate/hibernate.cfg.xml     |     2 +-
 .../testsuites/IgniteHibernateTestSuite.java    |     2 +-
 modules/indexing/readme.txt                     |    14 +-
 .../processors/query/h2/IgniteH2Indexing.java   |    12 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |     2 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |     8 +-
 .../cache/GridCacheOffHeapAndSwapSelfTest.java  |     8 +-
 .../cache/GridCacheQueryLoadSelfTest.java       |     2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |    26 +-
 ...idCacheReduceQueryMultithreadedSelfTest.java |     6 +-
 .../near/GridCacheQueryNodeRestartSelfTest.java |     5 +-
 .../GridCacheReplicatedFieldsQuerySelfTest.java |     2 +-
 .../GridCacheReplicatedQuerySelfTest.java       |     6 +-
 .../query/h2/GridH2IndexRebuildTest.java        |     7 +-
 .../query/h2/GridH2IndexingGeoSelfTest.java     |     6 +-
 .../query/h2/sql/GridQueryParsingTest.java      |     4 +-
 .../tcp/GridOrderedMessageCancelSelfTest.java   |     4 +-
 modules/jcl/readme.txt                          |    14 +-
 .../apache/ignite/logger/jcl/GridJclLogger.java |     4 +-
 modules/jta/readme.txt                          |    14 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |    50 +
 .../ignite/cache/jta/GridCacheTmLookup.java     |    50 -
 .../cache/jta/jndi/CacheJndiTmLookup.java       |    74 +
 .../cache/jta/jndi/GridCacheJndiTmLookup.java   |    74 -
 .../jta/reflect/CacheReflectionTmLookup.java    |   115 +
 .../reflect/GridCacheReflectionTmLookup.java    |   115 -
 .../processors/cache/jta/CacheJtaManager.java   |     4 +-
 ...CacheJtaConfigurationValidationSelfTest.java |     2 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |     2 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |     6 +-
 modules/log4j/readme.txt                        |    14 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |     8 +-
 .../logger/log4j/IgniteLog4jNodeIdFilePath.java |     8 +-
 .../log4j/GridLog4jCorrectFileNameTest.java     |     4 +-
 modules/rest-http/readme.txt                    |    14 +-
 .../http/jetty/GridJettyRestProtocol.java       |    16 +-
 .../rest/protocols/http/jetty/rest.html         |     6 +-
 modules/scalar/pom.xml                          |     6 +-
 modules/scalar/readme.txt                       |    10 +-
 .../scalar/pimps/ScalarProjectionPimp.scala     |    25 +-
 modules/schedule/readme.txt                     |    14 +-
 .../processors/schedule/ScheduleFutureImpl.java |    26 +-
 .../schedule/GridScheduleSelfTest.java          |    13 +-
 modules/slf4j/readme.txt                        |    14 +-
 modules/spring/readme.txt                       |    14 +-
 .../java/org/apache/ignite/IgniteSpring.java    |    10 +-
 .../ignite/cache/spring/SpringCacheManager.java |     6 +-
 .../cache/spring/SpringDynamicCacheManager.java |     2 +-
 .../spring/IgniteSpringProcessorImpl.java       |    10 +-
 .../ignite/internal/GridFactorySelfTest.java    |     2 +-
 modules/ssh/readme.txt                          |    14 +-
 .../util/nodestart/GridNodeCallableImpl.java    |    20 +-
 .../internal/GridNodeStartUtilsSelfTest.java    |     6 +-
 .../GridProjectionStartStopRestartSelfTest.java |     4 +-
 .../ignite/tools/javadoc/GridLinkTaglet.java    |   165 -
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |   165 +
 .../optimized/OptimizedClassNamesGenerator.java |    18 +-
 modules/urideploy/readme.txt                    |    14 +-
 .../uri/GridUriDeploymentFileProcessor.java     |     2 +-
 .../deployment/uri/GridUriDeploymentSpi.java    |  1367 --
 .../uri/GridUriDeploymentSpiMBean.java          |    53 -
 .../spi/deployment/uri/UriDeploymentSpi.java    |  1367 ++
 .../deployment/uri/UriDeploymentSpiMBean.java   |    53 +
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |     4 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |     2 +-
 .../uri/GridUriDeploymentAbstractSelfTest.java  |     2 +-
 .../GridUriDeploymentClassLoaderSelfTest.java   |     2 +-
 ...riDeploymentClassloaderRegisterSelfTest.java |     4 +-
 .../uri/GridUriDeploymentConfigSelfTest.java    |    10 +-
 .../GridUriDeploymentFileProcessorSelfTest.java |     2 +-
 .../uri/GridUriDeploymentMd5CheckSelfTest.java  |     2 +-
 ...loymentMultiScannersErrorThrottlingTest.java |     2 +-
 .../GridUriDeploymentMultiScannersSelfTest.java |     2 +-
 .../uri/GridUriDeploymentSimpleSelfTest.java    |    10 +-
 .../file/GridFileDeploymentSelfTest.java        |     6 +-
 .../GridFileDeploymentUndeploySelfTest.java     |     8 +-
 .../uri/scanners/ftp/GridFtpDeploymentTest.java |     2 +-
 .../http/GridHttpDeploymentSelfTest.java        |     2 +-
 .../IgniteUriDeploymentTestSuite.java           |     3 +-
 .../scala/org/apache/ignite/visor/Packet.scala  |     2 +-
 .../ignite/visor/commands/VisorConsole.scala    |     6 +-
 .../commands/alert/VisorAlertCommand.scala      |     2 +-
 .../config/VisorConfigurationCommand.scala      |     6 +-
 .../ignite/visor/commands/deploy/Packet.scala   |     4 +-
 .../commands/deploy/VisorDeployCommand.scala    |    22 +-
 .../commands/disco/VisorDiscoveryCommand.scala  |     4 +-
 .../commands/events/VisorEventsCommand.scala    |     4 +-
 .../visor/commands/gc/VisorGcCommand.scala      |    13 +-
 .../visor/commands/node/VisorNodeCommand.scala  |     4 +-
 .../ignite/visor/commands/start/Packet.scala    |     6 +-
 .../commands/start/VisorStartCommand.scala      |    16 +-
 .../commands/tasks/VisorTasksCommand.scala      |     4 +-
 .../commands/top/VisorTopologyCommand.scala     |     6 +-
 .../visor/commands/vvm/VisorVvmCommand.scala    |     8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |    41 +-
 .../visor/commands/gc/VisorGcCommandSpec.scala  |    25 +-
 .../testsuites/VisorConsoleSelfTestSuite.scala  |     2 +-
 modules/web/readme.txt                          |    18 +-
 .../cache/websession/GridWebSessionFilter.java  |    26 +-
 .../GridServletContextListenerStartup.java      |   181 -
 .../startup/servlet/GridServletStartup.java     |   187 -
 .../IgniteServletContextListenerStartup.java    |   181 +
 .../startup/servlet/IgniteServletStartup.java   |   187 +
 .../internal/websession/WebSessionSelfTest.java |    12 +-
 .../websession/WebSessionServerStart.java       |     2 +-
 modules/yardstick/README.md                     |    67 +
 .../config/benchmark-atomic-win.properties      |    42 +
 .../config/benchmark-atomic.properties          |    48 +
 .../config/benchmark-compute-win.properties     |    45 +
 .../config/benchmark-compute.properties         |    51 +
 .../config/benchmark-query-win.properties       |    43 +
 .../yardstick/config/benchmark-query.properties |    49 +
 .../config/benchmark-tx-win.properties          |    42 +
 .../yardstick/config/benchmark-tx.properties    |    48 +
 .../yardstick/config/benchmark-win.properties   |    50 +
 modules/yardstick/config/benchmark.properties   |    61 +
 modules/yardstick/config/ignite-base-config.xml |   118 +
 .../config/ignite-localhost-config.xml          |    55 +
 .../config/ignite-multicast-config.xml          |    38 +
 modules/yardstick/pom.xml                       |   185 +
 .../yardstick/IgniteAbstractBenchmark.java      |   130 +
 .../yardstick/IgniteBenchmarkArguments.java     |   213 +
 .../org/apache/ignite/yardstick/IgniteNode.java |   191 +
 .../cache/IgniteCacheAbstractBenchmark.java     |    44 +
 .../yardstick/cache/IgniteGetBenchmark.java     |    41 +
 .../yardstick/cache/IgnitePutBenchmark.java     |    42 +
 .../yardstick/cache/IgnitePutGetBenchmark.java  |    47 +
 .../cache/IgnitePutGetTxBenchmark.java          |    52 +
 .../yardstick/cache/IgnitePutTxBenchmark.java   |    43 +
 .../cache/IgniteSqlQueryBenchmark.java          |    94 +
 .../cache/IgniteSqlQueryJoinBenchmark.java      |   118 +
 .../cache/IgniteSqlQueryPutBenchmark.java       |    86 +
 .../yardstick/cache/model/Organization.java     |   110 +
 .../ignite/yardstick/cache/model/Person.java    |   191 +
 .../yardstick/cache/model/SampleValue.java      |    62 +
 .../compute/IgniteAffinityCallBenchmark.java    |    36 +
 .../yardstick/compute/IgniteApplyBenchmark.java |    72 +
 .../compute/IgniteBroadcastBenchmark.java       |    35 +
 .../compute/IgniteExecuteBenchmark.java         |    35 +
 .../yardstick/compute/IgniteRunBenchmark.java   |    71 +
 .../yardstick/compute/model/NoopCallable.java   |    41 +
 .../yardstick/compute/model/NoopTask.java       |    97 +
 pom.xml                                         |    35 +-
 1018 files changed, 50444 insertions(+), 46651 deletions(-)
----------------------------------------------------------------------



[25/50] [abbrv] incubator-ignite git commit: Merge branch 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into sprint-1

Posted by se...@apache.org.
Merge branch 'sprint-1' of https://git-wip-us.apache.org/repos/asf/incubator-ignite into sprint-1


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

Branch: refs/heads/ignite-132
Commit: 7f50e8056cebeb773cb569bb3bf8007ef6960585
Parents: 8b57933 06d9b7d
Author: ivasilinets <iv...@gridgain.com>
Authored: Mon Feb 2 12:01:10 2015 +0300
Committer: ivasilinets <iv...@gridgain.com>
Committed: Mon Feb 2 12:01:10 2015 +0300

----------------------------------------------------------------------
 assembly/libs/readme.txt                        |     4 +-
 assembly/release-base-fabric.xml                |     4 +-
 assembly/release-base.xml                       |     6 +-
 bin/ggrouter.bat                                |    33 -
 bin/ggrouter.sh                                 |    50 -
 bin/ggstart.bat                                 |   228 -
 bin/ggstart.sh                                  |   176 -
 bin/ggvisorcmd.bat                              |   144 -
 bin/ggvisorcmd.sh                               |   124 -
 bin/ignite.bat                                  |   228 +
 bin/ignite.sh                                   |   176 +
 bin/igniterouter.bat                            |    33 +
 bin/igniterouter.sh                             |    50 +
 bin/ignitevisorcmd.bat                          |   144 +
 bin/ignitevisorcmd.sh                           |   124 +
 bin/include/functions.sh                        |    42 +-
 bin/include/hadoop-classpath.bat                |     2 +-
 bin/include/hadoop-classpath.sh                 |     4 +-
 bin/include/parseargs.bat                       |     2 +-
 bin/include/parseargs.sh                        |     6 +-
 bin/include/service.sh                          |    12 +-
 bin/include/setenv.bat                          |    28 +-
 bin/include/setenv.sh                           |    34 +-
 bin/include/target-classpath.bat                |     8 +-
 bin/include/target-classpath.sh                 |    14 +-
 bin/setup-hadoop.bat                            |     2 +-
 bin/setup-hadoop.sh                             |    12 +-
 config/gridgain-log4j.xml                       |   152 -
 config/hadoop/default-config.xml                |     2 +-
 config/ignite-log4j.xml                         |   152 +
 config/java.util.logging.properties             |    16 +-
 config/router/default-router.xml                |     2 +-
 docs/hadoop_readme.md                           |     6 +-
 docs/ignite_readme.md                           |    12 +-
 docs/mapred-site.ignite.xml                     |     2 +-
 examples/config/example-cache.xml               |     2 +-
 examples/config/example-streamer.xml            |     8 +-
 examples/config/filesystem/example-ggfs.xml     |     2 +-
 examples/config/servlet/WEB-INF/web.xml         |     4 +-
 examples/rest/http-rest-example.php             |     2 +-
 examples/rest/memcache-rest-example.php         |     2 +-
 .../compute/ComputeBroadcastExample.java        |     2 +-
 .../compute/ComputeCallableExample.java         |     2 +-
 .../examples/compute/ComputeClosureExample.java |     2 +-
 .../compute/ComputeContinuousMapperExample.java |     2 +-
 .../compute/ComputeExecutorServiceExample.java  |     2 +-
 .../ComputeFibonacciContinuationExample.java    |     2 +-
 .../compute/ComputeProjectionExample.java       |     2 +-
 .../examples/compute/ComputeReducerExample.java |     2 +-
 .../compute/ComputeRunnableExample.java         |     2 +-
 .../compute/ComputeScheduleExample.java         |     2 +-
 .../examples/compute/ComputeTaskMapExample.java |     2 +-
 .../compute/ComputeTaskSplitExample.java        |     2 +-
 .../compute/montecarlo/CreditRiskExample.java   |     2 +-
 .../examples/datagrid/CacheAffinityExample.java |     2 +-
 .../examples/datagrid/CacheApiExample.java      |     2 +-
 .../datagrid/CacheContinuousQueryExample.java   |     2 +-
 .../datagrid/CacheDataLoaderExample.java        |     2 +-
 .../examples/datagrid/CacheEventsExample.java   |     2 +-
 .../datagrid/CachePopularNumbersExample.java    |     2 +-
 .../examples/datagrid/CachePutGetExample.java   |     2 +-
 .../examples/datagrid/CacheQueryExample.java    |     2 +-
 .../datagrid/CacheTransactionExample.java       |     2 +-
 .../datastructures/CacheAtomicLongExample.java  |     2 +-
 .../CacheAtomicReferenceExample.java            |     2 +-
 .../CacheAtomicSequenceExample.java             |     2 +-
 .../CacheAtomicStampedExample.java              |     2 +-
 .../CacheCountDownLatchExample.java             |     2 +-
 .../datastructures/CacheQueueExample.java       |     2 +-
 .../datastructures/CacheSetExample.java         |     2 +-
 .../hibernate/HibernateL2CacheExample.java      |     2 +-
 .../starschema/CacheStarSchemaExample.java      |     2 +-
 .../ignite/examples/events/EventsExample.java   |     2 +-
 .../ignite/examples/ggfs/GgfsExample.java       |     2 +-
 .../examples/ggfs/GgfsMapReduceExample.java     |     2 +-
 .../ignite/examples/ggfs/GgfsNodeStartup.java   |     4 +-
 .../examples/messaging/MessagingExample.java    |     2 +-
 .../messaging/MessagingPingPongExample.java     |     2 +-
 .../MessagingPingPongListenActorExample.java    |     2 +-
 .../misc/deployment/DeploymentExample.java      |     2 +-
 .../misc/springbean/SpringBeanExample.java      |     2 +-
 .../examples/services/ServicesExample.java      |     2 +-
 .../streaming/StreamingCheckInExample.java      |     8 +-
 .../StreamingPopularNumbersExample.java         |     8 +-
 .../streaming/StreamingPriceBarsExample.java    |     8 +-
 .../StreamingRunningAverageExample.java         |     8 +-
 .../apache/ignite/examples/ComputeExample.java  |    59 +
 .../ignite/examples/MessagingExample.java       |   166 +
 .../org/gridgain/examples/ComputeExample.java   |    59 -
 .../org/gridgain/examples/MessagingExample.java |   166 -
 .../examples/ScalarCacheAffinityExample1.scala  |     2 +-
 .../examples/ScalarCacheAffinityExample2.scala  |     2 +-
 .../ScalarCacheAffinitySimpleExample.scala      |     2 +-
 .../scalar/examples/ScalarCacheExample.scala    |     2 +-
 .../ScalarCachePopularNumbersExample.scala      |     2 +-
 .../examples/ScalarCacheQueryExample.scala      |     2 +-
 .../scalar/examples/ScalarClosureExample.scala  |     2 +-
 .../examples/ScalarContinuationExample.scala    |     2 +-
 .../examples/ScalarCreditRiskExample.scala      |     2 +-
 .../examples/ScalarPiCalculationExample.scala   |     2 +-
 .../scalar/examples/ScalarPingPongExample.scala |     2 +-
 .../scalar/examples/ScalarPrimeExample.scala    |     2 +-
 .../scalar/examples/ScalarScheduleExample.scala |     2 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |     2 +-
 .../scalar/examples/ScalarTaskExample.scala     |     2 +-
 .../examples/ScalarWorldShortestMapReduce.scala |     2 +-
 .../GridMonteCarloExamplesSelfTest.java         |     4 +-
 .../testsuites/IgniteExamplesSelfTestSuite.java |     2 +-
 .../ScalarExamplesSelfTestSuite.scala           |     2 +-
 modules/aop/readme.txt                          |     2 +-
 .../GridifySetToXXXNonSpringAopSelfTest.java    |    20 +-
 .../GridifySetToXXXSpringAopSelfTest.java       |    20 +-
 .../ignite/gridify/NonSpringAopSelfTest.java    |    20 +-
 .../optimized/OptimizedMarshallerAopTest.java   |     4 +-
 .../testsuites/IgniteAopSelfTestSuite.java      |     2 +-
 .../gridify/ExternalNonSpringAopSelfTest.java   |    20 +-
 modules/aws/readme.txt                          |     2 +-
 modules/clients/src/test/bin/start-nodes-ssh.sh |     2 +-
 modules/clients/src/test/bin/start-nodes.cmd    |    24 +-
 modules/clients/src/test/bin/start-nodes.sh     |    34 +-
 .../client/ClientDefaultCacheSelfTest.java      |     4 +-
 .../client/ClientTopologyCacheSelfTest.java     |     2 +-
 .../integration/ClientAbstractSelfTest.java     |     6 +-
 .../client/router/ClientFailedInitSelfTest.java |     4 +-
 .../client/router/RouterFactorySelfTest.java    |     4 +-
 .../JettyRestProcessorAbstractSelfTest.java     |     4 +-
 .../rest/RestBinaryProtocolSelfTest.java        |     2 +-
 .../rest/TaskCommandHandlerSelfTest.java        |     4 +-
 .../protocols/tcp/TcpRestParserSelfTest.java    |     6 +-
 .../src/test/resources/jetty/rest-jetty-ssl.xml |    10 +-
 .../src/test/resources/jetty/rest-jetty.xml     |     8 +-
 .../test/resources/jetty/router-jetty-ssl.xml   |     8 +-
 .../src/test/resources/jetty/router-jetty.xml   |     8 +-
 modules/clients/src/test/resources/log4j.xml    |     4 +-
 .../clients/src/test/resources/spring-cache.xml |     2 +-
 .../src/test/resources/spring-router-ssl.xml    |     4 +-
 .../src/test/resources/spring-router.xml        |     4 +-
 .../src/test/resources/spring-server-node.xml   |     2 +-
 .../test/resources/spring-server-ssl-node.xml   |     2 +-
 .../apache/ignite/IgniteBasicWarmupClosure.java |     6 +-
 .../java/org/apache/ignite/IgniteCluster.java   |     6 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |     4 +-
 .../java/org/apache/ignite/IgniteLogger.java    |     6 +-
 .../apache/ignite/IgniteSystemProperties.java   |   192 +-
 .../main/java/org/apache/ignite/Ignition.java   |    16 +-
 .../apache/ignite/cache/CacheConfiguration.java |     3 +-
 .../CacheConsistentHashAffinityFunction.java    |     2 +-
 .../apache/ignite/cache/query/CacheQuery.java   |     3 +-
 .../cache/query/CacheQuerySqlFunction.java      |     4 +-
 .../cache/query/annotations/QuerySqlField.java  |     2 +-
 .../query/annotations/QuerySqlFunction.java     |     2 +-
 .../apache/ignite/cache/store/CacheStore.java   |     2 +-
 .../apache/ignite/client/GridClientCompute.java |     8 +-
 .../ignite/client/router/GridRouterFactory.java |     4 +-
 .../impl/GridRouterCommandLineStartup.java      |     4 +-
 .../router/impl/GridTcpRouterNioParser.java     |     4 +-
 .../apache/ignite/compute/gridify/Gridify.java  |     2 +-
 .../ignite/compute/gridify/GridifySetToSet.java |     4 +-
 .../compute/gridify/GridifySetToValue.java      |     4 +-
 .../ClientConnectionConfiguration.java          |    16 +-
 .../configuration/GridQueryConfiguration.java   |   201 -
 .../configuration/IgniteConfiguration.java      |    80 +-
 .../configuration/IgniteDeploymentMode.java     |     4 +-
 .../configuration/IgniteQueryConfiguration.java |   201 +
 .../apache/ignite/fs/IgniteFsConfiguration.java |     2 +-
 .../ignite/internal/GridKernalContextImpl.java  |     2 +-
 .../apache/ignite/internal/GridLoggerProxy.java |     4 +-
 .../internal/GridPerformanceSuggestions.java    |     4 +-
 .../apache/ignite/internal/GridProductImpl.java |     2 +-
 .../ignite/internal/IgniteInternalFuture.java   |     8 +-
 .../apache/ignite/internal/IgniteKernal.java    |    32 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |    54 +-
 .../processors/cache/GridCacheAdapter.java      |     2 +-
 .../GridCachePartitionExchangeManager.java      |     2 +-
 .../processors/cache/GridCacheProcessor.java    |     4 +-
 .../processors/cache/GridCacheUtils.java        |     2 +-
 .../distributed/dht/GridDhtLocalPartition.java  |     2 +-
 .../dht/GridPartitionedGetFuture.java           |     2 +-
 .../dht/atomic/GridDhtAtomicCache.java          |     4 +-
 .../distributed/near/GridNearAtomicCache.java   |     2 +-
 .../distributed/near/GridNearGetFuture.java     |     2 +-
 .../cache/transactions/IgniteTxManager.java     |    10 +-
 .../processors/fs/IgniteFsProcessor.java        |     8 +-
 .../processors/job/GridJobProcessor.java        |     2 +-
 .../jobmetrics/GridJobMetricsProcessor.java     |     4 +-
 .../handlers/log/GridLogCommandHandler.java     |     4 +-
 .../handlers/task/GridTaskCommandHandler.java   |     2 +-
 .../protocols/tcp/GridClientPacketType.java     |     4 +-
 .../protocols/tcp/GridMemcachedMessage.java     |     4 +-
 .../rest/protocols/tcp/GridTcpRestParser.java   |    18 +-
 .../streamer/GridStreamProcessor.java           |     6 +-
 .../internal/util/GridConcurrentFactory.java    |     3 +-
 .../internal/util/GridConfigurationFinder.java  |     4 +-
 .../internal/util/GridReflectionCache.java      |     3 +-
 .../ignite/internal/util/IgniteUtils.java       |    50 +-
 .../util/future/GridFinishedFuture.java         |     2 +-
 .../internal/util/future/GridFutureAdapter.java |     4 +-
 .../internal/util/io/GridUnsafeDataInput.java   |     2 +-
 .../internal/util/io/GridUnsafeDataOutput.java  |     2 +-
 .../shmem/IpcSharedMemoryServerEndpoint.java    |     4 +-
 .../util/ipc/shmem/IpcSharedMemorySpace.java    |     2 +-
 .../internal/util/nio/GridBufferedParser.java   |     2 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |    18 +-
 .../util/nodestart/GridNodeStartUtils.java      |    10 +-
 .../util/offheap/unsafe/GridUnsafeMemory.java   |     2 +-
 .../util/portscanner/GridJmxPortFinder.java     |     4 +-
 .../apache/ignite/internal/util/typedef/X.java  |     4 +-
 .../visor/node/VisorBasicConfiguration.java     |    26 +-
 .../visor/node/VisorEmailConfiguration.java     |    14 +-
 .../visor/node/VisorLifecycleConfiguration.java |     2 +-
 .../visor/node/VisorRestConfiguration.java      |     4 +-
 .../apache/ignite/jdbc/IgniteJdbcDriver.java    |     2 +-
 .../apache/ignite/lifecycle/LifecycleBean.java  |     4 +-
 .../ignite/logger/java/IgniteJavaLogger.java    |     4 +-
 .../java/IgniteJavaLoggerFileHandler.java       |     4 +-
 .../optimized/IgniteOptimizedMarshaller.java    |     2 +-
 .../segmentation/GridSegmentationPolicy.java    |     2 +-
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |     4 +-
 .../ignite/spi/IgniteSpiManagementMBean.java    |     2 +-
 .../ignite/spi/checkpoint/CheckpointSpi.java    |     2 +-
 .../sharedfs/SharedFsCheckpointSpi.java         |     6 +-
 .../communication/tcp/TcpCommunicationSpi.java  |    12 +-
 .../ignite/spi/deployment/DeploymentSpi.java    |     2 +-
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |     4 +-
 .../discovery/tcp/TcpDiscoverySpiAdapter.java   |     2 +-
 .../TcpDiscoveryMulticastIpFinder.java          |    18 +-
 .../sharedfs/TcpDiscoverySharedFsIpFinder.java  |     2 +-
 .../tcp/ipfinder/vm/TcpDiscoveryVmIpFinder.java |     2 +-
 .../spi/swapspace/file/FileSwapSpaceSpi.java    |     4 +-
 .../ignite/startup/BasicWarmupClosure.java      |     6 +-
 .../startup/cmdline/CommandLineStartup.java     |    18 +-
 .../startup/cmdline/CommandLineTransformer.java |     8 +-
 .../ignite/thread/IgniteThreadFactory.java      |     2 +-
 .../apache/ignite/transactions/IgniteTx.java    |     2 +-
 .../core/src/test/bin/start-nodes-custom.bat    |     2 +-
 modules/core/src/test/bin/start-nodes-custom.sh |     2 +-
 .../spring-cache-client-benchmark-1.xml         |     2 +-
 .../spring-cache-client-benchmark-2.xml         |     2 +-
 .../spring-cache-client-benchmark-3.xml         |     2 +-
 modules/core/src/test/config/example-cache.xml  |     2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |     2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |     2 +-
 modules/core/src/test/config/log4j-test.xml     |     2 +-
 .../core/src/test/config/spring-cache-load.xml  |     2 +-
 .../core/src/test/config/spring-multicache.xml  |     2 +-
 .../average/spring-streamer-average-base.xml    |     2 +-
 .../average/spring-streamer-average-local.xml   |     2 +-
 .../average/spring-streamer-average-random.xml  |     2 +-
 .../config/streamer/spring-streamer-base.xml    |     2 +-
 modules/core/src/test/config/tests.properties   |    10 +-
 .../internal/GridFactoryVmShutdownTest.java     |     2 +-
 .../ignite/internal/GridHomePathSelfTest.java   |     2 +-
 .../GridNodeVisorAttributesSelfTest.java        |     4 +-
 .../ignite/internal/GridStartStopSelfTest.java  |     2 +-
 .../ignite/internal/GridVersionSelfTest.java    |     8 +-
 .../GridCacheAbstractRemoveFailureTest.java     |     6 +-
 .../GridCacheMissingCommitVersionSelfTest.java  |     6 +-
 .../cache/GridCacheSlowTxWarnTest.java          |     2 +-
 ...idCacheValueConsistencyAbstractSelfTest.java |     6 +-
 .../GridCacheMultiNodeDataStructureTest.java    |     4 +-
 .../GridCacheNodeFailureAbstractTest.java       |     2 +-
 .../GridCachePartitionedTxSalvageSelfTest.java  |     6 +-
 ...artupWithSpecifiedWorkDirectorySelfTest.java |     2 +-
 ...tartupWithUndefinedGridGainHomeSelfTest.java |     6 +-
 ...GridUnsafeDataOutputArraySizingSelfTest.java |     2 +-
 .../loadtest/GridSingleExecutionTest.java       |     4 +-
 .../cache/GridCacheAbstractLoadTest.java        |     2 +-
 .../cache/GridCacheDataStructuresLoadTest.java  |     2 +-
 .../loadtests/cache/GridCacheLoadTest.java      |     2 +-
 .../capacity/spring-capacity-cache.xml          |     2 +-
 .../loadtests/colocation/spring-colocation.xml  |     2 +-
 .../GridContinuousOperationsLoadTest.java       |    18 +-
 .../loadtests/mapper/GridNodeStartup.java       |     4 +-
 .../loadtests/nio/GridNioBenchmarkTest.java     |     2 +-
 .../streamer/GridStreamerIndexLoadTest.java     |     2 +-
 .../ignite/loadtests/util/GridLoadTestArgs.java |     8 +-
 .../startup/GridRandomCommandLineLoader.java    |    10 +-
 .../ignite/startup/GridVmNodesStarter.java      |     8 +-
 .../GridCommandLineTransformerSelfTest.java     |     6 +-
 .../ignite/testframework/GridTestUtils.java     |    10 +-
 .../config/GridTestProperties.java              |    16 +-
 .../testframework/junits/GridAbstractTest.java  |     4 +-
 .../logger/GridLog4jRollingFileAppender.java    |     4 +-
 .../junits/logger/GridTestLog4jLogger.java      |     8 +-
 .../src/test/resources/log/gridgain.log.tst     | 13706 -----------------
 .../core/src/test/resources/log/ignite.log.tst  | 13706 +++++++++++++++++
 .../core/src/test/webapp/META-INF/gg-config.xml |     2 +-
 modules/core/src/test/webapp/WEB-INF/web.xml    |     2 +-
 modules/email/readme.txt                        |     2 +-
 modules/hadoop/readme.txt                       |     2 +-
 .../fs/hadoop/v1/GridGgfsHadoopFileSystem.java  |     6 +-
 .../fs/hadoop/v2/GridGgfsHadoopFileSystem.java  |     6 +-
 .../apache/ignite/hadoop/GridHadoopSetup.java   |    16 +-
 .../GridHadoopExternalTaskExecutor.java         |     2 +-
 .../child/GridHadoopExternalProcessStarter.java |     2 +-
 .../hadoop/GridHadoopPopularWordsTest.java      |     6 +-
 modules/hibernate/readme.txt                    |     2 +-
 .../hibernate/CacheHibernateBlobStore.java      |   593 +
 .../CacheHibernateBlobStoreEntry.hbm.xml        |    29 +
 .../hibernate/CacheHibernateBlobStoreEntry.java |    86 +
 .../hibernate/GridCacheHibernateBlobStore.java  |   593 -
 .../GridCacheHibernateBlobStoreEntry.hbm.xml    |    29 -
 .../GridCacheHibernateBlobStoreEntry.java       |    86 -
 ...idHibernateL2CacheTransactionalSelfTest.java |     2 +-
 .../CacheHibernateBlobStoreSelfTest.java        |   108 +
 .../GridCacheHibernateBlobStoreSelfTest.java    |   108 -
 .../cache/store/hibernate/hibernate.cfg.xml     |     2 +-
 .../testsuites/IgniteHibernateTestSuite.java    |     2 +-
 modules/indexing/readme.txt                     |     2 +-
 .../processors/query/h2/IgniteH2Indexing.java   |     8 +-
 .../cache/GridCacheAbstractQuerySelfTest.java   |     2 +-
 .../GridCacheQueryMultiThreadedSelfTest.java    |     2 +-
 .../query/h2/sql/GridQueryParsingTest.java      |     2 +-
 modules/jcl/readme.txt                          |     2 +-
 .../apache/ignite/logger/jcl/GridJclLogger.java |     4 +-
 modules/jta/readme.txt                          |     2 +-
 .../apache/ignite/cache/jta/CacheTmLookup.java  |    50 +
 .../ignite/cache/jta/GridCacheTmLookup.java     |    50 -
 .../cache/jta/jndi/CacheJndiTmLookup.java       |    74 +
 .../cache/jta/jndi/GridCacheJndiTmLookup.java   |    74 -
 .../jta/reflect/CacheReflectionTmLookup.java    |   115 +
 .../reflect/GridCacheReflectionTmLookup.java    |   115 -
 .../processors/cache/jta/CacheJtaManager.java   |     4 +-
 ...CacheJtaConfigurationValidationSelfTest.java |     2 +-
 .../processors/cache/GridCacheJtaSelfTest.java  |     2 +-
 .../GridTmLookupLifecycleAwareSelfTest.java     |     4 +-
 modules/log4j/readme.txt                        |     2 +-
 .../ignite/logger/log4j/IgniteLog4jLogger.java  |     8 +-
 .../logger/log4j/IgniteLog4jNodeIdFilePath.java |     8 +-
 .../log4j/GridLog4jCorrectFileNameTest.java     |     4 +-
 modules/rest-http/readme.txt                    |     2 +-
 .../http/jetty/GridJettyRestProtocol.java       |    16 +-
 .../rest/protocols/http/jetty/rest.html         |     6 +-
 modules/scalar/pom.xml                          |     6 +-
 modules/scalar/readme.txt                       |     2 +-
 modules/schedule/readme.txt                     |     2 +-
 .../processors/schedule/ScheduleFutureImpl.java |     4 +-
 modules/slf4j/readme.txt                        |     2 +-
 modules/spring/readme.txt                       |     2 +-
 .../java/org/apache/ignite/IgniteSpring.java    |     2 +-
 .../ignite/cache/spring/SpringCacheManager.java |     6 +-
 .../spring/IgniteSpringProcessorImpl.java       |    10 +-
 .../ignite/internal/GridFactorySelfTest.java    |     2 +-
 modules/ssh/readme.txt                          |     2 +-
 .../util/nodestart/GridNodeCallableImpl.java    |    20 +-
 .../internal/GridNodeStartUtilsSelfTest.java    |     6 +-
 .../GridProjectionStartStopRestartSelfTest.java |     4 +-
 .../ignite/tools/javadoc/GridLinkTaglet.java    |   165 -
 .../ignite/tools/javadoc/IgniteLinkTaglet.java  |   165 +
 .../optimized/OptimizedClassNamesGenerator.java |    12 +-
 modules/urideploy/readme.txt                    |     2 +-
 .../uri/GridUriDeploymentFileProcessor.java     |     2 +-
 .../deployment/uri/GridUriDeploymentSpi.java    |  1367 --
 .../uri/GridUriDeploymentSpiMBean.java          |    53 -
 .../spi/deployment/uri/UriDeploymentSpi.java    |  1367 ++
 .../deployment/uri/UriDeploymentSpiMBean.java   |    53 +
 .../GridTaskUriDeploymentDeadlockSelfTest.java  |     2 +-
 .../ignite/p2p/GridP2PDisabledSelfTest.java     |     2 +-
 .../uri/GridUriDeploymentAbstractSelfTest.java  |     2 +-
 .../GridUriDeploymentClassLoaderSelfTest.java   |     2 +-
 ...riDeploymentClassloaderRegisterSelfTest.java |     4 +-
 .../uri/GridUriDeploymentConfigSelfTest.java    |    10 +-
 .../GridUriDeploymentFileProcessorSelfTest.java |     2 +-
 .../uri/GridUriDeploymentMd5CheckSelfTest.java  |     2 +-
 ...loymentMultiScannersErrorThrottlingTest.java |     2 +-
 .../GridUriDeploymentMultiScannersSelfTest.java |     2 +-
 .../uri/GridUriDeploymentSimpleSelfTest.java    |    10 +-
 .../file/GridFileDeploymentSelfTest.java        |     6 +-
 .../GridFileDeploymentUndeploySelfTest.java     |     8 +-
 .../uri/scanners/ftp/GridFtpDeploymentTest.java |     2 +-
 .../http/GridHttpDeploymentSelfTest.java        |     2 +-
 .../IgniteUriDeploymentTestSuite.java           |     3 +-
 .../scala/org/apache/ignite/visor/Packet.scala  |     2 +-
 .../ignite/visor/commands/deploy/Packet.scala   |     4 +-
 .../commands/deploy/VisorDeployCommand.scala    |    18 +-
 .../ignite/visor/commands/start/Packet.scala    |     6 +-
 .../commands/start/VisorStartCommand.scala      |    12 +-
 .../scala/org/apache/ignite/visor/visor.scala   |    14 +-
 .../testsuites/VisorConsoleSelfTestSuite.scala  |     2 +-
 modules/web/readme.txt                          |     2 +-
 .../cache/websession/GridWebSessionFilter.java  |    26 +-
 .../GridServletContextListenerStartup.java      |   181 -
 .../startup/servlet/GridServletStartup.java     |   187 -
 .../IgniteServletContextListenerStartup.java    |   181 +
 .../startup/servlet/IgniteServletStartup.java   |   187 +
 .../internal/websession/WebSessionSelfTest.java |     8 +-
 .../websession/WebSessionServerStart.java       |     2 +-
 modules/yardstick/README.md                     |    67 +
 .../config/benchmark-atomic-win.properties      |    42 +
 .../config/benchmark-atomic.properties          |    48 +
 .../config/benchmark-compute-win.properties     |    45 +
 .../config/benchmark-compute.properties         |    51 +
 .../config/benchmark-query-win.properties       |    43 +
 .../yardstick/config/benchmark-query.properties |    49 +
 .../config/benchmark-tx-win.properties          |    42 +
 .../yardstick/config/benchmark-tx.properties    |    48 +
 .../yardstick/config/benchmark-win.properties   |    50 +
 modules/yardstick/config/benchmark.properties   |    61 +
 modules/yardstick/config/ignite-base-config.xml |   118 +
 .../config/ignite-localhost-config.xml          |    55 +
 .../config/ignite-multicast-config.xml          |    38 +
 modules/yardstick/pom.xml                       |   185 +
 .../yardstick/IgniteAbstractBenchmark.java      |   130 +
 .../yardstick/IgniteBenchmarkArguments.java     |   213 +
 .../org/apache/ignite/yardstick/IgniteNode.java |   191 +
 .../cache/IgniteCacheAbstractBenchmark.java     |    44 +
 .../yardstick/cache/IgniteGetBenchmark.java     |    41 +
 .../yardstick/cache/IgnitePutBenchmark.java     |    42 +
 .../yardstick/cache/IgnitePutGetBenchmark.java  |    47 +
 .../cache/IgnitePutGetTxBenchmark.java          |    52 +
 .../yardstick/cache/IgnitePutTxBenchmark.java   |    43 +
 .../cache/IgniteSqlQueryBenchmark.java          |    94 +
 .../cache/IgniteSqlQueryJoinBenchmark.java      |   118 +
 .../cache/IgniteSqlQueryPutBenchmark.java       |    86 +
 .../yardstick/cache/model/Organization.java     |   110 +
 .../ignite/yardstick/cache/model/Person.java    |   191 +
 .../yardstick/cache/model/SampleValue.java      |    62 +
 .../compute/IgniteAffinityCallBenchmark.java    |    36 +
 .../yardstick/compute/IgniteApplyBenchmark.java |    72 +
 .../compute/IgniteBroadcastBenchmark.java       |    35 +
 .../compute/IgniteExecuteBenchmark.java         |    35 +
 .../yardstick/compute/IgniteRunBenchmark.java   |    71 +
 .../yardstick/compute/model/NoopCallable.java   |    41 +
 .../yardstick/compute/model/NoopTask.java       |    97 +
 pom.xml                                         |    35 +-
 425 files changed, 21889 insertions(+), 19106 deletions(-)
----------------------------------------------------------------------



[22/50] [abbrv] incubator-ignite git commit: gg*{sh, bat} renamed to ignite*{sh, bat}

Posted by se...@apache.org.
gg*{sh,bat} renamed to ignite*{sh,bat}


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

Branch: refs/heads/ignite-132
Commit: 7e8ea4f1d71e6c9a9e329a0f00471878a73d6b54
Parents: 115f597
Author: Anton Vinogradov <av...@gridgain.com>
Authored: Fri Jan 30 22:33:10 2015 +0300
Committer: Anton Vinogradov <av...@gridgain.com>
Committed: Fri Jan 30 22:33:11 2015 +0300

----------------------------------------------------------------------
 assembly/libs/readme.txt                        |   4 +-
 assembly/release-base-fabric.xml                |   4 +-
 assembly/release-base.xml                       |   4 +-
 bin/ggrouter.bat                                |  33 ---
 bin/ggrouter.sh                                 |  50 ----
 bin/ggstart.bat                                 | 228 -------------------
 bin/ggstart.sh                                  | 176 --------------
 bin/ggvisorcmd.bat                              | 144 ------------
 bin/ggvisorcmd.sh                               | 124 ----------
 bin/ignite.bat                                  | 228 +++++++++++++++++++
 bin/ignite.sh                                   | 176 ++++++++++++++
 bin/igniterouter.bat                            |  33 +++
 bin/igniterouter.sh                             |  50 ++++
 bin/ignitevisorcmd.bat                          | 144 ++++++++++++
 bin/ignitevisorcmd.sh                           | 124 ++++++++++
 bin/setup-hadoop.bat                            |   2 +-
 bin/setup-hadoop.sh                             |   2 +-
 config/hadoop/default-config.xml                |   2 +-
 config/router/default-router.xml                |   2 +-
 docs/hadoop_readme.md                           |   6 +-
 docs/ignite_readme.md                           |  12 +-
 examples/config/example-cache.xml               |   2 +-
 examples/config/example-streamer.xml            |   2 +-
 examples/config/filesystem/example-ggfs.xml     |   2 +-
 examples/rest/http-rest-example.php             |   2 +-
 examples/rest/memcache-rest-example.php         |   2 +-
 .../compute/ComputeBroadcastExample.java        |   2 +-
 .../compute/ComputeCallableExample.java         |   2 +-
 .../examples/compute/ComputeClosureExample.java |   2 +-
 .../compute/ComputeContinuousMapperExample.java |   2 +-
 .../compute/ComputeExecutorServiceExample.java  |   2 +-
 .../ComputeFibonacciContinuationExample.java    |   2 +-
 .../compute/ComputeProjectionExample.java       |   2 +-
 .../examples/compute/ComputeReducerExample.java |   2 +-
 .../compute/ComputeRunnableExample.java         |   2 +-
 .../compute/ComputeScheduleExample.java         |   2 +-
 .../examples/compute/ComputeTaskMapExample.java |   2 +-
 .../compute/ComputeTaskSplitExample.java        |   2 +-
 .../compute/montecarlo/CreditRiskExample.java   |   2 +-
 .../examples/datagrid/CacheAffinityExample.java |   2 +-
 .../examples/datagrid/CacheApiExample.java      |   2 +-
 .../datagrid/CacheContinuousQueryExample.java   |   2 +-
 .../datagrid/CacheDataLoaderExample.java        |   2 +-
 .../examples/datagrid/CacheEventsExample.java   |   2 +-
 .../datagrid/CachePopularNumbersExample.java    |   2 +-
 .../examples/datagrid/CachePutGetExample.java   |   2 +-
 .../examples/datagrid/CacheQueryExample.java    |   2 +-
 .../datagrid/CacheTransactionExample.java       |   2 +-
 .../datastructures/CacheAtomicLongExample.java  |   2 +-
 .../CacheAtomicReferenceExample.java            |   2 +-
 .../CacheAtomicSequenceExample.java             |   2 +-
 .../CacheAtomicStampedExample.java              |   2 +-
 .../CacheCountDownLatchExample.java             |   2 +-
 .../datastructures/CacheQueueExample.java       |   2 +-
 .../datastructures/CacheSetExample.java         |   2 +-
 .../starschema/CacheStarSchemaExample.java      |   2 +-
 .../ignite/examples/events/EventsExample.java   |   2 +-
 .../ignite/examples/ggfs/GgfsExample.java       |   2 +-
 .../examples/ggfs/GgfsMapReduceExample.java     |   2 +-
 .../ignite/examples/ggfs/GgfsNodeStartup.java   |   4 +-
 .../examples/messaging/MessagingExample.java    |   2 +-
 .../messaging/MessagingPingPongExample.java     |   2 +-
 .../MessagingPingPongListenActorExample.java    |   2 +-
 .../misc/deployment/DeploymentExample.java      |   2 +-
 .../misc/springbean/SpringBeanExample.java      |   2 +-
 .../examples/services/ServicesExample.java      |   2 +-
 .../streaming/StreamingCheckInExample.java      |   2 +-
 .../StreamingPopularNumbersExample.java         |   2 +-
 .../streaming/StreamingPriceBarsExample.java    |   2 +-
 .../StreamingRunningAverageExample.java         |   2 +-
 .../apache/ignite/examples/ComputeExample.java  |   2 +-
 .../ignite/examples/MessagingExample.java       |   2 +-
 .../examples/ScalarCacheAffinityExample1.scala  |   2 +-
 .../examples/ScalarCacheAffinityExample2.scala  |   2 +-
 .../ScalarCacheAffinitySimpleExample.scala      |   2 +-
 .../scalar/examples/ScalarCacheExample.scala    |   2 +-
 .../ScalarCachePopularNumbersExample.scala      |   2 +-
 .../examples/ScalarCacheQueryExample.scala      |   2 +-
 .../scalar/examples/ScalarClosureExample.scala  |   2 +-
 .../examples/ScalarContinuationExample.scala    |   2 +-
 .../examples/ScalarCreditRiskExample.scala      |   2 +-
 .../examples/ScalarPiCalculationExample.scala   |   2 +-
 .../scalar/examples/ScalarPingPongExample.scala |   2 +-
 .../scalar/examples/ScalarPrimeExample.scala    |   2 +-
 .../scalar/examples/ScalarScheduleExample.scala |   2 +-
 .../examples/ScalarSnowflakeSchemaExample.scala |   2 +-
 .../scalar/examples/ScalarTaskExample.scala     |   2 +-
 .../examples/ScalarWorldShortestMapReduce.scala |   2 +-
 modules/aop/readme.txt                          |   2 +-
 modules/aws/readme.txt                          |   2 +-
 modules/clients/src/test/bin/start-nodes.cmd    |  10 +-
 modules/clients/src/test/bin/start-nodes.sh     |   8 +-
 .../clients/src/test/resources/spring-cache.xml |   2 +-
 .../src/test/resources/spring-router-ssl.xml    |   2 +-
 .../src/test/resources/spring-router.xml        |   2 +-
 .../src/test/resources/spring-server-node.xml   |   2 +-
 .../test/resources/spring-server-ssl-node.xml   |   2 +-
 .../java/org/apache/ignite/IgniteCluster.java   |   4 +-
 .../main/java/org/apache/ignite/IgniteFs.java   |   4 +-
 .../java/org/apache/ignite/IgniteLogger.java    |   2 +-
 .../apache/ignite/IgniteSystemProperties.java   |   4 +-
 .../main/java/org/apache/ignite/Ignition.java   |   4 +-
 .../ignite/client/router/GridRouterFactory.java |   2 +-
 .../configuration/IgniteDeploymentMode.java     |   2 +-
 .../apache/ignite/internal/IgniteKernal.java    |   6 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |   2 +-
 .../apache/ignite/lifecycle/LifecycleBean.java  |   2 +-
 .../segmentation/GridSegmentationPolicy.java    |   2 +-
 .../startup/cmdline/CommandLineStartup.java     |  10 +-
 .../startup/cmdline/CommandLineTransformer.java |   6 +-
 .../core/src/test/bin/start-nodes-custom.bat    |   2 +-
 modules/core/src/test/bin/start-nodes-custom.sh |   2 +-
 .../spring-cache-client-benchmark-1.xml         |   2 +-
 .../spring-cache-client-benchmark-2.xml         |   2 +-
 .../spring-cache-client-benchmark-3.xml         |   2 +-
 modules/core/src/test/config/example-cache.xml  |   2 +-
 modules/core/src/test/config/ggfs-loopback.xml  |   2 +-
 modules/core/src/test/config/ggfs-shmem.xml     |   2 +-
 .../core/src/test/config/spring-cache-load.xml  |   2 +-
 .../core/src/test/config/spring-multicache.xml  |   2 +-
 .../average/spring-streamer-average-base.xml    |   2 +-
 .../average/spring-streamer-average-local.xml   |   2 +-
 .../average/spring-streamer-average-random.xml  |   2 +-
 .../config/streamer/spring-streamer-base.xml    |   2 +-
 .../GridCacheMultiNodeDataStructureTest.java    |   4 +-
 .../capacity/spring-capacity-cache.xml          |   2 +-
 .../loadtests/colocation/spring-colocation.xml  |   2 +-
 .../loadtests/mapper/GridNodeStartup.java       |   4 +-
 .../startup/GridRandomCommandLineLoader.java    |   2 +-
 .../ignite/startup/GridVmNodesStarter.java      |   2 +-
 .../core/src/test/webapp/META-INF/gg-config.xml |   2 +-
 modules/email/readme.txt                        |   2 +-
 modules/hadoop/readme.txt                       |   2 +-
 modules/hibernate/readme.txt                    |   2 +-
 modules/indexing/readme.txt                     |   2 +-
 modules/jcl/readme.txt                          |   2 +-
 modules/jta/readme.txt                          |   2 +-
 modules/log4j/readme.txt                        |   2 +-
 modules/rest-http/readme.txt                    |   2 +-
 modules/scalar/readme.txt                       |   2 +-
 modules/schedule/readme.txt                     |   2 +-
 modules/slf4j/readme.txt                        |   2 +-
 modules/spring/readme.txt                       |   2 +-
 .../ignite/cache/spring/SpringCacheManager.java |   2 +-
 modules/ssh/readme.txt                          |   2 +-
 .../util/nodestart/GridNodeCallableImpl.java    |   8 +-
 modules/urideploy/readme.txt                    |   2 +-
 .../scala/org/apache/ignite/visor/Packet.scala  |   2 +-
 .../ignite/visor/commands/start/Packet.scala    |   4 +-
 .../commands/start/VisorStartCommand.scala      |   8 +-
 .../scala/org/apache/ignite/visor/visor.scala   |   2 +-
 modules/web/readme.txt                          |   2 +-
 152 files changed, 934 insertions(+), 934 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/assembly/libs/readme.txt
----------------------------------------------------------------------
diff --git a/assembly/libs/readme.txt b/assembly/libs/readme.txt
index 7595da9..78b3604 100644
--- a/assembly/libs/readme.txt
+++ b/assembly/libs/readme.txt
@@ -2,7 +2,7 @@ Apache Ignite Dependencies
 --------------------------
 
 Current folder contains JAR files for all Apache Ignite modules along with their dependencies.
-When node is started using 'ggstart.{sh|bat}' script, all JARs and classes located in
+When node is started using 'ignite.{sh|bat}' script, all JARs and classes located in
 'libs' folder and all its sub-folders except 'optional' are added to classpath of the node.
 
 By default, only Apache Ignite core JAR and a minimum set of modules is enabled, while other
@@ -10,7 +10,7 @@ modules are located in 'optional' folder and therefore disabled.
 
 To enable any of optional Ignite modules when starting a standalone node,
 move corresponding module folder from 'libs/optional' to 'libs' before running
-'ggstart.{sh|bat}' script. The content of the module folder will be added to
+'ignite.{sh|bat}' script. The content of the module folder will be added to
 classpath in this case.
 
 If you need to add your own classes to classpath of the node (e.g., task classes), put them

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/assembly/release-base-fabric.xml
----------------------------------------------------------------------
diff --git a/assembly/release-base-fabric.xml b/assembly/release-base-fabric.xml
index bd70839..f985b6a 100644
--- a/assembly/release-base-fabric.xml
+++ b/assembly/release-base-fabric.xml
@@ -39,7 +39,7 @@
             <directory>bin</directory>
             <outputDirectory>/bin</outputDirectory>
             <includes>
-                <include>ggrouter.bat</include>
+                <include>igniterouter.bat</include>
             </includes>
         </fileSet>
 
@@ -48,7 +48,7 @@
             <outputDirectory>/bin</outputDirectory>
             <fileMode>0755</fileMode>
             <includes>
-                <include>ggrouter.sh</include>
+                <include>igniterouter.sh</include>
             </includes>
         </fileSet>
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/assembly/release-base.xml
----------------------------------------------------------------------
diff --git a/assembly/release-base.xml b/assembly/release-base.xml
index 3995732..5cdeb2a 100644
--- a/assembly/release-base.xml
+++ b/assembly/release-base.xml
@@ -55,7 +55,7 @@
             </includes>
             <excludes>
                 <exclude>**/*hadoop*.bat</exclude>
-                <exclude>ggrouter.bat</exclude>
+                <exclude>igniterouter.bat</exclude>
                 <exclude>**/target-classpath.bat</exclude>
             </excludes>
         </fileSet>
@@ -69,7 +69,7 @@
             </includes>
             <excludes>
                 <exclude>**/*hadoop*.sh</exclude>
-                <exclude>ggrouter.sh</exclude>
+                <exclude>igniterouter.sh</exclude>
                 <exclude>**/target-classpath.sh</exclude>
                 <exclude>**/service.sh</exclude>
             </excludes>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ggrouter.bat
----------------------------------------------------------------------
diff --git a/bin/ggrouter.bat b/bin/ggrouter.bat
deleted file mode 100644
index a364061..0000000
--- a/bin/ggrouter.bat
+++ /dev/null
@@ -1,33 +0,0 @@
-::  Licensed to the Apache Software Foundation (ASF) under one or more
-::  contributor license agreements.  See the NOTICE file distributed with
-::  this work for additional information regarding copyright ownership.
-::  The ASF licenses this file to You under the Apache License, Version 2.0
-::  (the "License"); you may not use this file except in compliance with
-::  the License.  You may obtain a copy of the License at
-::
-::       http://www.apache.org/licenses/LICENSE-2.0
-::
-::  Unless required by applicable law or agreed to in writing, software
-::  distributed under the License is distributed on an "AS IS" BASIS,
-::  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-::  See the License for the specific language governing permissions and
-::  limitations under the License.
-
-::
-:: Grid router command line loader.
-::
-
-@echo off
-
-if "%OS%" == "Windows_NT" setlocal
-
-::
-:: Set router service environment.
-::
-set "DEFAULT_CONFIG=config\router\default-router.xml"
-set MAIN_CLASS=org.gridgain.client.router.impl.GridRouterCommandLineStartup
-
-::
-:: Start router service.
-::
-call "%~dp0\ggstart.bat" %*

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ggrouter.sh
----------------------------------------------------------------------
diff --git a/bin/ggrouter.sh b/bin/ggrouter.sh
deleted file mode 100755
index 29ac1d1..0000000
--- a/bin/ggrouter.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/bin/bash
-#  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.
-
-#
-# Router command line loader.
-#
-
-#
-# Import common functions.
-#
-if [ "${IGNITE_HOME}" = "" ];
-    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";IGNITE_HOME_TMP="$(dirname "${IGNITE_HOME_TMP}")" # Will be removed in release.
-    else IGNITE_HOME_TMP=${IGNITE_HOME};
-fi
-
-#
-# Set SCRIPTS_HOME - base path to scripts.
-#
-SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
-
-source "${SCRIPTS_HOME}"/include/functions.sh
-
-#
-# Discover IGNITE_HOME environment variable.
-#
-setGridGainHome
-
-#
-# Set router service environment.
-#
-export DEFAULT_CONFIG=config/router/default-router.xml
-export MAIN_CLASS=org.gridgain.client.router.impl.GridRouterCommandLineStartup
-
-#
-# Start router service.
-#
-. "${SCRIPTS_HOME}"/ggstart.sh $@

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ggstart.bat
----------------------------------------------------------------------
diff --git a/bin/ggstart.bat b/bin/ggstart.bat
deleted file mode 100644
index 2db610b..0000000
--- a/bin/ggstart.bat
+++ /dev/null
@@ -1,228 +0,0 @@
-::  Licensed to the Apache Software Foundation (ASF) under one or more
-::  contributor license agreements.  See the NOTICE file distributed with
-::  this work for additional information regarding copyright ownership.
-::  The ASF licenses this file to You under the Apache License, Version 2.0
-::  (the "License"); you may not use this file except in compliance with
-::  the License.  You may obtain a copy of the License at
-::
-::       http://www.apache.org/licenses/LICENSE-2.0
-::
-::  Unless required by applicable law or agreed to in writing, software
-::  distributed under the License is distributed on an "AS IS" BASIS,
-::  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-::  See the License for the specific language governing permissions and
-::  limitations under the License.
-
-::
-:: Grid command line loader.
-::
-
-@echo off
-
-if "%OS%" == "Windows_NT"  setlocal
-
-:: Check JAVA_HOME.
-if defined JAVA_HOME  goto checkJdk
-    echo %0, ERROR:
-    echo JAVA_HOME environment variable is not found.
-    echo Please point JAVA_HOME variable to location of JDK 1.7 or JDK 1.8.
-    echo You can also download latest JDK at http://java.com/download.
-goto error_finish
-
-:checkJdk
-:: Check that JDK is where it should be.
-if exist "%JAVA_HOME%\bin\java.exe" goto checkJdkVersion
-    echo %0, ERROR:
-    echo JAVA is not found in JAVA_HOME=%JAVA_HOME%.
-    echo Please point JAVA_HOME variable to installation of JDK 1.7 or JDK 1.8.
-    echo You can also download latest JDK at http://java.com/download.
-goto error_finish
-
-:checkJdkVersion
-"%JAVA_HOME%\bin\java.exe" -version 2>&1 | findstr "1\.[78]\." > nul
-if %ERRORLEVEL% equ 0 goto checkGridGainHome1
-    echo %0, ERROR:
-    echo The version of JAVA installed in %JAVA_HOME% is incorrect.
-    echo Please point JAVA_HOME variable to installation of JDK 1.7 or JDK 1.8.
-    echo You can also download latest JDK at http://java.com/download.
-goto error_finish
-
-:: Check IGNITE_HOME.
-:checkGridGainHome1
-if defined IGNITE_HOME goto checkGridGainHome2
-    pushd "%~dp0"/..
-    set IGNITE_HOME=%CD%
-    popd
-
-:checkGridGainHome2
-:: Strip double quotes from IGNITE_HOME
-set IGNITE_HOME=%IGNITE_HOME:"=%
-
-:: remove all trailing slashes from IGNITE_HOME.
-if %IGNITE_HOME:~-1,1% == \ goto removeTrailingSlash
-if %IGNITE_HOME:~-1,1% == / goto removeTrailingSlash
-goto checkGridGainHome3
-
-:removeTrailingSlash
-set IGNITE_HOME=%IGNITE_HOME:~0,-1%
-goto checkGridGainHome2
-
-:checkGridGainHome3
-if exist "%IGNITE_HOME%\config" goto checkGridGainHome4
-    echo %0, ERROR: GridGain installation folder is not found or IGNITE_HOME environment variable is not valid.
-    echo Please create IGNITE_HOME environment variable pointing to location of
-    echo GridGain installation folder.
-    goto error_finish
-
-:checkGridGainHome4
-
-::
-:: Set SCRIPTS_HOME - base path to scripts.
-::
-set SCRIPTS_HOME=%IGNITE_HOME%\bin
-
-:: Remove trailing spaces
-for /l %%a in (1,1,31) do if /i "%SCRIPTS_HOME:~-1%" == " " set SCRIPTS_HOME=%SCRIPTS_HOME:~0,-1%
-
-if /i "%SCRIPTS_HOME%\" == "%~dp0" goto setProgName
-    echo %0, WARN: IGNITE_HOME environment variable may be pointing to wrong folder: %IGNITE_HOME%
-
-:setProgName
-::
-:: Set program name.
-::
-set PROG_NAME=ggstart.bat
-if "%OS%" == "Windows_NT" set PROG_NAME=%~nx0%
-
-:run
-
-::
-:: Set IGNITE_LIBS
-::
-call "%SCRIPTS_HOME%\include\setenv.bat"
-call "%SCRIPTS_HOME%\include\target-classpath.bat" &:: Will be removed in release.
-set CP=%IGNITE_LIBS%
-
-::
-:: Parse command line parameters.
-::
-if not defined DEFAULT_CONFIG set "DEFAULT_CONFIG=config\default-config.xml"
-call "%SCRIPTS_HOME%\include\parseargs.bat" %*
-if %ERRORLEVEL% neq 0 (
-    echo Arguments parsing failed
-    exit /b %ERRORLEVEL%
-)
-
-::
-:: Process 'restart'.
-::
-set RANDOM_NUMBER_COMMAND="%JAVA_HOME%\bin\java.exe" -cp %CP% org.apache.ignite.startup.cmdline.CommandLineRandomNumberGenerator
-for /f "usebackq tokens=*" %%i in (`"%RANDOM_NUMBER_COMMAND%"`) do set RANDOM_NUMBER=%%i
-
-set RESTART_SUCCESS_FILE="%IGNITE_HOME%\work\ignite_success_%RANDOM_NUMBER%"
-set RESTART_SUCCESS_OPT=-DIGNITE_SUCCESS_FILE=%RESTART_SUCCESS_FILE%
-
-::
-:: Find available port for JMX
-::
-:: You can specify IGNITE_JMX_PORT environment variable for overriding automatically found JMX port
-::
-for /F "tokens=*" %%A in ('""%JAVA_HOME%\bin\java" -cp %CP% org.gridgain.grid.util.portscanner.GridJmxPortFinder"') do (
-    set JMX_PORT=%%A
-)
-
-::
-:: This variable defines necessary parameters for JMX
-:: monitoring and management.
-::
-:: This enables remote unsecure access to JConsole or VisualVM.
-::
-:: ADD YOUR ADDITIONAL PARAMETERS/OPTIONS HERE
-::
-if "%JMX_PORT%" == "" (
-    echo %0, WARN: Failed to resolve JMX host. JMX will be disabled.
-    set JMX_MON=
-) else (
-    set JMX_MON=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=%JMX_PORT% ^
-    -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
-)
-
-::
-:: JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
-::
-:: ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
-::
-if "%JVM_OPTS%" == "" set JVM_OPTS=-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m
-
-::
-:: Uncomment the following GC settings if you see spikes in your throughput due to Garbage Collection.
-::
-:: set JVM_OPTS=%JVM_OPTS% -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m
-:: set JVM_OPTS=%JVM_OPTS% -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60
-
-::
-:: Uncomment if you get StackOverflowError.
-:: On 64 bit systems this value can be larger, e.g. -Xss16m
-::
-:: set JVM_OPTS=%JVM_OPTS% -Xss4m
-
-::
-:: Uncomment to set preference to IPv4 stack.
-::
-:: set JVM_OPTS=%JVM_OPTS% -Djava.net.preferIPv4Stack=true
-
-::
-:: Assertions are disabled by default since version 3.5.
-:: If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
-::
-set ENABLE_ASSERTIONS=1
-
-::
-:: Set '-ea' options if assertions are enabled.
-::
-if %ENABLE_ASSERTIONS% == 1 set JVM_OPTS=%JVM_OPTS% -ea
-
-:run_java
-
-::
-:: Set main class to start service (grid node by default).
-::
-
-if "%MAIN_CLASS%" == "" set MAIN_CLASS=org.apache.ignite.startup.cmdline.CommandLineStartup
-
-::
-:: Remote debugging (JPDA).
-:: Uncomment and change if remote debugging is required.
-:: set JVM_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n %JVM_OPTS%
-::
-
-if "%INTERACTIVE%" == "1" (
-    "%JAVA_HOME%\bin\java.exe" %JVM_OPTS% %QUIET% %RESTART_SUCCESS_OPT% %JMX_MON% ^
-    -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="%IGNITE_HOME%" -DIGNITE_PROG_NAME="%PROG_NAME%" %JVM_XOPTS% ^
-    -cp "%CP%" %MAIN_CLASS%
-) else (
-    "%JAVA_HOME%\bin\java.exe" %JVM_OPTS% %QUIET% %RESTART_SUCCESS_OPT% %JMX_MON% ^
-    -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="%IGNITE_HOME%" -DIGNITE_PROG_NAME="%PROG_NAME%" %JVM_XOPTS% ^
-    -cp "%CP%" %MAIN_CLASS% "%CONFIG%"
-)
-
-set JAVA_ERRORLEVEL=%ERRORLEVEL%
-
-:: errorlevel 130 if aborted with Ctrl+c
-if %JAVA_ERRORLEVEL%==130 goto finish
-
-:: Exit if first run unsuccessful (Loader must create file).
-if not exist %RESTART_SUCCESS_FILE% goto error_finish
-del %RESTART_SUCCESS_FILE%
-
-goto run_java
-
-:finish
-if not exist %RESTART_SUCCESS_FILE% goto error_finish
-del %RESTART_SUCCESS_FILE%
-
-:error_finish
-
-if not "%NO_PAUSE%" == "1" pause
-
-goto :eof

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ggstart.sh
----------------------------------------------------------------------
diff --git a/bin/ggstart.sh b/bin/ggstart.sh
deleted file mode 100755
index 4e2f37c..0000000
--- a/bin/ggstart.sh
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/bin/bash
-#  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.
-
-#
-# Grid command line loader.
-#
-
-#
-# Import common functions.
-#
-if [ "${IGNITE_HOME}" = "" ];
-    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";
-    else IGNITE_HOME_TMP=${IGNITE_HOME};
-fi
-
-#
-# Set SCRIPTS_HOME - base path to scripts.
-#
-SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
-
-source "${SCRIPTS_HOME}"/include/functions.sh
-
-#
-# Discover path to Java executable and check it's version.
-#
-checkJava
-
-#
-# Discover IGNITE_HOME environment variable.
-#
-setGridGainHome
-
-if [ "${DEFAULT_CONFIG}" == "" ]; then
-    DEFAULT_CONFIG=config/default-config.xml
-fi
-
-#
-# Parse command line parameters.
-#
-. "${SCRIPTS_HOME}"/include/parseargs.sh
-
-#
-# Set IGNITE_LIBS.
-#
-. "${SCRIPTS_HOME}"/include/setenv.sh
-. "${SCRIPTS_HOME}"/include/target-classpath.sh # Will be removed in release.
-CP="${IGNITE_LIBS}"
-
-RANDOM_NUMBER=$("$JAVA" -cp "${CP}" org.apache.ignite.startup.cmdline.CommandLineRandomNumberGenerator)
-
-RESTART_SUCCESS_FILE="${IGNITE_HOME}/work/ignite_success_${RANDOM_NUMBER}"
-RESTART_SUCCESS_OPT="-DIGNITE_SUCCESS_FILE=${RESTART_SUCCESS_FILE}"
-
-#
-# Find available port for JMX
-#
-# You can specify IGNITE_JMX_PORT environment variable for overriding automatically found JMX port
-#
-findAvailableJmxPort
-
-# Mac OS specific support to display correct name in the dock.
-osname=`uname`
-
-if [ "${DOCK_OPTS}" == "" ]; then
-    DOCK_OPTS="-Xdock:name=GridGain Node"
-fi
-
-#
-# JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
-#
-# ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
-#
-if [ -z "$JVM_OPTS" ] ; then
-    JVM_OPTS="-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m"
-fi
-
-#
-# Uncomment the following GC settings if you see spikes in your throughput due to Garbage Collection.
-#
-# JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m"
-# JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60"
-
-#
-# Uncomment if you get StackOverflowError.
-# On 64 bit systems this value can be larger, e.g. -Xss16m
-#
-# JVM_OPTS="${JVM_OPTS} -Xss4m"
-
-#
-# Uncomment to set preference for IPv4 stack.
-#
-# JVM_OPTS="${JVM_OPTS} -Djava.net.preferIPv4Stack=true"
-
-#
-# Assertions are disabled by default since version 3.5.
-# If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
-#
-ENABLE_ASSERTIONS="1"
-
-#
-# Set '-ea' options if assertions are enabled.
-#
-if [ "${ENABLE_ASSERTIONS}" = "1" ]; then
-    JVM_OPTS="${JVM_OPTS} -ea"
-fi
-
-#
-# Set main class to start service (grid node by default).
-#
-if [ "${MAIN_CLASS}" = "" ]; then
-    MAIN_CLASS=org.apache.ignite.startup.cmdline.CommandLineStartup
-fi
-
-#
-# Remote debugging (JPDA).
-# Uncomment and change if remote debugging is required.
-#
-# JVM_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n ${JVM_OPTS}"
-
-ERRORCODE="-1"
-
-while [ "${ERRORCODE}" -ne "130" ]
-do
-    if [ "${INTERACTIVE}" == "1" ] ; then
-        case $osname in
-            Darwin*)
-                "$JAVA" ${JVM_OPTS} ${QUIET} "${DOCK_OPTS}" "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
-                -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
-                -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS}
-            ;;
-            *)
-                "$JAVA" ${JVM_OPTS} ${QUIET} "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
-                -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
-                -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS}
-            ;;
-        esac
-    else
-        case $osname in
-            Darwin*)
-                "$JAVA" ${JVM_OPTS} ${QUIET} "${DOCK_OPTS}" "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
-                 -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
-                 -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS} "${CONFIG}"
-            ;;
-            *)
-                "$JAVA" ${JVM_OPTS} ${QUIET} "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
-                 -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
-                 -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS} "${CONFIG}"
-            ;;
-        esac
-    fi
-
-    ERRORCODE="$?"
-
-    if [ ! -f "${RESTART_SUCCESS_FILE}" ] ; then
-        break
-    else
-        rm -f "${RESTART_SUCCESS_FILE}"
-    fi
-done
-
-if [ -f "${RESTART_SUCCESS_FILE}" ] ; then
-    rm -f "${RESTART_SUCCESS_FILE}"
-fi

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ggvisorcmd.bat
----------------------------------------------------------------------
diff --git a/bin/ggvisorcmd.bat b/bin/ggvisorcmd.bat
deleted file mode 100644
index c4c64f9..0000000
--- a/bin/ggvisorcmd.bat
+++ /dev/null
@@ -1,144 +0,0 @@
-::  Licensed to the Apache Software Foundation (ASF) under one or more
-::  contributor license agreements.  See the NOTICE file distributed with
-::  this work for additional information regarding copyright ownership.
-::  The ASF licenses this file to You under the Apache License, Version 2.0
-::  (the "License"); you may not use this file except in compliance with
-::  the License.  You may obtain a copy of the License at
-::
-::       http://www.apache.org/licenses/LICENSE-2.0
-::
-::  Unless required by applicable law or agreed to in writing, software
-::  distributed under the License is distributed on an "AS IS" BASIS,
-::  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-::  See the License for the specific language governing permissions and
-::  limitations under the License.
-
-::
-:: Starts GridGain Visor Console.
-::
-
-@echo off
-
-if "%OS%" == "Windows_NT"  setlocal
-
-:: Check JAVA_HOME.
-if not "%JAVA_HOME%" == "" goto checkJdk
-    echo %0, ERROR: JAVA_HOME environment variable is not found.
-    echo %0, ERROR: Please create JAVA_HOME variable pointing to location of JDK 1.7 or JDK 1.8.
-    echo %0, ERROR: You can also download latest JDK at: http://java.sun.com/getjava
-goto error_finish
-
-:checkJdk
-:: Check that JDK is where it should be.
-if exist "%JAVA_HOME%\bin\java.exe" goto checkJdkVersion
-    echo %0, ERROR: The JDK is not found in %JAVA_HOME%.
-    echo %0, ERROR: Please modify your script so that JAVA_HOME would point to valid location of JDK.
-goto error_finish
-
-:checkJdkVersion
-"%JAVA_HOME%\bin\java.exe" -version 2>&1 | findstr "1\.[78]\." > nul
-if %ERRORLEVEL% equ 0 goto checkGridGainHome1
-    echo %0, ERROR: The version of JAVA installed in %JAVA_HOME% is incorrect.
-    echo %0, ERROR: Please install JDK 1.7 or 1.8.
-    echo %0, ERROR: You can also download latest JDK at: http://java.sun.com/getjava
-goto error_finish
-
-:: Check IGNITE_HOME.
-:checkGridGainHome1
-if not "%IGNITE_HOME%" == "" goto checkGridGainHome2
-    pushd "%~dp0"/..
-    set IGNITE_HOME=%CD%
-    popd
-
-:checkGridGainHome2
-:: Strip double quotes from IGNITE_HOME
-set IGNITE_HOME=%IGNITE_HOME:"=%
-
-:: remove all trailing slashes from IGNITE_HOME.
-if %IGNITE_HOME:~-1,1% == \ goto removeTrailingSlash
-if %IGNITE_HOME:~-1,1% == / goto removeTrailingSlash
-goto checkGridGainHome3
-
-:removeTrailingSlash
-set IGNITE_HOME=%IGNITE_HOME:~0,-1%
-goto checkGridGainHome2
-
-:checkGridGainHome3
-if exist "%IGNITE_HOME%\config" goto checkGridGainHome4
-    echo %0, ERROR: GridGain installation folder is not found or IGNITE_HOME environment variable is not valid.
-    echo Please create IGNITE_HOME environment variable pointing to location of
-    echo GridGain installation folder.
-    goto error_finish
-
-:checkGridGainHome4
-
-::
-:: Set SCRIPTS_HOME - base path to scripts.
-::
-set SCRIPTS_HOME=%IGNITE_HOME%\bin
-
-:: Remove trailing spaces
-for /l %%a in (1,1,31) do if /i "%SCRIPTS_HOME:~-1%" == " " set SCRIPTS_HOME=%SCRIPTS_HOME:~0,-1%
-
-if /i "%SCRIPTS_HOME%\" == "%~dp0" goto run
-    echo %0, WARN: IGNITE_HOME environment variable may be pointing to wrong folder: %IGNITE_HOME%
-
-:run
-
-::
-:: Set IGNITE_LIBS
-::
-call "%SCRIPTS_HOME%\include\setenv.bat"
-call "%SCRIPTS_HOME%\include\target-classpath.bat" &:: Will be removed in release.
-set CP=%IGNITE_HOME%\bin\include\visor-common\*;%IGNITE_HOME%\bin\include\visorcmd\*;%IGNITE_LIBS%
-
-::
-:: Parse command line parameters.
-::
-call "%SCRIPTS_HOME%\include\parseargs.bat" %*
-if %ERRORLEVEL% neq 0 (
-    echo Arguments parsing failed
-    exit /b %ERRORLEVEL%
-)
-
-::
-:: Set program name.
-::
-set PROG_NAME=gridgain.bat
-if "%OS%" == "Windows_NT" set PROG_NAME=%~nx0%
-
-::
-:: JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
-::
-:: ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
-::
-if "%JVM_OPTS_VISOR%" == "" set JVM_OPTS_VISOR=-Xms1g -Xmx1g -XX:MaxPermSize=128M
-
-::
-:: Uncomment to set preference to IPv4 stack.
-::
-:: set JVM_OPTS_VISOR=%JVM_OPTS_VISOR% -Djava.net.preferIPv4Stack=true
-
-::
-:: Assertions are disabled by default since version 3.5.
-:: If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
-::
-set ENABLE_ASSERTIONS=1
-
-::
-:: Set '-ea' options if assertions are enabled.
-::
-if %ENABLE_ASSERTIONS% == 1 set JVM_OPTS_VISOR=%JVM_OPTS_VISOR% -ea
-
-::
-:: Starts Visor console.
-::
-"%JAVA_HOME%\bin\java.exe" %JVM_OPTS_VISOR% -DIGNITE_PROG_NAME="%PROG_NAME%" ^
--DIGNITE_DEPLOYMENT_MODE_OVERRIDE=ISOLATED %QUIET% %JVM_XOPTS% -cp "%CP%" ^
- org.gridgain.visor.commands.VisorConsole
-
-:error_finish
-
-if not "%NO_PAUSE%" == "1" pause
-
-goto :eof

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ggvisorcmd.sh
----------------------------------------------------------------------
diff --git a/bin/ggvisorcmd.sh b/bin/ggvisorcmd.sh
deleted file mode 100755
index 319d282..0000000
--- a/bin/ggvisorcmd.sh
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/bin/bash
-#  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.
-
-#
-# Import common functions.
-#
-if [ "${IGNITE_HOME}" = "" ];
-    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";IGNITE_HOME_TMP="$(dirname "${IGNITE_HOME_TMP}")" # Will be removed in release.
-    else IGNITE_HOME_TMP=${IGNITE_HOME};
-fi
-
-#
-# Set SCRIPTS_HOME - base path to scripts.
-#
-SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
-
-source "${SCRIPTS_HOME}"/include/functions.sh
-
-#
-# Discover path to Java executable and check it's version.
-#
-checkJava
-
-#
-# Discover IGNITE_HOME environment variable.
-#
-setGridGainHome
-
-#
-# Parse command line parameters.
-#
-. "${SCRIPTS_HOME}"/include/parseargs.sh
-
-#
-# Set IGNITE_LIBS.
-#
-. "${SCRIPTS_HOME}"/include/setenv.sh
-. "${SCRIPTS_HOME}"/include/target-classpath.sh # Will be removed in release.
-CP="${IGNITE_HOME}/bin/include/visor-common/*${SEP}${IGNITE_HOME}/bin/include/visorcmd/*${SEP}${IGNITE_LIBS}"
-
-#
-# JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
-#
-# ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
-#
-JVM_OPTS="-Xms1g -Xmx1g -XX:MaxPermSize=128M -server ${JVM_OPTS}"
-
-# Mac OS specific support to display correct name in the dock.
-osname=`uname`
-
-if [ "${DOCK_OPTS}" == "" ]; then
-    DOCK_OPTS="-Xdock:name=Visor - GridGain Shell Console"
-fi
-
-#
-# Uncomment to set preference for IPv4 stack.
-#
-# JVM_OPTS="${JVM_OPTS} -Djava.net.preferIPv4Stack=true"
-
-#
-# Assertions are disabled by default since version 3.5.
-# If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
-#
-ENABLE_ASSERTIONS="1"
-
-#
-# Set '-ea' options if assertions are enabled.
-#
-if [ "${ENABLE_ASSERTIONS}" = "1" ]; then
-    JVM_OPTS="${JVM_OPTS} -ea"
-fi
-
-#
-# Save terminal setting. Used to restore terminal on finish.
-#
-SAVED_STTY=`stty -g 2>/dev/null`
-
-#
-# Restores terminal.
-#
-function restoreSttySettings() {
-    stty ${SAVED_STTY}
-}
-
-#
-# Trap that restores terminal in case script execution is interrupted.
-#
-trap restoreSttySettings INT
-
-#
-# Start Visor console.
-#
-case $osname in
-    Darwin*)
-        "$JAVA" ${JVM_OPTS} ${QUIET} "${DOCK_OPTS}" \
-        -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" -DIGNITE_PROG_NAME="$0" \
-        -DIGNITE_DEPLOYMENT_MODE_OVERRIDE=ISOLATED ${JVM_XOPTS} -cp "${CP}" \
-        org.apache.ignite.visor.commands.VisorConsole
-    ;;
-    *)
-        "$JAVA" ${JVM_OPTS} ${QUIET} -DIGNITE_UPDATE_NOTIFIER=false \
-        -DIGNITE_HOME="${IGNITE_HOME}" -DIGNITE_PROG_NAME="$0" -DIGNITE_DEPLOYMENT_MODE_OVERRIDE=ISOLATED \
-        ${JVM_XOPTS} -cp "${CP}" \
-        org.apache.ignite.visor.commands.VisorConsole
-    ;;
-esac
-
-#
-# Restore terminal.
-#
-restoreSttySettings

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ignite.bat
----------------------------------------------------------------------
diff --git a/bin/ignite.bat b/bin/ignite.bat
new file mode 100644
index 0000000..d11dc1b
--- /dev/null
+++ b/bin/ignite.bat
@@ -0,0 +1,228 @@
+::  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.
+
+::
+:: Grid command line loader.
+::
+
+@echo off
+
+if "%OS%" == "Windows_NT"  setlocal
+
+:: Check JAVA_HOME.
+if defined JAVA_HOME  goto checkJdk
+    echo %0, ERROR:
+    echo JAVA_HOME environment variable is not found.
+    echo Please point JAVA_HOME variable to location of JDK 1.7 or JDK 1.8.
+    echo You can also download latest JDK at http://java.com/download.
+goto error_finish
+
+:checkJdk
+:: Check that JDK is where it should be.
+if exist "%JAVA_HOME%\bin\java.exe" goto checkJdkVersion
+    echo %0, ERROR:
+    echo JAVA is not found in JAVA_HOME=%JAVA_HOME%.
+    echo Please point JAVA_HOME variable to installation of JDK 1.7 or JDK 1.8.
+    echo You can also download latest JDK at http://java.com/download.
+goto error_finish
+
+:checkJdkVersion
+"%JAVA_HOME%\bin\java.exe" -version 2>&1 | findstr "1\.[78]\." > nul
+if %ERRORLEVEL% equ 0 goto checkGridGainHome1
+    echo %0, ERROR:
+    echo The version of JAVA installed in %JAVA_HOME% is incorrect.
+    echo Please point JAVA_HOME variable to installation of JDK 1.7 or JDK 1.8.
+    echo You can also download latest JDK at http://java.com/download.
+goto error_finish
+
+:: Check IGNITE_HOME.
+:checkGridGainHome1
+if defined IGNITE_HOME goto checkGridGainHome2
+    pushd "%~dp0"/..
+    set IGNITE_HOME=%CD%
+    popd
+
+:checkGridGainHome2
+:: Strip double quotes from IGNITE_HOME
+set IGNITE_HOME=%IGNITE_HOME:"=%
+
+:: remove all trailing slashes from IGNITE_HOME.
+if %IGNITE_HOME:~-1,1% == \ goto removeTrailingSlash
+if %IGNITE_HOME:~-1,1% == / goto removeTrailingSlash
+goto checkGridGainHome3
+
+:removeTrailingSlash
+set IGNITE_HOME=%IGNITE_HOME:~0,-1%
+goto checkGridGainHome2
+
+:checkGridGainHome3
+if exist "%IGNITE_HOME%\config" goto checkGridGainHome4
+    echo %0, ERROR: GridGain installation folder is not found or IGNITE_HOME environment variable is not valid.
+    echo Please create IGNITE_HOME environment variable pointing to location of
+    echo GridGain installation folder.
+    goto error_finish
+
+:checkGridGainHome4
+
+::
+:: Set SCRIPTS_HOME - base path to scripts.
+::
+set SCRIPTS_HOME=%IGNITE_HOME%\bin
+
+:: Remove trailing spaces
+for /l %%a in (1,1,31) do if /i "%SCRIPTS_HOME:~-1%" == " " set SCRIPTS_HOME=%SCRIPTS_HOME:~0,-1%
+
+if /i "%SCRIPTS_HOME%\" == "%~dp0" goto setProgName
+    echo %0, WARN: IGNITE_HOME environment variable may be pointing to wrong folder: %IGNITE_HOME%
+
+:setProgName
+::
+:: Set program name.
+::
+set PROG_NAME=ignite.bat
+if "%OS%" == "Windows_NT" set PROG_NAME=%~nx0%
+
+:run
+
+::
+:: Set IGNITE_LIBS
+::
+call "%SCRIPTS_HOME%\include\setenv.bat"
+call "%SCRIPTS_HOME%\include\target-classpath.bat" &:: Will be removed in release.
+set CP=%IGNITE_LIBS%
+
+::
+:: Parse command line parameters.
+::
+if not defined DEFAULT_CONFIG set "DEFAULT_CONFIG=config\default-config.xml"
+call "%SCRIPTS_HOME%\include\parseargs.bat" %*
+if %ERRORLEVEL% neq 0 (
+    echo Arguments parsing failed
+    exit /b %ERRORLEVEL%
+)
+
+::
+:: Process 'restart'.
+::
+set RANDOM_NUMBER_COMMAND="%JAVA_HOME%\bin\java.exe" -cp %CP% org.apache.ignite.startup.cmdline.CommandLineRandomNumberGenerator
+for /f "usebackq tokens=*" %%i in (`"%RANDOM_NUMBER_COMMAND%"`) do set RANDOM_NUMBER=%%i
+
+set RESTART_SUCCESS_FILE="%IGNITE_HOME%\work\ignite_success_%RANDOM_NUMBER%"
+set RESTART_SUCCESS_OPT=-DIGNITE_SUCCESS_FILE=%RESTART_SUCCESS_FILE%
+
+::
+:: Find available port for JMX
+::
+:: You can specify IGNITE_JMX_PORT environment variable for overriding automatically found JMX port
+::
+for /F "tokens=*" %%A in ('""%JAVA_HOME%\bin\java" -cp %CP% org.gridgain.grid.util.portscanner.GridJmxPortFinder"') do (
+    set JMX_PORT=%%A
+)
+
+::
+:: This variable defines necessary parameters for JMX
+:: monitoring and management.
+::
+:: This enables remote unsecure access to JConsole or VisualVM.
+::
+:: ADD YOUR ADDITIONAL PARAMETERS/OPTIONS HERE
+::
+if "%JMX_PORT%" == "" (
+    echo %0, WARN: Failed to resolve JMX host. JMX will be disabled.
+    set JMX_MON=
+) else (
+    set JMX_MON=-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=%JMX_PORT% ^
+    -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
+)
+
+::
+:: JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
+::
+:: ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
+::
+if "%JVM_OPTS%" == "" set JVM_OPTS=-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m
+
+::
+:: Uncomment the following GC settings if you see spikes in your throughput due to Garbage Collection.
+::
+:: set JVM_OPTS=%JVM_OPTS% -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m
+:: set JVM_OPTS=%JVM_OPTS% -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60
+
+::
+:: Uncomment if you get StackOverflowError.
+:: On 64 bit systems this value can be larger, e.g. -Xss16m
+::
+:: set JVM_OPTS=%JVM_OPTS% -Xss4m
+
+::
+:: Uncomment to set preference to IPv4 stack.
+::
+:: set JVM_OPTS=%JVM_OPTS% -Djava.net.preferIPv4Stack=true
+
+::
+:: Assertions are disabled by default since version 3.5.
+:: If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
+::
+set ENABLE_ASSERTIONS=1
+
+::
+:: Set '-ea' options if assertions are enabled.
+::
+if %ENABLE_ASSERTIONS% == 1 set JVM_OPTS=%JVM_OPTS% -ea
+
+:run_java
+
+::
+:: Set main class to start service (grid node by default).
+::
+
+if "%MAIN_CLASS%" == "" set MAIN_CLASS=org.apache.ignite.startup.cmdline.CommandLineStartup
+
+::
+:: Remote debugging (JPDA).
+:: Uncomment and change if remote debugging is required.
+:: set JVM_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n %JVM_OPTS%
+::
+
+if "%INTERACTIVE%" == "1" (
+    "%JAVA_HOME%\bin\java.exe" %JVM_OPTS% %QUIET% %RESTART_SUCCESS_OPT% %JMX_MON% ^
+    -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="%IGNITE_HOME%" -DIGNITE_PROG_NAME="%PROG_NAME%" %JVM_XOPTS% ^
+    -cp "%CP%" %MAIN_CLASS%
+) else (
+    "%JAVA_HOME%\bin\java.exe" %JVM_OPTS% %QUIET% %RESTART_SUCCESS_OPT% %JMX_MON% ^
+    -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="%IGNITE_HOME%" -DIGNITE_PROG_NAME="%PROG_NAME%" %JVM_XOPTS% ^
+    -cp "%CP%" %MAIN_CLASS% "%CONFIG%"
+)
+
+set JAVA_ERRORLEVEL=%ERRORLEVEL%
+
+:: errorlevel 130 if aborted with Ctrl+c
+if %JAVA_ERRORLEVEL%==130 goto finish
+
+:: Exit if first run unsuccessful (Loader must create file).
+if not exist %RESTART_SUCCESS_FILE% goto error_finish
+del %RESTART_SUCCESS_FILE%
+
+goto run_java
+
+:finish
+if not exist %RESTART_SUCCESS_FILE% goto error_finish
+del %RESTART_SUCCESS_FILE%
+
+:error_finish
+
+if not "%NO_PAUSE%" == "1" pause
+
+goto :eof

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ignite.sh
----------------------------------------------------------------------
diff --git a/bin/ignite.sh b/bin/ignite.sh
new file mode 100644
index 0000000..4e2f37c
--- /dev/null
+++ b/bin/ignite.sh
@@ -0,0 +1,176 @@
+#!/bin/bash
+#  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.
+
+#
+# Grid command line loader.
+#
+
+#
+# Import common functions.
+#
+if [ "${IGNITE_HOME}" = "" ];
+    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";
+    else IGNITE_HOME_TMP=${IGNITE_HOME};
+fi
+
+#
+# Set SCRIPTS_HOME - base path to scripts.
+#
+SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
+
+source "${SCRIPTS_HOME}"/include/functions.sh
+
+#
+# Discover path to Java executable and check it's version.
+#
+checkJava
+
+#
+# Discover IGNITE_HOME environment variable.
+#
+setGridGainHome
+
+if [ "${DEFAULT_CONFIG}" == "" ]; then
+    DEFAULT_CONFIG=config/default-config.xml
+fi
+
+#
+# Parse command line parameters.
+#
+. "${SCRIPTS_HOME}"/include/parseargs.sh
+
+#
+# Set IGNITE_LIBS.
+#
+. "${SCRIPTS_HOME}"/include/setenv.sh
+. "${SCRIPTS_HOME}"/include/target-classpath.sh # Will be removed in release.
+CP="${IGNITE_LIBS}"
+
+RANDOM_NUMBER=$("$JAVA" -cp "${CP}" org.apache.ignite.startup.cmdline.CommandLineRandomNumberGenerator)
+
+RESTART_SUCCESS_FILE="${IGNITE_HOME}/work/ignite_success_${RANDOM_NUMBER}"
+RESTART_SUCCESS_OPT="-DIGNITE_SUCCESS_FILE=${RESTART_SUCCESS_FILE}"
+
+#
+# Find available port for JMX
+#
+# You can specify IGNITE_JMX_PORT environment variable for overriding automatically found JMX port
+#
+findAvailableJmxPort
+
+# Mac OS specific support to display correct name in the dock.
+osname=`uname`
+
+if [ "${DOCK_OPTS}" == "" ]; then
+    DOCK_OPTS="-Xdock:name=GridGain Node"
+fi
+
+#
+# JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
+#
+# ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
+#
+if [ -z "$JVM_OPTS" ] ; then
+    JVM_OPTS="-Xms1g -Xmx1g -server -XX:+AggressiveOpts -XX:MaxPermSize=256m"
+fi
+
+#
+# Uncomment the following GC settings if you see spikes in your throughput due to Garbage Collection.
+#
+# JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+UseTLAB -XX:NewSize=128m -XX:MaxNewSize=128m"
+# JVM_OPTS="$JVM_OPTS -XX:MaxTenuringThreshold=0 -XX:SurvivorRatio=1024 -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=60"
+
+#
+# Uncomment if you get StackOverflowError.
+# On 64 bit systems this value can be larger, e.g. -Xss16m
+#
+# JVM_OPTS="${JVM_OPTS} -Xss4m"
+
+#
+# Uncomment to set preference for IPv4 stack.
+#
+# JVM_OPTS="${JVM_OPTS} -Djava.net.preferIPv4Stack=true"
+
+#
+# Assertions are disabled by default since version 3.5.
+# If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
+#
+ENABLE_ASSERTIONS="1"
+
+#
+# Set '-ea' options if assertions are enabled.
+#
+if [ "${ENABLE_ASSERTIONS}" = "1" ]; then
+    JVM_OPTS="${JVM_OPTS} -ea"
+fi
+
+#
+# Set main class to start service (grid node by default).
+#
+if [ "${MAIN_CLASS}" = "" ]; then
+    MAIN_CLASS=org.apache.ignite.startup.cmdline.CommandLineStartup
+fi
+
+#
+# Remote debugging (JPDA).
+# Uncomment and change if remote debugging is required.
+#
+# JVM_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n ${JVM_OPTS}"
+
+ERRORCODE="-1"
+
+while [ "${ERRORCODE}" -ne "130" ]
+do
+    if [ "${INTERACTIVE}" == "1" ] ; then
+        case $osname in
+            Darwin*)
+                "$JAVA" ${JVM_OPTS} ${QUIET} "${DOCK_OPTS}" "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
+                -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
+                -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS}
+            ;;
+            *)
+                "$JAVA" ${JVM_OPTS} ${QUIET} "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
+                -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
+                -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS}
+            ;;
+        esac
+    else
+        case $osname in
+            Darwin*)
+                "$JAVA" ${JVM_OPTS} ${QUIET} "${DOCK_OPTS}" "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
+                 -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
+                 -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS} "${CONFIG}"
+            ;;
+            *)
+                "$JAVA" ${JVM_OPTS} ${QUIET} "${RESTART_SUCCESS_OPT}" ${JMX_MON} \
+                 -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" \
+                 -DIGNITE_PROG_NAME="$0" ${JVM_XOPTS} -cp "${CP}" ${MAIN_CLASS} "${CONFIG}"
+            ;;
+        esac
+    fi
+
+    ERRORCODE="$?"
+
+    if [ ! -f "${RESTART_SUCCESS_FILE}" ] ; then
+        break
+    else
+        rm -f "${RESTART_SUCCESS_FILE}"
+    fi
+done
+
+if [ -f "${RESTART_SUCCESS_FILE}" ] ; then
+    rm -f "${RESTART_SUCCESS_FILE}"
+fi

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/igniterouter.bat
----------------------------------------------------------------------
diff --git a/bin/igniterouter.bat b/bin/igniterouter.bat
new file mode 100644
index 0000000..36f1fae
--- /dev/null
+++ b/bin/igniterouter.bat
@@ -0,0 +1,33 @@
+::  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.
+
+::
+:: Grid router command line loader.
+::
+
+@echo off
+
+if "%OS%" == "Windows_NT" setlocal
+
+::
+:: Set router service environment.
+::
+set "DEFAULT_CONFIG=config\router\default-router.xml"
+set MAIN_CLASS=org.gridgain.client.router.impl.GridRouterCommandLineStartup
+
+::
+:: Start router service.
+::
+call "%~dp0\ignite.bat" %*

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/igniterouter.sh
----------------------------------------------------------------------
diff --git a/bin/igniterouter.sh b/bin/igniterouter.sh
new file mode 100644
index 0000000..b75aec3
--- /dev/null
+++ b/bin/igniterouter.sh
@@ -0,0 +1,50 @@
+#!/bin/bash
+#  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.
+
+#
+# Router command line loader.
+#
+
+#
+# Import common functions.
+#
+if [ "${IGNITE_HOME}" = "" ];
+    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";IGNITE_HOME_TMP="$(dirname "${IGNITE_HOME_TMP}")" # Will be removed in release.
+    else IGNITE_HOME_TMP=${IGNITE_HOME};
+fi
+
+#
+# Set SCRIPTS_HOME - base path to scripts.
+#
+SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
+
+source "${SCRIPTS_HOME}"/include/functions.sh
+
+#
+# Discover IGNITE_HOME environment variable.
+#
+setGridGainHome
+
+#
+# Set router service environment.
+#
+export DEFAULT_CONFIG=config/router/default-router.xml
+export MAIN_CLASS=org.gridgain.client.router.impl.GridRouterCommandLineStartup
+
+#
+# Start router service.
+#
+. "${SCRIPTS_HOME}"/ignite.sh $@

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ignitevisorcmd.bat
----------------------------------------------------------------------
diff --git a/bin/ignitevisorcmd.bat b/bin/ignitevisorcmd.bat
new file mode 100644
index 0000000..c4c64f9
--- /dev/null
+++ b/bin/ignitevisorcmd.bat
@@ -0,0 +1,144 @@
+::  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.
+
+::
+:: Starts GridGain Visor Console.
+::
+
+@echo off
+
+if "%OS%" == "Windows_NT"  setlocal
+
+:: Check JAVA_HOME.
+if not "%JAVA_HOME%" == "" goto checkJdk
+    echo %0, ERROR: JAVA_HOME environment variable is not found.
+    echo %0, ERROR: Please create JAVA_HOME variable pointing to location of JDK 1.7 or JDK 1.8.
+    echo %0, ERROR: You can also download latest JDK at: http://java.sun.com/getjava
+goto error_finish
+
+:checkJdk
+:: Check that JDK is where it should be.
+if exist "%JAVA_HOME%\bin\java.exe" goto checkJdkVersion
+    echo %0, ERROR: The JDK is not found in %JAVA_HOME%.
+    echo %0, ERROR: Please modify your script so that JAVA_HOME would point to valid location of JDK.
+goto error_finish
+
+:checkJdkVersion
+"%JAVA_HOME%\bin\java.exe" -version 2>&1 | findstr "1\.[78]\." > nul
+if %ERRORLEVEL% equ 0 goto checkGridGainHome1
+    echo %0, ERROR: The version of JAVA installed in %JAVA_HOME% is incorrect.
+    echo %0, ERROR: Please install JDK 1.7 or 1.8.
+    echo %0, ERROR: You can also download latest JDK at: http://java.sun.com/getjava
+goto error_finish
+
+:: Check IGNITE_HOME.
+:checkGridGainHome1
+if not "%IGNITE_HOME%" == "" goto checkGridGainHome2
+    pushd "%~dp0"/..
+    set IGNITE_HOME=%CD%
+    popd
+
+:checkGridGainHome2
+:: Strip double quotes from IGNITE_HOME
+set IGNITE_HOME=%IGNITE_HOME:"=%
+
+:: remove all trailing slashes from IGNITE_HOME.
+if %IGNITE_HOME:~-1,1% == \ goto removeTrailingSlash
+if %IGNITE_HOME:~-1,1% == / goto removeTrailingSlash
+goto checkGridGainHome3
+
+:removeTrailingSlash
+set IGNITE_HOME=%IGNITE_HOME:~0,-1%
+goto checkGridGainHome2
+
+:checkGridGainHome3
+if exist "%IGNITE_HOME%\config" goto checkGridGainHome4
+    echo %0, ERROR: GridGain installation folder is not found or IGNITE_HOME environment variable is not valid.
+    echo Please create IGNITE_HOME environment variable pointing to location of
+    echo GridGain installation folder.
+    goto error_finish
+
+:checkGridGainHome4
+
+::
+:: Set SCRIPTS_HOME - base path to scripts.
+::
+set SCRIPTS_HOME=%IGNITE_HOME%\bin
+
+:: Remove trailing spaces
+for /l %%a in (1,1,31) do if /i "%SCRIPTS_HOME:~-1%" == " " set SCRIPTS_HOME=%SCRIPTS_HOME:~0,-1%
+
+if /i "%SCRIPTS_HOME%\" == "%~dp0" goto run
+    echo %0, WARN: IGNITE_HOME environment variable may be pointing to wrong folder: %IGNITE_HOME%
+
+:run
+
+::
+:: Set IGNITE_LIBS
+::
+call "%SCRIPTS_HOME%\include\setenv.bat"
+call "%SCRIPTS_HOME%\include\target-classpath.bat" &:: Will be removed in release.
+set CP=%IGNITE_HOME%\bin\include\visor-common\*;%IGNITE_HOME%\bin\include\visorcmd\*;%IGNITE_LIBS%
+
+::
+:: Parse command line parameters.
+::
+call "%SCRIPTS_HOME%\include\parseargs.bat" %*
+if %ERRORLEVEL% neq 0 (
+    echo Arguments parsing failed
+    exit /b %ERRORLEVEL%
+)
+
+::
+:: Set program name.
+::
+set PROG_NAME=gridgain.bat
+if "%OS%" == "Windows_NT" set PROG_NAME=%~nx0%
+
+::
+:: JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
+::
+:: ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
+::
+if "%JVM_OPTS_VISOR%" == "" set JVM_OPTS_VISOR=-Xms1g -Xmx1g -XX:MaxPermSize=128M
+
+::
+:: Uncomment to set preference to IPv4 stack.
+::
+:: set JVM_OPTS_VISOR=%JVM_OPTS_VISOR% -Djava.net.preferIPv4Stack=true
+
+::
+:: Assertions are disabled by default since version 3.5.
+:: If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
+::
+set ENABLE_ASSERTIONS=1
+
+::
+:: Set '-ea' options if assertions are enabled.
+::
+if %ENABLE_ASSERTIONS% == 1 set JVM_OPTS_VISOR=%JVM_OPTS_VISOR% -ea
+
+::
+:: Starts Visor console.
+::
+"%JAVA_HOME%\bin\java.exe" %JVM_OPTS_VISOR% -DIGNITE_PROG_NAME="%PROG_NAME%" ^
+-DIGNITE_DEPLOYMENT_MODE_OVERRIDE=ISOLATED %QUIET% %JVM_XOPTS% -cp "%CP%" ^
+ org.gridgain.visor.commands.VisorConsole
+
+:error_finish
+
+if not "%NO_PAUSE%" == "1" pause
+
+goto :eof

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/ignitevisorcmd.sh
----------------------------------------------------------------------
diff --git a/bin/ignitevisorcmd.sh b/bin/ignitevisorcmd.sh
new file mode 100644
index 0000000..319d282
--- /dev/null
+++ b/bin/ignitevisorcmd.sh
@@ -0,0 +1,124 @@
+#!/bin/bash
+#  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.
+
+#
+# Import common functions.
+#
+if [ "${IGNITE_HOME}" = "" ];
+    then IGNITE_HOME_TMP="$(dirname "$(cd "$(dirname "$0")"; "pwd")")";IGNITE_HOME_TMP="$(dirname "${IGNITE_HOME_TMP}")" # Will be removed in release.
+    else IGNITE_HOME_TMP=${IGNITE_HOME};
+fi
+
+#
+# Set SCRIPTS_HOME - base path to scripts.
+#
+SCRIPTS_HOME="${IGNITE_HOME_TMP}/bin"
+
+source "${SCRIPTS_HOME}"/include/functions.sh
+
+#
+# Discover path to Java executable and check it's version.
+#
+checkJava
+
+#
+# Discover IGNITE_HOME environment variable.
+#
+setGridGainHome
+
+#
+# Parse command line parameters.
+#
+. "${SCRIPTS_HOME}"/include/parseargs.sh
+
+#
+# Set IGNITE_LIBS.
+#
+. "${SCRIPTS_HOME}"/include/setenv.sh
+. "${SCRIPTS_HOME}"/include/target-classpath.sh # Will be removed in release.
+CP="${IGNITE_HOME}/bin/include/visor-common/*${SEP}${IGNITE_HOME}/bin/include/visorcmd/*${SEP}${IGNITE_LIBS}"
+
+#
+# JVM options. See http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp for more details.
+#
+# ADD YOUR/CHANGE ADDITIONAL OPTIONS HERE
+#
+JVM_OPTS="-Xms1g -Xmx1g -XX:MaxPermSize=128M -server ${JVM_OPTS}"
+
+# Mac OS specific support to display correct name in the dock.
+osname=`uname`
+
+if [ "${DOCK_OPTS}" == "" ]; then
+    DOCK_OPTS="-Xdock:name=Visor - GridGain Shell Console"
+fi
+
+#
+# Uncomment to set preference for IPv4 stack.
+#
+# JVM_OPTS="${JVM_OPTS} -Djava.net.preferIPv4Stack=true"
+
+#
+# Assertions are disabled by default since version 3.5.
+# If you want to enable them - set 'ENABLE_ASSERTIONS' flag to '1'.
+#
+ENABLE_ASSERTIONS="1"
+
+#
+# Set '-ea' options if assertions are enabled.
+#
+if [ "${ENABLE_ASSERTIONS}" = "1" ]; then
+    JVM_OPTS="${JVM_OPTS} -ea"
+fi
+
+#
+# Save terminal setting. Used to restore terminal on finish.
+#
+SAVED_STTY=`stty -g 2>/dev/null`
+
+#
+# Restores terminal.
+#
+function restoreSttySettings() {
+    stty ${SAVED_STTY}
+}
+
+#
+# Trap that restores terminal in case script execution is interrupted.
+#
+trap restoreSttySettings INT
+
+#
+# Start Visor console.
+#
+case $osname in
+    Darwin*)
+        "$JAVA" ${JVM_OPTS} ${QUIET} "${DOCK_OPTS}" \
+        -DIGNITE_UPDATE_NOTIFIER=false -DIGNITE_HOME="${IGNITE_HOME}" -DIGNITE_PROG_NAME="$0" \
+        -DIGNITE_DEPLOYMENT_MODE_OVERRIDE=ISOLATED ${JVM_XOPTS} -cp "${CP}" \
+        org.apache.ignite.visor.commands.VisorConsole
+    ;;
+    *)
+        "$JAVA" ${JVM_OPTS} ${QUIET} -DIGNITE_UPDATE_NOTIFIER=false \
+        -DIGNITE_HOME="${IGNITE_HOME}" -DIGNITE_PROG_NAME="$0" -DIGNITE_DEPLOYMENT_MODE_OVERRIDE=ISOLATED \
+        ${JVM_XOPTS} -cp "${CP}" \
+        org.apache.ignite.visor.commands.VisorConsole
+    ;;
+esac
+
+#
+# Restore terminal.
+#
+restoreSttySettings

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/setup-hadoop.bat
----------------------------------------------------------------------
diff --git a/bin/setup-hadoop.bat b/bin/setup-hadoop.bat
index fa3ba8e..45b3520 100644
--- a/bin/setup-hadoop.bat
+++ b/bin/setup-hadoop.bat
@@ -23,4 +23,4 @@ if "%OS%" == "Windows_NT" setlocal
 
 set MAIN_CLASS=org.gridgain.grid.hadoop.GridHadoopSetup
 
-call "%~dp0\ggstart.bat" %*
+call "%~dp0\ignite.bat" %*

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/bin/setup-hadoop.sh
----------------------------------------------------------------------
diff --git a/bin/setup-hadoop.sh b/bin/setup-hadoop.sh
index 342916f..f36e4fa 100755
--- a/bin/setup-hadoop.sh
+++ b/bin/setup-hadoop.sh
@@ -57,4 +57,4 @@ export MAIN_CLASS=org.gridgain.grid.hadoop.GridHadoopSetup
 #
 # Start utility.
 #
-. "${SCRIPTS_HOME}/ggstart.sh" $@
+. "${SCRIPTS_HOME}/ignite.sh" $@

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/config/hadoop/default-config.xml
----------------------------------------------------------------------
diff --git a/config/hadoop/default-config.xml b/config/hadoop/default-config.xml
index 03b45fa..1b27ee0 100644
--- a/config/hadoop/default-config.xml
+++ b/config/hadoop/default-config.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} path-to-this-file/default-config.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} path-to-this-file/default-config.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("path-to-this-file/default-config.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/config/router/default-router.xml
----------------------------------------------------------------------
diff --git a/config/router/default-router.xml b/config/router/default-router.xml
index 6a8f831..e40a31f 100644
--- a/config/router/default-router.xml
+++ b/config/router/default-router.xml
@@ -21,7 +21,7 @@
     Default rest router configuration.
 
     This file is automatically scanned by
-    $IGNITE_HOME/bin/ggrouter.sh and $IGNITE_HOME/bin/ggrouter.bat
+    $IGNITE_HOME/bin/igniterouter.sh and $IGNITE_HOME/bin/igniterouter.bat
     for org.gridgain.client.router.GridTcpRestRouterConfiguration  bean definition.
     First found is used to start router instance.
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/docs/hadoop_readme.md
----------------------------------------------------------------------
diff --git a/docs/hadoop_readme.md b/docs/hadoop_readme.md
index 1fda55d..22d52a0 100644
--- a/docs/hadoop_readme.md
+++ b/docs/hadoop_readme.md
@@ -40,7 +40,7 @@ Installation requirements:
 After setup script successfully completed, you can execute the Ignite startup script.
 The following command will startup Ignite node with default configuration using multicast node discovery.
 
-    bin/ggstart.{sh|bat}
+    bin/ignite.{sh|bat}
 
 If Ignite was installed successfully, the output from above commands should produce no exceptions or errors.
 Note that you may see some other warnings during startup, but this is OK as they are meant to inform that certain
@@ -53,7 +53,7 @@ Here is an example of log printout when 2 nodes join topology:
 
 You can also start Ignite Management Console, called Visor, and observe started nodes. To startup Visor, you should execute the following script:
 
-    /bin/ggvisorcmd.{sh|bat} 
+    /bin/ignitevisorcmd.{sh|bat}
 
 ## 3. Configuration
 
@@ -112,6 +112,6 @@ Ignite comes with CLI (command) based DevOps Managements Console, called Visor,
 
 To start Visor in console mode you should execute the following command:
 
-    `bin/ggvisorcmd.sh`
+    `bin/ignitevisorcmd.sh`
 
 On Windows, run the same commands with `.bat` extension.
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/docs/ignite_readme.md
----------------------------------------------------------------------
diff --git a/docs/ignite_readme.md b/docs/ignite_readme.md
index 297b8b3..a238109 100644
--- a/docs/ignite_readme.md
+++ b/docs/ignite_readme.md
@@ -37,11 +37,11 @@ To verify Ignite installation, you can execute the Ignite startup script.
 
 The following command will startup Ignite with default configuration using Multicast node discovery.
 
-    bin/ggstart.{sh|bat}
+    bin/ignite.{sh|bat}
 
 The following command will startup Ignite with example configuration.
 
-    bin/ggstart.{sh|bat} examples/config/example-compute.xml
+    bin/ignite.{sh|bat} examples/config/example-compute.xml
 
 If Ignite was installed successfully, the output from above commands should produce no exceptions or errors.
 Note that you may see some warnings during startup, but this is OK as they are meant to inform that certain functionality is turned on or off by default.
@@ -53,7 +53,7 @@ Here is an example of log printout when 2 nodes join topology:
 
 You can also start Ignite Management Console, called Visor, and observe started nodes. To startup Visor, you should execute the following script:
 
-    /bin/ggvisorcmd.{sh|bat} 
+    /bin/ignitevisorcmd.{sh|bat}
 
 ### 2.2 Running Ignite Examples
 
@@ -78,18 +78,18 @@ You can use maven to add Ignite artifacts to your project. Ignite has one main a
 
 
 ## 4. Starting Ignite Nodes
-Ignite nodes can be started by executing `bin/ggstart.{sh|bat}` script and passing a relative path to Ignite configuration file. If no file is passed, then grid nodes are started with default configuration using Multicast discovery protocol.
+Ignite nodes can be started by executing `bin/ignite.{sh|bat}` script and passing a relative path to Ignite configuration file. If no file is passed, then grid nodes are started with default configuration using Multicast discovery protocol.
 
 Here is an example of how to start Ignite node with non-default configuration:
 
-    `bin/ggstart.sh examples/config/example-cache.xml`
+    `bin/ignite.sh examples/config/example-cache.xml`
 
 ## 5. Management & Monitoring with Visor
 Ignite comes with CLI (command) based DevOps Managements Console, called Visor, delivering advance set of management and monitoring capabilities. 
 
 To start Visor in console mode you should execute the following command:
 
-    `bin/ggvisorcmd.sh`
+    `bin/ignitevisorcmd.sh`
 
 On Windows, run the same commands with `.bat` extension.
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/config/example-cache.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-cache.xml b/examples/config/example-cache.xml
index 682a8a3..9ec2ef2 100644
--- a/examples/config/example-cache.xml
+++ b/examples/config/example-cache.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-cache.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-cache.xml
 
     When starting GridGain from Java IDE, pass path to this file to GridGain:
     GridGain.start("examples/config/example-cache.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/config/example-streamer.xml
----------------------------------------------------------------------
diff --git a/examples/config/example-streamer.xml b/examples/config/example-streamer.xml
index 6674b24..c13b90d 100644
--- a/examples/config/example-streamer.xml
+++ b/examples/config/example-streamer.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid with streamers.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/example-streamer.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/example-streamer.xml
     When starting nodes this way JAR file containing the examples code
     should be placed to {IGNITE_HOME}/libs folder. You can build
     gridgain-examples.jar by running "mvn package" in {IGNITE_HOME}/examples folder.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/config/filesystem/example-ggfs.xml
----------------------------------------------------------------------
diff --git a/examples/config/filesystem/example-ggfs.xml b/examples/config/filesystem/example-ggfs.xml
index 08ac4cd..fb64227 100644
--- a/examples/config/filesystem/example-ggfs.xml
+++ b/examples/config/filesystem/example-ggfs.xml
@@ -21,7 +21,7 @@
     GridGain Spring configuration file to startup grid cache.
 
     When starting a standalone GridGain node, you need to execute the following command:
-    {IGNITE_HOME}/bin/ggstart.{bat|sh} examples/config/filesystem/example-ggfs.xml
+    {IGNITE_HOME}/bin/ignite.{bat|sh} examples/config/filesystem/example-ggfs.xml
 
     When starting GridGain from Java IDE, pass path to this file into GridGain:
     GridGain.start("examples/config/filesystem/example-ggfs.xml");

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/rest/http-rest-example.php
----------------------------------------------------------------------
diff --git a/examples/rest/http-rest-example.php b/examples/rest/http-rest-example.php
index 9c02a16..26bb394 100644
--- a/examples/rest/http-rest-example.php
+++ b/examples/rest/http-rest-example.php
@@ -22,7 +22,7 @@
  * To execute this script simply start up an instance of GridGain with cache enabled.
  * You can use any cache configuration from examples/config folder as follows:
  * ----
- * ${IGNITE_HOME}/bin/ggstart.sh examples/config/example-cache.xml
+ * ${IGNITE_HOME}/bin/ignite.sh examples/config/example-cache.xml
  * ----
  *
  * Make sure you have correctly specified $CACHE_NAME script global variable

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/rest/memcache-rest-example.php
----------------------------------------------------------------------
diff --git a/examples/rest/memcache-rest-example.php b/examples/rest/memcache-rest-example.php
index 9507e19..b8509cf 100644
--- a/examples/rest/memcache-rest-example.php
+++ b/examples/rest/memcache-rest-example.php
@@ -27,7 +27,7 @@
  * You can use default cache configuration from examples/config folder to
  * start up an instance of GridGain with cache enabled as follows:
  * ----
- * ${IGNITE_HOME}/bin/ggstart.sh examples/config/example-cache-default.xml
+ * ${IGNITE_HOME}/bin/ignite.sh examples/config/example-cache-default.xml
  * ----
  */
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeBroadcastExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeBroadcastExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeBroadcastExample.java
index cf8e487..a12b6ac 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeBroadcastExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeBroadcastExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates broadcasting computations within grid projection.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeCallableExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeCallableExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeCallableExample.java
index 6c70c70..880ed10 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeCallableExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeCallableExample.java
@@ -31,7 +31,7 @@ import java.util.*;
  * word.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeClosureExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeClosureExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeClosureExample.java
index 0365fb5..d0b2538 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeClosureExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeClosureExample.java
@@ -30,7 +30,7 @@ import java.util.*;
  * nodes and then computes total amount of non-whitespaces characters in the phrase.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeContinuousMapperExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeContinuousMapperExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeContinuousMapperExample.java
index cea5ee0..cfbbc94 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeContinuousMapperExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeContinuousMapperExample.java
@@ -40,7 +40,7 @@ import java.util.concurrent.atomic.*;
  * previous word has been received.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeExecutorServiceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeExecutorServiceExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeExecutorServiceExample.java
index 46f6bfa..38f277f 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeExecutorServiceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeExecutorServiceExample.java
@@ -27,7 +27,7 @@ import java.util.concurrent.*;
  * Simple example to demonstrate usage of grid-enabled executor service provided by GridGain.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeFibonacciContinuationExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeFibonacciContinuationExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeFibonacciContinuationExample.java
index 9301686..6f2ced7 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeFibonacciContinuationExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeFibonacciContinuationExample.java
@@ -37,7 +37,7 @@ import java.util.*;
  * {@link org.apache.ignite.compute.ComputeJobContext#callcc()} method calls in {@link FibonacciClosure} class.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeProjectionExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeProjectionExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeProjectionExample.java
index 258b5cd..0131003 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeProjectionExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeProjectionExample.java
@@ -26,7 +26,7 @@ import org.apache.ignite.lang.*;
  * Demonstrates new functional APIs.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeReducerExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeReducerExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeReducerExample.java
index 779add0..4942875 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeReducerExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeReducerExample.java
@@ -31,7 +31,7 @@ import java.util.concurrent.atomic.*;
  * calculated. Then total phrase length is calculated using reducer.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeRunnableExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeRunnableExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeRunnableExample.java
index a7dfad0..e062335 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeRunnableExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeRunnableExample.java
@@ -28,7 +28,7 @@ import java.util.*;
  * Demonstrates a simple use of {@link org.apache.ignite.lang.IgniteRunnable}.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeScheduleExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeScheduleExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeScheduleExample.java
index 07f2fa6..7802f75 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeScheduleExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeScheduleExample.java
@@ -30,7 +30,7 @@ import java.util.concurrent.*;
  * three times with initial scheduling delay equal to five seconds.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskMapExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskMapExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskMapExample.java
index eece6f2..bd3fc67 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskMapExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskMapExample.java
@@ -34,7 +34,7 @@ import java.util.*;
  * calculated on reduce stage.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/7e8ea4f1/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskSplitExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskSplitExample.java b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskSplitExample.java
index 8bb9191..d6c7d4c 100644
--- a/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskSplitExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/compute/ComputeTaskSplitExample.java
@@ -32,7 +32,7 @@ import java.util.*;
  * is calculated on reduce stage.
  * <p>
  * Remote nodes should always be started with special configuration file which
- * enables P2P class loading: {@code 'ggstart.{sh|bat} examples/config/example-compute.xml'}.
+ * enables P2P class loading: {@code 'ignite.{sh|bat} examples/config/example-compute.xml'}.
  * <p>
  * Alternatively you can run {@link ComputeNodeStartup} in another JVM which will start GridGain node
  * with {@code examples/config/example-compute.xml} configuration.


[43/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/sherlock-holmes.txt
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/sherlock-holmes.txt b/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/sherlock-holmes.txt
deleted file mode 100644
index af52c04..0000000
--- a/modules/hadoop/src/test/java/org/apache/ignite/hadoop/books/sherlock-holmes.txt
+++ /dev/null
@@ -1,13052 +0,0 @@
-Project Gutenberg's The Adventures of Sherlock Holmes, by Arthur Conan Doyle
-
-This eBook is for the use of anyone anywhere at no cost and with
-almost no restrictions whatsoever.  You may copy it, give it away or
-re-use it under the terms of the Project Gutenberg License included
-with this eBook or online at www.gutenberg.net
-
-
-Title: The Adventures of Sherlock Holmes
-
-Author: Arthur Conan Doyle
-
-Posting Date: April 18, 2011 [EBook #1661]
-First Posted: November 29, 2002
-
-Language: English
-
-
-*** START OF THIS PROJECT GUTENBERG EBOOK THE ADVENTURES OF SHERLOCK HOLMES ***
-
-
-
-
-Produced by an anonymous Project Gutenberg volunteer and Jose Menendez
-
-
-
-
-
-
-
-
-
-THE ADVENTURES OF SHERLOCK HOLMES
-
-by
-
-SIR ARTHUR CONAN DOYLE
-
-
-
-   I. A Scandal in Bohemia
-  II. The Red-headed League
- III. A Case of Identity
-  IV. The Boscombe Valley Mystery
-   V. The Five Orange Pips
-  VI. The Man with the Twisted Lip
- VII. The Adventure of the Blue Carbuncle
-VIII. The Adventure of the Speckled Band
-  IX. The Adventure of the Engineer's Thumb
-   X. The Adventure of the Noble Bachelor
-  XI. The Adventure of the Beryl Coronet
- XII. The Adventure of the Copper Beeches
-
-
-
-
-ADVENTURE I. A SCANDAL IN BOHEMIA
-
-I.
-
-To Sherlock Holmes she is always THE woman. I have seldom heard
-him mention her under any other name. In his eyes she eclipses
-and predominates the whole of her sex. It was not that he felt
-any emotion akin to love for Irene Adler. All emotions, and that
-one particularly, were abhorrent to his cold, precise but
-admirably balanced mind. He was, I take it, the most perfect
-reasoning and observing machine that the world has seen, but as a
-lover he would have placed himself in a false position. He never
-spoke of the softer passions, save with a gibe and a sneer. They
-were admirable things for the observer--excellent for drawing the
-veil from men's motives and actions. But for the trained reasoner
-to admit such intrusions into his own delicate and finely
-adjusted temperament was to introduce a distracting factor which
-might throw a doubt upon all his mental results. Grit in a
-sensitive instrument, or a crack in one of his own high-power
-lenses, would not be more disturbing than a strong emotion in a
-nature such as his. And yet there was but one woman to him, and
-that woman was the late Irene Adler, of dubious and questionable
-memory.
-
-I had seen little of Holmes lately. My marriage had drifted us
-away from each other. My own complete happiness, and the
-home-centred interests which rise up around the man who first
-finds himself master of his own establishment, were sufficient to
-absorb all my attention, while Holmes, who loathed every form of
-society with his whole Bohemian soul, remained in our lodgings in
-Baker Street, buried among his old books, and alternating from
-week to week between cocaine and ambition, the drowsiness of the
-drug, and the fierce energy of his own keen nature. He was still,
-as ever, deeply attracted by the study of crime, and occupied his
-immense faculties and extraordinary powers of observation in
-following out those clues, and clearing up those mysteries which
-had been abandoned as hopeless by the official police. From time
-to time I heard some vague account of his doings: of his summons
-to Odessa in the case of the Trepoff murder, of his clearing up
-of the singular tragedy of the Atkinson brothers at Trincomalee,
-and finally of the mission which he had accomplished so
-delicately and successfully for the reigning family of Holland.
-Beyond these signs of his activity, however, which I merely
-shared with all the readers of the daily press, I knew little of
-my former friend and companion.
-
-One night--it was on the twentieth of March, 1888--I was
-returning from a journey to a patient (for I had now returned to
-civil practice), when my way led me through Baker Street. As I
-passed the well-remembered door, which must always be associated
-in my mind with my wooing, and with the dark incidents of the
-Study in Scarlet, I was seized with a keen desire to see Holmes
-again, and to know how he was employing his extraordinary powers.
-His rooms were brilliantly lit, and, even as I looked up, I saw
-his tall, spare figure pass twice in a dark silhouette against
-the blind. He was pacing the room swiftly, eagerly, with his head
-sunk upon his chest and his hands clasped behind him. To me, who
-knew his every mood and habit, his attitude and manner told their
-own story. He was at work again. He had risen out of his
-drug-created dreams and was hot upon the scent of some new
-problem. I rang the bell and was shown up to the chamber which
-had formerly been in part my own.
-
-His manner was not effusive. It seldom was; but he was glad, I
-think, to see me. With hardly a word spoken, but with a kindly
-eye, he waved me to an armchair, threw across his case of cigars,
-and indicated a spirit case and a gasogene in the corner. Then he
-stood before the fire and looked me over in his singular
-introspective fashion.
-
-"Wedlock suits you," he remarked. "I think, Watson, that you have
-put on seven and a half pounds since I saw you."
-
-"Seven!" I answered.
-
-"Indeed, I should have thought a little more. Just a trifle more,
-I fancy, Watson. And in practice again, I observe. You did not
-tell me that you intended to go into harness."
-
-"Then, how do you know?"
-
-"I see it, I deduce it. How do I know that you have been getting
-yourself very wet lately, and that you have a most clumsy and
-careless servant girl?"
-
-"My dear Holmes," said I, "this is too much. You would certainly
-have been burned, had you lived a few centuries ago. It is true
-that I had a country walk on Thursday and came home in a dreadful
-mess, but as I have changed my clothes I can't imagine how you
-deduce it. As to Mary Jane, she is incorrigible, and my wife has
-given her notice, but there, again, I fail to see how you work it
-out."
-
-He chuckled to himself and rubbed his long, nervous hands
-together.
-
-"It is simplicity itself," said he; "my eyes tell me that on the
-inside of your left shoe, just where the firelight strikes it,
-the leather is scored by six almost parallel cuts. Obviously they
-have been caused by someone who has very carelessly scraped round
-the edges of the sole in order to remove crusted mud from it.
-Hence, you see, my double deduction that you had been out in vile
-weather, and that you had a particularly malignant boot-slitting
-specimen of the London slavey. As to your practice, if a
-gentleman walks into my rooms smelling of iodoform, with a black
-mark of nitrate of silver upon his right forefinger, and a bulge
-on the right side of his top-hat to show where he has secreted
-his stethoscope, I must be dull, indeed, if I do not pronounce
-him to be an active member of the medical profession."
-
-I could not help laughing at the ease with which he explained his
-process of deduction. "When I hear you give your reasons," I
-remarked, "the thing always appears to me to be so ridiculously
-simple that I could easily do it myself, though at each
-successive instance of your reasoning I am baffled until you
-explain your process. And yet I believe that my eyes are as good
-as yours."
-
-"Quite so," he answered, lighting a cigarette, and throwing
-himself down into an armchair. "You see, but you do not observe.
-The distinction is clear. For example, you have frequently seen
-the steps which lead up from the hall to this room."
-
-"Frequently."
-
-"How often?"
-
-"Well, some hundreds of times."
-
-"Then how many are there?"
-
-"How many? I don't know."
-
-"Quite so! You have not observed. And yet you have seen. That is
-just my point. Now, I know that there are seventeen steps,
-because I have both seen and observed. By-the-way, since you are
-interested in these little problems, and since you are good
-enough to chronicle one or two of my trifling experiences, you
-may be interested in this." He threw over a sheet of thick,
-pink-tinted note-paper which had been lying open upon the table.
-"It came by the last post," said he. "Read it aloud."
-
-The note was undated, and without either signature or address.
-
-"There will call upon you to-night, at a quarter to eight
-o'clock," it said, "a gentleman who desires to consult you upon a
-matter of the very deepest moment. Your recent services to one of
-the royal houses of Europe have shown that you are one who may
-safely be trusted with matters which are of an importance which
-can hardly be exaggerated. This account of you we have from all
-quarters received. Be in your chamber then at that hour, and do
-not take it amiss if your visitor wear a mask."
-
-"This is indeed a mystery," I remarked. "What do you imagine that
-it means?"
-
-"I have no data yet. It is a capital mistake to theorize before
-one has data. Insensibly one begins to twist facts to suit
-theories, instead of theories to suit facts. But the note itself.
-What do you deduce from it?"
-
-I carefully examined the writing, and the paper upon which it was
-written.
-
-"The man who wrote it was presumably well to do," I remarked,
-endeavouring to imitate my companion's processes. "Such paper
-could not be bought under half a crown a packet. It is peculiarly
-strong and stiff."
-
-"Peculiar--that is the very word," said Holmes. "It is not an
-English paper at all. Hold it up to the light."
-
-I did so, and saw a large "E" with a small "g," a "P," and a
-large "G" with a small "t" woven into the texture of the paper.
-
-"What do you make of that?" asked Holmes.
-
-"The name of the maker, no doubt; or his monogram, rather."
-
-"Not at all. The 'G' with the small 't' stands for
-'Gesellschaft,' which is the German for 'Company.' It is a
-customary contraction like our 'Co.' 'P,' of course, stands for
-'Papier.' Now for the 'Eg.' Let us glance at our Continental
-Gazetteer." He took down a heavy brown volume from his shelves.
-"Eglow, Eglonitz--here we are, Egria. It is in a German-speaking
-country--in Bohemia, not far from Carlsbad. 'Remarkable as being
-the scene of the death of Wallenstein, and for its numerous
-glass-factories and paper-mills.' Ha, ha, my boy, what do you
-make of that?" His eyes sparkled, and he sent up a great blue
-triumphant cloud from his cigarette.
-
-"The paper was made in Bohemia," I said.
-
-"Precisely. And the man who wrote the note is a German. Do you
-note the peculiar construction of the sentence--'This account of
-you we have from all quarters received.' A Frenchman or Russian
-could not have written that. It is the German who is so
-uncourteous to his verbs. It only remains, therefore, to discover
-what is wanted by this German who writes upon Bohemian paper and
-prefers wearing a mask to showing his face. And here he comes, if
-I am not mistaken, to resolve all our doubts."
-
-As he spoke there was the sharp sound of horses' hoofs and
-grating wheels against the curb, followed by a sharp pull at the
-bell. Holmes whistled.
-
-"A pair, by the sound," said he. "Yes," he continued, glancing
-out of the window. "A nice little brougham and a pair of
-beauties. A hundred and fifty guineas apiece. There's money in
-this case, Watson, if there is nothing else."
-
-"I think that I had better go, Holmes."
-
-"Not a bit, Doctor. Stay where you are. I am lost without my
-Boswell. And this promises to be interesting. It would be a pity
-to miss it."
-
-"But your client--"
-
-"Never mind him. I may want your help, and so may he. Here he
-comes. Sit down in that armchair, Doctor, and give us your best
-attention."
-
-A slow and heavy step, which had been heard upon the stairs and
-in the passage, paused immediately outside the door. Then there
-was a loud and authoritative tap.
-
-"Come in!" said Holmes.
-
-A man entered who could hardly have been less than six feet six
-inches in height, with the chest and limbs of a Hercules. His
-dress was rich with a richness which would, in England, be looked
-upon as akin to bad taste. Heavy bands of astrakhan were slashed
-across the sleeves and fronts of his double-breasted coat, while
-the deep blue cloak which was thrown over his shoulders was lined
-with flame-coloured silk and secured at the neck with a brooch
-which consisted of a single flaming beryl. Boots which extended
-halfway up his calves, and which were trimmed at the tops with
-rich brown fur, completed the impression of barbaric opulence
-which was suggested by his whole appearance. He carried a
-broad-brimmed hat in his hand, while he wore across the upper
-part of his face, extending down past the cheekbones, a black
-vizard mask, which he had apparently adjusted that very moment,
-for his hand was still raised to it as he entered. From the lower
-part of the face he appeared to be a man of strong character,
-with a thick, hanging lip, and a long, straight chin suggestive
-of resolution pushed to the length of obstinacy.
-
-"You had my note?" he asked with a deep harsh voice and a
-strongly marked German accent. "I told you that I would call." He
-looked from one to the other of us, as if uncertain which to
-address.
-
-"Pray take a seat," said Holmes. "This is my friend and
-colleague, Dr. Watson, who is occasionally good enough to help me
-in my cases. Whom have I the honour to address?"
-
-"You may address me as the Count Von Kramm, a Bohemian nobleman.
-I understand that this gentleman, your friend, is a man of honour
-and discretion, whom I may trust with a matter of the most
-extreme importance. If not, I should much prefer to communicate
-with you alone."
-
-I rose to go, but Holmes caught me by the wrist and pushed me
-back into my chair. "It is both, or none," said he. "You may say
-before this gentleman anything which you may say to me."
-
-The Count shrugged his broad shoulders. "Then I must begin," said
-he, "by binding you both to absolute secrecy for two years; at
-the end of that time the matter will be of no importance. At
-present it is not too much to say that it is of such weight it
-may have an influence upon European history."
-
-"I promise," said Holmes.
-
-"And I."
-
-"You will excuse this mask," continued our strange visitor. "The
-august person who employs me wishes his agent to be unknown to
-you, and I may confess at once that the title by which I have
-just called myself is not exactly my own."
-
-"I was aware of it," said Holmes dryly.
-
-"The circumstances are of great delicacy, and every precaution
-has to be taken to quench what might grow to be an immense
-scandal and seriously compromise one of the reigning families of
-Europe. To speak plainly, the matter implicates the great House
-of Ormstein, hereditary kings of Bohemia."
-
-"I was also aware of that," murmured Holmes, settling himself
-down in his armchair and closing his eyes.
-
-Our visitor glanced with some apparent surprise at the languid,
-lounging figure of the man who had been no doubt depicted to him
-as the most incisive reasoner and most energetic agent in Europe.
-Holmes slowly reopened his eyes and looked impatiently at his
-gigantic client.
-
-"If your Majesty would condescend to state your case," he
-remarked, "I should be better able to advise you."
-
-The man sprang from his chair and paced up and down the room in
-uncontrollable agitation. Then, with a gesture of desperation, he
-tore the mask from his face and hurled it upon the ground. "You
-are right," he cried; "I am the King. Why should I attempt to
-conceal it?"
-
-"Why, indeed?" murmured Holmes. "Your Majesty had not spoken
-before I was aware that I was addressing Wilhelm Gottsreich
-Sigismond von Ormstein, Grand Duke of Cassel-Felstein, and
-hereditary King of Bohemia."
-
-"But you can understand," said our strange visitor, sitting down
-once more and passing his hand over his high white forehead, "you
-can understand that I am not accustomed to doing such business in
-my own person. Yet the matter was so delicate that I could not
-confide it to an agent without putting myself in his power. I
-have come incognito from Prague for the purpose of consulting
-you."
-
-"Then, pray consult," said Holmes, shutting his eyes once more.
-
-"The facts are briefly these: Some five years ago, during a
-lengthy visit to Warsaw, I made the acquaintance of the well-known
-adventuress, Irene Adler. The name is no doubt familiar to you."
-
-"Kindly look her up in my index, Doctor," murmured Holmes without
-opening his eyes. For many years he had adopted a system of
-docketing all paragraphs concerning men and things, so that it
-was difficult to name a subject or a person on which he could not
-at once furnish information. In this case I found her biography
-sandwiched in between that of a Hebrew rabbi and that of a
-staff-commander who had written a monograph upon the deep-sea
-fishes.
-
-"Let me see!" said Holmes. "Hum! Born in New Jersey in the year
-1858. Contralto--hum! La Scala, hum! Prima donna Imperial Opera
-of Warsaw--yes! Retired from operatic stage--ha! Living in
-London--quite so! Your Majesty, as I understand, became entangled
-with this young person, wrote her some compromising letters, and
-is now desirous of getting those letters back."
-
-"Precisely so. But how--"
-
-"Was there a secret marriage?"
-
-"None."
-
-"No legal papers or certificates?"
-
-"None."
-
-"Then I fail to follow your Majesty. If this young person should
-produce her letters for blackmailing or other purposes, how is
-she to prove their authenticity?"
-
-"There is the writing."
-
-"Pooh, pooh! Forgery."
-
-"My private note-paper."
-
-"Stolen."
-
-"My own seal."
-
-"Imitated."
-
-"My photograph."
-
-"Bought."
-
-"We were both in the photograph."
-
-"Oh, dear! That is very bad! Your Majesty has indeed committed an
-indiscretion."
-
-"I was mad--insane."
-
-"You have compromised yourself seriously."
-
-"I was only Crown Prince then. I was young. I am but thirty now."
-
-"It must be recovered."
-
-"We have tried and failed."
-
-"Your Majesty must pay. It must be bought."
-
-"She will not sell."
-
-"Stolen, then."
-
-"Five attempts have been made. Twice burglars in my pay ransacked
-her house. Once we diverted her luggage when she travelled. Twice
-she has been waylaid. There has been no result."
-
-"No sign of it?"
-
-"Absolutely none."
-
-Holmes laughed. "It is quite a pretty little problem," said he.
-
-"But a very serious one to me," returned the King reproachfully.
-
-"Very, indeed. And what does she propose to do with the
-photograph?"
-
-"To ruin me."
-
-"But how?"
-
-"I am about to be married."
-
-"So I have heard."
-
-"To Clotilde Lothman von Saxe-Meningen, second daughter of the
-King of Scandinavia. You may know the strict principles of her
-family. She is herself the very soul of delicacy. A shadow of a
-doubt as to my conduct would bring the matter to an end."
-
-"And Irene Adler?"
-
-"Threatens to send them the photograph. And she will do it. I
-know that she will do it. You do not know her, but she has a soul
-of steel. She has the face of the most beautiful of women, and
-the mind of the most resolute of men. Rather than I should marry
-another woman, there are no lengths to which she would not
-go--none."
-
-"You are sure that she has not sent it yet?"
-
-"I am sure."
-
-"And why?"
-
-"Because she has said that she would send it on the day when the
-betrothal was publicly proclaimed. That will be next Monday."
-
-"Oh, then we have three days yet," said Holmes with a yawn. "That
-is very fortunate, as I have one or two matters of importance to
-look into just at present. Your Majesty will, of course, stay in
-London for the present?"
-
-"Certainly. You will find me at the Langham under the name of the
-Count Von Kramm."
-
-"Then I shall drop you a line to let you know how we progress."
-
-"Pray do so. I shall be all anxiety."
-
-"Then, as to money?"
-
-"You have carte blanche."
-
-"Absolutely?"
-
-"I tell you that I would give one of the provinces of my kingdom
-to have that photograph."
-
-"And for present expenses?"
-
-The King took a heavy chamois leather bag from under his cloak
-and laid it on the table.
-
-"There are three hundred pounds in gold and seven hundred in
-notes," he said.
-
-Holmes scribbled a receipt upon a sheet of his note-book and
-handed it to him.
-
-"And Mademoiselle's address?" he asked.
-
-"Is Briony Lodge, Serpentine Avenue, St. John's Wood."
-
-Holmes took a note of it. "One other question," said he. "Was the
-photograph a cabinet?"
-
-"It was."
-
-"Then, good-night, your Majesty, and I trust that we shall soon
-have some good news for you. And good-night, Watson," he added,
-as the wheels of the royal brougham rolled down the street. "If
-you will be good enough to call to-morrow afternoon at three
-o'clock I should like to chat this little matter over with you."
-
-
-II.
-
-At three o'clock precisely I was at Baker Street, but Holmes had
-not yet returned. The landlady informed me that he had left the
-house shortly after eight o'clock in the morning. I sat down
-beside the fire, however, with the intention of awaiting him,
-however long he might be. I was already deeply interested in his
-inquiry, for, though it was surrounded by none of the grim and
-strange features which were associated with the two crimes which
-I have already recorded, still, the nature of the case and the
-exalted station of his client gave it a character of its own.
-Indeed, apart from the nature of the investigation which my
-friend had on hand, there was something in his masterly grasp of
-a situation, and his keen, incisive reasoning, which made it a
-pleasure to me to study his system of work, and to follow the
-quick, subtle methods by which he disentangled the most
-inextricable mysteries. So accustomed was I to his invariable
-success that the very possibility of his failing had ceased to
-enter into my head.
-
-It was close upon four before the door opened, and a
-drunken-looking groom, ill-kempt and side-whiskered, with an
-inflamed face and disreputable clothes, walked into the room.
-Accustomed as I was to my friend's amazing powers in the use of
-disguises, I had to look three times before I was certain that it
-was indeed he. With a nod he vanished into the bedroom, whence he
-emerged in five minutes tweed-suited and respectable, as of old.
-Putting his hands into his pockets, he stretched out his legs in
-front of the fire and laughed heartily for some minutes.
-
-"Well, really!" he cried, and then he choked and laughed again
-until he was obliged to lie back, limp and helpless, in the
-chair.
-
-"What is it?"
-
-"It's quite too funny. I am sure you could never guess how I
-employed my morning, or what I ended by doing."
-
-"I can't imagine. I suppose that you have been watching the
-habits, and perhaps the house, of Miss Irene Adler."
-
-"Quite so; but the sequel was rather unusual. I will tell you,
-however. I left the house a little after eight o'clock this
-morning in the character of a groom out of work. There is a
-wonderful sympathy and freemasonry among horsey men. Be one of
-them, and you will know all that there is to know. I soon found
-Briony Lodge. It is a bijou villa, with a garden at the back, but
-built out in front right up to the road, two stories. Chubb lock
-to the door. Large sitting-room on the right side, well
-furnished, with long windows almost to the floor, and those
-preposterous English window fasteners which a child could open.
-Behind there was nothing remarkable, save that the passage window
-could be reached from the top of the coach-house. I walked round
-it and examined it closely from every point of view, but without
-noting anything else of interest.
-
-"I then lounged down the street and found, as I expected, that
-there was a mews in a lane which runs down by one wall of the
-garden. I lent the ostlers a hand in rubbing down their horses,
-and received in exchange twopence, a glass of half and half, two
-fills of shag tobacco, and as much information as I could desire
-about Miss Adler, to say nothing of half a dozen other people in
-the neighbourhood in whom I was not in the least interested, but
-whose biographies I was compelled to listen to."
-
-"And what of Irene Adler?" I asked.
-
-"Oh, she has turned all the men's heads down in that part. She is
-the daintiest thing under a bonnet on this planet. So say the
-Serpentine-mews, to a man. She lives quietly, sings at concerts,
-drives out at five every day, and returns at seven sharp for
-dinner. Seldom goes out at other times, except when she sings.
-Has only one male visitor, but a good deal of him. He is dark,
-handsome, and dashing, never calls less than once a day, and
-often twice. He is a Mr. Godfrey Norton, of the Inner Temple. See
-the advantages of a cabman as a confidant. They had driven him
-home a dozen times from Serpentine-mews, and knew all about him.
-When I had listened to all they had to tell, I began to walk up
-and down near Briony Lodge once more, and to think over my plan
-of campaign.
-
-"This Godfrey Norton was evidently an important factor in the
-matter. He was a lawyer. That sounded ominous. What was the
-relation between them, and what the object of his repeated
-visits? Was she his client, his friend, or his mistress? If the
-former, she had probably transferred the photograph to his
-keeping. If the latter, it was less likely. On the issue of this
-question depended whether I should continue my work at Briony
-Lodge, or turn my attention to the gentleman's chambers in the
-Temple. It was a delicate point, and it widened the field of my
-inquiry. I fear that I bore you with these details, but I have to
-let you see my little difficulties, if you are to understand the
-situation."
-
-"I am following you closely," I answered.
-
-"I was still balancing the matter in my mind when a hansom cab
-drove up to Briony Lodge, and a gentleman sprang out. He was a
-remarkably handsome man, dark, aquiline, and moustached--evidently
-the man of whom I had heard. He appeared to be in a
-great hurry, shouted to the cabman to wait, and brushed past the
-maid who opened the door with the air of a man who was thoroughly
-at home.
-
-"He was in the house about half an hour, and I could catch
-glimpses of him in the windows of the sitting-room, pacing up and
-down, talking excitedly, and waving his arms. Of her I could see
-nothing. Presently he emerged, looking even more flurried than
-before. As he stepped up to the cab, he pulled a gold watch from
-his pocket and looked at it earnestly, 'Drive like the devil,' he
-shouted, 'first to Gross & Hankey's in Regent Street, and then to
-the Church of St. Monica in the Edgeware Road. Half a guinea if
-you do it in twenty minutes!'
-
-"Away they went, and I was just wondering whether I should not do
-well to follow them when up the lane came a neat little landau,
-the coachman with his coat only half-buttoned, and his tie under
-his ear, while all the tags of his harness were sticking out of
-the buckles. It hadn't pulled up before she shot out of the hall
-door and into it. I only caught a glimpse of her at the moment,
-but she was a lovely woman, with a face that a man might die for.
-
-"'The Church of St. Monica, John,' she cried, 'and half a
-sovereign if you reach it in twenty minutes.'
-
-"This was quite too good to lose, Watson. I was just balancing
-whether I should run for it, or whether I should perch behind her
-landau when a cab came through the street. The driver looked
-twice at such a shabby fare, but I jumped in before he could
-object. 'The Church of St. Monica,' said I, 'and half a sovereign
-if you reach it in twenty minutes.' It was twenty-five minutes to
-twelve, and of course it was clear enough what was in the wind.
-
-"My cabby drove fast. I don't think I ever drove faster, but the
-others were there before us. The cab and the landau with their
-steaming horses were in front of the door when I arrived. I paid
-the man and hurried into the church. There was not a soul there
-save the two whom I had followed and a surpliced clergyman, who
-seemed to be expostulating with them. They were all three
-standing in a knot in front of the altar. I lounged up the side
-aisle like any other idler who has dropped into a church.
-Suddenly, to my surprise, the three at the altar faced round to
-me, and Godfrey Norton came running as hard as he could towards
-me.
-
-"'Thank God,' he cried. 'You'll do. Come! Come!'
-
-"'What then?' I asked.
-
-"'Come, man, come, only three minutes, or it won't be legal.'
-
-"I was half-dragged up to the altar, and before I knew where I was
-I found myself mumbling responses which were whispered in my ear,
-and vouching for things of which I knew nothing, and generally
-assisting in the secure tying up of Irene Adler, spinster, to
-Godfrey Norton, bachelor. It was all done in an instant, and
-there was the gentleman thanking me on the one side and the lady
-on the other, while the clergyman beamed on me in front. It was
-the most preposterous position in which I ever found myself in my
-life, and it was the thought of it that started me laughing just
-now. It seems that there had been some informality about their
-license, that the clergyman absolutely refused to marry them
-without a witness of some sort, and that my lucky appearance
-saved the bridegroom from having to sally out into the streets in
-search of a best man. The bride gave me a sovereign, and I mean
-to wear it on my watch-chain in memory of the occasion."
-
-"This is a very unexpected turn of affairs," said I; "and what
-then?"
-
-"Well, I found my plans very seriously menaced. It looked as if
-the pair might take an immediate departure, and so necessitate
-very prompt and energetic measures on my part. At the church
-door, however, they separated, he driving back to the Temple, and
-she to her own house. 'I shall drive out in the park at five as
-usual,' she said as she left him. I heard no more. They drove
-away in different directions, and I went off to make my own
-arrangements."
-
-"Which are?"
-
-"Some cold beef and a glass of beer," he answered, ringing the
-bell. "I have been too busy to think of food, and I am likely to
-be busier still this evening. By the way, Doctor, I shall want
-your co-operation."
-
-"I shall be delighted."
-
-"You don't mind breaking the law?"
-
-"Not in the least."
-
-"Nor running a chance of arrest?"
-
-"Not in a good cause."
-
-"Oh, the cause is excellent!"
-
-"Then I am your man."
-
-"I was sure that I might rely on you."
-
-"But what is it you wish?"
-
-"When Mrs. Turner has brought in the tray I will make it clear to
-you. Now," he said as he turned hungrily on the simple fare that
-our landlady had provided, "I must discuss it while I eat, for I
-have not much time. It is nearly five now. In two hours we must
-be on the scene of action. Miss Irene, or Madame, rather, returns
-from her drive at seven. We must be at Briony Lodge to meet her."
-
-"And what then?"
-
-"You must leave that to me. I have already arranged what is to
-occur. There is only one point on which I must insist. You must
-not interfere, come what may. You understand?"
-
-"I am to be neutral?"
-
-"To do nothing whatever. There will probably be some small
-unpleasantness. Do not join in it. It will end in my being
-conveyed into the house. Four or five minutes afterwards the
-sitting-room window will open. You are to station yourself close
-to that open window."
-
-"Yes."
-
-"You are to watch me, for I will be visible to you."
-
-"Yes."
-
-"And when I raise my hand--so--you will throw into the room what
-I give you to throw, and will, at the same time, raise the cry of
-fire. You quite follow me?"
-
-"Entirely."
-
-"It is nothing very formidable," he said, taking a long cigar-shaped
-roll from his pocket. "It is an ordinary plumber's smoke-rocket,
-fitted with a cap at either end to make it self-lighting.
-Your task is confined to that. When you raise your cry of fire,
-it will be taken up by quite a number of people. You may then
-walk to the end of the street, and I will rejoin you in ten
-minutes. I hope that I have made myself clear?"
-
-"I am to remain neutral, to get near the window, to watch you,
-and at the signal to throw in this object, then to raise the cry
-of fire, and to wait you at the corner of the street."
-
-"Precisely."
-
-"Then you may entirely rely on me."
-
-"That is excellent. I think, perhaps, it is almost time that I
-prepare for the new role I have to play."
-
-He disappeared into his bedroom and returned in a few minutes in
-the character of an amiable and simple-minded Nonconformist
-clergyman. His broad black hat, his baggy trousers, his white
-tie, his sympathetic smile, and general look of peering and
-benevolent curiosity were such as Mr. John Hare alone could have
-equalled. It was not merely that Holmes changed his costume. His
-expression, his manner, his very soul seemed to vary with every
-fresh part that he assumed. The stage lost a fine actor, even as
-science lost an acute reasoner, when he became a specialist in
-crime.
-
-It was a quarter past six when we left Baker Street, and it still
-wanted ten minutes to the hour when we found ourselves in
-Serpentine Avenue. It was already dusk, and the lamps were just
-being lighted as we paced up and down in front of Briony Lodge,
-waiting for the coming of its occupant. The house was just such
-as I had pictured it from Sherlock Holmes' succinct description,
-but the locality appeared to be less private than I expected. On
-the contrary, for a small street in a quiet neighbourhood, it was
-remarkably animated. There was a group of shabbily dressed men
-smoking and laughing in a corner, a scissors-grinder with his
-wheel, two guardsmen who were flirting with a nurse-girl, and
-several well-dressed young men who were lounging up and down with
-cigars in their mouths.
-
-"You see," remarked Holmes, as we paced to and fro in front of
-the house, "this marriage rather simplifies matters. The
-photograph becomes a double-edged weapon now. The chances are
-that she would be as averse to its being seen by Mr. Godfrey
-Norton, as our client is to its coming to the eyes of his
-princess. Now the question is, Where are we to find the
-photograph?"
-
-"Where, indeed?"
-
-"It is most unlikely that she carries it about with her. It is
-cabinet size. Too large for easy concealment about a woman's
-dress. She knows that the King is capable of having her waylaid
-and searched. Two attempts of the sort have already been made. We
-may take it, then, that she does not carry it about with her."
-
-"Where, then?"
-
-"Her banker or her lawyer. There is that double possibility. But
-I am inclined to think neither. Women are naturally secretive,
-and they like to do their own secreting. Why should she hand it
-over to anyone else? She could trust her own guardianship, but
-she could not tell what indirect or political influence might be
-brought to bear upon a business man. Besides, remember that she
-had resolved to use it within a few days. It must be where she
-can lay her hands upon it. It must be in her own house."
-
-"But it has twice been burgled."
-
-"Pshaw! They did not know how to look."
-
-"But how will you look?"
-
-"I will not look."
-
-"What then?"
-
-"I will get her to show me."
-
-"But she will refuse."
-
-"She will not be able to. But I hear the rumble of wheels. It is
-her carriage. Now carry out my orders to the letter."
-
-As he spoke the gleam of the side-lights of a carriage came round
-the curve of the avenue. It was a smart little landau which
-rattled up to the door of Briony Lodge. As it pulled up, one of
-the loafing men at the corner dashed forward to open the door in
-the hope of earning a copper, but was elbowed away by another
-loafer, who had rushed up with the same intention. A fierce
-quarrel broke out, which was increased by the two guardsmen, who
-took sides with one of the loungers, and by the scissors-grinder,
-who was equally hot upon the other side. A blow was struck, and
-in an instant the lady, who had stepped from her carriage, was
-the centre of a little knot of flushed and struggling men, who
-struck savagely at each other with their fists and sticks. Holmes
-dashed into the crowd to protect the lady; but just as he reached
-her he gave a cry and dropped to the ground, with the blood
-running freely down his face. At his fall the guardsmen took to
-their heels in one direction and the loungers in the other, while
-a number of better-dressed people, who had watched the scuffle
-without taking part in it, crowded in to help the lady and to
-attend to the injured man. Irene Adler, as I will still call her,
-had hurried up the steps; but she stood at the top with her
-superb figure outlined against the lights of the hall, looking
-back into the street.
-
-"Is the poor gentleman much hurt?" she asked.
-
-"He is dead," cried several voices.
-
-"No, no, there's life in him!" shouted another. "But he'll be
-gone before you can get him to hospital."
-
-"He's a brave fellow," said a woman. "They would have had the
-lady's purse and watch if it hadn't been for him. They were a
-gang, and a rough one, too. Ah, he's breathing now."
-
-"He can't lie in the street. May we bring him in, marm?"
-
-"Surely. Bring him into the sitting-room. There is a comfortable
-sofa. This way, please!"
-
-Slowly and solemnly he was borne into Briony Lodge and laid out
-in the principal room, while I still observed the proceedings
-from my post by the window. The lamps had been lit, but the
-blinds had not been drawn, so that I could see Holmes as he lay
-upon the couch. I do not know whether he was seized with
-compunction at that moment for the part he was playing, but I
-know that I never felt more heartily ashamed of myself in my life
-than when I saw the beautiful creature against whom I was
-conspiring, or the grace and kindliness with which she waited
-upon the injured man. And yet it would be the blackest treachery
-to Holmes to draw back now from the part which he had intrusted
-to me. I hardened my heart, and took the smoke-rocket from under
-my ulster. After all, I thought, we are not injuring her. We are
-but preventing her from injuring another.
-
-Holmes had sat up upon the couch, and I saw him motion like a man
-who is in need of air. A maid rushed across and threw open the
-window. At the same instant I saw him raise his hand and at the
-signal I tossed my rocket into the room with a cry of "Fire!" The
-word was no sooner out of my mouth than the whole crowd of
-spectators, well dressed and ill--gentlemen, ostlers, and
-servant-maids--joined in a general shriek of "Fire!" Thick clouds
-of smoke curled through the room and out at the open window. I
-caught a glimpse of rushing figures, and a moment later the voice
-of Holmes from within assuring them that it was a false alarm.
-Slipping through the shouting crowd I made my way to the corner
-of the street, and in ten minutes was rejoiced to find my
-friend's arm in mine, and to get away from the scene of uproar.
-He walked swiftly and in silence for some few minutes until we
-had turned down one of the quiet streets which lead towards the
-Edgeware Road.
-
-"You did it very nicely, Doctor," he remarked. "Nothing could
-have been better. It is all right."
-
-"You have the photograph?"
-
-"I know where it is."
-
-"And how did you find out?"
-
-"She showed me, as I told you she would."
-
-"I am still in the dark."
-
-"I do not wish to make a mystery," said he, laughing. "The matter
-was perfectly simple. You, of course, saw that everyone in the
-street was an accomplice. They were all engaged for the evening."
-
-"I guessed as much."
-
-"Then, when the row broke out, I had a little moist red paint in
-the palm of my hand. I rushed forward, fell down, clapped my hand
-to my face, and became a piteous spectacle. It is an old trick."
-
-"That also I could fathom."
-
-"Then they carried me in. She was bound to have me in. What else
-could she do? And into her sitting-room, which was the very room
-which I suspected. It lay between that and her bedroom, and I was
-determined to see which. They laid me on a couch, I motioned for
-air, they were compelled to open the window, and you had your
-chance."
-
-"How did that help you?"
-
-"It was all-important. When a woman thinks that her house is on
-fire, her instinct is at once to rush to the thing which she
-values most. It is a perfectly overpowering impulse, and I have
-more than once taken advantage of it. In the case of the
-Darlington substitution scandal it was of use to me, and also in
-the Arnsworth Castle business. A married woman grabs at her baby;
-an unmarried one reaches for her jewel-box. Now it was clear to
-me that our lady of to-day had nothing in the house more precious
-to her than what we are in quest of. She would rush to secure it.
-The alarm of fire was admirably done. The smoke and shouting were
-enough to shake nerves of steel. She responded beautifully. The
-photograph is in a recess behind a sliding panel just above the
-right bell-pull. She was there in an instant, and I caught a
-glimpse of it as she half-drew it out. When I cried out that it
-was a false alarm, she replaced it, glanced at the rocket, rushed
-from the room, and I have not seen her since. I rose, and, making
-my excuses, escaped from the house. I hesitated whether to
-attempt to secure the photograph at once; but the coachman had
-come in, and as he was watching me narrowly it seemed safer to
-wait. A little over-precipitance may ruin all."
-
-"And now?" I asked.
-
-"Our quest is practically finished. I shall call with the King
-to-morrow, and with you, if you care to come with us. We will be
-shown into the sitting-room to wait for the lady, but it is
-probable that when she comes she may find neither us nor the
-photograph. It might be a satisfaction to his Majesty to regain
-it with his own hands."
-
-"And when will you call?"
-
-"At eight in the morning. She will not be up, so that we shall
-have a clear field. Besides, we must be prompt, for this marriage
-may mean a complete change in her life and habits. I must wire to
-the King without delay."
-
-We had reached Baker Street and had stopped at the door. He was
-searching his pockets for the key when someone passing said:
-
-"Good-night, Mister Sherlock Holmes."
-
-There were several people on the pavement at the time, but the
-greeting appeared to come from a slim youth in an ulster who had
-hurried by.
-
-"I've heard that voice before," said Holmes, staring down the
-dimly lit street. "Now, I wonder who the deuce that could have
-been."
-
-
-III.
-
-I slept at Baker Street that night, and we were engaged upon our
-toast and coffee in the morning when the King of Bohemia rushed
-into the room.
-
-"You have really got it!" he cried, grasping Sherlock Holmes by
-either shoulder and looking eagerly into his face.
-
-"Not yet."
-
-"But you have hopes?"
-
-"I have hopes."
-
-"Then, come. I am all impatience to be gone."
-
-"We must have a cab."
-
-"No, my brougham is waiting."
-
-"Then that will simplify matters." We descended and started off
-once more for Briony Lodge.
-
-"Irene Adler is married," remarked Holmes.
-
-"Married! When?"
-
-"Yesterday."
-
-"But to whom?"
-
-"To an English lawyer named Norton."
-
-"But she could not love him."
-
-"I am in hopes that she does."
-
-"And why in hopes?"
-
-"Because it would spare your Majesty all fear of future
-annoyance. If the lady loves her husband, she does not love your
-Majesty. If she does not love your Majesty, there is no reason
-why she should interfere with your Majesty's plan."
-
-"It is true. And yet--Well! I wish she had been of my own
-station! What a queen she would have made!" He relapsed into a
-moody silence, which was not broken until we drew up in
-Serpentine Avenue.
-
-The door of Briony Lodge was open, and an elderly woman stood
-upon the steps. She watched us with a sardonic eye as we stepped
-from the brougham.
-
-"Mr. Sherlock Holmes, I believe?" said she.
-
-"I am Mr. Holmes," answered my companion, looking at her with a
-questioning and rather startled gaze.
-
-"Indeed! My mistress told me that you were likely to call. She
-left this morning with her husband by the 5:15 train from Charing
-Cross for the Continent."
-
-"What!" Sherlock Holmes staggered back, white with chagrin and
-surprise. "Do you mean that she has left England?"
-
-"Never to return."
-
-"And the papers?" asked the King hoarsely. "All is lost."
-
-"We shall see." He pushed past the servant and rushed into the
-drawing-room, followed by the King and myself. The furniture was
-scattered about in every direction, with dismantled shelves and
-open drawers, as if the lady had hurriedly ransacked them before
-her flight. Holmes rushed at the bell-pull, tore back a small
-sliding shutter, and, plunging in his hand, pulled out a
-photograph and a letter. The photograph was of Irene Adler
-herself in evening dress, the letter was superscribed to
-"Sherlock Holmes, Esq. To be left till called for." My friend
-tore it open and we all three read it together. It was dated at
-midnight of the preceding night and ran in this way:
-
-"MY DEAR MR. SHERLOCK HOLMES,--You really did it very well. You
-took me in completely. Until after the alarm of fire, I had not a
-suspicion. But then, when I found how I had betrayed myself, I
-began to think. I had been warned against you months ago. I had
-been told that if the King employed an agent it would certainly
-be you. And your address had been given me. Yet, with all this,
-you made me reveal what you wanted to know. Even after I became
-suspicious, I found it hard to think evil of such a dear, kind
-old clergyman. But, you know, I have been trained as an actress
-myself. Male costume is nothing new to me. I often take advantage
-of the freedom which it gives. I sent John, the coachman, to
-watch you, ran up stairs, got into my walking-clothes, as I call
-them, and came down just as you departed.
-
-"Well, I followed you to your door, and so made sure that I was
-really an object of interest to the celebrated Mr. Sherlock
-Holmes. Then I, rather imprudently, wished you good-night, and
-started for the Temple to see my husband.
-
-"We both thought the best resource was flight, when pursued by
-so formidable an antagonist; so you will find the nest empty when
-you call to-morrow. As to the photograph, your client may rest in
-peace. I love and am loved by a better man than he. The King may
-do what he will without hindrance from one whom he has cruelly
-wronged. I keep it only to safeguard myself, and to preserve a
-weapon which will always secure me from any steps which he might
-take in the future. I leave a photograph which he might care to
-possess; and I remain, dear Mr. Sherlock Holmes,
-
-                                      "Very truly yours,
-                                   "IRENE NORTON, n�e ADLER."
-
-"What a woman--oh, what a woman!" cried the King of Bohemia, when
-we had all three read this epistle. "Did I not tell you how quick
-and resolute she was? Would she not have made an admirable queen?
-Is it not a pity that she was not on my level?"
-
-"From what I have seen of the lady she seems indeed to be on a
-very different level to your Majesty," said Holmes coldly. "I am
-sorry that I have not been able to bring your Majesty's business
-to a more successful conclusion."
-
-"On the contrary, my dear sir," cried the King; "nothing could be
-more successful. I know that her word is inviolate. The
-photograph is now as safe as if it were in the fire."
-
-"I am glad to hear your Majesty say so."
-
-"I am immensely indebted to you. Pray tell me in what way I can
-reward you. This ring--" He slipped an emerald snake ring from
-his finger and held it out upon the palm of his hand.
-
-"Your Majesty has something which I should value even more
-highly," said Holmes.
-
-"You have but to name it."
-
-"This photograph!"
-
-The King stared at him in amazement.
-
-"Irene's photograph!" he cried. "Certainly, if you wish it."
-
-"I thank your Majesty. Then there is no more to be done in the
-matter. I have the honour to wish you a very good-morning." He
-bowed, and, turning away without observing the hand which the
-King had stretched out to him, he set off in my company for his
-chambers.
-
-And that was how a great scandal threatened to affect the kingdom
-of Bohemia, and how the best plans of Mr. Sherlock Holmes were
-beaten by a woman's wit. He used to make merry over the
-cleverness of women, but I have not heard him do it of late. And
-when he speaks of Irene Adler, or when he refers to her
-photograph, it is always under the honourable title of the woman.
-
-
-
-ADVENTURE II. THE RED-HEADED LEAGUE
-
-I had called upon my friend, Mr. Sherlock Holmes, one day in the
-autumn of last year and found him in deep conversation with a
-very stout, florid-faced, elderly gentleman with fiery red hair.
-With an apology for my intrusion, I was about to withdraw when
-Holmes pulled me abruptly into the room and closed the door
-behind me.
-
-"You could not possibly have come at a better time, my dear
-Watson," he said cordially.
-
-"I was afraid that you were engaged."
-
-"So I am. Very much so."
-
-"Then I can wait in the next room."
-
-"Not at all. This gentleman, Mr. Wilson, has been my partner and
-helper in many of my most successful cases, and I have no
-doubt that he will be of the utmost use to me in yours also."
-
-The stout gentleman half rose from his chair and gave a bob of
-greeting, with a quick little questioning glance from his small
-fat-encircled eyes.
-
-"Try the settee," said Holmes, relapsing into his armchair and
-putting his fingertips together, as was his custom when in
-judicial moods. "I know, my dear Watson, that you share my love
-of all that is bizarre and outside the conventions and humdrum
-routine of everyday life. You have shown your relish for it by
-the enthusiasm which has prompted you to chronicle, and, if you
-will excuse my saying so, somewhat to embellish so many of my own
-little adventures."
-
-"Your cases have indeed been of the greatest interest to me," I
-observed.
-
-"You will remember that I remarked the other day, just before we
-went into the very simple problem presented by Miss Mary
-Sutherland, that for strange effects and extraordinary
-combinations we must go to life itself, which is always far more
-daring than any effort of the imagination."
-
-"A proposition which I took the liberty of doubting."
-
-"You did, Doctor, but none the less you must come round to my
-view, for otherwise I shall keep on piling fact upon fact on you
-until your reason breaks down under them and acknowledges me to
-be right. Now, Mr. Jabez Wilson here has been good enough to call
-upon me this morning, and to begin a narrative which promises to
-be one of the most singular which I have listened to for some
-time. You have heard me remark that the strangest and most unique
-things are very often connected not with the larger but with the
-smaller crimes, and occasionally, indeed, where there is room for
-doubt whether any positive crime has been committed. As far as I
-have heard it is impossible for me to say whether the present
-case is an instance of crime or not, but the course of events is
-certainly among the most singular that I have ever listened to.
-Perhaps, Mr. Wilson, you would have the great kindness to
-recommence your narrative. I ask you not merely because my friend
-Dr. Watson has not heard the opening part but also because the
-peculiar nature of the story makes me anxious to have every
-possible detail from your lips. As a rule, when I have heard some
-slight indication of the course of events, I am able to guide
-myself by the thousands of other similar cases which occur to my
-memory. In the present instance I am forced to admit that the
-facts are, to the best of my belief, unique."
-
-The portly client puffed out his chest with an appearance of some
-little pride and pulled a dirty and wrinkled newspaper from the
-inside pocket of his greatcoat. As he glanced down the
-advertisement column, with his head thrust forward and the paper
-flattened out upon his knee, I took a good look at the man and
-endeavoured, after the fashion of my companion, to read the
-indications which might be presented by his dress or appearance.
-
-I did not gain very much, however, by my inspection. Our visitor
-bore every mark of being an average commonplace British
-tradesman, obese, pompous, and slow. He wore rather baggy grey
-shepherd's check trousers, a not over-clean black frock-coat,
-unbuttoned in the front, and a drab waistcoat with a heavy brassy
-Albert chain, and a square pierced bit of metal dangling down as
-an ornament. A frayed top-hat and a faded brown overcoat with a
-wrinkled velvet collar lay upon a chair beside him. Altogether,
-look as I would, there was nothing remarkable about the man save
-his blazing red head, and the expression of extreme chagrin and
-discontent upon his features.
-
-Sherlock Holmes' quick eye took in my occupation, and he shook
-his head with a smile as he noticed my questioning glances.
-"Beyond the obvious facts that he has at some time done manual
-labour, that he takes snuff, that he is a Freemason, that he has
-been in China, and that he has done a considerable amount of
-writing lately, I can deduce nothing else."
-
-Mr. Jabez Wilson started up in his chair, with his forefinger
-upon the paper, but his eyes upon my companion.
-
-"How, in the name of good-fortune, did you know all that, Mr.
-Holmes?" he asked. "How did you know, for example, that I did
-manual labour. It's as true as gospel, for I began as a ship's
-carpenter."
-
-"Your hands, my dear sir. Your right hand is quite a size larger
-than your left. You have worked with it, and the muscles are more
-developed."
-
-"Well, the snuff, then, and the Freemasonry?"
-
-"I won't insult your intelligence by telling you how I read that,
-especially as, rather against the strict rules of your order, you
-use an arc-and-compass breastpin."
-
-"Ah, of course, I forgot that. But the writing?"
-
-"What else can be indicated by that right cuff so very shiny for
-five inches, and the left one with the smooth patch near the
-elbow where you rest it upon the desk?"
-
-"Well, but China?"
-
-"The fish that you have tattooed immediately above your right
-wrist could only have been done in China. I have made a small
-study of tattoo marks and have even contributed to the literature
-of the subject. That trick of staining the fishes' scales of a
-delicate pink is quite peculiar to China. When, in addition, I
-see a Chinese coin hanging from your watch-chain, the matter
-becomes even more simple."
-
-Mr. Jabez Wilson laughed heavily. "Well, I never!" said he. "I
-thought at first that you had done something clever, but I see
-that there was nothing in it, after all."
-
-"I begin to think, Watson," said Holmes, "that I make a mistake
-in explaining. 'Omne ignotum pro magnifico,' you know, and my
-poor little reputation, such as it is, will suffer shipwreck if I
-am so candid. Can you not find the advertisement, Mr. Wilson?"
-
-"Yes, I have got it now," he answered with his thick red finger
-planted halfway down the column. "Here it is. This is what began
-it all. You just read it for yourself, sir."
-
-I took the paper from him and read as follows:
-
-"TO THE RED-HEADED LEAGUE: On account of the bequest of the late
-Ezekiah Hopkins, of Lebanon, Pennsylvania, U. S. A., there is now
-another vacancy open which entitles a member of the League to a
-salary of 4 pounds a week for purely nominal services. All
-red-headed men who are sound in body and mind and above the age
-of twenty-one years, are eligible. Apply in person on Monday, at
-eleven o'clock, to Duncan Ross, at the offices of the League, 7
-Pope's Court, Fleet Street."
-
-"What on earth does this mean?" I ejaculated after I had twice
-read over the extraordinary announcement.
-
-Holmes chuckled and wriggled in his chair, as was his habit when
-in high spirits. "It is a little off the beaten track, isn't it?"
-said he. "And now, Mr. Wilson, off you go at scratch and tell us
-all about yourself, your household, and the effect which this
-advertisement had upon your fortunes. You will first make a note,
-Doctor, of the paper and the date."
-
-"It is The Morning Chronicle of April 27, 1890. Just two months
-ago."
-
-"Very good. Now, Mr. Wilson?"
-
-"Well, it is just as I have been telling you, Mr. Sherlock
-Holmes," said Jabez Wilson, mopping his forehead; "I have a small
-pawnbroker's business at Coburg Square, near the City. It's not a
-very large affair, and of late years it has not done more than
-just give me a living. I used to be able to keep two assistants,
-but now I only keep one; and I would have a job to pay him but
-that he is willing to come for half wages so as to learn the
-business."
-
-"What is the name of this obliging youth?" asked Sherlock Holmes.
-
-"His name is Vincent Spaulding, and he's not such a youth,
-either. It's hard to say his age. I should not wish a smarter
-assistant, Mr. Holmes; and I know very well that he could better
-himself and earn twice what I am able to give him. But, after
-all, if he is satisfied, why should I put ideas in his head?"
-
-"Why, indeed? You seem most fortunate in having an employ� who
-comes under the full market price. It is not a common experience
-among employers in this age. I don't know that your assistant is
-not as remarkable as your advertisement."
-
-"Oh, he has his faults, too," said Mr. Wilson. "Never was such a
-fellow for photography. Snapping away with a camera when he ought
-to be improving his mind, and then diving down into the cellar
-like a rabbit into its hole to develop his pictures. That is his
-main fault, but on the whole he's a good worker. There's no vice
-in him."
-
-"He is still with you, I presume?"
-
-"Yes, sir. He and a girl of fourteen, who does a bit of simple
-cooking and keeps the place clean--that's all I have in the
-house, for I am a widower and never had any family. We live very
-quietly, sir, the three of us; and we keep a roof over our heads
-and pay our debts, if we do nothing more.
-
-"The first thing that put us out was that advertisement.
-Spaulding, he came down into the office just this day eight
-weeks, with this very paper in his hand, and he says:
-
-"'I wish to the Lord, Mr. Wilson, that I was a red-headed man.'
-
-"'Why that?' I asks.
-
-"'Why,' says he, 'here's another vacancy on the League of the
-Red-headed Men. It's worth quite a little fortune to any man who
-gets it, and I understand that there are more vacancies than
-there are men, so that the trustees are at their wits' end what
-to do with the money. If my hair would only change colour, here's
-a nice little crib all ready for me to step into.'
-
-"'Why, what is it, then?' I asked. You see, Mr. Holmes, I am a
-very stay-at-home man, and as my business came to me instead of
-my having to go to it, I was often weeks on end without putting
-my foot over the door-mat. In that way I didn't know much of what
-was going on outside, and I was always glad of a bit of news.
-
-"'Have you never heard of the League of the Red-headed Men?' he
-asked with his eyes open.
-
-"'Never.'
-
-"'Why, I wonder at that, for you are eligible yourself for one
-of the vacancies.'
-
-"'And what are they worth?' I asked.
-
-"'Oh, merely a couple of hundred a year, but the work is slight,
-and it need not interfere very much with one's other
-occupations.'
-
-"Well, you can easily think that that made me prick up my ears,
-for the business has not been over-good for some years, and an
-extra couple of hundred would have been very handy.
-
-"'Tell me all about it,' said I.
-
-"'Well,' said he, showing me the advertisement, 'you can see for
-yourself that the League has a vacancy, and there is the address
-where you should apply for particulars. As far as I can make out,
-the League was founded by an American millionaire, Ezekiah
-Hopkins, who was very peculiar in his ways. He was himself
-red-headed, and he had a great sympathy for all red-headed men;
-so when he died it was found that he had left his enormous
-fortune in the hands of trustees, with instructions to apply the
-interest to the providing of easy berths to men whose hair is of
-that colour. From all I hear it is splendid pay and very little to
-do.'
-
-"'But,' said I, 'there would be millions of red-headed men who
-would apply.'
-
-"'Not so many as you might think,' he answered. 'You see it is
-really confined to Londoners, and to grown men. This American had
-started from London when he was young, and he wanted to do the
-old town a good turn. Then, again, I have heard it is no use your
-applying if your hair is light red, or dark red, or anything but
-real bright, blazing, fiery red. Now, if you cared to apply, Mr.
-Wilson, you would just walk in; but perhaps it would hardly be
-worth your while to put yourself out of the way for the sake of a
-few hundred pounds.'
-
-"Now, it is a fact, gentlemen, as you may see for yourselves,
-that my hair is of a very full and rich tint, so that it seemed
-to me that if there was to be any competition in the matter I
-stood as good a chance as any man that I had ever met. Vincent
-Spaulding seemed to know so much about it that I thought he might
-prove useful, so I just ordered him to put up the shutters for
-the day and to come right away with me. He was very willing to
-have a holiday, so we shut the business up and started off for
-the address that was given us in the advertisement.
-
-"I never hope to see such a sight as that again, Mr. Holmes. From
-north, south, east, and west every man who had a shade of red in
-his hair had tramped into the city to answer the advertisement.
-Fleet Street was choked with red-headed folk, and Pope's Court
-looked like a coster's orange barrow. I should not have thought
-there were so many in the whole country as were brought together
-by that single advertisement. Every shade of colour they
-were--straw, lemon, orange, brick, Irish-setter, liver, clay;
-but, as Spaulding said, there were not many who had the real
-vivid flame-coloured tint. When I saw how many were waiting, I
-would have given it up in despair; but Spaulding would not hear
-of it. How he did it I could not imagine, but he pushed and
-pulled and butted until he got me through the crowd, and right up
-to the steps which led to the office. There was a double stream
-upon the stair, some going up in hope, and some coming back
-dejected; but we wedged in as well as we could and soon found
-ourselves in the office."
-
-"Your experience has been a most entertaining one," remarked
-Holmes as his client paused and refreshed his memory with a huge
-pinch of snuff. "Pray continue your very interesting statement."
-
-"There was nothing in the office but a couple of wooden chairs
-and a deal table, behind which sat a small man with a head that
-was even redder than mine. He said a few words to each candidate
-as he came up, and then he always managed to find some fault in
-them which would disqualify them. Getting a vacancy did not seem
-to be such a very easy matter, after all. However, when our turn
-came the little man was much more favourable to me than to any of
-the others, and he closed the door as we entered, so that he
-might have a private word with us.
-
-"'This is Mr. Jabez Wilson,' said my assistant, 'and he is
-willing to fill a vacancy in the League.'
-
-"'And he is admirably suited for it,' the other answered. 'He has
-every requirement. I cannot recall when I have seen anything so
-fine.' He took a step backward, cocked his head on one side, and
-gazed at my hair until I felt quite bashful. Then suddenly he
-plunged forward, wrung my hand, and congratulated me warmly on my
-success.
-
-"'It would be injustice to hesitate,' said he. 'You will,
-however, I am sure, excuse me for taking an obvious precaution.'
-With that he seized my hair in both his hands, and tugged until I
-yelled with the pain. 'There is water in your eyes,' said he as
-he released me. 'I perceive that all is as it should be. But we
-have to be careful, for we have twice been deceived by wigs and
-once by paint. I could tell you tales of cobbler's wax which
-would disgust you with human nature.' He stepped over to the
-window and shouted through it at the top of his voice that the
-vacancy was filled. A groan of disappointment came up from below,
-and the folk all trooped away in different directions until there
-was not a red-head to be seen except my own and that of the
-manager.
-
-"'My name,' said he, 'is Mr. Duncan Ross, and I am myself one of
-the pensioners upon the fund left by our noble benefactor. Are
-you a married man, Mr. Wilson? Have you a family?'
-
-"I answered that I had not.
-
-"His face fell immediately.
-
-"'Dear me!' he said gravely, 'that is very serious indeed! I am
-sorry to hear you say that. The fund was, of course, for the
-propagation and spread of the red-heads as well as for their
-maintenance. It is exceedingly unfortunate that you should be a
-bachelor.'
-
-"My face lengthened at this, Mr. Holmes, for I thought that I was
-not to have the vacancy after all; but after thinking it over for
-a few minutes he said that it would be all right.
-
-"'In the case of another,' said he, 'the objection might be
-fatal, but we must stretch a point in favour of a man with such a
-head of hair as yours. When shall you be able to enter upon your
-new duties?'
-
-"'Well, it is a little awkward, for I have a business already,'
-said I.
-
-"'Oh, never mind about that, Mr. Wilson!' said Vincent Spaulding.
-'I should be able to look after that for you.'
-
-"'What would be the hours?' I asked.
-
-"'Ten to two.'
-
-"Now a pawnbroker's business is mostly done of an evening, Mr.
-Holmes, especially Thursday and Friday evening, which is just
-before pay-day; so it would suit me very well to earn a little in
-the mornings. Besides, I knew that my assistant was a good man,
-and that he would see to anything that turned up.
-
-"'That would suit me very well,' said I. 'And the pay?'
-
-"'Is 4 pounds a week.'
-
-"'And the work?'
-
-"'Is purely nominal.'
-
-"'What do you call purely nominal?'
-
-"'Well, you have to be in the office, or at least in the
-building, the whole time. If you leave, you forfeit your whole
-position forever. The will is very clear upon that point. You
-don't comply with the conditions if you budge from the office
-during that time.'
-
-"'It's only four hours a day, and I should not think of leaving,'
-said I.
-
-"'No excuse will avail,' said Mr. Duncan Ross; 'neither sickness
-nor business nor anything else. There you must stay, or you lose
-your billet.'
-
-"'And the work?'
-
-"'Is to copy out the "Encyclopaedia Britannica." There is the first
-volume of it in that press. You must find your own ink, pens, and
-blotting-paper, but we provide this table and chair. Will you be
-ready to-morrow?'
-
-"'Certainly,' I answered.
-
-"'Then, good-bye, Mr. Jabez Wilson, and let me congratulate you
-once more on the important position which you have been fortunate
-enough to gain.' He bowed me out of the room and I went home with
-my assistant, hardly knowing what to say or do, I was so pleased
-at my own good fortune.
-
-"Well, I thought over the matter all day, and by evening I was in
-low spirits again; for I had quite persuaded myself that the
-whole affair must be some great hoax or fraud, though what its
-object might be I could not imagine. It seemed altogether past
-belief that anyone could make such a will, or that they would pay
-such a sum for doing anything so simple as copying out the
-'Encyclopaedia Britannica.' Vincent Spaulding did what he could to
-cheer me up, but by bedtime I had reasoned myself out of the
-whole thing. However, in the morning I determined to have a look
-at it anyhow, so I bought a penny bottle of ink, and with a
-quill-pen, and seven sheets of foolscap paper, I started off for
-Pope's Court.
-
-"Well, to my surprise and delight, everything was as right as
-possible. The table was set out ready for me, and Mr. Duncan Ross
-was there to see that I got fairly to work. He started me off
-upon the letter A, and then he left me; but he would drop in from
-time to time to see that all was right with me. At two o'clock he
-bade me good-day, complimented me upon the amount that I had
-written, and locked the door of the office after me.
-
-"This went on day after day, Mr. Holmes, and on Saturday the
-manager came in and planked down four golden sovereigns for my
-week's work. It was the same next week, and the same the week
-after. Every morning I was there at ten, and every afternoon I
-left at two. By degrees Mr. Duncan Ross took to coming in only
-once of a morning, and then, after a time, he did not come in at
-all. Still, of course, I never dared to leave the room for an
-instant, for I was not sure when he might come, and the billet
-was such a good one, and suited me so well, that I would not risk
-the loss of it.
-
-"Eight weeks passed away like this, and I had written about
-Abbots and Archery and Armour and Architecture and Attica, and
-hoped with diligence that I might get on to the B's before very
-long. It cost me something in foolscap, and I had pretty nearly
-filled a shelf with my writings. And then suddenly the whole
-business came to an end."
-
-"To an end?"
-
-"Yes, sir. And no later than this morning. I went to my work as
-usual at ten o'clock, but the door was shut and locked, with a
-little square of cardboard hammered on to the middle of the
-panel with a tack. Here it is, and you can read for yourself."
-
-He held up a piece of white cardboard about the size of a sheet
-of note-paper. It read in this fashion:
-
-                  THE RED-HEADED LEAGUE
-
-                           IS
-
-                        DISSOLVED.
-
-                     October 9, 1890.
-
-Sherlock Holmes and I surveyed this curt announcement and the
-rueful face behind it, until the comical side of the affair so
-completely overtopped every other consideration that we both
-burst out into a roar of laughter.
-
-"I cannot see that there is anything very funny," cried our
-client, flushing up to the roots of his flaming head. "If you can
-do nothing better than laugh at me, I can go elsewhere."
-
-"No, no," cried Holmes, shoving him back into the chair from
-which he had half risen. "I really wouldn't miss your case for
-the world. It is most refreshingly unusual. But there is, if you
-will excuse my saying so, something just a little funny about it.
-Pray what steps did you take when you found the card upon the
-door?"
-
-"I was staggered, sir. I did not know what to do. Then I called
-at the offices round, but none of them seemed to know anything
-about it. Finally, I went to the landlord, who is an accountant
-living on the ground-floor, and I asked him if he could tell me
-what had become of the Red-headed League. He said that he had
-never heard of any such body. Then I asked him who Mr. Duncan
-Ross was. He answered that the name was new to him.
-
-"'Well,' said I, 'the gentleman at No. 4.'
-
-"'What, the red-headed man?'
-
-"'Yes.'
-
-"'Oh,' said he, 'his name was William Morris. He was a solicitor
-and was using my room as a temporary convenience until his new
-premises were ready. He moved out yesterday.'
-
-"'Where could I find him?'
-
-"'Oh, at his new offices. He did tell me the address. Yes, 17
-King Edward Street, near St. Paul's.'
-
-"I started off, Mr. Holmes, but when I got to that address it was
-a manufactory of artificial knee-caps, and no one in it had ever
-heard of either Mr. William Morris or Mr. Duncan Ross."
-
-"And what did you do then?" asked Holmes.
-
-"I went home to Saxe-Coburg Square, and I took the advice of my
-assistant. But he could not help me in any way. He could only say
-that if I waited I should hear by post. But that was not quite
-good enough, Mr. Holmes. I did not wish to lose such a place
-without a struggle, so, as I had heard that you were good enough
-to give advice to poor folk who were in need of it, I came right
-away to you."
-
-"And you did very wisely," said Holmes. "Your case is an
-exceedingly remarkable one, and I shall be happy to look into it.
-From what you have told me I think that it is possible that
-graver issues hang from it than might at first sight appear."
-
-"Grave enough!" said Mr. Jabez Wilson. "Why, I have lost four
-pound a week."
-
-"As far as you are personally concerned," remarked Holmes, "I do
-not see that you have any grievance against this extraordinary
-league. On the contrary, you are, as I understand, richer by some
-30 pounds, to say nothing of the minute knowledge which you have
-gained on every subject which comes under the letter A. You have
-lost nothing by them."
-
-"No, sir. But I want to find out about them, and who they are,
-and what their object was in playing this prank--if it was a
-prank--upon me. It was a pretty expensive joke for them, for it
-cost them two and thirty pounds."
-
-"We shall endeavour to clear up these points for you. And, first,
-one or two questions, Mr. Wilson. This assistant of yours who
-first called your attention to the advertisement--how long had he
-been with you?"
-
-"About a month then."
-
-"How did he come?"
-
-"In answer to an advertisement."
-
-"Was he the only applicant?"
-
-"No, I had a dozen."
-
-"Why did you pick him?"
-
-"Because he was handy and would come cheap."
-
-"At half-wages, in fact."
-
-"Yes."
-
-"What is he like, this Vincent Spaulding?"
-
-"Small, stout-built, very quick in his ways, no hair on his face,
-though he's not short of thirty. Has a white splash of acid upon
-his forehead."
-
-Holmes sat up in his chair in considerable excitement. "I thought
-as much," said he. "Have you ever observed that his ears are
-pierced for earrings?"
-
-"Yes, sir. He told me that a gipsy had done it for him when he
-was a lad."
-
-"Hum!" said Holmes, sinking back in deep thought. "He is still
-with you?"
-
-"Oh, yes, sir; I have only just left him."
-
-"And has your business been attended to in your absence?"
-
-"Nothing to complain of, sir. There's never very much to do of a
-morning."
-
-"That will do, Mr. Wilson. I shall be happy to give you an
-opinion upon the subject in the course of a day or two. To-day is
-Saturday, and I hope that by Monday we may come to a conclusion."
-
-"Well, Watson," said Holmes when our visitor had left us, "what
-do you make of it all?"
-
-"I make nothing of it," I answered frankly. "It is a most
-mysterious business."
-
-"As a rule," said Holmes, "the more bizarre a thing is the less
-mysterious it proves to be. It is your commonplace, featureless
-crimes which are really puzzling, just as a commonplace face is
-the most difficult to identify. But I must be prompt over this
-matter."
-
-"What are you going to do, then?" I asked.
-
-"To smoke," he answered. "It is quite a three pipe problem, and I
-beg that you won't speak to me for fifty minutes." He curled
-himself up in his chair, with his thin knees drawn up to his
-hawk-like nose, and there he sat with his eyes closed and his
-black clay pipe thrusting out like the bill of some strange bird.
-I had come to the conclusion that he had dropped asleep, and
-indeed was nodding myself, when he suddenly sprang out of his
-chair with the gesture of a man who has made up his mind and put
-his pipe down upon the mantelpiece.
-
-"Sarasate plays at the St. James's Hall this afternoon," he
-remarked. "What do you think, Watson? Could your patients spare
-you for a few hours?"
-
-"I have nothing to do to-day. My practice is never very
-absorbing."
-
-"Then put on your hat and come. I am going through the City
-first, and we can have some lunch on the way. I observe that
-there is a good deal of German music on the programme, which is
-rather more to my taste than Italian or French. It is
-introspective, and I want to introspect. Come along!"
-
-We travelled by the Underground as far as Aldersgate; and a short
-walk took us to Saxe-Coburg Square, the scene of the singular
-story which we had listened to in the morning. It was a poky,
-little, shabby-genteel place, where four lines of dingy
-two-storied brick houses looked out into a small railed-in
-enclosure, where a lawn of weedy grass and a few clumps of faded
-laurel-bushes made a hard fight against a smoke-laden and
-uncongenial atmosphere. Three gilt balls and a brown board with
-"JABEZ WILSON" in white letters, upon a corner house, announced
-the place where our red-headed client carried on his business.
-Sherlock Holmes stopped in front of it with his head on one side
-and looked it all over, with his eyes shining brightly between
-puckered lids. Then he walked slowly up the street, and then down
-again to the corner, still looking keenly at the houses. Finally
-he returned to the pawnbroker's, and, having thumped vigorously
-upon the pavement with his stick two or three times, he went up
-to the door and knocked. It was instantly opened by a
-bright-looking, clean-shaven young fellow, who asked him to step
-in.
-
-"Thank you," said Holmes, "I only wished to ask you how you would
-go from here to the Strand."
-
-"Third right, fourth left," answered the assistant promptly,
-closing the door.
-
-"Smart fellow, that," observed Holmes as we walked away. "He is,
-in my judgment, the fourth smartest man in London, and for daring
-I am not sure that he has not a claim to be third. I have known
-something of him before."
-
-"Evidently," said I, "Mr. Wilson's assistant counts for a good
-deal in this mystery of the Red-headed League. I am sure that you
-inquired your way merely in order that you might see him."
-
-"Not him."
-
-"What then?"
-
-"The knees of his trousers."
-
-"And what did you see?"
-
-"What I expected to see."
-
-"Why did you beat the pavement?"
-
-"My dear doctor, this is a time for observation, not for talk. We
-are spies in an enemy's country. We know something of Saxe-Coburg
-Square. Let us now explore the parts which lie behind it."
-
-The road in which we found ourselves as we turned round the
-corner from the retired Saxe-Coburg Square presented as great a
-contrast to it as the front of a picture does to the back. It was
-one of the main arteries which conveyed the traffic of the City
-to the north and west. The roadway was blocked with the immense
-stream of commerce flowing in a double tide inward and outward,
-while the footpaths were black with the hurrying swarm of
-pedestrians. It was difficult to realise as we looked at the line
-of fine shops and stately business premises that they really
-abutted on the other side upon the faded and stagnant square
-which we had just quitted.
-
-"Let me see," said Holmes, standing at the corner and glancing
-along the line, "I should like just to remember the order of the
-houses here. It is a hobby of mine to have an exact knowledge of
-London. There is Mortimer's, the tobacconist, the little
-newspaper shop, the Coburg branch of the City and Suburban Bank,
-the Vegetarian Restaurant, and McFarlane's carriage-building
-depot. That carries us right on to the other block. And now,
-Doctor, we've done our work, so it's time we had some play. A
-sandwich and a cup of coffee, and then off to violin-land, where
-all is sweetness and delicacy and harmony, and there are no
-red-headed clients to vex us with their conundrums."
-
-My friend was an enthusiastic musician, being himself not only a
-very capable performer but a composer of no ordinary merit. All
-the afternoon he sat in the stalls wrapped in the most perfect
-happiness, gently waving his long, thin fingers in time to the
-music, while his gently smiling face and his languid, dreamy eyes
-were as unlike those of Holmes the sleuth-hound, Holmes the
-relentless, keen-witted, ready-handed criminal agent, as it was
-possible to conceive. In his singular character the dual nature
-alternately asserted itself, and his extreme exactness and
-astuteness represented, as I have often thought, the reaction
-against the poetic and contemplative mood which occasionally
-predominated in him. The swing of his nature took him from
-extreme languor to devouring energy; and, as I knew well, he was
-never so truly formidable as when, for days on end, he had been
-lounging in his armchair amid his improvisations and his
-black-letter editions. Then it was that the lust of the chase
-would suddenly come upon him, and that his brilliant reasoning
-power would rise to the level of intuition, until those who were
-unacquainted with his methods would look askance at him as on a
-man whose knowledge was not that of other mortals. When I saw him
-that afternoon so enwrapped in the music at St. James's Hall I
-felt that an evil time might be coming upon those whom he had set
-himself to hunt down.
-
-"You want to go home, no doubt, Doctor," he remarked as we
-emerged.
-
-"Yes, it would be as well."
-
-"And I have some business to do which will take some hours. This
-business at Coburg Square is serious."
-
-"Why serious?"
-
-"A considerable crime is in contemplation. I have every reason to
-believe that we shall be in time to stop it. But to-day being
-Saturday rather complicates matters. I shall want your help
-to-night."
-
-"At what time?"
-
-"Ten will be early enough."
-
-"I shall be at Baker Street at ten."
-
-"Very well. And, I say, Doctor, there may be some little danger,
-so kindly put your army revolver in your pocket." He waved his
-hand, turned on his heel, and disappeared in an instant among the
-crowd.
-
-I trust that I am not more dense than my neighbours, but I was
-always oppressed with a sense of my own stupidity in my dealings
-with Sherlock Holmes. Here I had heard what he had heard, I had
-seen what he had seen, and yet from his words it was evident that
-he saw clearly not only what had happened but what was about to
-happen, while to me the whole business was still confused and
-grotesque. As I drove home to my house in Kensington I thought
-over it all, from the extraordinary story of the red-headed
-copier of the "Encyclopaedia" down to the visit to Saxe-Coburg
-Square, and the ominous words with which he had parted from me.
-What was this nocturnal expedition, and why should I go armed?
-Where were we going, and what were we to do? I had the hint from
-Holmes that this smooth-faced pawnbroker's assistant was a
-formidable man--a man who might play a deep game. I tried to
-puzzle it out, but gave it up in despair and set the matter aside
-until night should bring an explanation.
-
-It was a quarter-past nine when I started from home and made my
-way across the Park, and so through Oxford Street to Baker
-Street. Two hansoms were standing at the door, and as I entered
-the passage I heard the sound of voices from above. On entering
-his room I found Holmes in animated conversation with two men,
-one of whom I recognised as Peter Jones, the official police
-agent, while the other was a long, thin, sad-faced man, with a
-very shiny hat and oppressively respectable frock-coat.
-
-"Ha! Our party is complete," said Holmes, buttoning up his
-pea-jacket and taking his heavy hunting crop from the rack.
-"Watson, I think you know Mr. Jones, of Scotland Yard? Let me
-introduce you to Mr. Merryweather, who is to be our companion in
-to-night's adventure."
-
-"We're hunting in couples again, Doctor, you see," said Jones in
-his consequential way. "Our friend here is a wonderful man for
-starting a chase. All he wants is an old dog to help him to do
-the running down."
-
-"I hope a wild goose may not prove to be the end of our chase,"
-observed Mr. Merryweather gloomily.
-
-"You may place considerable confidence in Mr. Holmes, sir," said
-the police agent loftily. "He has his own little methods, which
-are, if he won't mind my saying so, just a little too theoretical
-and fantastic, but he has the makings of a detective in him. It
-is not too much to say that once or twice, as in that business of
-the Sholto murder and the Agra treasure, he has been more nearly
-correct than the official force."
-
-"Oh, if you say so, Mr. Jones, it is all right," said the
-stranger with deference. "Still, I confess that I miss my rubber.
-It is the first Saturday night for seven-and-twenty years that I
-have not had my rubber."
-
-"I think you will find," said Sherlock Holmes, "that you will
-play for a higher stake to-night than you have ever done yet, and
-that the play will be more exciting. For you, Mr. Merryweather,
-the stake will be some 30,000 pounds; and for you, Jones, it will
-be the man upon whom you wish to lay your hands."
-
-"John Clay, the murderer, thief, smasher, and forger. He's a
-young man, Mr. Merryweather, but he is at the head of his
-profession, and I would rather have my bracelets on him than on
-any criminal in London. He's a remarkable man, is young John
-Clay. His grandfather was a royal duke, and he himself has been
-to Eton and Oxford. His brain is as cunning as his fingers, and
-though we meet signs of him at every turn, we never know where to
-find the man himself. He'll crack a crib in Scotland one week,
-and be raising money to build an orphanage in Cornwall the next.
-I've been on his track for years and have never set eyes on him
-yet."
-
-"I hope that I may have the pleasure of introducing you to-night.
-I've had one or two little turns also with Mr. John Clay, and I
-agree with you that he is at the head of his profession. It is
-past ten, however, and quite time that we started. If you two
-will take the first hansom, Watson and I will follow in the
-second."
-
-Sherlock Holmes was not very communicative during the long drive
-and lay back in the cab humming the tunes which he had heard in
-the afternoon. We rattled through an endless labyrinth of gas-lit
-streets until we emerged into Farrington Street.
-
-"We are close there now," my friend remarked. "This fellow
-Merryweather is a bank director, and personally interested in the
-matter. I thought it as well to have Jones with us also. He is
-not a bad fellow, though an absolute imbecile in his profession.
-He has one positive virtue. He is as brave as a bulldog and as
-tenacious as a lobster if he gets his claws upon anyone. Here we
-are, and they are waiting for us."
-
-We had reached the same crowded thoroughfare in which we had
-found ourselves in the morning. Our cabs were dismissed, and,
-following the guidance of Mr. Merryweather, we passed down a
-narrow passage and through a side door, which he opened for us.
-Within there was a small corridor, which ended in a very massive
-iron gate. This also was opened, and led down a flight of winding
-stone steps, which terminated at another formidable gate. Mr.
-Merryweather stopped to light a lantern, and then conducted us
-down a dark, earth-smelling passage, and so, after opening a
-third door, into a huge vault or cellar, which was piled all
-round with crates and massive boxes.
-
-"You are not very vulnerable from above," Holmes remarked as he
-held up the lantern and gazed about him.
-
-"Nor from below," said Mr. Merryweather, striking his stick upon
-the flags which lined the floor. "Why, dear me, it sounds quite
-hollow!" he remarked, looking up in surprise.
-
-"I must really ask you to be a little more quiet!" said Holmes
-severely. "You have already imperilled the whole success of our
-expedition. Might I beg that you would have the goodness to sit
-down upon one of those boxes, and not to interfere?"
-
-The solemn Mr. Merryweather perched himself upon a crate, with a
-very injured expression upon his face, while Holmes fell upon his
-knees upon the floor and, with the lantern and a magnifying lens,
-began to examine minutely the cracks between the stones. A few
-seconds sufficed to satisfy him, for he sprang to his feet again
-and put his glass in his pocket.
-
-"We have at least an hour before us," he remarked, "for they can
-hardly take any steps until the good pawnbroker is safely in bed.
-Then they will not lose a minute, for the sooner they do their
-work the longer time they will have for their escape. We are at
-present, Doctor--as no doubt you have divined--in the cellar of
-the City branch of one of the principal London banks. Mr.
-Merryweather is the chairman of directors, and he will explain to
-you that there are reasons why the more daring criminals of
-London should take a considerable interest in this cellar at
-present."
-
-"It is our French gold," whispered the director. "We have had
-several warnings that an attempt might be made upon it."
-
-"Your Fr

<TRUNCATED>

[49/50] [abbrv] incubator-ignite git commit: ignite-132 - pkg rename

Posted by se...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
index 26b1628..97546bc 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteEx.java
@@ -19,8 +19,8 @@ package org.apache.ignite.internal;
 
 import org.apache.ignite.*;
 import org.apache.ignite.cache.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.lang.*;
 import org.jetbrains.annotations.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/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 bfb199c..5c07dc8 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
@@ -24,6 +24,7 @@ import org.apache.ignite.cluster.*;
 import org.apache.ignite.configuration.*;
 import org.apache.ignite.internal.processors.*;
 import org.apache.ignite.internal.processors.cache.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.portable.*;
 import org.apache.ignite.internal.util.*;
 import org.apache.ignite.lang.*;
@@ -36,7 +37,6 @@ import org.apache.ignite.internal.product.*;
 import org.apache.ignite.spi.*;
 import org.apache.ignite.spi.authentication.*;
 import org.apache.ignite.spi.authentication.noop.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.managers.*;
 import org.apache.ignite.internal.managers.checkpoint.*;
 import org.apache.ignite.internal.managers.collision.*;
@@ -468,8 +468,9 @@ public class IgniteKernal extends ClusterGroupAdapter implements IgniteEx, Ignit
     @Override public Collection<String> getUserAttributesFormatted() {
         assert cfg != null;
 
-        return F.transform(cfg.getUserAttributes().entrySet(), new C1<Map.Entry<String, ?>, String>() {
-            @Override public String apply(Map.Entry<String, ?> e) {
+        return F.transform(cfg.getUserAttributes().entrySet(), new C1<Map.Entry<String,?>,String>() {
+            @Override
+            public String apply(Map.Entry<String,?> e) {
                 return e.getKey() + ", " + e.getValue().toString();
             }
         });

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoop.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoop.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoop.java
new file mode 100644
index 0000000..246c4ed
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoop.java
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+import org.apache.ignite.internal.*;
+import org.jetbrains.annotations.*;
+
+/**
+ * Hadoop facade providing access to GridGain Hadoop features.
+ */
+public interface GridHadoop {
+    /**
+     * Gets Hadoop module configuration.
+     *
+     * @return Hadoop module configuration.
+     */
+    public GridHadoopConfiguration configuration();
+
+    /**
+     * Generate next job ID.
+     *
+     * @return Next job ID.
+     */
+    public GridHadoopJobId nextJobId();
+
+    /**
+     * Submits job to job tracker.
+     *
+     * @param jobId Job ID to submit.
+     * @param jobInfo Job info to submit.
+     * @return Execution future.
+     */
+    public IgniteInternalFuture<?> submit(GridHadoopJobId jobId, GridHadoopJobInfo jobInfo);
+
+    /**
+     * Gets Hadoop job execution status.
+     *
+     * @param jobId Job ID to get status for.
+     * @return Job execution status or {@code null} in case job with the given ID is not found.
+     * @throws IgniteCheckedException If failed.
+     */
+    @Nullable public GridHadoopJobStatus status(GridHadoopJobId jobId) throws IgniteCheckedException;
+
+    /**
+     * Returns job counters.
+     *
+     * @param jobId Job ID to get counters for.
+     * @return Job counters object.
+     * @throws IgniteCheckedException If failed.
+     */
+    public GridHadoopCounters counters(GridHadoopJobId jobId) throws IgniteCheckedException;
+
+    /**
+     * Gets Hadoop finish future for particular job.
+     *
+     * @param jobId Job ID.
+     * @return Job finish future or {@code null} in case job with the given ID is not found.
+     * @throws IgniteCheckedException If failed.
+     */
+    @Nullable public IgniteInternalFuture<?> finishFuture(GridHadoopJobId jobId) throws IgniteCheckedException;
+
+    /**
+     * Kills job.
+     *
+     * @param jobId Job ID.
+     * @return {@code True} if job was killed.
+     * @throws IgniteCheckedException If failed.
+     */
+    public boolean kill(GridHadoopJobId jobId) throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopConfiguration.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopConfiguration.java
new file mode 100644
index 0000000..f66b95a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopConfiguration.java
@@ -0,0 +1,172 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+/**
+ * Hadoop configuration.
+ */
+public class GridHadoopConfiguration {
+    /** Default finished job info time-to-live. */
+    public static final long DFLT_FINISHED_JOB_INFO_TTL = 10_000;
+
+    /** Default value for external execution flag. */
+    public static final boolean DFLT_EXTERNAL_EXECUTION = false;
+
+    /** Default value for the max parallel tasks. */
+    public static final int DFLT_MAX_PARALLEL_TASKS = Runtime.getRuntime().availableProcessors();
+
+    /** Default value for the max task queue size. */
+    public static final int DFLT_MAX_TASK_QUEUE_SIZE = 1000;
+
+    /** Map reduce planner. */
+    private GridHadoopMapReducePlanner planner;
+
+    /** */
+    private boolean extExecution = DFLT_EXTERNAL_EXECUTION;
+
+    /** Finished job info TTL. */
+    private long finishedJobInfoTtl = DFLT_FINISHED_JOB_INFO_TTL;
+
+    /** */
+    private int maxParallelTasks = DFLT_MAX_PARALLEL_TASKS;
+
+    /** */
+    private int maxTaskQueueSize = DFLT_MAX_TASK_QUEUE_SIZE;
+
+    /**
+     * Default constructor.
+     */
+    public GridHadoopConfiguration() {
+        // No-op.
+    }
+
+    /**
+     * Copy constructor.
+     *
+     * @param cfg Configuration to copy.
+     */
+    public GridHadoopConfiguration(GridHadoopConfiguration cfg) {
+        // Preserve alphabetic order.
+        extExecution = cfg.isExternalExecution();
+        finishedJobInfoTtl = cfg.getFinishedJobInfoTtl();
+        planner = cfg.getMapReducePlanner();
+        maxParallelTasks = cfg.getMaxParallelTasks();
+        maxTaskQueueSize = cfg.getMaxTaskQueueSize();
+    }
+
+    /**
+     * Gets max number of local tasks that may be executed in parallel.
+     *
+     * @return Max number of local tasks that may be executed in parallel.
+     */
+    public int getMaxParallelTasks() {
+        return maxParallelTasks;
+    }
+
+    /**
+     * Sets max number of local tasks that may be executed in parallel.
+     *
+     * @param maxParallelTasks Max number of local tasks that may be executed in parallel.
+     */
+    public void setMaxParallelTasks(int maxParallelTasks) {
+        this.maxParallelTasks = maxParallelTasks;
+    }
+
+    /**
+     * Gets max task queue size.
+     *
+     * @return Max task queue size.
+     */
+    public int getMaxTaskQueueSize() {
+        return maxTaskQueueSize;
+    }
+
+    /**
+     * Sets max task queue size.
+     *
+     * @param maxTaskQueueSize Max task queue size.
+     */
+    public void setMaxTaskQueueSize(int maxTaskQueueSize) {
+        this.maxTaskQueueSize = maxTaskQueueSize;
+    }
+
+    /**
+     * Gets finished job info time-to-live in milliseconds.
+     *
+     * @return Finished job info time-to-live.
+     */
+    public long getFinishedJobInfoTtl() {
+        return finishedJobInfoTtl;
+    }
+
+    /**
+     * Sets finished job info time-to-live.
+     *
+     * @param finishedJobInfoTtl Finished job info time-to-live.
+     */
+    public void setFinishedJobInfoTtl(long finishedJobInfoTtl) {
+        this.finishedJobInfoTtl = finishedJobInfoTtl;
+    }
+
+    /**
+     * Gets external task execution flag. If {@code true}, hadoop job tasks will be executed in an external
+     * (relative to node) process.
+     *
+     * @return {@code True} if external execution.
+     */
+    public boolean isExternalExecution() {
+        return extExecution;
+    }
+
+    /**
+     * Sets external task execution flag.
+     *
+     * @param extExecution {@code True} if tasks should be executed in an external process.
+     * @see #isExternalExecution()
+     */
+    public void setExternalExecution(boolean extExecution) {
+        this.extExecution = extExecution;
+    }
+
+    /**
+     * Gets Hadoop map-reduce planner, a component which defines job execution plan based on job
+     * configuration and current grid topology.
+     *
+     * @return Map-reduce planner.
+     */
+    public GridHadoopMapReducePlanner getMapReducePlanner() {
+        return planner;
+    }
+
+    /**
+     * Sets Hadoop map-reduce planner, a component which defines job execution plan based on job
+     * configuration and current grid topology.
+     *
+     * @param planner Map-reduce planner.
+     */
+    public void setMapReducePlanner(GridHadoopMapReducePlanner planner) {
+        this.planner = planner;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridHadoopConfiguration.class, this, super.toString());
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounter.java
new file mode 100644
index 0000000..83902dd
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounter.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+/**
+ * Hadoop counter.
+ */
+public interface GridHadoopCounter {
+    /**
+     * Gets name.
+     *
+     * @return Name of the counter.
+     */
+    public String name();
+
+    /**
+     * Gets counter group.
+     *
+     * @return Counter group's name.
+     */
+    public String group();
+
+    /**
+     * Merge the given counter to this counter.
+     *
+     * @param cntr Counter to merge into this counter.
+     */
+    public void merge(GridHadoopCounter cntr);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounterWriter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounterWriter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounterWriter.java
new file mode 100644
index 0000000..af72e69
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounterWriter.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+
+/**
+ * The object that writes some system counters to some storage for each running job. This operation is a part of
+ * whole statistics collection process.
+ */
+public interface GridHadoopCounterWriter {
+    /**
+     * Writes counters of given job to some statistics storage.
+     *
+     * @param jobInfo Job info.
+     * @param jobId Job id.
+     * @param cntrs Counters.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void write(GridHadoopJobInfo jobInfo, GridHadoopJobId jobId, GridHadoopCounters cntrs) throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounters.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounters.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounters.java
new file mode 100644
index 0000000..91eb8a1
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopCounters.java
@@ -0,0 +1,49 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import java.util.*;
+
+/**
+ * Counters store.
+ */
+public interface GridHadoopCounters {
+    /**
+     * Returns counter for the specified group and counter name. Creates new if it does not exist.
+     *
+     * @param grp Counter group name.
+     * @param name Counter name.
+     * @param cls Class for new instance creation if it's needed.
+     * @return The counter that was found or added or {@code null} if create is false.
+     */
+    <T extends GridHadoopCounter> T counter(String grp, String name, Class<T> cls);
+
+    /**
+     * Returns all existing counters.
+     *
+     * @return Collection of counters.
+     */
+    Collection<GridHadoopCounter> all();
+
+    /**
+     * Merges all counters from another store with existing counters.
+     *
+     * @param other Counters to merge with.
+     */
+    void merge(GridHadoopCounters other);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileBlock.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileBlock.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileBlock.java
new file mode 100644
index 0000000..fae111a
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopFileBlock.java
@@ -0,0 +1,162 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.tostring.*;
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.io.*;
+import java.net.*;
+import java.util.*;
+
+/**
+ * Hadoop file block.
+ */
+public class GridHadoopFileBlock extends GridHadoopInputSplit {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    @GridToStringInclude
+    protected URI file;
+
+    /** */
+    @GridToStringInclude
+    protected long start;
+
+    /** */
+    @GridToStringInclude
+    protected long len;
+
+    /**
+     * Creates new file block.
+     */
+    public GridHadoopFileBlock() {
+        // No-op.
+    }
+
+    /**
+     * Creates new file block.
+     *
+     * @param hosts List of hosts where the block resides.
+     * @param file File URI.
+     * @param start Start position of the block in the file.
+     * @param len Length of the block.
+     */
+    public GridHadoopFileBlock(String[] hosts, URI file, long start, long len) {
+        A.notNull(hosts, "hosts", file, "file");
+
+        this.hosts = hosts;
+        this.file = file;
+        this.start = start;
+        this.len = len;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeObject(file());
+        out.writeLong(start());
+        out.writeLong(length());
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        file = (URI)in.readObject();
+        start = in.readLong();
+        len = in.readLong();
+    }
+
+    /**
+     * @return Length.
+     */
+    public long length() {
+        return len;
+    }
+
+    /**
+     * @param len New length.
+     */
+    public void length(long len) {
+        this.len = len;
+    }
+
+    /**
+     * @return Start.
+     */
+    public long start() {
+        return start;
+    }
+
+    /**
+     * @param start New start.
+     */
+    public void start(long start) {
+        this.start = start;
+    }
+
+    /**
+     * @return File.
+     */
+    public URI file() {
+        return file;
+    }
+
+    /**
+     * @param file New file.
+     */
+    public void file(URI file) {
+        this.file = file;
+    }
+
+    /**
+     * @param hosts New hosts.
+     */
+    public void hosts(String[] hosts) {
+        A.notNull(hosts, "hosts");
+
+        this.hosts = hosts;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof GridHadoopFileBlock))
+            return false;
+
+        GridHadoopFileBlock that = (GridHadoopFileBlock)o;
+
+        return len == that.len && start == that.start && file.equals(that.file);
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = file.hashCode();
+
+        res = 31 * res + (int)(start ^ (start >>> 32));
+        res = 31 * res + (int)(len ^ (len >>> 32));
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    public String toString() {
+        return S.toString(GridHadoopFileBlock.class, this, "hosts", Arrays.toString(hosts));
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopInputSplit.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopInputSplit.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopInputSplit.java
new file mode 100644
index 0000000..e68a6f5
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopInputSplit.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import java.io.*;
+
+/**
+ * Abstract fragment of an input data source.
+ */
+public abstract class GridHadoopInputSplit implements Externalizable {
+    /** */
+    protected String[] hosts;
+
+    /**
+     * Array of hosts where this input split resides.
+     *
+     * @return Hosts.
+     */
+    public String[] hosts() {
+        assert hosts != null;
+
+        return hosts;
+    }
+
+    /**
+     * This method must be implemented for purpose of internal implementation.
+     *
+     * @param obj Another object.
+     * @return {@code true} If objects are equal.
+     */
+    @Override public abstract boolean equals(Object obj);
+
+    /**
+     * This method must be implemented for purpose of internal implementation.
+     *
+     * @return Hash code of the object.
+     */
+    @Override public abstract int hashCode();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJob.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJob.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJob.java
new file mode 100644
index 0000000..a1ec9a8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJob.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+
+import java.util.*;
+
+/**
+ * Hadoop job.
+ */
+public interface GridHadoopJob {
+    /**
+     * Gets job ID.
+     *
+     * @return Job ID.
+     */
+    public GridHadoopJobId id();
+
+    /**
+     * Gets job information.
+     *
+     * @return Job information.
+     */
+    public GridHadoopJobInfo info();
+
+    /**
+     * Gets collection of input splits for this job.
+     *
+     * @return Input splits.
+     */
+    public Collection<GridHadoopInputSplit> input() throws IgniteCheckedException;
+
+    /**
+     * Returns context for task execution.
+     *
+     * @param info Task info.
+     * @return Task Context.
+     * @throws IgniteCheckedException If failed.
+     */
+    public GridHadoopTaskContext getTaskContext(GridHadoopTaskInfo info) throws IgniteCheckedException;
+
+    /**
+     * Does all the needed initialization for the job. Will be called on each node where tasks for this job must
+     * be executed.
+     * <p>
+     * If job is running in external mode this method will be called on instance in GridGain node with parameter
+     * {@code false} and on instance in external process with parameter {@code true}.
+     *
+     * @param external If {@code true} then this job instance resides in external process.
+     * @param locNodeId Local node ID.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void initialize(boolean external, UUID locNodeId) throws IgniteCheckedException;
+
+    /**
+     * Release all the resources.
+     * <p>
+     * If job is running in external mode this method will be called on instance in GridGain node with parameter
+     * {@code false} and on instance in external process with parameter {@code true}.
+     *
+     * @param external If {@code true} then this job instance resides in external process.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void dispose(boolean external) throws IgniteCheckedException;
+
+    /**
+     * Prepare local environment for the task.
+     *
+     * @param info Task info.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void prepareTaskEnvironment(GridHadoopTaskInfo info) throws IgniteCheckedException;
+
+    /**
+     * Cleans up local environment of the task.
+     *
+     * @param info Task info.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void cleanupTaskEnvironment(GridHadoopTaskInfo info) throws IgniteCheckedException;
+
+    /**
+     * Cleans up the job staging directory.
+     */
+    void cleanupStagingDirectory();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobId.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobId.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobId.java
new file mode 100644
index 0000000..5d0a9c4
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobId.java
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Job ID.
+ */
+public class GridHadoopJobId implements Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    private UUID nodeId;
+
+    /** */
+    private int jobId;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public GridHadoopJobId() {
+        // No-op.
+    }
+
+    /**
+     * @param nodeId Node ID.
+     * @param jobId Job ID.
+     */
+    public GridHadoopJobId(UUID nodeId, int jobId) {
+        this.nodeId = nodeId;
+        this.jobId = jobId;
+    }
+
+    public UUID globalId() {
+        return nodeId;
+    }
+
+    public int localId() {
+        return jobId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        U.writeUuid(out, nodeId);
+        out.writeInt(jobId);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        nodeId = U.readUuid(in);
+        jobId = in.readInt();
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (o == null || getClass() != o.getClass())
+            return false;
+
+        GridHadoopJobId that = (GridHadoopJobId) o;
+
+        if (jobId != that.jobId)
+            return false;
+
+        if (!nodeId.equals(that.nodeId))
+            return false;
+
+        return true;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        return 31 * nodeId.hashCode() + jobId;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return nodeId + "_" + jobId;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobInfo.java
new file mode 100644
index 0000000..9a891f4
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobInfo.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+
+/**
+ * Compact job description.
+ */
+public interface GridHadoopJobInfo extends Serializable {
+    /**
+     * Gets optional configuration property for the job.
+     *
+     * @param name Property name.
+     * @return Value or {@code null} if none.
+     */
+    @Nullable public String property(String name);
+
+    /**
+     * Checks whether job has combiner.
+     *
+     * @return {@code true} If job has combiner.
+     */
+    public boolean hasCombiner();
+
+    /**
+     * Checks whether job has reducer.
+     * Actual number of reducers will be in {@link GridHadoopMapReducePlan#reducers()}.
+     *
+     * @return Number of reducer.
+     */
+    public boolean hasReducer();
+
+    /**
+     * Creates new job instance for the given ID.
+     * {@link GridHadoopJobInfo} is reusable for multiple jobs while {@link GridHadoopJob} is for one job execution.
+     * This method will be called once for the same ID on one node, though it can be called on the same host
+     * multiple times from different processes (in case of multiple nodes on the same host or external execution).
+     *
+     * @param jobId Job ID.
+     * @param log Logger.
+     * @return Job.
+     * @throws IgniteCheckedException If failed.
+     */
+    GridHadoopJob createJob(GridHadoopJobId jobId, IgniteLogger log) throws IgniteCheckedException;
+
+    /**
+     * @return Number of reducers configured for job.
+     */
+    public int reducers();
+
+    /**
+     * Gets job name.
+     *
+     * @return Job name.
+     */
+    public String jobName();
+
+    /**
+     * Gets user name.
+     *
+     * @return User name.
+     */
+    public String user();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobPhase.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobPhase.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobPhase.java
new file mode 100644
index 0000000..cc122bb
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobPhase.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.internal.processors.hadoop;
+
+/**
+ * Job run phase.
+ */
+public enum GridHadoopJobPhase {
+    /** Job is running setup task. */
+    PHASE_SETUP,
+
+    /** Job is running map and combine tasks. */
+    PHASE_MAP,
+
+    /** Job has finished all map tasks and running reduce tasks. */
+    PHASE_REDUCE,
+
+    /** Job is stopping due to exception during any of the phases. */
+    PHASE_CANCELLING,
+
+    /** Job has finished execution. */
+    PHASE_COMPLETE
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobProperty.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobProperty.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobProperty.java
new file mode 100644
index 0000000..f324645
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobProperty.java
@@ -0,0 +1,138 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.jetbrains.annotations.*;
+
+/**
+ * Enumeration of optional properties supported by GridGain for Apache Hadoop.
+ */
+public enum GridHadoopJobProperty {
+    /**
+     * Initial size for hashmap which stores output of mapper and will be used as input of combiner.
+     * <p>
+     * Setting it right allows to avoid rehashing.
+     */
+    COMBINER_HASHMAP_SIZE,
+
+    /**
+     * Initial size for hashmap which stores output of mapper or combiner and will be used as input of reducer.
+     * <p>
+     * Setting it right allows to avoid rehashing.
+     */
+    PARTITION_HASHMAP_SIZE,
+
+    /**
+     * Specifies number of concurrently running mappers for external execution mode.
+     * <p>
+     * If not specified, defaults to {@code Runtime.getRuntime().availableProcessors()}.
+     */
+    EXTERNAL_CONCURRENT_MAPPERS,
+
+    /**
+     * Specifies number of concurrently running reducers for external execution mode.
+     * <p>
+     * If not specified, defaults to {@code Runtime.getRuntime().availableProcessors()}.
+     */
+    EXTERNAL_CONCURRENT_REDUCERS,
+
+    /**
+     * Delay in milliseconds after which GridGain server will reply job status.
+     */
+    JOB_STATUS_POLL_DELAY,
+
+    /**
+     * Size in bytes of single memory page which will be allocated for data structures in shuffle.
+     * <p>
+     * By default is {@code 32 * 1024}.
+     */
+    SHUFFLE_OFFHEAP_PAGE_SIZE,
+
+    /**
+     * If set to {@code true} then input for combiner will not be sorted by key.
+     * Internally hash-map will be used instead of sorted one, so {@link Object#equals(Object)}
+     * and {@link Object#hashCode()} methods of key must be implemented consistently with
+     * comparator for that type. Grouping comparator is not supported if this setting is {@code true}.
+     * <p>
+     * By default is {@code false}.
+     */
+    SHUFFLE_COMBINER_NO_SORTING,
+
+    /**
+     * If set to {@code true} then input for reducer will not be sorted by key.
+     * Internally hash-map will be used instead of sorted one, so {@link Object#equals(Object)}
+     * and {@link Object#hashCode()} methods of key must be implemented consistently with
+     * comparator for that type. Grouping comparator is not supported if this setting is {@code true}.
+     * <p>
+     * By default is {@code false}.
+     */
+    SHUFFLE_REDUCER_NO_SORTING;
+
+    /** */
+    private final String ptyName;
+
+    /**
+     *
+     */
+    GridHadoopJobProperty() {
+        ptyName = "gridgain." + name().toLowerCase().replace('_', '.');
+    }
+
+    /**
+     * @return Property name.
+     */
+    public String propertyName() {
+        return ptyName;
+    }
+
+    /**
+     * @param jobInfo Job info.
+     * @param pty Property.
+     * @param dflt Default value.
+     * @return Property value.
+     */
+    public static String get(GridHadoopJobInfo jobInfo, GridHadoopJobProperty pty, @Nullable String dflt) {
+        String res = jobInfo.property(pty.propertyName());
+
+        return res == null ? dflt : res;
+    }
+
+    /**
+     * @param jobInfo Job info.
+     * @param pty Property.
+     * @param dflt Default value.
+     * @return Property value.
+     */
+    public static int get(GridHadoopJobInfo jobInfo, GridHadoopJobProperty pty, int dflt) {
+        String res = jobInfo.property(pty.propertyName());
+
+        return res == null ? dflt : Integer.parseInt(res);
+    }
+
+    /**
+     * @param jobInfo Job info.
+     * @param pty Property.
+     * @param dflt Default value.
+     * @return Property value.
+     */
+    public static boolean get(GridHadoopJobInfo jobInfo, GridHadoopJobProperty pty, boolean dflt) {
+        String res = jobInfo.property(pty.propertyName());
+
+        return res == null ? dflt : Boolean.parseBoolean(res);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobStatus.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobStatus.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobStatus.java
new file mode 100644
index 0000000..02ea883
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopJobStatus.java
@@ -0,0 +1,207 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+
+import java.io.*;
+
+/**
+ * Hadoop job status.
+ */
+public class GridHadoopJobStatus implements Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** Job ID. */
+    private GridHadoopJobId jobId;
+
+    /** Job name. */
+    private String jobName;
+
+    /** User. */
+    private String usr;
+
+    /** Pending mappers count. */
+    private int pendingMapperCnt;
+
+    /** Pending reducers count. */
+    private int pendingReducerCnt;
+
+    /** Total mappers count. */
+    private int totalMapperCnt;
+
+    /** Total reducers count. */
+    private int totalReducerCnt;
+    /** Phase. */
+    private GridHadoopJobPhase jobPhase;
+
+    /** */
+    private boolean failed;
+
+    /** Version. */
+    private long ver;
+
+    /**
+     * {@link Externalizable} support.
+     */
+    public GridHadoopJobStatus() {
+        // No-op.
+    }
+
+    /**
+     * Constructor.
+     *
+     * @param jobId Job ID.
+     * @param jobName Job name.
+     * @param usr User.
+     * @param pendingMapperCnt Pending mappers count.
+     * @param pendingReducerCnt Pending reducers count.
+     * @param totalMapperCnt Total mappers count.
+     * @param totalReducerCnt Total reducers count.
+     * @param jobPhase Job phase.
+     * @param failed Failed.
+     * @param ver Version.
+     */
+    public GridHadoopJobStatus(
+        GridHadoopJobId jobId,
+        String jobName,
+        String usr,
+        int pendingMapperCnt,
+        int pendingReducerCnt,
+        int totalMapperCnt,
+        int totalReducerCnt,
+        GridHadoopJobPhase jobPhase,
+        boolean failed,
+        long ver
+    ) {
+        this.jobId = jobId;
+        this.jobName = jobName;
+        this.usr = usr;
+        this.pendingMapperCnt = pendingMapperCnt;
+        this.pendingReducerCnt = pendingReducerCnt;
+        this.totalMapperCnt = totalMapperCnt;
+        this.totalReducerCnt = totalReducerCnt;
+        this.jobPhase = jobPhase;
+        this.failed = failed;
+        this.ver = ver;
+    }
+
+    /**
+     * @return Job ID.
+     */
+    public GridHadoopJobId jobId() {
+        return jobId;
+    }
+
+    /**
+     * @return Job name.
+     */
+    public String jobName() {
+        return jobName;
+    }
+
+    /**
+     * @return User.
+     */
+    public String user() {
+        return usr;
+    }
+
+    /**
+     * @return Pending mappers count.
+     */
+    public int pendingMapperCnt() {
+        return pendingMapperCnt;
+    }
+
+    /**
+     * @return Pending reducers count.
+     */
+    public int pendingReducerCnt() {
+        return pendingReducerCnt;
+    }
+
+    /**
+     * @return Total mappers count.
+     */
+    public int totalMapperCnt() {
+        return totalMapperCnt;
+    }
+
+    /**
+     * @return Total reducers count.
+     */
+    public int totalReducerCnt() {
+        return totalReducerCnt;
+    }
+
+    /**
+     * @return Version.
+     */
+    public long version() {
+        return ver;
+    }
+
+    /**
+     * @return Job phase.
+     */
+    public GridHadoopJobPhase jobPhase() {
+        return jobPhase;
+    }
+
+    /**
+     * @return {@code true} If the job failed.
+     */
+    public boolean isFailed() {
+        return failed;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridHadoopJobStatus.class, this);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeObject(jobId);
+        U.writeString(out, jobName);
+        U.writeString(out, usr);
+        out.writeInt(pendingMapperCnt);
+        out.writeInt(pendingReducerCnt);
+        out.writeInt(totalMapperCnt);
+        out.writeInt(totalReducerCnt);
+        out.writeObject(jobPhase);
+        out.writeBoolean(failed);
+        out.writeLong(ver);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        jobId = (GridHadoopJobId)in.readObject();
+        jobName = U.readString(in);
+        usr = U.readString(in);
+        pendingMapperCnt = in.readInt();
+        pendingReducerCnt = in.readInt();
+        totalMapperCnt = in.readInt();
+        totalReducerCnt = in.readInt();
+        jobPhase = (GridHadoopJobPhase)in.readObject();
+        failed = in.readBoolean();
+        ver = in.readLong();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlan.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlan.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlan.java
new file mode 100644
index 0000000..2fd5160
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlan.java
@@ -0,0 +1,80 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Map-reduce job execution plan.
+ */
+public interface GridHadoopMapReducePlan extends Serializable {
+    /**
+     * Gets collection of file blocks for which mappers should be executed.
+     *
+     * @param nodeId Node ID to check.
+     * @return Collection of file blocks or {@code null} if no mappers should be executed on given node.
+     */
+    @Nullable public Collection<GridHadoopInputSplit> mappers(UUID nodeId);
+
+    /**
+     * Gets reducer IDs that should be started on given node.
+     *
+     * @param nodeId Node ID to check.
+     * @return Array of reducer IDs.
+     */
+    @Nullable public int[] reducers(UUID nodeId);
+
+    /**
+     * Gets collection of all node IDs involved in map part of job execution.
+     *
+     * @return Collection of node IDs.
+     */
+    public Collection<UUID> mapperNodeIds();
+
+    /**
+     * Gets collection of all node IDs involved in reduce part of job execution.
+     *
+     * @return Collection of node IDs.
+     */
+    public Collection<UUID> reducerNodeIds();
+
+    /**
+     * Gets overall number of mappers for the job.
+     *
+     * @return Number of mappers.
+     */
+    public int mappers();
+
+    /**
+     * Gets overall number of reducers for the job.
+     *
+     * @return Number of reducers.
+     */
+    public int reducers();
+
+    /**
+     * Gets node ID for reducer.
+     *
+     * @param reducer Reducer.
+     * @return Node ID.
+     */
+    public UUID nodeForReducer(int reducer);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlanner.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlanner.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlanner.java
new file mode 100644
index 0000000..56c6913
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopMapReducePlanner.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+import org.apache.ignite.cluster.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * Map-reduce execution planner.
+ */
+public interface GridHadoopMapReducePlanner {
+    /**
+     * Prepares map-reduce execution plan for the given job and topology.
+     *
+     * @param job Job.
+     * @param top Topology.
+     * @param oldPlan Old plan in case of partial failure.
+     * @return Map reduce plan.
+     */
+    public GridHadoopMapReducePlan preparePlan(GridHadoopJob job, Collection<ClusterNode> top,
+        @Nullable GridHadoopMapReducePlan oldPlan) throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPartitioner.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPartitioner.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPartitioner.java
new file mode 100644
index 0000000..fcde424
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopPartitioner.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+/**
+ * Partitioner.
+ */
+public interface GridHadoopPartitioner {
+    /**
+     * Gets partition which is actually a reducer index for the given key and value pair.
+     *
+     * @param key Key.
+     * @param val Value.
+     * @param parts Number of partitions.
+     * @return Partition.
+     */
+    public int partition(Object key, Object val, int parts);
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerialization.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerialization.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerialization.java
new file mode 100644
index 0000000..5bc8806
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopSerialization.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+
+/**
+ * Hadoop serialization. Not thread safe object, must be created for each thread or correctly synchronized.
+ */
+public interface GridHadoopSerialization extends AutoCloseable {
+    /**
+     * Writes the given object to output.
+     *
+     * @param out Output.
+     * @param obj Object to serialize.
+     * @throws IgniteCheckedException If failed.
+     */
+    public void write(DataOutput out, Object obj) throws IgniteCheckedException;
+
+    /**
+     * Reads object from the given input optionally reusing given instance.
+     *
+     * @param in Input.
+     * @param obj Object.
+     * @return New object or reused instance.
+     * @throws IgniteCheckedException If failed.
+     */
+    public Object read(DataInput in, @Nullable Object obj) throws IgniteCheckedException;
+
+    /**
+     * Finalise the internal objects.
+     *
+     * @throws IgniteCheckedException If failed.
+     */
+    @Override public void close() throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTask.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTask.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTask.java
new file mode 100644
index 0000000..2c00811
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTask.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+
+import java.io.*;
+
+/**
+ * Hadoop task.
+ */
+public abstract class GridHadoopTask {
+    /** */
+    private GridHadoopTaskInfo taskInfo;
+
+    /**
+     * Creates task.
+     *
+     * @param taskInfo Task info.
+     */
+    protected GridHadoopTask(GridHadoopTaskInfo taskInfo) {
+        assert taskInfo != null;
+
+        this.taskInfo = taskInfo;
+    }
+
+    /**
+     * For {@link Externalizable}.
+     */
+    @SuppressWarnings("ConstructorNotProtectedInAbstractClass")
+    public GridHadoopTask() {
+        // No-op.
+    }
+
+    /**
+     * Gets task info.
+     *
+     * @return Task info.
+     */
+    public GridHadoopTaskInfo info() {
+        return taskInfo;
+    }
+
+    /**
+     * Runs task.
+     *
+     * @param taskCtx Context.
+     * @throws org.apache.ignite.IgniteInterruptedException If interrupted.
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract void run(GridHadoopTaskContext taskCtx) throws IgniteCheckedException;
+
+    /**
+     * Interrupts task execution.
+     */
+    public abstract void cancel();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskContext.java
new file mode 100644
index 0000000..bedd93b
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskContext.java
@@ -0,0 +1,189 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+
+import java.util.*;
+
+/**
+ * Task context.
+ */
+public abstract class GridHadoopTaskContext {
+    /** */
+    private final GridHadoopJob job;
+
+    /** */
+    private GridHadoopTaskInput input;
+
+    /** */
+    private GridHadoopTaskOutput output;
+
+    /** */
+    private GridHadoopTaskInfo taskInfo;
+
+    /**
+     * @param taskInfo Task info.
+     * @param job Job.
+     */
+    protected GridHadoopTaskContext(GridHadoopTaskInfo taskInfo, GridHadoopJob job) {
+        this.taskInfo = taskInfo;
+        this.job = job;
+    }
+
+    /**
+     * Gets task info.
+     *
+     * @return Task info.
+     */
+    public GridHadoopTaskInfo taskInfo() {
+        return taskInfo;
+    }
+
+    /**
+     * Set a new task info.
+     *
+     * @param info Task info.
+     */
+    public void taskInfo(GridHadoopTaskInfo info) {
+        taskInfo = info;
+    }
+
+    /**
+     * Gets task output.
+     *
+     * @return Task output.
+     */
+    public GridHadoopTaskOutput output() {
+        return output;
+    }
+
+    /**
+     * Gets task input.
+     *
+     * @return Task input.
+     */
+    public GridHadoopTaskInput input() {
+        return input;
+    }
+
+    /**
+     * @return Job.
+     */
+    public GridHadoopJob job() {
+        return job;
+    }
+
+    /**
+     * Gets counter for the given name.
+     *
+     * @param grp Counter group's name.
+     * @param name Counter name.
+     * @return Counter.
+     */
+    public abstract <T extends GridHadoopCounter> T counter(String grp, String name, Class<T> cls);
+
+    /**
+     * Gets all known counters.
+     *
+     * @return Unmodifiable collection of counters.
+     */
+    public abstract GridHadoopCounters counters();
+
+    /**
+     * Sets input of the task.
+     *
+     * @param in Input.
+     */
+    public void input(GridHadoopTaskInput in) {
+        input = in;
+    }
+
+    /**
+     * Sets output of the task.
+     *
+     * @param out Output.
+     */
+    public void output(GridHadoopTaskOutput out) {
+        output = out;
+    }
+
+    /**
+     * Gets partitioner.
+     *
+     * @return Partitioner.
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract GridHadoopPartitioner partitioner() throws IgniteCheckedException;
+
+    /**
+     * Gets serializer for values.
+     *
+     * @return Serializer for keys.
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract GridHadoopSerialization keySerialization() throws IgniteCheckedException;
+
+    /**
+     * Gets serializer for values.
+     *
+     * @return Serializer for values.
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract GridHadoopSerialization valueSerialization() throws IgniteCheckedException;
+
+    /**
+     * Gets sorting comparator.
+     *
+     * @return Comparator for sorting.
+     */
+    public abstract Comparator<Object> sortComparator();
+
+    /**
+     * Gets comparator for grouping on combine or reduce operation.
+     *
+     * @return Comparator.
+     */
+    public abstract Comparator<Object> groupComparator();
+
+    /**
+     * Execute current task.
+     *
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract void run() throws IgniteCheckedException;
+
+    /**
+     * Cancel current task execution.
+     */
+    public abstract void cancel();
+
+    /**
+     * Prepare local environment for the task.
+     *
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract void prepareTaskEnvironment() throws IgniteCheckedException;
+
+    /**
+     *  Cleans up local environment of the task.
+     *
+     * @throws IgniteCheckedException If failed.
+     */
+    public abstract void cleanupTaskEnvironment() throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInfo.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInfo.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInfo.java
new file mode 100644
index 0000000..75e06ca
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInfo.java
@@ -0,0 +1,153 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.internal.util.typedef.internal.*;
+import org.jetbrains.annotations.*;
+
+import java.io.*;
+
+/**
+ * Task info.
+ */
+public class GridHadoopTaskInfo implements Externalizable {
+    /** */
+    private static final long serialVersionUID = 0L;
+
+    /** */
+    private GridHadoopTaskType type;
+
+    /** */
+    private GridHadoopJobId jobId;
+
+    /** */
+    private int taskNum;
+
+    /** */
+    private int attempt;
+
+    /** */
+    private GridHadoopInputSplit inputSplit;
+
+    /**
+     * For {@link Externalizable}.
+     */
+    public GridHadoopTaskInfo() {
+        // No-op.
+    }
+
+    /**
+     * Creates new task info.
+     *
+     * @param type Task type.
+     * @param jobId Job id.
+     * @param taskNum Task number.
+     * @param attempt Attempt for this task.
+     * @param inputSplit Input split.
+     */
+    public GridHadoopTaskInfo(GridHadoopTaskType type, GridHadoopJobId jobId, int taskNum, int attempt,
+        @Nullable GridHadoopInputSplit inputSplit) {
+        this.type = type;
+        this.jobId = jobId;
+        this.taskNum = taskNum;
+        this.attempt = attempt;
+        this.inputSplit = inputSplit;
+    }
+
+    /** {@inheritDoc} */
+    @Override public void writeExternal(ObjectOutput out) throws IOException {
+        out.writeByte(type.ordinal());
+        out.writeObject(jobId);
+        out.writeInt(taskNum);
+        out.writeInt(attempt);
+        out.writeObject(inputSplit);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
+        type = GridHadoopTaskType.fromOrdinal(in.readByte());
+        jobId = (GridHadoopJobId)in.readObject();
+        taskNum = in.readInt();
+        attempt = in.readInt();
+        inputSplit = (GridHadoopInputSplit)in.readObject();
+    }
+
+    /**
+     * @return Type.
+     */
+    public GridHadoopTaskType type() {
+        return type;
+    }
+
+    /**
+     * @return Job id.
+     */
+    public GridHadoopJobId jobId() {
+        return jobId;
+    }
+
+    /**
+     * @return Task number.
+     */
+    public int taskNumber() {
+        return taskNum;
+    }
+
+    /**
+     * @return Attempt.
+     */
+    public int attempt() {
+        return attempt;
+    }
+
+    /**
+     * @return Input split.
+     */
+    @Nullable public GridHadoopInputSplit inputSplit() {
+        return inputSplit;
+    }
+
+    /** {@inheritDoc} */
+    @Override public boolean equals(Object o) {
+        if (this == o)
+            return true;
+
+        if (!(o instanceof GridHadoopTaskInfo))
+            return false;
+
+        GridHadoopTaskInfo that = (GridHadoopTaskInfo)o;
+
+        return attempt == that.attempt && taskNum == that.taskNum && jobId.equals(that.jobId) && type == that.type;
+    }
+
+    /** {@inheritDoc} */
+    @Override public int hashCode() {
+        int res = type.hashCode();
+
+        res = 31 * res + jobId.hashCode();
+        res = 31 * res + taskNum;
+        res = 31 * res + attempt;
+
+        return res;
+    }
+
+    /** {@inheritDoc} */
+    @Override public String toString() {
+        return S.toString(GridHadoopTaskInfo.class, this);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInput.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInput.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInput.java
new file mode 100644
index 0000000..479cf6d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskInput.java
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+
+import java.util.*;
+
+/**
+ * Task input.
+ */
+public interface GridHadoopTaskInput extends AutoCloseable {
+    /**
+     * Moves cursor to the next element.
+     *
+     * @return {@code false} If input is exceeded.
+     */
+    boolean next();
+
+    /**
+     * Gets current key.
+     *
+     * @return Key.
+     */
+    Object key();
+
+    /**
+     * Gets values for current key.
+     *
+     * @return Values.
+     */
+    Iterator<?> values();
+
+    /**
+     * Closes input.
+     *
+     * @throws IgniteCheckedException If failed.
+     */
+    @Override public void close() throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskOutput.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskOutput.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskOutput.java
new file mode 100644
index 0000000..6480d8d
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskOutput.java
@@ -0,0 +1,40 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.apache.ignite.*;
+
+/**
+ * Task output.
+ */
+public interface GridHadoopTaskOutput extends AutoCloseable {
+    /**
+     * Writes key and value to the output.
+     *
+     * @param key Key.
+     * @param val Value.
+     */
+    public void write(Object key, Object val) throws IgniteCheckedException;
+
+    /**
+     * Closes output.
+     *
+     * @throws IgniteCheckedException If failed.
+     */
+    @Override public void close() throws IgniteCheckedException;
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskType.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskType.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskType.java
new file mode 100644
index 0000000..404d6b8
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/GridHadoopTaskType.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.hadoop;
+
+import org.jetbrains.annotations.*;
+
+/**
+* Task type.
+*/
+public enum GridHadoopTaskType {
+    /** Setup task. */
+    SETUP,
+
+    /** Map task. */
+    MAP,
+
+    /** Reduce task. */
+    REDUCE,
+
+    /** Combine task. */
+    COMBINE,
+
+    /** Commit task. */
+    COMMIT,
+
+    /** Abort task. */
+    ABORT;
+
+    /** Enumerated values. */
+    private static final GridHadoopTaskType[] VALS = values();
+
+    /**
+     * Efficiently gets enumerated value from its ordinal.
+     *
+     * @param ord Ordinal value.
+     * @return Enumerated value.
+     */
+    @Nullable public static GridHadoopTaskType fromOrdinal(byte ord) {
+        return ord >= 0 && ord < VALS.length ? VALS[ord] : null;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopNoopProcessor.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopNoopProcessor.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopNoopProcessor.java
index c861ea8..d0ef4ce 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopNoopProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopNoopProcessor.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.processors.hadoop;
 
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.util.future.*;
 
 /**

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessorAdapter.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessorAdapter.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessorAdapter.java
index 05e0e35..c2cf542 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessorAdapter.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/IgniteHadoopProcessorAdapter.java
@@ -20,7 +20,6 @@ package org.apache.ignite.internal.processors.hadoop;
 import org.apache.ignite.*;
 import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.processors.*;
-import org.apache.ignite.hadoop.*;
 
 /**
  * Hadoop processor.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/package.html
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/package.html b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/package.html
new file mode 100644
index 0000000..6c751ed
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/hadoop/package.html
@@ -0,0 +1,24 @@
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  -->
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<body>
+    <!-- Package description. -->
+    Contains Hadoop APIs.
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocol.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocol.java b/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocol.java
index 2b286dc..2b8dc10 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocol.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocol.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.client.hadoop;
 
 import org.apache.hadoop.conf.*;
+import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.*;
 import org.apache.hadoop.io.*;
 import org.apache.hadoop.ipc.*;
@@ -32,7 +33,6 @@ import org.apache.hadoop.security.token.*;
 import org.apache.ignite.*;
 import org.apache.ignite.client.*;
 import org.apache.ignite.client.hadoop.counter.*;
-import org.apache.ignite.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.proto.*;
 import org.apache.ignite.internal.util.typedef.internal.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolProvider.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolProvider.java b/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolProvider.java
index 29967c7..ff01bf8 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolProvider.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/GridHadoopClientProtocolProvider.java
@@ -21,9 +21,9 @@ import org.apache.hadoop.conf.*;
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.protocol.*;
 import org.apache.ignite.*;
-import org.apache.ignite.internal.*;
 import org.apache.ignite.client.*;
 import org.apache.ignite.client.marshaller.optimized.*;
+import org.apache.ignite.internal.*;
 import org.apache.ignite.internal.util.future.*;
 import org.apache.ignite.internal.util.typedef.*;
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/counter/GridHadoopClientCounters.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/counter/GridHadoopClientCounters.java b/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/counter/GridHadoopClientCounters.java
index d5a3e90..9f4ec02 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/counter/GridHadoopClientCounters.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/client/hadoop/counter/GridHadoopClientCounters.java
@@ -19,7 +19,7 @@ package org.apache.ignite.client.hadoop.counter;
 
 import org.apache.hadoop.mapreduce.*;
 import org.apache.hadoop.mapreduce.counters.*;
-import org.apache.ignite.hadoop.*;
+import org.apache.ignite.internal.processors.hadoop.*;
 import org.apache.ignite.internal.processors.hadoop.counter.*;
 import org.apache.ignite.internal.processors.hadoop.v2.*;
 import org.apache.ignite.internal.util.typedef.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v1/GridGgfsHadoopFileSystem.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v1/GridGgfsHadoopFileSystem.java b/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v1/GridGgfsHadoopFileSystem.java
index 5c28e45..21a5942 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v1/GridGgfsHadoopFileSystem.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v1/GridGgfsHadoopFileSystem.java
@@ -27,8 +27,8 @@ import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.fs.common.*;
-import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.fs.hadoop.*;
+import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/36b439d9/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v2/GridGgfsHadoopFileSystem.java
----------------------------------------------------------------------
diff --git a/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v2/GridGgfsHadoopFileSystem.java b/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v2/GridGgfsHadoopFileSystem.java
index 04f2d46..f239471 100644
--- a/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v2/GridGgfsHadoopFileSystem.java
+++ b/modules/hadoop/src/main/java/org/apache/ignite/fs/hadoop/v2/GridGgfsHadoopFileSystem.java
@@ -27,8 +27,8 @@ import org.apache.hadoop.util.*;
 import org.apache.ignite.*;
 import org.apache.ignite.fs.*;
 import org.apache.ignite.internal.fs.common.*;
-import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.fs.hadoop.*;
+import org.apache.ignite.internal.processors.fs.*;
 import org.apache.ignite.internal.util.typedef.*;
 import org.apache.ignite.internal.util.typedef.internal.*;
 import org.jetbrains.annotations.*;