http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/aop/src/test/java/org/apache/loadtests/direct/singlesplit/SingleSplitsLoadTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/aop/src/test/java/org/apache/loadtests/gridify/GridifySingleSplitLoadTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/internal/TaskEventSubjectIdSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcComplexQuerySelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcEmptyCacheSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcLocalCachesSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcMetadataSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcPreparedStatementSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcResultSetSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/clients/src/test/java/org/apache/ignite/jdbc/JdbcStatementSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
index e59deff,5ec0924..a07092b
--- 
a/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
@@@ -605,10 -641,11 +603,10 @@@ public class IgniteConfiguration 
          smtpSsl = cfg.isSmtpSsl();
          smtpStartTls = cfg.isSmtpStartTls();
          streamerCfg = cfg.getStreamerConfiguration();
 -        sysSvc = cfg.getSystemExecutorService();
 -        sysSvcShutdown = cfg.getSystemExecutorServiceShutdown();
 +        sysPoolSize = cfg.getSystemThreadPoolSize();
          timeSrvPortBase = cfg.getTimeServerPortBase();
          timeSrvPortRange = cfg.getTimeServerPortRange();
-         txCfg = cfg.getTransactionsConfiguration();
+         txCfg = cfg.getTransactionConfiguration();
          userAttrs = cfg.getUserAttributes();
          waitForSegOnStart = cfg.isWaitForSegmentOnStart();
          warmupClos = cfg.getWarmupClosure();

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

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

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/internal/processors/closure/GridClosureProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/internal/processors/fs/GridGgfsDataManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/internal/processors/job/GridJobProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/GridCancelUnusedJobSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/GridDiscoveryEventSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/GridStartStopSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
index 7875b9f,c8a7283..f5ae736
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/GridCacheDeploymentSelfTest.java
@@@ -91,7 -91,9 +91,7 @@@ public class GridCacheDeploymentSelfTes
  
          cfg.setDiscoverySpi(disco);
  
-         cfg.setMarshaller(new IgniteOptimizedMarshaller(false));
 -        cfg.setRestEnabled(false);
 -
+         cfg.setMarshaller(new OptimizedMarshaller(false));
  
          return cfg;
      }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
index d22b73b,4862a18..2c6e70f
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/datastructures/GridCacheQueueMultiNodeAbstractSelfTest.java
@@@ -91,11 -92,25 +91,11 @@@ public abstract class GridCacheQueueMul
      @Override protected IgniteConfiguration getConfiguration(String gridName) 
throws Exception {
          IgniteConfiguration cfg = super.getConfiguration(gridName);
  
 -        cfg.setExecutorService(
 -            new ThreadPoolExecutor(
 -                RETRIES * 2,
 -                RETRIES * 2,
 -                0, TimeUnit.MILLISECONDS,
 -                new LinkedBlockingQueue<Runnable>()));
 +        cfg.setPublicThreadPoolSize(RETRIES * 2);
  
 -        cfg.setExecutorServiceShutdown(true);
 -
 -        cfg.setSystemExecutorService(
 -            new ThreadPoolExecutor(
 -                RETRIES * 2,
 -                RETRIES * 2,
 -                0, TimeUnit.MILLISECONDS,
 -                new LinkedBlockingQueue<Runnable>()));
 -
 -        cfg.setSystemExecutorServiceShutdown(true);
 +        cfg.setSystemThreadPoolSize(RETRIES * 2);
  
-         cfg.setMarshaller(new IgniteOptimizedMarshaller(false));
+         cfg.setMarshaller(new OptimizedMarshaller(false));
  
          return cfg;
      }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
index a90add8,69fab87..ad16abc
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/GridCachePreloadLifecycleAbstractTest.java
@@@ -26,11 -26,13 +26,11 @@@ import org.apache.ignite.spi.discovery.
  import org.apache.ignite.spi.discovery.tcp.ipfinder.*;
  import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
  import org.apache.ignite.testframework.junits.common.*;
 -import org.apache.ignite.thread.*;
  
  import java.io.*;
 -import java.util.concurrent.*;
  
  import static org.apache.ignite.cache.CachePreloadMode.*;
- import static org.apache.ignite.events.IgniteEventType.*;
+ import static org.apache.ignite.events.EventType.*;
  
  /**
   * Tests for cache preloader.
@@@ -77,9 -79,10 +77,9 @@@ public abstract class GridCachePreloadL
  
          c.setIncludeEventTypes(EVT_TASK_FAILED, EVT_TASK_FINISHED, 
EVT_JOB_MAPPED);
          c.setIncludeProperties();
-         c.setDeploymentMode(IgniteDeploymentMode.SHARED);
+         c.setDeploymentMode(DeploymentMode.SHARED);
          c.setNetworkTimeout(10000);
-         c.setMarshaller(new IgniteOptimizedMarshaller(false));
 -        c.setRestEnabled(false);
+         c.setMarshaller(new OptimizedMarshaller(false));
  
  //        
c.setPeerClassLoadingLocalClassPathExclude(GridCachePreloadLifecycleAbstractTest.class.getName(),
  //            MyValue.class.getName());

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/distributed/near/GridCacheNearReaderPreloadSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/dataload/GridDataLoaderPerformanceTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/fs/GridCacheGgfsPerBlockLruEvictionPolicySelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/fs/GridGgfsAbstractSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/processors/fs/GridGgfsModesSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/internal/util/GridStartupWithUndefinedIgniteHomeSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
index 08caa08,61228a2..ad57ace
--- 
a/modules/core/src/test/java/org/apache/ignite/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/loadtests/direct/redeploy/GridSingleSplitsRedeployLoadTest.java
@@@ -57,7 -57,9 +57,7 @@@ public class GridSingleSplitsRedeployLo
  
          cfg.setDiscoverySpi(discoSpi);
  
-         cfg.setDeploymentMode(IgniteDeploymentMode.CONTINUOUS);
 -        
((ThreadPoolExecutor)cfg.getExecutorService()).prestartAllCoreThreads();
 -
+         cfg.setDeploymentMode(DeploymentMode.CONTINUOUS);
  
          return cfg;
      }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionCancelSiblingsFromFutureSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionCancelSiblingsFromJobSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionCancelSiblingsFromTaskSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionJobWaitTaskAttributeSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionSetFutureAttributeSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionSetFutureAttributeWaitListenerSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionSetJobAttributeSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionSetJobAttributeWaitListenerSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/session/GridSessionWaitAttributeSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/spi/GridTcpSpiForwardingSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/spi/GridTcpSpiForwardingSelfTest.java
index b7bf5a7,b7f95e4..137d2db
--- 
a/modules/core/src/test/java/org/apache/ignite/spi/GridTcpSpiForwardingSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/GridTcpSpiForwardingSelfTest.java
@@@ -98,7 -98,8 +98,7 @@@ public class GridTcpSpiForwardingSelfTe
          spi.setLocalPortRange(1);
          cfg.setDiscoverySpi(spi);
          cfg.setLocalHost("127.0.0.1");
-         cfg.setMarshaller(new IgniteOptimizedMarshaller(false));
 -        cfg.setRestEnabled(false);
+         cfg.setMarshaller(new OptimizedMarshaller(false));
  
          TcpCommunicationSpi commSpi = new TcpCommunicationSpi() {
              @Override protected GridCommunicationClient 
createTcpClient(ClusterNode node) throws IgniteCheckedException {

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/spi/discovery/tcp/TcpDiscoverySelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index a563686,bc288d4..9766a9d
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@@ -1109,7 -1108,9 +1108,7 @@@ public abstract class GridAbstractTest 
  
          cfg.setCheckpointSpi(cpSpi);
  
-         cfg.setIncludeEventTypes(IgniteEventType.EVTS_ALL);
 -        cfg.setRestEnabled(false);
 -
+         cfg.setIncludeEventTypes(EventType.EVTS_ALL);
  
          return cfg;
      }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopDualAbstractSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopDualAbstractSelfTest.java
index 0000000,d797346..602548f
mode 000000,100644..100644
--- 
a/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopDualAbstractSelfTest.java
+++ 
b/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopDualAbstractSelfTest.java
@@@ -1,0 -1,304 +1,303 @@@
+ /*
+  * 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.ignitefs;
+ 
+ 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.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.apache.ignite.spi.discovery.tcp.*;
+ import org.apache.ignite.spi.discovery.tcp.ipfinder.vm.*;
+ import org.apache.ignite.testframework.*;
+ import org.jetbrains.annotations.*;
+ 
+ import java.io.*;
+ import java.net.*;
+ import java.util.*;
+ import java.util.concurrent.*;
+ 
+ import static org.apache.ignite.cache.CacheAtomicityMode.*;
+ import static org.apache.ignite.cache.CacheMode.*;
+ import static org.apache.ignite.ignitefs.IgniteFsMode.*;
+ import static org.apache.ignite.ignitefs.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.
+  */
+ public abstract class GridGgfsHadoopDualAbstractSelfTest extends 
GridGgfsCommonAbstractTest {
+     /** GGFS block size. */
+     protected static final int GGFS_BLOCK_SIZE = 512 * 1024;
+ 
+     /** Amount of blocks to prefetch. */
+     protected static final int PREFETCH_BLOCKS = 1;
+ 
+     /** Amount of sequential block reads before prefetch is triggered. */
+     protected static final int SEQ_READS_BEFORE_PREFETCH = 2;
+ 
+     /** Secondary file system URI. */
+     protected static final String SECONDARY_URI = 
"ggfs://ggfs-secondary:grid-secondary@127.0.0.1:11500/";
+ 
+     /** Secondary file system configuration path. */
+     protected static final String SECONDARY_CFG = 
"modules/core/src/test/config/hadoop/core-site-loopback-secondary.xml";
+ 
+     /** Primary file system URI. */
+     protected static final String PRIMARY_URI = "ggfs://ggfs:grid@/";
+ 
+     /** Primary file system configuration path. */
+     protected static final String PRIMARY_CFG = 
"modules/core/src/test/config/hadoop/core-site-loopback.xml";
+ 
+     /** Primary file system REST endpoint configuration map. */
+     protected static final Map<String, String> PRIMARY_REST_CFG = new 
HashMap<String, String>() {{
+         put("type", "tcp");
+         put("port", "10500");
+     }};
+ 
+     /** Secondary file system REST endpoint configuration map. */
+     protected static final Map<String, String> SECONDARY_REST_CFG = new 
HashMap<String, String>() {{
+         put("type", "tcp");
+         put("port", "11500");
+     }};
+ 
+     /** Directory. */
+     protected static final IgniteFsPath DIR = new IgniteFsPath("/dir");
+ 
+     /** Sub-directory. */
+     protected static final IgniteFsPath SUBDIR = new IgniteFsPath(DIR, 
"subdir");
+ 
+     /** File. */
+     protected static final IgniteFsPath FILE = new IgniteFsPath(SUBDIR, 
"file");
+ 
+     /** Default data chunk (128 bytes). */
+     protected static byte[] chunk;
+ 
+     /** Primary GGFS. */
+     protected static GridGgfsImpl ggfs;
+ 
+     /** Secondary GGFS. */
+     protected static GridGgfsImpl ggfsSecondary;
+ 
+     /** GGFS mode. */
+     protected final IgniteFsMode mode;
+ 
+     /**
+      * Constructor.
+      *
+      * @param mode GGFS mode.
+      */
+     protected GridGgfsHadoopDualAbstractSelfTest(IgniteFsMode mode) {
+         this.mode = mode;
+         assert mode == DUAL_SYNC || mode == DUAL_ASYNC;
+     }
+ 
+     /**
+      * Start grid with GGFS.
+      *
+      * @param gridName Grid name.
+      * @param ggfsName GGFS name
+      * @param mode GGFS mode.
+      * @param secondaryFs Secondary file system (optional).
+      * @param restCfg Rest configuration string (optional).
+      * @return Started grid instance.
+      * @throws Exception If failed.
+      */
+     protected Ignite startGridWithGgfs(String gridName, String ggfsName, 
IgniteFsMode mode,
+         @Nullable IgniteFsFileSystem secondaryFs, @Nullable Map<String, 
String> restCfg) throws Exception {
+         IgniteFsConfiguration ggfsCfg = new IgniteFsConfiguration();
+ 
+         ggfsCfg.setDataCacheName("dataCache");
+         ggfsCfg.setMetaCacheName("metaCache");
+         ggfsCfg.setName(ggfsName);
+         ggfsCfg.setBlockSize(GGFS_BLOCK_SIZE);
+         ggfsCfg.setDefaultMode(mode);
+         ggfsCfg.setIpcEndpointConfiguration(restCfg);
+         ggfsCfg.setSecondaryFileSystem(secondaryFs);
+         ggfsCfg.setPrefetchBlocks(PREFETCH_BLOCKS);
+         ggfsCfg.setSequentialReadsBeforePrefetch(SEQ_READS_BEFORE_PREFETCH);
+ 
+         CacheConfiguration dataCacheCfg = defaultCacheConfiguration();
+ 
+         dataCacheCfg.setName("dataCache");
+         dataCacheCfg.setCacheMode(PARTITIONED);
+         
dataCacheCfg.setDistributionMode(CacheDistributionMode.PARTITIONED_ONLY);
+         
dataCacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+         dataCacheCfg.setAffinityMapper(new 
IgniteFsGroupDataBlocksKeyMapper(2));
+         dataCacheCfg.setBackups(0);
+         dataCacheCfg.setQueryIndexEnabled(false);
+         dataCacheCfg.setAtomicityMode(TRANSACTIONAL);
+         dataCacheCfg.setOffHeapMaxMemory(0);
+ 
+         CacheConfiguration metaCacheCfg = defaultCacheConfiguration();
+ 
+         metaCacheCfg.setName("metaCache");
+         metaCacheCfg.setCacheMode(REPLICATED);
+         
metaCacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+         metaCacheCfg.setQueryIndexEnabled(false);
+         metaCacheCfg.setAtomicityMode(TRANSACTIONAL);
+ 
+         IgniteConfiguration cfg = new IgniteConfiguration();
+ 
+         cfg.setGridName(gridName);
+ 
+         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+ 
+         discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
+ 
+         cfg.setDiscoverySpi(discoSpi);
+         cfg.setCacheConfiguration(dataCacheCfg, metaCacheCfg);
+         cfg.setGgfsConfiguration(ggfsCfg);
+ 
+         cfg.setLocalHost("127.0.0.1");
 -        cfg.setRestEnabled(false);
+ 
+         return G.start(cfg);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void beforeTestsStarted() throws Exception {
+         chunk = new byte[128];
+ 
+         for (int i = 0; i < chunk.length; i++)
+             chunk[i] = (byte)i;
+ 
+         Ignite igniteSecondary = startGridWithGgfs("grid-secondary", 
"ggfs-secondary", PRIMARY, null, SECONDARY_REST_CFG);
+ 
+         IgniteFsFileSystem hadoopFs = new 
GridGgfsHadoopFileSystemWrapper(SECONDARY_URI, SECONDARY_CFG);
+ 
+         Ignite ignite = startGridWithGgfs("grid", "ggfs", mode, hadoopFs, 
PRIMARY_REST_CFG);
+ 
+         ggfsSecondary = (GridGgfsImpl) 
igniteSecondary.fileSystem("ggfs-secondary");
+         ggfs = (GridGgfsImpl) ignite.fileSystem("ggfs");
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void afterTest() throws Exception {
+         clear(ggfs);
+         clear(ggfsSecondary);
+     }
+ 
+     /** {@inheritDoc} */
+     @Override protected void afterTestsStopped() throws Exception {
+         G.stopAll(true);
+     }
+ 
+     /**
+      * Convenient method to group paths.
+      *
+      * @param paths Paths to group.
+      * @return Paths as array.
+      */
+     protected IgniteFsPath[] paths(IgniteFsPath... paths) {
+         return paths;
+     }
+ 
+     /**
+      * Check how prefetch override works.
+      *
+      * @throws Exception IF failed.
+      */
+     public void testOpenPrefetchOverride() throws Exception {
+         create(ggfsSecondary, paths(DIR, SUBDIR), paths(FILE));
+ 
+         // Write enough data to the secondary file system.
+         final int blockSize = GGFS_BLOCK_SIZE;
+ 
+         IgniteFsOutputStream out = ggfsSecondary.append(FILE, false);
+ 
+         int totalWritten = 0;
+ 
+         while (totalWritten < blockSize * 2 + chunk.length) {
+             out.write(chunk);
+ 
+             totalWritten += chunk.length;
+         }
+ 
+         out.close();
+ 
+         awaitFileClose(ggfsSecondary, FILE);
+ 
+         // Instantiate file system with overridden "seq reads before 
prefetch" property.
+         Configuration cfg = new Configuration();
+ 
+         cfg.addResource(U.resolveIgniteUrl(PRIMARY_CFG));
+ 
+         int seqReads = SEQ_READS_BEFORE_PREFETCH + 1;
+ 
+         cfg.setInt(String.format(PARAM_GGFS_SEQ_READS_BEFORE_PREFETCH, 
"ggfs:grid@"), seqReads);
+ 
+         FileSystem fs = FileSystem.get(new URI(PRIMARY_URI), cfg);
+ 
+         // Read the first two blocks.
+         Path fsHome = new Path(PRIMARY_URI);
+         Path dir = new Path(fsHome, DIR.name());
+         Path subdir = new Path(dir, SUBDIR.name());
+         Path file = new Path(subdir, FILE.name());
+ 
+         FSDataInputStream fsIn = fs.open(file);
+ 
+         final byte[] readBuf = new byte[blockSize * 2];
+ 
+         fsIn.readFully(0, readBuf, 0, readBuf.length);
+ 
+         // Wait for a while for prefetch to finish (if any).
+         GridGgfsMetaManager meta = ggfs.context().meta();
+ 
+         GridGgfsFileInfo info = meta.info(meta.fileId(FILE));
+ 
+         GridGgfsBlockKey key = new GridGgfsBlockKey(info.id(), 
info.affinityKey(), info.evictExclude(), 2);
+ 
+         GridCache<GridGgfsBlockKey, byte[]> dataCache = 
ggfs.context().kernalContext().cache().cache(
+             ggfs.configuration().getDataCacheName());
+ 
+         for (int i = 0; i < 10; i++) {
+             if (dataCache.containsKey(key))
+                 break;
+             else
+                 U.sleep(100);
+         }
+ 
+         fsIn.close();
+ 
+         // Remove the file from the secondary file system.
+         ggfsSecondary.delete(FILE, false);
+ 
+         // Try reading the third block. Should fail.
+         GridTestUtils.assertThrows(log, new Callable<Object>() {
+             @Override public Object call() throws Exception {
+                 IgniteFsInputStream in0 = ggfs.open(FILE);
+ 
+                 in0.seek(blockSize * 2);
+ 
+                 try {
+                     in0.read(readBuf);
+                 }
+                 finally {
+                     U.closeQuiet(in0);
+                 }
+ 
+                 return null;
+             }
+         }, IOException.class,
+             "Failed to read data due to secondary file system exception: 
/dir/subdir/file");
+     }
+ }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
index 0000000,54f3d52..838d1a7
mode 000000,100644..100644
--- 
a/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
+++ 
b/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemHandshakeSelfTest.java
@@@ -1,0 -1,310 +1,309 @@@
+ /*
+  * 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.ignitefs;
+ 
+ import org.apache.hadoop.conf.*;
+ import org.apache.hadoop.fs.FileSystem;
+ import org.apache.hadoop.fs.*;
+ import org.apache.ignite.*;
+ 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.testframework.*;
+ 
+ import java.io.*;
+ import java.net.*;
+ import java.util.*;
+ import java.util.concurrent.*;
+ 
+ import static org.apache.ignite.cache.CacheAtomicityMode.*;
+ import static org.apache.ignite.cache.CacheDistributionMode.*;
+ import static org.apache.ignite.cache.CacheMode.*;
+ import static org.apache.ignite.cache.CacheWriteSynchronizationMode.*;
+ import static org.apache.ignite.ignitefs.IgniteFsMode.*;
+ import static org.apache.ignite.internal.fs.hadoop.GridGgfsHadoopUtils.*;
+ import static 
org.apache.ignite.internal.util.ipc.shmem.IpcSharedMemoryServerEndpoint.*;
+ 
+ /**
+  * Tests for GGFS file system handshake.
+  */
+ public class GridGgfsHadoopFileSystemHandshakeSelfTest extends 
GridGgfsCommonAbstractTest {
+     /** IP finder. */
+     private static final TcpDiscoveryIpFinder IP_FINDER = new 
TcpDiscoveryVmIpFinder(true);
+ 
+     /** Grid name. */
+     private static final String GRID_NAME = "grid";
+ 
+     /** GGFS name. */
+     private static final String GGFS_NAME = "ggfs";
+ 
+     /** GGFS path. */
+     private static final IgniteFsPath PATH = new IgniteFsPath("/path");
+ 
+     /** {@inheritDoc} */
+     @Override protected void afterTest() throws Exception {
+         stopAllGrids(true);
+     }
+ 
+     /**
+      * Tests for Grid and GGFS having normal names.
+      *
+      * @throws Exception If failed.
+      */
+     public void testHandshake() throws Exception {
+         startUp(false, false);
+ 
+         checkValid(GGFS_NAME + ":" + GRID_NAME + "@");
+         checkValid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1");
+         checkValid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1:" + 
DFLT_IPC_PORT);
+ 
+         checkInvalid(GGFS_NAME + "@");
+         checkInvalid(GGFS_NAME + "@127.0.0.1");
+         checkInvalid(GGFS_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkInvalid(":" + GRID_NAME + "@");
+         checkInvalid(":" + GRID_NAME + "@127.0.0.1");
+         checkInvalid(":" + GRID_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkInvalid("");
+         checkInvalid("127.0.0.1");
+         checkInvalid("127.0.0.1:" + DFLT_IPC_PORT);
+     }
+ 
+     /**
+      * Tests for Grid having {@code null} name and GGFS having normal name.
+      *
+      * @throws Exception If failed.
+      */
+     public void testHandshakeDefaultGrid() throws Exception {
+         startUp(true, false);
+ 
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@");
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1");
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1:" + 
DFLT_IPC_PORT);
+ 
+         checkValid(GGFS_NAME + "@");
+         checkValid(GGFS_NAME + "@127.0.0.1");
+         checkValid(GGFS_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkInvalid(":" + GRID_NAME + "@");
+         checkInvalid(":" + GRID_NAME + "@127.0.0.1");
+         checkInvalid(":" + GRID_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkInvalid("");
+         checkInvalid("127.0.0.1");
+         checkInvalid("127.0.0.1:" + DFLT_IPC_PORT);
+     }
+ 
+     /**
+      * Tests for Grid having normal name and GGFS having {@code null} name.
+      *
+      * @throws Exception If failed.
+      */
+     public void testHandshakeDefaultGgfs() throws Exception {
+         startUp(false, true);
+ 
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@");
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1");
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1:" + 
DFLT_IPC_PORT);
+ 
+         checkInvalid(GGFS_NAME + "@");
+         checkInvalid(GGFS_NAME + "@127.0.0.1");
+         checkInvalid(GGFS_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkValid(":" + GRID_NAME + "@");
+         checkValid(":" + GRID_NAME + "@127.0.0.1");
+         checkValid(":" + GRID_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkInvalid("");
+         checkInvalid("127.0.0.1");
+         checkInvalid("127.0.0.1:" + DFLT_IPC_PORT);
+     }
+ 
+     /**
+      * Tests for Grid having {@code null} name and GGFS having {@code null} 
name.
+      *
+      * @throws Exception If failed.
+      */
+     public void testHandshakeDefaultGridDefaultGgfs() throws Exception {
+         startUp(true, true);
+ 
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@");
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1");
+         checkInvalid(GGFS_NAME + ":" + GRID_NAME + "@127.0.0.1:" + 
DFLT_IPC_PORT);
+ 
+         checkInvalid(GGFS_NAME + "@");
+         checkInvalid(GGFS_NAME + "@127.0.0.1");
+         checkInvalid(GGFS_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkInvalid(":" + GRID_NAME + "@");
+         checkInvalid(":" + GRID_NAME + "@127.0.0.1");
+         checkInvalid(":" + GRID_NAME + "@127.0.0.1:" + DFLT_IPC_PORT);
+ 
+         checkValid("");
+         checkValid("127.0.0.1");
+         checkValid("127.0.0.1:" + DFLT_IPC_PORT);
+     }
+ 
+     /**
+      * Perform startup.
+      *
+      * @param dfltGridName Default Grid name.
+      * @param dfltGgfsName Default GGFS name.
+      * @throws Exception If failed.
+      */
+     private void startUp(boolean dfltGridName, boolean dfltGgfsName) throws 
Exception {
+         Ignite ignite = G.start(gridConfiguration(dfltGridName, 
dfltGgfsName));
+ 
+         IgniteFs ggfs = ignite.fileSystem(dfltGgfsName ? null : GGFS_NAME);
+ 
+         ggfs.mkdirs(PATH);
+     }
+ 
+     /**
+      * Create Grid configuration.
+      *
+      * @param dfltGridName Default Grid name.
+      * @param dfltGgfsName Default GGFS name.
+      * @return Grid configuration.
+      * @throws Exception If failed.
+      */
+     private IgniteConfiguration gridConfiguration(boolean dfltGridName, 
boolean dfltGgfsName) throws Exception {
+         IgniteConfiguration cfg = super.getConfiguration(dfltGridName ? null 
: GRID_NAME);
+ 
+         cfg.setLocalHost("127.0.0.1");
 -        cfg.setRestEnabled(false);
+ 
+         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+ 
+         discoSpi.setIpFinder(IP_FINDER);
+ 
+         cfg.setDiscoverySpi(discoSpi);
+ 
+         TcpCommunicationSpi commSpi = new TcpCommunicationSpi();
+ 
+         commSpi.setSharedMemoryPort(-1);
+ 
+         cfg.setCommunicationSpi(commSpi);
+ 
+         CacheConfiguration metaCacheCfg = defaultCacheConfiguration();
+ 
+         metaCacheCfg.setName("replicated");
+         metaCacheCfg.setCacheMode(REPLICATED);
+         metaCacheCfg.setWriteSynchronizationMode(FULL_SYNC);
+         metaCacheCfg.setQueryIndexEnabled(false);
+         metaCacheCfg.setAtomicityMode(TRANSACTIONAL);
+ 
+         CacheConfiguration dataCacheCfg = defaultCacheConfiguration();
+ 
+         dataCacheCfg.setName("partitioned");
+         dataCacheCfg.setCacheMode(PARTITIONED);
+         dataCacheCfg.setDistributionMode(PARTITIONED_ONLY);
+         dataCacheCfg.setWriteSynchronizationMode(FULL_SYNC);
+         dataCacheCfg.setAffinityMapper(new 
IgniteFsGroupDataBlocksKeyMapper(128));
+         dataCacheCfg.setBackups(0);
+         dataCacheCfg.setQueryIndexEnabled(false);
+         dataCacheCfg.setAtomicityMode(TRANSACTIONAL);
+ 
+         cfg.setCacheConfiguration(metaCacheCfg, dataCacheCfg);
+ 
+         IgniteFsConfiguration ggfsCfg = new IgniteFsConfiguration();
+ 
+         ggfsCfg.setDataCacheName("partitioned");
+         ggfsCfg.setMetaCacheName("replicated");
+         ggfsCfg.setName(dfltGgfsName ? null : GGFS_NAME);
+         ggfsCfg.setPrefetchBlocks(1);
+         ggfsCfg.setDefaultMode(PRIMARY);
+         ggfsCfg.setIpcEndpointConfiguration(new HashMap<String, String>() {{
+             put("type", "tcp");
+             put("port", String.valueOf(DFLT_IPC_PORT));
+         }});
+ 
+         ggfsCfg.setManagementPort(-1);
+         ggfsCfg.setBlockSize(512 * 1024);
+ 
+         cfg.setGgfsConfiguration(ggfsCfg);
+ 
+         return cfg;
+     }
+ 
+     /**
+      * Check valid file system endpoint.
+      *
+      * @param authority Authority.
+      * @throws Exception If failed.
+      */
+     private void checkValid(String authority) throws Exception {
+         FileSystem fs = fileSystem(authority);
+ 
+         assert fs.exists(new Path(PATH.toString()));
+     }
+ 
+     /**
+      * Check invalid file system endpoint.
+      *
+      * @param authority Authority.
+      * @throws Exception If failed.
+      */
+     @SuppressWarnings("ThrowableResultOfMethodCallIgnored")
+     private void checkInvalid(final String authority) throws Exception {
+         GridTestUtils.assertThrows(log, new Callable<Object>() {
+             @Override public Object call() throws Exception {
+                 fileSystem(authority);
+ 
+                 return null;
+             }
+         }, IOException.class, null);
+     }
+ 
+     /**
+      *
+      *
+      * @param authority Authority.
+      * @return File system.
+      * @throws Exception If failed.
+      */
+     private static FileSystem fileSystem(String authority) throws Exception {
+         return FileSystem.get(new URI("ggfs://" + authority + "/"), 
configuration(authority));
+     }
+ 
+     /**
+      * Create configuration for test.
+      *
+      * @param authority Authority.
+      * @return Configuration.
+      */
+     private static Configuration configuration(String authority) {
+         Configuration cfg = new Configuration();
+ 
+         cfg.set("fs.defaultFS", "ggfs://" + authority + "/");
+         cfg.set("fs.ggfs.impl", 
org.apache.ignite.ignitefs.hadoop.v1.GridGgfsHadoopFileSystem.class.getName());
+         cfg.set("fs.AbstractFileSystem.ggfs.impl",
+             
org.apache.ignite.ignitefs.hadoop.v2.GridGgfsHadoopFileSystem.class.getName());
+ 
+         cfg.setBoolean("fs.ggfs.impl.disable.cache", true);
+ 
+         cfg.setBoolean(String.format(PARAM_GGFS_ENDPOINT_NO_EMBED, 
authority), true);
+         cfg.setBoolean(String.format(PARAM_GGFS_ENDPOINT_NO_LOCAL_SHMEM, 
authority), true);
+ 
+         return cfg;
+     }
+ }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
----------------------------------------------------------------------
diff --cc 
modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
index 0000000,ef6067c..88808c0
mode 000000,100644..100644
--- 
a/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
+++ 
b/modules/hadoop/src/test/java/org/apache/ignite/ignitefs/GridGgfsHadoopFileSystemLoggerStateSelfTest.java
@@@ -1,0 -1,325 +1,324 @@@
+ /*
+  * 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.ignitefs;
+ 
+ import org.apache.hadoop.conf.*;
+ import org.apache.hadoop.fs.FileSystem;
+ import org.apache.ignite.*;
+ import org.apache.ignite.cache.*;
+ import org.apache.ignite.configuration.*;
+ import org.apache.ignite.ignitefs.hadoop.v1.*;
+ import org.apache.ignite.internal.fs.common.*;
+ 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.nio.file.*;
+ import java.util.*;
+ 
+ import static org.apache.ignite.cache.CacheAtomicityMode.*;
+ import static org.apache.ignite.cache.CacheMode.*;
+ import static org.apache.ignite.ignitefs.IgniteFsMode.*;
+ import static org.apache.ignite.ignitefs.hadoop.GridGgfsHadoopParameters.*;
+ 
+ /**
+  * Ensures that sampling is really turned on/off.
+  */
+ public class GridGgfsHadoopFileSystemLoggerStateSelfTest extends 
GridGgfsCommonAbstractTest {
+     /** GGFS. */
+     private GridGgfsEx ggfs;
+ 
+     /** File system. */
+     private FileSystem fs;
+ 
+     /** Whether logging is enabled in FS configuration. */
+     private boolean logging;
+ 
+     /** whether sampling is enabled. */
+     private Boolean sampling;
+ 
+     /** {@inheritDoc} */
+     @Override protected void afterTest() throws Exception {
+         U.closeQuiet(fs);
+ 
+         ggfs = null;
+         fs = null;
+ 
+         G.stopAll(true);
+ 
+         logging = false;
+         sampling = null;
+     }
+ 
+     /**
+      * Startup the grid and instantiate the file system.
+      *
+      * @throws Exception If failed.
+      */
+     private void startUp() throws Exception {
+         IgniteFsConfiguration ggfsCfg = new IgniteFsConfiguration();
+ 
+         ggfsCfg.setDataCacheName("partitioned");
+         ggfsCfg.setMetaCacheName("replicated");
+         ggfsCfg.setName("ggfs");
+         ggfsCfg.setBlockSize(512 * 1024);
+         ggfsCfg.setDefaultMode(PRIMARY);
+         ggfsCfg.setIpcEndpointConfiguration(new HashMap<String, String>() {{
+             put("type", "tcp");
+             put("port", "10500");
+         }});
+ 
+         CacheConfiguration cacheCfg = defaultCacheConfiguration();
+ 
+         cacheCfg.setName("partitioned");
+         cacheCfg.setCacheMode(PARTITIONED);
+         cacheCfg.setDistributionMode(CacheDistributionMode.PARTITIONED_ONLY);
+         
cacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+         cacheCfg.setAffinityMapper(new IgniteFsGroupDataBlocksKeyMapper(128));
+         cacheCfg.setBackups(0);
+         cacheCfg.setQueryIndexEnabled(false);
+         cacheCfg.setAtomicityMode(TRANSACTIONAL);
+ 
+         CacheConfiguration metaCacheCfg = defaultCacheConfiguration();
+ 
+         metaCacheCfg.setName("replicated");
+         metaCacheCfg.setCacheMode(REPLICATED);
+         
metaCacheCfg.setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC);
+         metaCacheCfg.setQueryIndexEnabled(false);
+         metaCacheCfg.setAtomicityMode(TRANSACTIONAL);
+ 
+         IgniteConfiguration cfg = new IgniteConfiguration();
+ 
+         cfg.setGridName("ggfs-grid");
+ 
+         TcpDiscoverySpi discoSpi = new TcpDiscoverySpi();
+ 
+         discoSpi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
+ 
+         cfg.setDiscoverySpi(discoSpi);
+         cfg.setCacheConfiguration(metaCacheCfg, cacheCfg);
+         cfg.setGgfsConfiguration(ggfsCfg);
+ 
+         cfg.setLocalHost("127.0.0.1");
 -        cfg.setRestEnabled(false);
+ 
+         Ignite g = G.start(cfg);
+ 
+         ggfs = (GridGgfsEx)g.fileSystem("ggfs");
+ 
+         ggfs.globalSampling(sampling);
+ 
+         fs = fileSystem();
+     }
+ 
+     /**
+      * When logging is disabled and sampling is not set no-op logger must be 
used.
+      *
+      * @throws Exception If failed.
+      */
+     public void testLoggingDisabledSamplingNotSet() throws Exception {
+         startUp();
+ 
+         assert !logEnabled();
+     }
+ 
+     /**
+      * When logging is enabled and sampling is not set file logger must be 
used.
+      *
+      * @throws Exception If failed.
+      */
+     public void testLoggingEnabledSamplingNotSet() throws Exception {
+         logging = true;
+ 
+         startUp();
+ 
+         assert logEnabled();
+     }
+ 
+     /**
+      * When logging is disabled and sampling is disabled no-op logger must be 
used.
+      *
+      * @throws Exception If failed.
+      */
+     public void testLoggingDisabledSamplingDisabled() throws Exception {
+         sampling = false;
+ 
+         startUp();
+ 
+         assert !logEnabled();
+     }
+ 
+     /**
+      * When logging is enabled and sampling is disabled no-op logger must be 
used.
+      *
+      * @throws Exception If failed.
+      */
+     public void testLoggingEnabledSamplingDisabled() throws Exception {
+         logging = true;
+         sampling = false;
+ 
+         startUp();
+ 
+         assert !logEnabled();
+     }
+ 
+     /**
+      * When logging is disabled and sampling is enabled file logger must be 
used.
+      *
+      * @throws Exception If failed.
+      */
+     public void testLoggingDisabledSamplingEnabled() throws Exception {
+         sampling = true;
+ 
+         startUp();
+ 
+         assert logEnabled();
+     }
+ 
+     /**
+      * When logging is enabled and sampling is enabled file logger must be 
used.
+      *
+      * @throws Exception If failed.
+      */
+     public void testLoggingEnabledSamplingEnabled() throws Exception {
+         logging = true;
+         sampling = true;
+ 
+         startUp();
+ 
+         assert logEnabled();
+     }
+ 
+     /**
+      * Ensure sampling change through API causes changes in logging on 
subsequent client connections.
+      *
+      * @throws Exception If failed.
+      */
+     public void testSamplingChange() throws Exception {
+         // Start with sampling not set.
+         startUp();
+ 
+         assert !logEnabled();
+ 
+         fs.close();
+ 
+         // "Not set" => true transition.
+         ggfs.globalSampling(true);
+ 
+         fs = fileSystem();
+ 
+         assert logEnabled();
+ 
+         fs.close();
+ 
+         // True => "not set" transition.
+         ggfs.globalSampling(null);
+ 
+         fs = fileSystem();
+ 
+         assert !logEnabled();
+ 
+         // "Not-set" => false transition.
+         ggfs.globalSampling(false);
+ 
+         fs = fileSystem();
+ 
+         assert !logEnabled();
+ 
+         fs.close();
+ 
+         // False => "not=set" transition.
+         ggfs.globalSampling(null);
+ 
+         fs = fileSystem();
+ 
+         assert !logEnabled();
+ 
+         fs.close();
+ 
+         // True => false transition.
+         ggfs.globalSampling(true);
+         ggfs.globalSampling(false);
+ 
+         fs = fileSystem();
+ 
+         assert !logEnabled();
+ 
+         fs.close();
+ 
+         // False => true transition.
+         ggfs.globalSampling(true);
+ 
+         fs = fileSystem();
+ 
+         assert logEnabled();
+     }
+ 
+     /**
+      * Ensure that log directory is set to GGFS when client FS connects.
+      *
+      * @throws Exception If failed.
+      */
+     @SuppressWarnings("ConstantConditions")
+     public void testLogDirectory() throws Exception {
+         startUp();
+ 
+         assertEquals(Paths.get(U.getIgniteHome()).normalize().toString(),
+             ggfs.clientLogDirectory());
+     }
+ 
+     /**
+      * Instantiate new file system.
+      *
+      * @return New file system.
+      * @throws Exception If failed.
+      */
+     private GridGgfsHadoopFileSystem fileSystem() throws Exception {
+         Configuration fsCfg = new Configuration();
+ 
+         
fsCfg.addResource(U.resolveIgniteUrl("modules/core/src/test/config/hadoop/core-site-loopback.xml"));
+ 
+         fsCfg.setBoolean("fs.ggfs.impl.disable.cache", true);
+ 
+         if (logging)
+             fsCfg.setBoolean(String.format(PARAM_GGFS_LOG_ENABLED, 
"ggfs:ggfs-grid@"), logging);
+ 
+         fsCfg.setStrings(String.format(PARAM_GGFS_LOG_DIR, 
"ggfs:ggfs-grid@"), U.getIgniteHome());
+ 
+         return (GridGgfsHadoopFileSystem)FileSystem.get(new 
URI("ggfs://ggfs:ggfs-grid@/"), fsCfg);
+     }
+ 
+     /**
+      * Ensure that real logger is used by the file system.
+      *
+      * @return {@code True} in case path is secondary.
+      * @throws Exception If failed.
+      */
+     private boolean logEnabled() throws Exception {
+         assert fs != null;
+ 
+         Field field = fs.getClass().getDeclaredField("clientLog");
+ 
+         field.setAccessible(true);
+ 
+         return ((GridGgfsLogger)field.get(fs)).isLogEnabled();
+     }
+ }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/hadoop/src/test/java/org/apache/ignite/internal/processors/hadoop/GridHadoopAbstractSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java
----------------------------------------------------------------------
diff --cc 
modules/log4j/src/test/java/org/apache/ignite/logger/log4j/GridLog4jCorrectFileNameTest.java
index 223fe6a,56e08aa..1db3da7
--- 
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
@@@ -104,7 -104,8 +104,7 @@@ public class GridLog4jCorrectFileNameTe
          IgniteConfiguration cfg = new IgniteConfiguration();
  
          cfg.setGridName(gridName);
-         cfg.setGridLogger(new IgniteLog4jLogger());
+         cfg.setGridLogger(new Log4JLogger());
 -        cfg.setRestEnabled(false);
  
          return cfg;
      }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/spring/src/test/java/org/apache/ignite/internal/GridFactorySelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/14fd47cf/modules/spring/src/test/java/org/apache/ignite/internal/GridSpringBeanSerializationSelfTest.java
----------------------------------------------------------------------

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

Reply via email to