You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/03/04 16:35:47 UTC

[45/45] incubator-ignite git commit: IGNITE-386: Squashed changes.

IGNITE-386: Squashed changes.


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

Branch: refs/heads/ignite-386-tmp
Commit: 498dcfab57c322a33a4125ac9d0e13c8c98ef571
Parents: 9af2566
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Mar 4 18:33:35 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Mar 4 18:33:40 2015 +0300

----------------------------------------------------------------------
 bin/setup-hadoop.bat                            |    2 +-
 bin/setup-hadoop.sh                             |    2 +-
 config/hadoop/default-config.xml                |   10 +-
 docs/core-site.ignite.xml                       |    6 +-
 examples/config/filesystem/core-site.xml        |    4 +-
 examples/config/filesystem/example-igfs.xml     |    4 +-
 .../ignite/examples/igfs/IgfsExample.java       |   18 +-
 .../examples/igfs/IgfsMapReduceExample.java     |    6 +-
 .../src/main/java/org/apache/ignite/Ignite.java |   13 +-
 .../org/apache/ignite/IgniteFileSystem.java     |  457 ++++
 .../main/java/org/apache/ignite/IgniteFs.java   |  346 ---
 .../configuration/FileSystemConfiguration.java  |  805 ++++++
 .../configuration/HadoopConfiguration.java      |  173 ++
 .../ignite/configuration/IgfsConfiguration.java |  807 ------
 .../configuration/IgniteConfiguration.java      |   19 +-
 .../main/java/org/apache/ignite/igfs/Igfs.java  |  216 --
 .../apache/ignite/igfs/IgfsBlockLocation.java   |    2 +-
 .../java/org/apache/ignite/igfs/IgfsFile.java   |    2 +-
 .../org/apache/ignite/igfs/IgfsInputStream.java |    6 +-
 .../org/apache/ignite/igfs/IgfsMetrics.java     |    2 +-
 .../java/org/apache/ignite/igfs/IgfsMode.java   |    8 +-
 .../java/org/apache/ignite/igfs/IgfsReader.java |   38 -
 .../mapreduce/IgfsInputStreamJobAdapter.java    |    4 +-
 .../apache/ignite/igfs/mapreduce/IgfsJob.java   |    4 +-
 .../igfs/mapreduce/IgfsRecordResolver.java      |    2 +-
 .../apache/ignite/igfs/mapreduce/IgfsTask.java  |    4 +-
 .../ignite/igfs/mapreduce/IgfsTaskArgs.java     |    2 +-
 .../IgfsByteDelimiterRecordResolver.java        |    3 +-
 .../records/IgfsFixedLengthRecordResolver.java  |    2 +-
 .../igfs/secondary/IgfsSecondaryFileSystem.java |  201 ++
 ...fsSecondaryFileSystemPositionedReadable.java |   38 +
 .../apache/ignite/igfs/secondary/package.html   |   24 +
 .../ignite/internal/GridKernalContext.java      |    2 +-
 .../ignite/internal/GridKernalContextImpl.java  |    8 +-
 .../ignite/internal/IgniteComponentType.java    |    4 +-
 .../org/apache/ignite/internal/IgniteEx.java    |    4 +-
 .../apache/ignite/internal/IgniteKernal.java    |   14 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |    8 +-
 .../processors/cache/GridCacheAdapter.java      |    4 +-
 .../processors/cache/GridCacheProcessor.java    |    4 +-
 .../processors/cache/GridCacheUtils.java        |    4 +-
 .../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      |  103 -
 .../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 -
 .../internal/processors/hadoop/Hadoop.java      |   88 +
 .../processors/hadoop/HadoopFileBlock.java      |  162 ++
 .../processors/hadoop/HadoopInputSplit.java     |   54 +
 .../internal/processors/hadoop/HadoopJob.java   |  102 +
 .../internal/processors/hadoop/HadoopJobId.java |  103 +
 .../processors/hadoop/HadoopJobInfo.java        |   83 +
 .../processors/hadoop/HadoopJobPhase.java       |   38 +
 .../processors/hadoop/HadoopJobProperty.java    |  138 +
 .../processors/hadoop/HadoopJobStatus.java      |  207 ++
 .../processors/hadoop/HadoopMapReducePlan.java  |   80 +
 .../hadoop/HadoopMapReducePlanner.java          |   40 +
 .../processors/hadoop/HadoopNoopProcessor.java  |   76 +
 .../processors/hadoop/HadoopPartitioner.java    |   33 +
 .../hadoop/HadoopProcessorAdapter.java          |   96 +
 .../processors/hadoop/HadoopSerialization.java  |   54 +
 .../internal/processors/hadoop/HadoopTask.java  |   72 +
 .../processors/hadoop/HadoopTaskContext.java    |  190 ++
 .../processors/hadoop/HadoopTaskInfo.java       |  153 ++
 .../processors/hadoop/HadoopTaskInput.java      |   55 +
 .../processors/hadoop/HadoopTaskOutput.java     |   40 +
 .../processors/hadoop/HadoopTaskType.java       |   56 +
 .../hadoop/IgniteHadoopNoopProcessor.java       |   74 -
 .../hadoop/IgniteHadoopProcessorAdapter.java    |   94 -
 .../hadoop/counter/HadoopCounter.java           |   44 +
 .../hadoop/counter/HadoopCounterWriter.java     |   37 +
 .../hadoop/counter/HadoopCounters.java          |   49 +
 .../internal/processors/igfs/IgfsAsyncImpl.java |    9 +-
 .../internal/processors/igfs/IgfsContext.java   |    6 +-
 .../processors/igfs/IgfsDataManager.java        |    5 +-
 .../ignite/internal/processors/igfs/IgfsEx.java |   28 +-
 .../internal/processors/igfs/IgfsFileInfo.java  |    4 +-
 .../internal/processors/igfs/IgfsImpl.java      |   42 +-
 .../processors/igfs/IgfsInputStreamAdapter.java |    4 +-
 .../processors/igfs/IgfsInputStreamImpl.java    |    5 +-
 .../internal/processors/igfs/IgfsJobImpl.java   |    2 +-
 .../processors/igfs/IgfsMetaManager.java        |   27 +-
 .../processors/igfs/IgfsNoopProcessor.java      |    4 +-
 .../processors/igfs/IgfsOutputStreamImpl.java   |    2 +-
 .../internal/processors/igfs/IgfsProcessor.java |   26 +-
 .../processors/igfs/IgfsProcessorAdapter.java   |    4 +-
 .../igfs/IgfsSecondaryFileSystemImpl.java       |  121 +
 .../IgfsSecondaryInputStreamDescriptor.java     |    8 +-
 .../processors/igfs/IgfsServerManager.java      |    4 +-
 .../ignite/internal/visor/igfs/VisorIgfs.java   |    4 +-
 .../visor/igfs/VisorIgfsProfilerClearTask.java  |    2 +-
 .../visor/node/VisorGridConfiguration.java      |    2 +-
 .../visor/node/VisorIgfsConfiguration.java      |    9 +-
 .../visor/node/VisorNodeDataCollectorJob.java   |    2 +-
 .../internal/visor/util/VisorTaskUtils.java     |    4 +-
 .../hadoop/core-site-loopback-secondary.xml     |    4 +-
 .../test/config/hadoop/core-site-loopback.xml   |    4 +-
 .../test/config/hadoop/core-site-secondary.xml  |    4 +-
 .../core/src/test/config/hadoop/core-site.xml   |    4 +-
 modules/core/src/test/config/igfs-loopback.xml  |    4 +-
 modules/core/src/test/config/igfs-shmem.xml     |    4 +-
 .../ignite/igfs/IgfsEventsAbstractSelfTest.java |   10 +-
 .../igfs/IgfsFragmentizerAbstractSelfTest.java  |    4 +-
 .../ignite/igfs/IgfsFragmentizerSelfTest.java   |    8 +-
 .../igfs/IgfsFragmentizerTopologySelfTest.java  |    2 +-
 ...heIgfsPerBlockLruEvictionPolicySelfTest.java |  485 ----
 .../processors/igfs/IgfsAbstractSelfTest.java   |   85 +-
 ...sCachePerBlockLruEvictionPolicySelfTest.java |  485 ++++
 .../processors/igfs/IgfsCacheSelfTest.java      |    4 +-
 .../igfs/IgfsDataManagerSelfTest.java           |    5 +-
 .../igfs/IgfsDualAbstractSelfTest.java          |   12 +-
 .../igfs/IgfsMetaManagerSelfTest.java           |    4 +-
 .../processors/igfs/IgfsMetricsSelfTest.java    |   22 +-
 .../processors/igfs/IgfsModesSelfTest.java      |   14 +-
 .../processors/igfs/IgfsProcessorSelfTest.java  |   10 +-
 .../igfs/IgfsProcessorValidationSelfTest.java   |   50 +-
 ...IpcEndpointRegistrationAbstractSelfTest.java |   10 +-
 ...dpointRegistrationOnLinuxAndMacSelfTest.java |    4 +-
 ...pcEndpointRegistrationOnWindowsSelfTest.java |    2 +-
 .../processors/igfs/IgfsSizeSelfTest.java       |    4 +-
 .../processors/igfs/IgfsStreamsSelfTest.java    |   14 +-
 .../processors/igfs/IgfsTaskSelfTest.java       |   10 +-
 .../IgfsAbstractRecordResolverSelfTest.java     |    6 +-
 .../ipc/shmem/IpcSharedMemoryNodeStartup.java   |    4 +-
 .../ignite/testframework/junits/IgniteMock.java |    4 +-
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |    2 +-
 .../client/hadoop/GridHadoopClientProtocol.java |  334 ---
 .../GridHadoopClientProtocolProvider.java       |  137 -
 .../counter/GridHadoopClientCounterGroup.java   |  121 -
 .../counter/GridHadoopClientCounters.java       |  217 --
 .../apache/ignite/client/hadoop/package.html    |   24 -
 .../fs/IgniteHadoopFileSystemCounterWriter.java |   93 +
 .../fs/IgniteHadoopIgfsSecondaryFileSystem.java |  414 +++
 .../org/apache/ignite/hadoop/fs/package.html    |   24 +
 .../hadoop/fs/v1/IgniteHadoopFileSystem.java    | 1237 +++++++++
 .../org/apache/ignite/hadoop/fs/v1/package.html |   24 +
 .../hadoop/fs/v2/IgniteHadoopFileSystem.java    |  982 ++++++++
 .../org/apache/ignite/hadoop/fs/v2/package.html |   24 +
 .../IgniteHadoopClientProtocolProvider.java     |  138 +
 .../mapreduce/IgniteHadoopMapReducePlanner.java |  435 ++++
 .../apache/ignite/hadoop/mapreduce/package.html |   24 +
 .../java/org/apache/ignite/hadoop/package.html  |   24 +
 .../hadoop/IgfsHadoopFileSystemWrapper.java     |  414 ---
 .../igfs/hadoop/IgfsHadoopParameters.java       |   94 -
 .../org/apache/ignite/igfs/hadoop/package.html  |   24 -
 .../igfs/hadoop/v1/IgfsHadoopFileSystem.java    | 1234 ---------
 .../apache/ignite/igfs/hadoop/v1/package.html   |   24 -
 .../igfs/hadoop/v2/IgfsHadoopFileSystem.java    |  982 --------
 .../apache/ignite/igfs/hadoop/v2/package.html   |   24 -
 .../java/org/apache/ignite/igfs/package.html    |   24 -
 .../ignite/internal/igfs/hadoop/IgfsHadoop.java |  198 --
 .../IgfsHadoopCommunicationException.java       |   57 -
 .../igfs/hadoop/IgfsHadoopEndpoint.java         |  210 --
 .../internal/igfs/hadoop/IgfsHadoopEx.java      |   88 -
 .../igfs/hadoop/IgfsHadoopFSProperties.java     |   88 -
 .../internal/igfs/hadoop/IgfsHadoopFuture.java  |   94 -
 .../internal/igfs/hadoop/IgfsHadoopInProc.java  |  409 ---
 .../igfs/hadoop/IgfsHadoopInputStream.java      |  626 -----
 .../internal/igfs/hadoop/IgfsHadoopIo.java      |   76 -
 .../internal/igfs/hadoop/IgfsHadoopIpcIo.java   |  599 -----
 .../igfs/hadoop/IgfsHadoopIpcIoListener.java    |   36 -
 .../igfs/hadoop/IgfsHadoopJclLogger.java        |  112 -
 .../internal/igfs/hadoop/IgfsHadoopOutProc.java |  466 ----
 .../igfs/hadoop/IgfsHadoopOutputStream.java     |  201 --
 .../igfs/hadoop/IgfsHadoopProxyInputStream.java |  335 ---
 .../hadoop/IgfsHadoopProxyOutputStream.java     |  165 --
 .../internal/igfs/hadoop/IgfsHadoopReader.java  |  104 -
 .../igfs/hadoop/IgfsHadoopStreamDelegate.java   |   96 -
 .../hadoop/IgfsHadoopStreamEventListener.java   |   39 -
 .../internal/igfs/hadoop/IgfsHadoopUtils.java   |  131 -
 .../internal/igfs/hadoop/IgfsHadoopWrapper.java |  511 ----
 .../ignite/internal/igfs/hadoop/package.html    |   24 -
 .../apache/ignite/internal/igfs/package.html    |   24 -
 .../hadoop/GridHadoopClassLoader.java           |  552 ----
 .../processors/hadoop/GridHadoopComponent.java  |   61 -
 .../processors/hadoop/GridHadoopContext.java    |  196 --
 .../hadoop/GridHadoopDefaultJobInfo.java        |  163 --
 .../processors/hadoop/GridHadoopImpl.java       |  132 -
 .../processors/hadoop/GridHadoopSetup.java      |  505 ----
 .../GridHadoopTaskCancelledException.java       |   35 -
 .../processors/hadoop/GridHadoopUtils.java      |  308 ---
 .../processors/hadoop/HadoopClassLoader.java    |  552 ++++
 .../processors/hadoop/HadoopComponent.java      |   61 +
 .../processors/hadoop/HadoopContext.java        |  197 ++
 .../processors/hadoop/HadoopDefaultJobInfo.java |  163 ++
 .../internal/processors/hadoop/HadoopImpl.java  |  134 +
 .../hadoop/HadoopMapReduceCounterGroup.java     |  121 +
 .../hadoop/HadoopMapReduceCounters.java         |  216 ++
 .../processors/hadoop/HadoopProcessor.java      |  227 ++
 .../internal/processors/hadoop/HadoopSetup.java |  505 ++++
 .../hadoop/HadoopTaskCancelledException.java    |   35 +
 .../internal/processors/hadoop/HadoopUtils.java |  308 +++
 .../hadoop/IgniteHadoopProcessor.java           |  225 --
 .../counter/GridHadoopCounterAdapter.java       |  128 -
 .../hadoop/counter/GridHadoopCountersImpl.java  |  198 --
 .../counter/GridHadoopFSCounterWriter.java      |   91 -
 .../hadoop/counter/GridHadoopLongCounter.java   |   92 -
 .../counter/GridHadoopPerformanceCounter.java   |  279 ---
 .../hadoop/counter/HadoopCounterAdapter.java    |  127 +
 .../hadoop/counter/HadoopCountersImpl.java      |  197 ++
 .../hadoop/counter/HadoopLongCounter.java       |   90 +
 .../counter/HadoopPerformanceCounter.java       |  279 +++
 .../fs/GridHadoopDistributedFileSystem.java     |   91 -
 .../hadoop/fs/GridHadoopFileSystemsUtils.java   |   57 -
 .../hadoop/fs/GridHadoopLocalFileSystemV1.java  |   39 -
 .../hadoop/fs/GridHadoopLocalFileSystemV2.java  |   86 -
 .../hadoop/fs/GridHadoopRawLocalFileSystem.java |  304 ---
 .../hadoop/fs/HadoopDistributedFileSystem.java  |   91 +
 .../hadoop/fs/HadoopFileSystemsUtils.java       |   57 +
 .../hadoop/fs/HadoopLocalFileSystemV1.java      |   39 +
 .../hadoop/fs/HadoopLocalFileSystemV2.java      |   86 +
 .../processors/hadoop/fs/HadoopParameters.java  |   94 +
 .../hadoop/fs/HadoopRawLocalFileSystem.java     |  304 +++
 .../processors/hadoop/igfs/HadoopIgfs.java      |  198 ++
 .../igfs/HadoopIgfsCommunicationException.java  |   57 +
 .../hadoop/igfs/HadoopIgfsEndpoint.java         |  210 ++
 .../processors/hadoop/igfs/HadoopIgfsEx.java    |   88 +
 .../hadoop/igfs/HadoopIgfsFuture.java           |   94 +
 .../hadoop/igfs/HadoopIgfsInProc.java           |  409 +++
 .../hadoop/igfs/HadoopIgfsInputStream.java      |  626 +++++
 .../processors/hadoop/igfs/HadoopIgfsIo.java    |   76 +
 .../processors/hadoop/igfs/HadoopIgfsIpcIo.java |  599 +++++
 .../hadoop/igfs/HadoopIgfsIpcIoListener.java    |   36 +
 .../hadoop/igfs/HadoopIgfsJclLogger.java        |  115 +
 .../hadoop/igfs/HadoopIgfsOutProc.java          |  466 ++++
 .../hadoop/igfs/HadoopIgfsOutputStream.java     |  201 ++
 .../hadoop/igfs/HadoopIgfsProperties.java       |   88 +
 .../hadoop/igfs/HadoopIgfsProxyInputStream.java |  335 +++
 .../igfs/HadoopIgfsProxyOutputStream.java       |  165 ++
 ...fsSecondaryFileSystemPositionedReadable.java |  104 +
 .../hadoop/igfs/HadoopIgfsStreamDelegate.java   |   96 +
 .../igfs/HadoopIgfsStreamEventListener.java     |   39 +
 .../processors/hadoop/igfs/HadoopIgfsUtils.java |  131 +
 .../hadoop/igfs/HadoopIgfsWrapper.java          |  511 ++++
 .../jobtracker/GridHadoopJobMetadata.java       |  305 ---
 .../hadoop/jobtracker/GridHadoopJobTracker.java | 1625 ------------
 .../hadoop/jobtracker/HadoopJobMetadata.java    |  306 +++
 .../hadoop/jobtracker/HadoopJobTracker.java     | 1626 ++++++++++++
 .../hadoop/message/GridHadoopMessage.java       |   27 -
 .../hadoop/message/HadoopMessage.java           |   27 +
 .../planner/GridHadoopDefaultMapReducePlan.java |  107 -
 .../GridHadoopDefaultMapReducePlanner.java      |  434 ----
 .../planner/HadoopDefaultMapReducePlan.java     |  107 +
 .../GridHadoopProtocolJobCountersTask.java      |   45 -
 .../proto/GridHadoopProtocolJobStatusTask.java  |   81 -
 .../proto/GridHadoopProtocolKillJobTask.java    |   46 -
 .../proto/GridHadoopProtocolNextTaskIdTask.java |   35 -
 .../proto/GridHadoopProtocolSubmitJobTask.java  |   57 -
 .../proto/GridHadoopProtocolTaskAdapter.java    |  113 -
 .../proto/GridHadoopProtocolTaskArguments.java  |   81 -
 .../hadoop/proto/HadoopClientProtocol.java      |  333 +++
 .../proto/HadoopProtocolJobCountersTask.java    |   46 +
 .../proto/HadoopProtocolJobStatusTask.java      |   81 +
 .../hadoop/proto/HadoopProtocolKillJobTask.java |   46 +
 .../proto/HadoopProtocolNextTaskIdTask.java     |   35 +
 .../proto/HadoopProtocolSubmitJobTask.java      |   57 +
 .../hadoop/proto/HadoopProtocolTaskAdapter.java |  113 +
 .../proto/HadoopProtocolTaskArguments.java      |   81 +
 .../hadoop/shuffle/GridHadoopShuffle.java       |  256 --
 .../hadoop/shuffle/GridHadoopShuffleAck.java    |   91 -
 .../hadoop/shuffle/GridHadoopShuffleJob.java    |  593 -----
 .../shuffle/GridHadoopShuffleMessage.java       |  242 --
 .../hadoop/shuffle/HadoopShuffle.java           |  256 ++
 .../hadoop/shuffle/HadoopShuffleAck.java        |   91 +
 .../hadoop/shuffle/HadoopShuffleJob.java        |  593 +++++
 .../hadoop/shuffle/HadoopShuffleMessage.java    |  241 ++
 .../GridHadoopConcurrentHashMultimap.java       |  611 -----
 .../collections/GridHadoopHashMultimap.java     |  174 --
 .../collections/GridHadoopHashMultimapBase.java |  208 --
 .../shuffle/collections/GridHadoopMultimap.java |  112 -
 .../collections/GridHadoopMultimapBase.java     |  368 ---
 .../shuffle/collections/GridHadoopSkipList.java |  726 ------
 .../HadoopConcurrentHashMultimap.java           |  611 +++++
 .../shuffle/collections/HadoopHashMultimap.java |  174 ++
 .../collections/HadoopHashMultimapBase.java     |  208 ++
 .../shuffle/collections/HadoopMultimap.java     |  112 +
 .../shuffle/collections/HadoopMultimapBase.java |  368 +++
 .../shuffle/collections/HadoopSkipList.java     |  726 ++++++
 .../shuffle/streams/GridHadoopDataInStream.java |  170 --
 .../streams/GridHadoopDataOutStream.java        |  131 -
 .../streams/GridHadoopOffheapBuffer.java        |  122 -
 .../shuffle/streams/HadoopDataInStream.java     |  170 ++
 .../shuffle/streams/HadoopDataOutStream.java    |  131 +
 .../shuffle/streams/HadoopOffheapBuffer.java    |  122 +
 .../GridHadoopEmbeddedTaskExecutor.java         |  146 --
 .../taskexecutor/GridHadoopExecutorService.java |  232 --
 .../taskexecutor/GridHadoopRunnableTask.java    |  268 --
 .../GridHadoopTaskExecutorAdapter.java          |   57 -
 .../taskexecutor/GridHadoopTaskState.java       |   38 -
 .../taskexecutor/GridHadoopTaskStatus.java      |  114 -
 .../HadoopEmbeddedTaskExecutor.java             |  146 ++
 .../taskexecutor/HadoopExecutorService.java     |  231 ++
 .../hadoop/taskexecutor/HadoopRunnableTask.java |  268 ++
 .../taskexecutor/HadoopTaskExecutorAdapter.java |   57 +
 .../hadoop/taskexecutor/HadoopTaskState.java    |   38 +
 .../hadoop/taskexecutor/HadoopTaskStatus.java   |  114 +
 .../GridHadoopExternalTaskExecutor.java         |  960 -------
 .../GridHadoopExternalTaskMetadata.java         |   68 -
 .../GridHadoopJobInfoUpdateRequest.java         |  109 -
 .../GridHadoopPrepareForJobRequest.java         |  126 -
 .../external/GridHadoopProcessDescriptor.java   |  150 --
 .../external/GridHadoopProcessStartedAck.java   |   46 -
 .../GridHadoopTaskExecutionRequest.java         |  110 -
 .../external/GridHadoopTaskFinishedMessage.java |   92 -
 .../external/HadoopExternalTaskExecutor.java    |  960 +++++++
 .../external/HadoopExternalTaskMetadata.java    |   68 +
 .../external/HadoopJobInfoUpdateRequest.java    |  109 +
 .../external/HadoopPrepareForJobRequest.java    |  126 +
 .../external/HadoopProcessDescriptor.java       |  150 ++
 .../external/HadoopProcessStartedAck.java       |   46 +
 .../external/HadoopTaskExecutionRequest.java    |  110 +
 .../external/HadoopTaskFinishedMessage.java     |   92 +
 .../child/GridHadoopChildProcessRunner.java     |  440 ----
 .../child/GridHadoopExternalProcessStarter.java |  296 ---
 .../child/HadoopChildProcessRunner.java         |  440 ++++
 .../child/HadoopExternalProcessStarter.java     |  296 +++
 .../GridHadoopAbstractCommunicationClient.java  |   96 -
 .../GridHadoopCommunicationClient.java          |   72 -
 .../GridHadoopExternalCommunication.java        | 1431 -----------
 .../GridHadoopHandshakeTimeoutException.java    |   42 -
 .../GridHadoopIpcToNioAdapter.java              |  239 --
 .../GridHadoopMarshallerFilter.java             |   84 -
 .../GridHadoopMessageListener.java              |   39 -
 .../GridHadoopTcpNioCommunicationClient.java    |   99 -
 .../HadoopAbstractCommunicationClient.java      |   96 +
 .../HadoopCommunicationClient.java              |   72 +
 .../HadoopExternalCommunication.java            | 1431 +++++++++++
 .../HadoopHandshakeTimeoutException.java        |   42 +
 .../communication/HadoopIpcToNioAdapter.java    |  239 ++
 .../communication/HadoopMarshallerFilter.java   |   84 +
 .../communication/HadoopMessageListener.java    |   39 +
 .../HadoopTcpNioCommunicationClient.java        |   99 +
 .../hadoop/v1/GridHadoopV1CleanupTask.java      |   62 -
 .../hadoop/v1/GridHadoopV1Counter.java          |  105 -
 .../hadoop/v1/GridHadoopV1MapTask.java          |  111 -
 .../hadoop/v1/GridHadoopV1OutputCollector.java  |  130 -
 .../hadoop/v1/GridHadoopV1Partitioner.java      |   44 -
 .../hadoop/v1/GridHadoopV1ReduceTask.java       |   92 -
 .../hadoop/v1/GridHadoopV1Reporter.java         |   79 -
 .../hadoop/v1/GridHadoopV1SetupTask.java        |   56 -
 .../hadoop/v1/GridHadoopV1Splitter.java         |   97 -
 .../processors/hadoop/v1/GridHadoopV1Task.java  |   95 -
 .../hadoop/v1/HadoopV1CleanupTask.java          |   62 +
 .../processors/hadoop/v1/HadoopV1Counter.java   |  105 +
 .../processors/hadoop/v1/HadoopV1MapTask.java   |  111 +
 .../hadoop/v1/HadoopV1OutputCollector.java      |  130 +
 .../hadoop/v1/HadoopV1Partitioner.java          |   44 +
 .../hadoop/v1/HadoopV1ReduceTask.java           |   92 +
 .../processors/hadoop/v1/HadoopV1Reporter.java  |   79 +
 .../processors/hadoop/v1/HadoopV1SetupTask.java |   56 +
 .../processors/hadoop/v1/HadoopV1Splitter.java  |   97 +
 .../processors/hadoop/v1/HadoopV1Task.java      |   95 +
 .../hadoop/v2/GridHadoopExternalSplit.java      |   87 -
 .../hadoop/v2/GridHadoopNativeCodeLoader.java   |   74 -
 .../v2/GridHadoopSerializationWrapper.java      |  133 -
 .../v2/GridHadoopShutdownHookManager.java       |   96 -
 .../hadoop/v2/GridHadoopSplitWrapper.java       |  118 -
 .../hadoop/v2/GridHadoopV2CleanupTask.java      |   73 -
 .../hadoop/v2/GridHadoopV2Context.java          |  230 --
 .../hadoop/v2/GridHadoopV2Counter.java          |   87 -
 .../processors/hadoop/v2/GridHadoopV2Job.java   |  280 ---
 .../v2/GridHadoopV2JobResourceManager.java      |  305 ---
 .../hadoop/v2/GridHadoopV2MapTask.java          |  109 -
 .../hadoop/v2/GridHadoopV2Partitioner.java      |   44 -
 .../hadoop/v2/GridHadoopV2ReduceTask.java       |   88 -
 .../hadoop/v2/GridHadoopV2SetupTask.java        |   66 -
 .../hadoop/v2/GridHadoopV2Splitter.java         |  105 -
 .../processors/hadoop/v2/GridHadoopV2Task.java  |  181 --
 .../hadoop/v2/GridHadoopV2TaskContext.java      |  443 ----
 .../v2/GridHadoopWritableSerialization.java     |   74 -
 .../hadoop/v2/HadoopExternalSplit.java          |   87 +
 .../hadoop/v2/HadoopNativeCodeLoader.java       |   74 +
 .../hadoop/v2/HadoopSerializationWrapper.java   |  133 +
 .../hadoop/v2/HadoopShutdownHookManager.java    |   96 +
 .../hadoop/v2/HadoopSplitWrapper.java           |  118 +
 .../hadoop/v2/HadoopV2CleanupTask.java          |   73 +
 .../processors/hadoop/v2/HadoopV2Context.java   |  230 ++
 .../processors/hadoop/v2/HadoopV2Counter.java   |   87 +
 .../processors/hadoop/v2/HadoopV2Job.java       |  280 +++
 .../hadoop/v2/HadoopV2JobResourceManager.java   |  305 +++
 .../processors/hadoop/v2/HadoopV2MapTask.java   |  109 +
 .../hadoop/v2/HadoopV2Partitioner.java          |   44 +
 .../hadoop/v2/HadoopV2ReduceTask.java           |   88 +
 .../processors/hadoop/v2/HadoopV2SetupTask.java |   66 +
 .../processors/hadoop/v2/HadoopV2Splitter.java  |  105 +
 .../processors/hadoop/v2/HadoopV2Task.java      |  181 ++
 .../hadoop/v2/HadoopV2TaskContext.java          |  444 ++++
 .../hadoop/v2/HadoopWritableSerialization.java  |   74 +
 ...op.mapreduce.protocol.ClientProtocolProvider |    2 +-
 ...ridHadoopClientProtocolEmbeddedSelfTest.java |   34 -
 .../GridHadoopClientProtocolSelfTest.java       |  633 -----
 .../HadoopClientProtocolEmbeddedSelfTest.java   |   34 +
 .../hadoop/HadoopClientProtocolSelfTest.java    |  635 +++++
 .../HadoopIgfs20FileSystemAbstractSelfTest.java | 1967 +++++++++++++++
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |   74 +
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |   74 +
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |  305 +++
 .../igfs/HadoopIgfsDualAsyncSelfTest.java       |   32 +
 .../ignite/igfs/HadoopIgfsDualSyncSelfTest.java |   32 +
 ...oopSecondaryFileSystemConfigurationTest.java |   27 +-
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |   54 +-
 .../IgfsHadoop20FileSystemAbstractSelfTest.java | 1967 ---------------
 ...doop20FileSystemLoopbackPrimarySelfTest.java |   74 -
 ...sHadoop20FileSystemShmemPrimarySelfTest.java |   74 -
 .../igfs/IgfsHadoopDualAbstractSelfTest.java    |  304 ---
 .../igfs/IgfsHadoopDualAsyncSelfTest.java       |   32 -
 .../ignite/igfs/IgfsHadoopDualSyncSelfTest.java |   32 -
 .../IgfsHadoopFileSystemAbstractSelfTest.java   | 2366 ------------------
 .../IgfsHadoopFileSystemClientSelfTest.java     |  199 --
 .../IgfsHadoopFileSystemHandshakeSelfTest.java  |  311 ---
 .../IgfsHadoopFileSystemIpcCacheSelfTest.java   |  207 --
 .../IgfsHadoopFileSystemLoggerSelfTest.java     |  287 ---
 ...IgfsHadoopFileSystemLoggerStateSelfTest.java |  325 ---
 ...adoopFileSystemLoopbackAbstractSelfTest.java |   46 -
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |   33 -
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |   33 -
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |   33 -
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |   34 -
 ...SystemLoopbackExternalDualAsyncSelfTest.java |   33 -
 ...eSystemLoopbackExternalDualSyncSelfTest.java |   33 -
 ...leSystemLoopbackExternalPrimarySelfTest.java |   33 -
 ...SystemLoopbackExternalSecondarySelfTest.java |   34 -
 ...fsHadoopFileSystemSecondaryModeSelfTest.java |  319 ---
 ...fsHadoopFileSystemShmemAbstractSelfTest.java |   88 -
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |   33 -
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |   33 -
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |   33 -
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |   33 -
 ...ileSystemShmemExternalDualAsyncSelfTest.java |   33 -
 ...FileSystemShmemExternalDualSyncSelfTest.java |   33 -
 ...pFileSystemShmemExternalPrimarySelfTest.java |   33 -
 ...ileSystemShmemExternalSecondarySelfTest.java |   33 -
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |    4 +-
 .../IgniteHadoopFileSystemAbstractSelfTest.java | 2366 ++++++++++++++++++
 .../IgniteHadoopFileSystemClientSelfTest.java   |  199 ++
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |  311 +++
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |  207 ++
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |  287 +++
 ...niteHadoopFileSystemLoggerStateSelfTest.java |  325 +++
 ...adoopFileSystemLoopbackAbstractSelfTest.java |   46 +
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |   33 +
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |   33 +
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |   33 +
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |   34 +
 ...SystemLoopbackExternalDualAsyncSelfTest.java |   33 +
 ...eSystemLoopbackExternalDualSyncSelfTest.java |   33 +
 ...leSystemLoopbackExternalPrimarySelfTest.java |   33 +
 ...SystemLoopbackExternalSecondarySelfTest.java |   34 +
 ...teHadoopFileSystemSecondaryModeSelfTest.java |  319 +++
 ...teHadoopFileSystemShmemAbstractSelfTest.java |   88 +
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |   33 +
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |   33 +
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |   33 +
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |   33 +
 ...ileSystemShmemExternalDualAsyncSelfTest.java |   33 +
 ...FileSystemShmemExternalDualSyncSelfTest.java |   33 +
 ...pFileSystemShmemExternalPrimarySelfTest.java |   33 +
 ...ileSystemShmemExternalSecondarySelfTest.java |   33 +
 .../hadoop/GridHadoopAbstractSelfTest.java      |  222 --
 .../hadoop/GridHadoopAbstractWordCountTest.java |  138 -
 .../hadoop/GridHadoopClassLoaderTest.java       |   69 -
 .../hadoop/GridHadoopCommandLineTest.java       |  440 ----
 ...idHadoopDefaultMapReducePlannerSelfTest.java | 1005 --------
 .../hadoop/GridHadoopFileSystemsTest.java       |  177 --
 .../hadoop/GridHadoopGroupingTest.java          |  286 ---
 .../hadoop/GridHadoopJobTrackerSelfTest.java    |  330 ---
 .../GridHadoopMapReduceEmbeddedSelfTest.java    |  245 --
 .../hadoop/GridHadoopMapReduceTest.java         |  195 --
 .../hadoop/GridHadoopPopularWordsTest.java      |  294 ---
 .../GridHadoopSerializationWrapperSelfTest.java |   74 -
 .../processors/hadoop/GridHadoopSharedMap.java  |   67 -
 .../hadoop/GridHadoopSortingExternalTest.java   |   32 -
 .../hadoop/GridHadoopSortingTest.java           |  281 ---
 .../hadoop/GridHadoopSplitWrapperSelfTest.java  |   68 -
 .../processors/hadoop/GridHadoopStartup.java    |   55 -
 .../hadoop/GridHadoopTaskExecutionSelfTest.java |  551 ----
 .../hadoop/GridHadoopTasksAllVersionsTest.java  |  259 --
 .../hadoop/GridHadoopTasksV1Test.java           |   57 -
 .../hadoop/GridHadoopTasksV2Test.java           |   75 -
 .../GridHadoopTestRoundRobinMrPlanner.java      |   66 -
 .../hadoop/GridHadoopTestTaskContext.java       |  219 --
 .../processors/hadoop/GridHadoopTestUtils.java  |  102 -
 .../hadoop/GridHadoopV2JobSelfTest.java         |   88 -
 .../hadoop/GridHadoopValidationSelfTest.java    |   53 -
 .../hadoop/HadoopAbstractSelfTest.java          |  222 ++
 .../hadoop/HadoopAbstractWordCountTest.java     |  138 +
 .../hadoop/HadoopClassLoaderTest.java           |   69 +
 .../hadoop/HadoopCommandLineTest.java           |  440 ++++
 .../HadoopDefaultMapReducePlannerSelfTest.java  | 1006 ++++++++
 .../hadoop/HadoopFileSystemsTest.java           |  177 ++
 .../processors/hadoop/HadoopGroupingTest.java   |  287 +++
 .../hadoop/HadoopJobTrackerSelfTest.java        |  331 +++
 .../hadoop/HadoopMapReduceEmbeddedSelfTest.java |  246 ++
 .../processors/hadoop/HadoopMapReduceTest.java  |  197 ++
 .../hadoop/HadoopPopularWordsTest.java          |  294 +++
 .../HadoopSerializationWrapperSelfTest.java     |   74 +
 .../processors/hadoop/HadoopSharedMap.java      |   67 +
 .../hadoop/HadoopSortingExternalTest.java       |   34 +
 .../processors/hadoop/HadoopSortingTest.java    |  282 +++
 .../hadoop/HadoopSplitWrapperSelfTest.java      |   68 +
 .../processors/hadoop/HadoopStartup.java        |   54 +
 .../hadoop/HadoopTaskExecutionSelfTest.java     |  551 ++++
 .../hadoop/HadoopTasksAllVersionsTest.java      |  259 ++
 .../processors/hadoop/HadoopTasksV1Test.java    |   57 +
 .../processors/hadoop/HadoopTasksV2Test.java    |   75 +
 .../hadoop/HadoopTestRoundRobinMrPlanner.java   |   66 +
 .../hadoop/HadoopTestTaskContext.java           |  219 ++
 .../processors/hadoop/HadoopTestUtils.java      |  102 +
 .../processors/hadoop/HadoopV2JobSelfTest.java  |   88 +
 .../hadoop/HadoopValidationSelfTest.java        |   53 +
 .../hadoop/examples/GridHadoopWordCount1.java   |   88 -
 .../examples/GridHadoopWordCount1Map.java       |   62 -
 .../examples/GridHadoopWordCount1Reduce.java    |   51 -
 .../hadoop/examples/GridHadoopWordCount2.java   |   95 -
 .../examples/GridHadoopWordCount2Mapper.java    |   72 -
 .../examples/GridHadoopWordCount2Reducer.java   |   70 -
 .../hadoop/examples/HadoopWordCount1.java       |   88 +
 .../hadoop/examples/HadoopWordCount1Map.java    |   62 +
 .../hadoop/examples/HadoopWordCount1Reduce.java |   51 +
 .../hadoop/examples/HadoopWordCount2.java       |   95 +
 .../hadoop/examples/HadoopWordCount2Mapper.java |   72 +
 .../examples/HadoopWordCount2Reducer.java       |   70 +
 .../collections/GridHadoopAbstractMapTest.java  |  152 --
 ...ridHadoopConcurrentHashMultimapSelftest.java |  267 --
 .../collections/GridHadoopHashMapSelfTest.java  |  170 --
 .../collections/GridHadoopSkipListSelfTest.java |  303 ---
 .../collections/HadoopAbstractMapTest.java      |  154 ++
 .../HadoopConcurrentHashMultimapSelftest.java   |  267 ++
 .../collections/HadoopHashMapSelfTest.java      |  170 ++
 .../collections/HadoopSkipListSelfTest.java     |  303 +++
 .../streams/GridHadoopDataStreamSelfTest.java   |  151 --
 .../streams/HadoopDataStreamSelfTest.java       |  151 ++
 .../GridHadoopExecutorServiceTest.java          |  119 -
 .../taskexecutor/HadoopExecutorServiceTest.java |  119 +
 ...GridHadoopExternalTaskExecutionSelfTest.java |  210 --
 .../HadoopExternalTaskExecutionSelfTest.java    |  211 ++
 ...GridHadoopExternalCommunicationSelfTest.java |  209 --
 .../HadoopExternalCommunicationSelfTest.java    |  209 ++
 .../testsuites/IgniteHadoopTestSuite.java       |   82 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |   22 +-
 .../org/apache/ignite/IgniteSpringBean.java     |    4 +-
 .../scala/org/apache/ignite/visor/visor.scala   |    4 +-
 pom.xml                                         |   12 +-
 561 files changed, 47565 insertions(+), 47291 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/bin/setup-hadoop.bat
----------------------------------------------------------------------
diff --git a/bin/setup-hadoop.bat b/bin/setup-hadoop.bat
index c4c73b3..a11ef8c 100644
--- a/bin/setup-hadoop.bat
+++ b/bin/setup-hadoop.bat
@@ -23,6 +23,6 @@
 
 if "%OS%" == "Windows_NT" setlocal
 
-set MAIN_CLASS=org.apache.ignite.hadoop.GridHadoopSetup
+set MAIN_CLASS=org.apache.ignite.internal.processors.hadoop.HadoopSetup
 
 call "%~dp0\ignite.bat" %*

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/bin/setup-hadoop.sh
----------------------------------------------------------------------
diff --git a/bin/setup-hadoop.sh b/bin/setup-hadoop.sh
index 8969dfa..d66353f 100755
--- a/bin/setup-hadoop.sh
+++ b/bin/setup-hadoop.sh
@@ -54,7 +54,7 @@ setIgniteHome
 #
 # Set utility environment.
 #
-export MAIN_CLASS=org.apache.ignite.internal.processors.hadoop.GridHadoopSetup
+export MAIN_CLASS=org.apache.ignite.internal.processors.hadoop.HadoopSetup
 
 #
 # Start utility.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/config/hadoop/default-config.xml
----------------------------------------------------------------------
diff --git a/config/hadoop/default-config.xml b/config/hadoop/default-config.xml
index a264749..65a281e 100644
--- a/config/hadoop/default-config.xml
+++ b/config/hadoop/default-config.xml
@@ -52,7 +52,7 @@
     <!--
         Abstract IGFS file system configuration to be used as a template.
     -->
-    <bean id="igfsCfgBase" class="org.apache.ignite.configuration.IgfsConfiguration" abstract="true">
+    <bean id="igfsCfgBase" class="org.apache.ignite.configuration.FileSystemConfiguration" abstract="true">
         <!-- Must correlate with cache affinity mapper. -->
         <property name="blockSize" value="#{128 * 1024}"/>
         <property name="perNodeBatchSize" value="512"/>
@@ -94,7 +94,7 @@
             Apache Hadoop Accelerator configuration.
         -->
         <property name="hadoopConfiguration">
-            <bean class="org.apache.ignite.internal.processors.hadoop.GridHadoopConfiguration">
+            <bean class="org.apache.ignite.configuration.HadoopConfiguration">
                 <!-- Information about finished jobs will be kept for 30 seconds. -->
                 <property name="finishedJobInfoTtl" value="30000"/>
             </bean>
@@ -112,9 +112,9 @@
         <!--
             Configure one IGFS file system instance named "igfs" on this node.
         -->
-        <property name="igfsConfiguration">
+        <property name="fileSystemConfiguration">
             <list>
-                <bean class="org.apache.ignite.configuration.IgfsConfiguration" parent="igfsCfgBase">
+                <bean class="org.apache.ignite.configuration.FileSystemConfiguration" parent="igfsCfgBase">
                     <property name="name" value="igfs"/>
 
                     <!-- Caches with these names must be configured. -->
@@ -135,7 +135,7 @@
                     <property name="defaultMode" value="PROXY"/>
 
                     <property name="secondaryFileSystem">
-                        <bean class="org.apache.ignite.igfs.hadoop.IgfsHadoopFileSystemWrapper">
+                        <bean class="org.apache.ignite.hadoop.fs.IgniteHadoopIgfsSecondaryFileSystem">
                             <constructor-arg name="uri"     value="hdfs://1.2.3.4:9000"/>
                             <constructor-arg name="cfgPath" value="/opt/hadoop-server/etc/hadoop/core-site.xml"/>
                         </bean>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/docs/core-site.ignite.xml
----------------------------------------------------------------------
diff --git a/docs/core-site.ignite.xml b/docs/core-site.ignite.xml
index ed11a79..8b8e634 100644
--- a/docs/core-site.ignite.xml
+++ b/docs/core-site.ignite.xml
@@ -48,7 +48,7 @@
     -->
     <property>
         <name>fs.igfs.impl</name>
-        <value>org.apache.ignite.igfs.hadoop.v1.IgfsHadoopFileSystem</value>
+        <value>org.apache.ignite.hadoop.fs.v1.IgniteHadoopFileSystem</value>
     </property>
 
     <!--
@@ -56,7 +56,7 @@
     -->
     <property>
         <name>fs.AbstractFileSystem.igfs.impl</name>
-        <value>org.apache.ignite.igfs.hadoop.v2.IgfsHadoopFileSystem</value>
+        <value>org.apache.ignite.hadoop.fs.v2.IgniteHadoopFileSystem</value>
     </property>
 
     <!--
@@ -73,7 +73,7 @@
     <!--
     <property>
         <name>ignite.counters.writer</name>
-        <value>org.apache.ignite.internal.processors.hadoop.counter.GridHadoopFSCounterWriter</value>
+        <value>org.apache.ignite.hadoop.fs.IgniteHadoopFileSystemCounterWriter</value>
     </property>
     -->
 

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/examples/config/filesystem/core-site.xml
----------------------------------------------------------------------
diff --git a/examples/config/filesystem/core-site.xml b/examples/config/filesystem/core-site.xml
index 7c6cfaa..b6f0291 100644
--- a/examples/config/filesystem/core-site.xml
+++ b/examples/config/filesystem/core-site.xml
@@ -31,12 +31,12 @@
     <property>
         <!-- FS driver class for the 'igfs://' URIs. -->
         <name>fs.igfs.impl</name>
-        <value>org.apache.ignite.igfs.hadoop.v1.IgfsHadoopFileSystem</value>
+        <value>org.apache.ignite.hadoop.fs.v1.IgniteHadoopFileSystem</value>
     </property>
 
     <property>
         <!-- FS driver class for the 'igfs://' URIs in Hadoop2.x -->
         <name>fs.AbstractFileSystem.igfs.impl</name>
-        <value>org.apache.ignite.igfs.hadoop.v2.IgfsHadoopFileSystem</value>
+        <value>org.apache.ignite.hadoop.fs.v2.IgniteHadoopFileSystem</value>
     </property>
 </configuration>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/examples/config/filesystem/example-igfs.xml
----------------------------------------------------------------------
diff --git a/examples/config/filesystem/example-igfs.xml b/examples/config/filesystem/example-igfs.xml
index 30cf51e..d8ccd34 100644
--- a/examples/config/filesystem/example-igfs.xml
+++ b/examples/config/filesystem/example-igfs.xml
@@ -63,9 +63,9 @@
             </bean>
         </property>
 
-        <property name="igfsConfiguration">
+        <property name="fileSystemConfiguration">
             <list>
-                <bean class="org.apache.ignite.configuration.IgfsConfiguration">
+                <bean class="org.apache.ignite.configuration.FileSystemConfiguration">
                     <property name="name" value="igfs"/>
                     <property name="metaCacheName" value="igfs-meta"/>
                     <property name="dataCacheName" value="igfs-data"/>

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsExample.java b/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsExample.java
index 56f3fa4..8bfd38d 100644
--- a/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsExample.java
@@ -25,7 +25,7 @@ import java.io.*;
 import java.util.*;
 
 /**
- * Example that shows usage of {@link org.apache.ignite.IgniteFs} API. It starts a node with {@code IgniteFs}
+ * Example that shows usage of {@link org.apache.ignite.IgniteFileSystem} API. It starts a node with {@code IgniteFs}
  * configured and performs several file system operations (create, write, append, read and delete
  * files, create, list and delete directories).
  * <p>
@@ -50,7 +50,7 @@ public final class IgfsExample {
 
         try {
             // Get an instance of Ignite File System.
-            IgniteFs fs = ignite.fileSystem("igfs");
+            IgniteFileSystem fs = ignite.fileSystem("igfs");
 
             // Working directory path.
             IgfsPath workDir = new IgfsPath("/examples/fs");
@@ -107,7 +107,7 @@ public final class IgfsExample {
      * @param path File or directory path.
      * @throws IgniteException In case of error.
      */
-    private static void delete(IgniteFs fs, IgfsPath path) throws IgniteException {
+    private static void delete(IgniteFileSystem fs, IgfsPath path) throws IgniteException {
         assert fs != null;
         assert path != null;
 
@@ -139,7 +139,7 @@ public final class IgfsExample {
      * @param path Directory path.
      * @throws IgniteException In case of error.
      */
-    private static void mkdirs(IgniteFs fs, IgfsPath path) throws IgniteException {
+    private static void mkdirs(IgniteFileSystem fs, IgfsPath path) throws IgniteException {
         assert fs != null;
         assert path != null;
 
@@ -166,7 +166,7 @@ public final class IgfsExample {
      * @throws IgniteException If file can't be created.
      * @throws IOException If data can't be written.
      */
-    private static void create(IgniteFs fs, IgfsPath path, @Nullable byte[] data)
+    private static void create(IgniteFileSystem fs, IgfsPath path, @Nullable byte[] data)
         throws IgniteException, IOException {
         assert fs != null;
         assert path != null;
@@ -195,7 +195,7 @@ public final class IgfsExample {
      * @throws IgniteException If file can't be created.
      * @throws IOException If data can't be written.
      */
-    private static void append(IgniteFs fs, IgfsPath path, byte[] data) throws IgniteException, IOException {
+    private static void append(IgniteFileSystem fs, IgfsPath path, byte[] data) throws IgniteException, IOException {
         assert fs != null;
         assert path != null;
         assert data != null;
@@ -220,7 +220,7 @@ public final class IgfsExample {
      * @throws IgniteException If file can't be opened.
      * @throws IOException If data can't be read.
      */
-    private static void read(IgniteFs fs, IgfsPath path) throws IgniteException, IOException {
+    private static void read(IgniteFileSystem fs, IgfsPath path) throws IgniteException, IOException {
         assert fs != null;
         assert path != null;
         assert fs.info(path).isFile();
@@ -242,7 +242,7 @@ public final class IgfsExample {
      * @param path Directory path.
      * @throws IgniteException In case of error.
      */
-    private static void list(IgniteFs fs, IgfsPath path) throws IgniteException {
+    private static void list(IgniteFileSystem fs, IgfsPath path) throws IgniteException {
         assert fs != null;
         assert path != null;
         assert fs.info(path).isDirectory();
@@ -271,7 +271,7 @@ public final class IgfsExample {
      * @param path File or directory path.
      * @throws IgniteException In case of error.
      */
-    private static void printInfo(IgniteFs fs, IgfsPath path) throws IgniteException {
+    private static void printInfo(IgniteFileSystem fs, IgfsPath path) throws IgniteException {
         System.out.println();
         System.out.println("Information for " + path + ": " + fs.info(path));
     }

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsMapReduceExample.java
----------------------------------------------------------------------
diff --git a/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsMapReduceExample.java b/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsMapReduceExample.java
index 22a66a3..ed0abe4 100644
--- a/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsMapReduceExample.java
+++ b/examples/src/main/java/org/apache/ignite/examples/igfs/IgfsMapReduceExample.java
@@ -61,7 +61,7 @@ public class IgfsMapReduceExample {
                 String regexStr = args[1];
 
                 // Get an instance of Ignite File System.
-                IgniteFs fs = ignite.fileSystem("igfs");
+                IgniteFileSystem fs = ignite.fileSystem("igfs");
 
                 // Working directory path.
                 IgfsPath workDir = new IgfsPath("/examples/fs");
@@ -94,7 +94,7 @@ public class IgfsMapReduceExample {
      * @param file File to write.
      * @throws Exception In case of exception.
      */
-    private static void writeFile(IgniteFs fs, IgfsPath fsPath, File file) throws Exception {
+    private static void writeFile(IgniteFileSystem fs, IgfsPath fsPath, File file) throws Exception {
         System.out.println();
         System.out.println("Copying file to IGFS: " + file);
 
@@ -173,7 +173,7 @@ public class IgfsMapReduceExample {
         }
 
         /**  {@inheritDoc} */
-        @Override public Object execute(IgniteFs igfs, IgfsRangeInputStream in) throws IgniteException, IOException {
+        @Override public Object execute(IgniteFileSystem igfs, IgfsRangeInputStream in) throws IgniteException, IOException {
             Collection<Line> res = null;
 
             long start = in.startOffset();

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/modules/core/src/main/java/org/apache/ignite/Ignite.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/Ignite.java b/modules/core/src/main/java/org/apache/ignite/Ignite.java
index 8851d8f..31b827e 100644
--- a/modules/core/src/main/java/org/apache/ignite/Ignite.java
+++ b/modules/core/src/main/java/org/apache/ignite/Ignite.java
@@ -43,7 +43,7 @@ import java.util.concurrent.*;
  * <ul>
  * <li>{@link org.apache.ignite.cache.GridCache} - functionality for in-memory distributed cache.</li>
  * <li>{@link IgniteDataLoader} - functionality for loading data large amounts of data into cache.</li>
- * <li>{@link IgniteFs} - functionality for distributed Hadoop-compliant in-memory file system and map-reduce.</li>
+ * <li>{@link IgniteFileSystem} - functionality for distributed Hadoop-compliant in-memory file system and map-reduce.</li>
  * <li>{@link IgniteStreamer} - functionality for streaming events workflow with queries and indexes into rolling windows.</li>
  * <li>{@link IgniteScheduler} - functionality for scheduling jobs using UNIX Cron syntax.</li>
  * <li>{@link IgniteCompute} - functionality for executing tasks and closures on all grid nodes (inherited form {@link ClusterGroup}).</li>
@@ -213,7 +213,7 @@ public interface Ignite extends AutoCloseable {
     public <K, V> IgniteDataLoader<K, V> dataLoader(@Nullable String cacheName);
 
     /**
-     * Gets an instance of IGFS - Ignite In-Memory File System, if one is not
+     * Gets an instance of IGFS (Ignite In-Memory File System). If one is not
      * configured then {@link IllegalArgumentException} will be thrown.
      * <p>
      * IGFS is fully compliant with Hadoop {@code FileSystem} APIs and can
@@ -222,15 +222,16 @@ public interface Ignite extends AutoCloseable {
      *
      * @param name IGFS name.
      * @return IGFS instance.
+     * @throws IllegalArgumentException If IGFS with such name is not configured.
      */
-    public IgniteFs fileSystem(String name);
+    public IgniteFileSystem fileSystem(String name);
 
     /**
-     * Gets all instances of the grid file systems.
+     * Gets all instances of IGFS (Ignite In-Memory File System).
      *
-     * @return Collection of grid file systems instances.
+     * @return Collection of IGFS instances.
      */
-    public Collection<IgniteFs> fileSystems();
+    public Collection<IgniteFileSystem> fileSystems();
 
     /**
      * Gets an instance of streamer by name, if one does not exist then

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/modules/core/src/main/java/org/apache/ignite/IgniteFileSystem.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/IgniteFileSystem.java b/modules/core/src/main/java/org/apache/ignite/IgniteFileSystem.java
new file mode 100644
index 0000000..d221ae2
--- /dev/null
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteFileSystem.java
@@ -0,0 +1,457 @@
+/*
+ * 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;
+
+import org.apache.ignite.configuration.*;
+import org.apache.ignite.igfs.*;
+import org.apache.ignite.igfs.mapreduce.*;
+import org.apache.ignite.lang.*;
+import org.jetbrains.annotations.*;
+
+import java.util.*;
+
+/**
+ * <b>IG</b>nite <b>F</b>ile <b>S</b>ystem API. It provides a typical file system "view" on a particular cache:
+ * <ul>
+ *     <li>list directories or get information for a single path</li>
+ *     <li>create/move/delete files or directories</li>
+ *     <li>write/read data streams into/from files</li>
+ * </ul>
+ * The data of each file is split on separate data blocks and stored in the cache.
+ * You can access file's data with a standard Java streaming API. Moreover, for each part
+ * of the file you can calculate an affinity and process file's content on corresponding
+ * nodes to escape unnecessary networking.
+ * <p/>
+ * This API is fully thread-safe and you can use it from several threads.
+ * <h1 class="header">IGFS Configuration</h1>
+ * The simplest way to run a Ignite node with configured file system is to pass
+ * special configuration file included in Ignite distribution to {@code ignite.sh} or
+ * {@code ignite.bat} scripts, like this: {@code ignite.sh config/hadoop/default-config.xml}
+ * <p>
+ * {@code IGFS} 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
+ * data nodes remotely. When used as Hadoop file system, clients nodes usually started together
+ * with {@code job-submitter} or {@code job-scheduler} processes, while data nodes are usually
+ * started together with Hadoop {@code task-tracker} processes.
+ * <h1 class="header">Integration With Hadoop</h1>
+ * In addition to direct file system API, {@code IGFS} can be integrated with {@code Hadoop} by
+ * plugging in as {@code Hadoop FileSystem}. Refer to
+ * {@code org.apache.ignite.hadoop.fs.v1.IgniteHadoopFileSystem} or
+ * {@code org.apache.ignite.hadoop.fs.v2.IgniteHadoopFileSystem} for more information.
+ * <p>
+ * <b>NOTE:</b> integration with Hadoop is available only in {@code In-Memory Accelerator For Hadoop} edition.
+ */
+public interface IgniteFileSystem extends IgniteAsyncSupport {
+    /** IGFS scheme name. */
+    public static final String IGFS_SCHEME = "igfs";
+
+    /**
+     * Gets IGFS name.
+     *
+     * @return IGFS name, or {@code null} for default file system.
+     */
+    public String name();
+
+    /**
+     * Gets IGFS configuration.
+     *
+     * @return IGFS configuration.
+     */
+    public FileSystemConfiguration configuration();
+
+    /**
+     * Gets summary (total number of files, total number of directories and total length)
+     * for a given path.
+     *
+     * @param path Path to get information for.
+     * @return Summary object.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path is not found.
+     * @throws IgniteException If failed.
+     */
+    public IgfsPathSummary summary(IgfsPath path) throws IgniteException;
+
+    /**
+     * Opens a file for reading.
+     *
+     * @param path File path to read.
+     * @return File input stream to read data from.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
+     */
+    public IgfsInputStream open(IgfsPath path) throws IgniteException;
+
+    /**
+     * Opens a file for reading.
+     *
+     * @param path File path to read.
+     * @param bufSize Read buffer size (bytes) or {@code zero} to use default value.
+     * @return File input stream to read data from.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
+     */
+    public IgfsInputStream open(IgfsPath path, int bufSize) throws IgniteException;
+
+    /**
+     * Opens a file for reading.
+     *
+     * @param path File path to read.
+     * @param bufSize Read buffer size (bytes) or {@code zero} to use default value.
+     * @param seqReadsBeforePrefetch Amount of sequential reads before prefetch is started.
+     * @return File input stream to read data from.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
+     */
+    public IgfsInputStream open(IgfsPath path, int bufSize, int seqReadsBeforePrefetch) throws IgniteException;
+
+    /**
+     * Creates a file and opens it for writing.
+     *
+     * @param path File path to create.
+     * @param overwrite Overwrite file if it already exists. Note: you cannot overwrite an existent directory.
+     * @return File output stream to write data to.
+     * @throws IgniteException In case of error.
+     */
+    public IgfsOutputStream create(IgfsPath path, boolean overwrite) throws IgniteException;
+
+    /**
+     * Creates a file and opens it for writing.
+     *
+     * @param path File path to create.
+     * @param bufSize Write buffer size (bytes) or {@code zero} to use default value.
+     * @param overwrite Overwrite file if it already exists. Note: you cannot overwrite an existent directory.
+     * @param replication Replication factor.
+     * @param blockSize Block size.
+     * @param props File properties to set.
+     * @return File output stream to write data to.
+     * @throws IgniteException In case of error.
+     */
+    public IgfsOutputStream create(IgfsPath path, int bufSize, boolean overwrite, int replication,
+        long blockSize, @Nullable Map<String, String> props) throws IgniteException;
+
+    /**
+     * Creates a file and opens it for writing.
+     *
+     * @param path File path to create.
+     * @param bufSize Write buffer size (bytes) or {@code zero} to use default value.
+     * @param overwrite Overwrite file if it already exists. Note: you cannot overwrite an existent directory.
+     * @param affKey Affinity key used to store file blocks. If not {@code null}, the whole file will be
+     *      stored on node where {@code affKey} resides.
+     * @param replication Replication factor.
+     * @param blockSize Block size.
+     * @param props File properties to set.
+     * @return File output stream to write data to.
+     * @throws IgniteException In case of error.
+     */
+    public IgfsOutputStream create(IgfsPath path, int bufSize, boolean overwrite,
+        @Nullable IgniteUuid affKey, int replication, long blockSize, @Nullable Map<String, String> props)
+        throws IgniteException;
+
+    /**
+     * Opens an output stream to an existing file for appending data.
+     *
+     * @param path File path to append.
+     * @param create Create file if it doesn't exist yet.
+     * @return File output stream to append data to.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist and create flag is {@code false}.
+     */
+    public IgfsOutputStream append(IgfsPath path, boolean create) throws IgniteException;
+
+    /**
+     * Opens an output stream to an existing file for appending data.
+     *
+     * @param path File path to append.
+     * @param bufSize Write buffer size (bytes) or {@code zero} to use default value.
+     * @param create Create file if it doesn't exist yet.
+     * @param props File properties to set only in case it file was just created.
+     * @return File output stream to append data to.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist and create flag is {@code false}.
+     */
+    public IgfsOutputStream append(IgfsPath path, int bufSize, boolean create, @Nullable Map<String, String> props)
+        throws IgniteException;
+
+    /**
+     * Sets last access time and last modification time for a given path. If argument is {@code null},
+     * corresponding time will not be changed.
+     *
+     * @param path Path to update.
+     * @param accessTime Optional last access time to set. Value {@code -1} does not update access time.
+     * @param modificationTime Optional last modification time to set. Value {@code -1} does not update
+     *      modification time.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If target was not found.
+     * @throws IgniteException If error occurred.
+     */
+    public void setTimes(IgfsPath path, long accessTime, long modificationTime) throws IgniteException;
+
+    /**
+     * Gets affinity block locations for data blocks of the file, i.e. the nodes, on which the blocks
+     * are stored.
+     *
+     * @param path File path to get affinity for.
+     * @param start Position in the file to start affinity resolution from.
+     * @param len Size of data in the file to resolve affinity for.
+     * @return Affinity block locations.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
+     */
+    public Collection<IgfsBlockLocation> affinity(IgfsPath path, long start, long len) throws IgniteException;
+
+    /**
+     * Get affinity block locations for data blocks of the file. In case {@code maxLen} parameter is set and
+     * particular block location length is greater than this value, block locations will be split into smaller
+     * chunks.
+     *
+     * @param path File path to get affinity for.
+     * @param start Position in the file to start affinity resolution from.
+     * @param len Size of data in the file to resolve affinity for.
+     * @param maxLen Maximum length of a single returned block location length.
+     * @return Affinity block locations.
+     * @throws IgniteException In case of error.
+     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
+     */
+    public Collection<IgfsBlockLocation> affinity(IgfsPath path, long start, long len, long maxLen)
+        throws IgniteException;
+
+    /**
+     * Gets metrics snapshot for this file system.
+     *
+     * @return Metrics.
+     * @throws IgniteException In case of error.
+     */
+    public IgfsMetrics metrics() throws IgniteException;
+
+    /**
+     * Resets metrics for this file system.
+     *
+     * @throws IgniteException In case of error.
+     */
+    public void resetMetrics() throws IgniteException;
+
+    /**
+     * Determines size of the file denoted by provided path. In case if path is a directory, then
+     * total size of all containing entries will be calculated recursively.
+     *
+     * @param path File system path.
+     * @return Total size.
+     * @throws IgniteException In case of error.
+     */
+    public long size(IgfsPath path) throws IgniteException;
+
+    /**
+     * Formats the file system removing all existing entries from it.
+     * <p>
+     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
+     *
+     * @throws IgniteException In case format has failed.
+     */
+    @IgniteAsyncSupported
+    public void format() throws IgniteException;
+
+    /**
+     * Executes IGFS task.
+     * <p>
+     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
+     *
+     * @param task Task to execute.
+     * @param rslvr Optional resolver to control split boundaries.
+     * @param paths Collection of paths to be processed within this task.
+     * @param arg Optional task argument.
+     * @return Task result.
+     * @throws IgniteException If execution failed.
+     */
+    @IgniteAsyncSupported
+    public <T, R> R execute(IgfsTask<T, R> task, @Nullable IgfsRecordResolver rslvr,
+        Collection<IgfsPath> paths, @Nullable T arg) throws IgniteException;
+
+    /**
+     * Executes IGFS task with overridden maximum range length (see
+     * {@link org.apache.ignite.configuration.FileSystemConfiguration#getMaximumTaskRangeLength()} for more information).
+     * <p>
+     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
+     *
+     * @param task Task to execute.
+     * @param rslvr Optional resolver to control split boundaries.
+     * @param paths Collection of paths to be processed within this task.
+     * @param skipNonExistentFiles Whether to skip non existent files. If set to {@code true} non-existent files will
+     *     be ignored. Otherwise an exception will be thrown.
+     * @param maxRangeLen Optional maximum range length. If {@code 0}, then by default all consecutive
+     *      IGFS blocks will be included.
+     * @param arg Optional task argument.
+     * @return Task result.
+     * @throws IgniteException If execution failed.
+     */
+    @IgniteAsyncSupported
+    public <T, R> R execute(IgfsTask<T, R> task, @Nullable IgfsRecordResolver rslvr,
+        Collection<IgfsPath> paths, boolean skipNonExistentFiles, long maxRangeLen, @Nullable T arg)
+        throws IgniteException;
+
+    /**
+     * Executes IGFS task.
+     * <p>
+     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
+     *
+     * @param taskCls Task class to execute.
+     * @param rslvr Optional resolver to control split boundaries.
+     * @param paths Collection of paths to be processed within this task.
+     * @param arg Optional task argument.
+     * @return Task result.
+     * @throws IgniteException If execution failed.
+     */
+    @IgniteAsyncSupported
+    public <T, R> R execute(Class<? extends IgfsTask<T, R>> taskCls,
+        @Nullable IgfsRecordResolver rslvr, Collection<IgfsPath> paths, @Nullable T arg) throws IgniteException;
+
+    /**
+     * Executes IGFS task with overridden maximum range length (see
+     * {@link org.apache.ignite.configuration.FileSystemConfiguration#getMaximumTaskRangeLength()} for more information).
+     * <p>
+     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
+     *
+     * @param taskCls Task class to execute.
+     * @param rslvr Optional resolver to control split boundaries.
+     * @param paths Collection of paths to be processed within this task.
+     * @param skipNonExistentFiles Whether to skip non existent files. If set to {@code true} non-existent files will
+     *     be ignored. Otherwise an exception will be thrown.
+     * @param maxRangeLen Maximum range length.
+     * @param arg Optional task argument.
+     * @return Task result.
+     * @throws IgniteException If execution failed.
+     */
+    @IgniteAsyncSupported
+    public <T, R> R execute(Class<? extends IgfsTask<T, R>> taskCls,
+        @Nullable IgfsRecordResolver rslvr, Collection<IgfsPath> paths, boolean skipNonExistentFiles,
+        long maxRangeLen, @Nullable T arg) throws IgniteException;
+
+    /**
+     * Checks if the specified path exists in the file system.
+     *
+     * @param path Path to check for existence in the file system.
+     * @return {@code True} if such file exists, otherwise - {@code false}.
+     * @throws IgniteException In case of error.
+     */
+    public boolean exists(IgfsPath path);
+
+    /**
+     * Updates file information for the specified path. Existent properties, not listed in the passed collection,
+     * will not be affected. Other properties will be added or overwritten. Passed properties with {@code null} values
+     * will be removed from the stored properties or ignored if they don't exist in the file info.
+     * <p>
+     * When working in {@code DUAL_SYNC} or {@code DUAL_ASYNC} modes only the following properties will be propagated
+     * to the secondary file system:
+     * <ul>
+     * <li>{@code usrName} - file owner name;</li>
+     * <li>{@code grpName} - file owner group;</li>
+     * <li>{@code permission} - Unix-style string representing file permissions.</li>
+     * </ul>
+     *
+     * @param path File path to set properties for.
+     * @param props Properties to update.
+     * @return File information for specified path or {@code null} if such path does not exist.
+     * @throws IgniteException In case of error.
+     */
+    public IgfsFile update(IgfsPath path, Map<String, String> props) throws IgniteException;
+
+    /**
+     * Renames/moves a file.
+     * <p>
+     * You are free to rename/move data files as you wish, but directories can be only renamed.
+     * You cannot move the directory between different parent directories.
+     * <p>
+     * Examples:
+     * <ul>
+     *     <li>"/work/file.txt" => "/home/project/Presentation Scenario.txt"</li>
+     *     <li>"/work" => "/work-2012.bkp"</li>
+     *     <li>"/work" => "<strike>/backups/work</strike>" - such operation is restricted for directories.</li>
+     * </ul>
+     *
+     * @param src Source file path to rename.
+     * @param dest Destination file path. If destination path is a directory, then source file will be placed
+     *     into destination directory with original name.
+     * @throws IgniteException In case of error.
+     * @throws IgfsFileNotFoundException If source file doesn't exist.
+     */
+    public void rename(IgfsPath src, IgfsPath dest) throws IgniteException;
+
+    /**
+     * Deletes file.
+     *
+     * @param path File path to delete.
+     * @param recursive Delete non-empty directories recursively.
+     * @return {@code True} in case of success, {@code false} otherwise.
+     * @throws IgniteException In case of error.
+     */
+    public boolean delete(IgfsPath path, boolean recursive) throws IgniteException;
+
+    /**
+     * Creates directories under specified path.
+     *
+     * @param path Path of directories chain to create.
+     * @throws IgniteException In case of error.
+     */
+    public void mkdirs(IgfsPath path) throws IgniteException;
+
+    /**
+     * Creates directories under specified path with the specified properties.
+     *
+     * @param path Path of directories chain to create.
+     * @param props Metadata properties to set on created directories.
+     * @throws IgniteException In case of error.
+     */
+    public void mkdirs(IgfsPath path, @Nullable Map<String, String> props) throws IgniteException;
+
+    /**
+     * Lists file paths under the specified path.
+     *
+     * @param path Path to list files under.
+     * @return List of files under the specified path.
+     * @throws IgniteException In case of error.
+     * @throws IgfsFileNotFoundException If path doesn't exist.
+     */
+    public Collection<IgfsPath> listPaths(IgfsPath path) throws IgniteException;
+
+    /**
+     * Lists files under the specified path.
+     *
+     * @param path Path to list files under.
+     * @return List of files under the specified path.
+     * @throws IgniteException In case of error.
+     * @throws IgfsFileNotFoundException If path doesn't exist.
+     */
+    public Collection<IgfsFile> listFiles(IgfsPath path) throws IgniteException;
+
+    /**
+     * Gets file information for the specified path.
+     *
+     * @param path Path to get information for.
+     * @return File information for specified path or {@code null} if such path does not exist.
+     * @throws IgniteException In case of error.
+     */
+    public IgfsFile info(IgfsPath path) throws IgniteException;
+
+    /**
+     * Gets used space in bytes.
+     *
+     * @return Used space in bytes.
+     * @throws IgniteException In case of error.
+     */
+    public long usedSpaceSize() throws IgniteException;
+
+    /** {@inheritDoc} */
+    @Override public IgniteFileSystem withAsync();
+}

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/498dcfab/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
deleted file mode 100644
index dc11973..0000000
--- a/modules/core/src/main/java/org/apache/ignite/IgniteFs.java
+++ /dev/null
@@ -1,346 +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;
-
-import org.apache.ignite.configuration.*;
-import org.apache.ignite.igfs.*;
-import org.apache.ignite.igfs.mapreduce.*;
-import org.apache.ignite.lang.*;
-import org.jetbrains.annotations.*;
-
-import java.util.*;
-
-/**
- * <b>IG</b>nite <b>F</b>ile <b>S</b>ystem API. It provides a typical file system "view" on a particular cache:
- * <ul>
- *     <li>list directories or get information for a single path</li>
- *     <li>create/move/delete files or directories</li>
- *     <li>write/read data streams into/from files</li>
- * </ul>
- * The data of each file is split on separate data blocks and stored in the cache.
- * You can access file's data with a standard Java streaming API. Moreover, for each part
- * of the file you can calculate an affinity and process file's content on corresponding
- * nodes to escape unnecessary networking.
- * <p/>
- * This API is fully thread-safe and you can use it from several threads.
- * <h1 class="header">IGFS Configuration</h1>
- * The simplest way to run a Ignite node with configured file system is to pass
- * special configuration file included in Ignite distribution to {@code ignite.sh} or
- * {@code ignite.bat} scripts, like this: {@code ignite.sh config/hadoop/default-config.xml}
- * <p>
- * {@code IGFS} 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
- * data nodes remotely. When used as Hadoop file system, clients nodes usually started together
- * with {@code job-submitter} or {@code job-scheduler} processes, while data nodes are usually
- * started together with Hadoop {@code task-tracker} processes.
- * <h1 class="header">Integration With Hadoop</h1>
- * In addition to direct file system API, {@code IGFS} can be integrated with {@code Hadoop} by
- * plugging in as {@code Hadoop FileSystem}. Refer to
- * {@code org.apache.ignite.igfs.hadoop.v1.IgfsHadoopFileSystem} or
- * {@code org.apache.ignite.igfs.hadoop.v2.IgfsHadoopFileSystem} for more information.
- * <p>
- * <b>NOTE:</b> integration with Hadoop is available only in {@code In-Memory Accelerator For Hadoop} edition.
- */
-public interface IgniteFs extends Igfs, IgniteAsyncSupport {
-    /** IGFS scheme name. */
-    public static final String IGFS_SCHEME = "igfs";
-
-    /** File property: prefer writes to local node. */
-    public static final String PROP_PREFER_LOCAL_WRITES = "locWrite";
-
-    /**
-     * Gets IGFS name.
-     *
-     * @return IGFS name, or {@code null} for default file system.
-     */
-    public String name();
-
-    /**
-     * Gets IGFS configuration.
-     *
-     * @return IGFS configuration.
-     */
-    public IgfsConfiguration configuration();
-
-    /**
-     * Gets summary (total number of files, total number of directories and total length)
-     * for a given path.
-     *
-     * @param path Path to get information for.
-     * @return Summary object.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path is not found.
-     * @throws IgniteException If failed.
-     */
-    public IgfsPathSummary summary(IgfsPath path) throws IgniteException;
-
-    /**
-     * Opens a file for reading.
-     *
-     * @param path File path to read.
-     * @return File input stream to read data from.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
-     */
-    public IgfsInputStream open(IgfsPath path) throws IgniteException;
-
-    /**
-     * Opens a file for reading.
-     *
-     * @param path File path to read.
-     * @param bufSize Read buffer size (bytes) or {@code zero} to use default value.
-     * @return File input stream to read data from.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
-     */
-    @Override public IgfsInputStream open(IgfsPath path, int bufSize) throws IgniteException;
-
-    /**
-     * Opens a file for reading.
-     *
-     * @param path File path to read.
-     * @param bufSize Read buffer size (bytes) or {@code zero} to use default value.
-     * @param seqReadsBeforePrefetch Amount of sequential reads before prefetch is started.
-     * @return File input stream to read data from.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
-     */
-    public IgfsInputStream open(IgfsPath path, int bufSize, int seqReadsBeforePrefetch) throws IgniteException;
-
-    /**
-     * Creates a file and opens it for writing.
-     *
-     * @param path File path to create.
-     * @param overwrite Overwrite file if it already exists. Note: you cannot overwrite an existent directory.
-     * @return File output stream to write data to.
-     * @throws IgniteException In case of error.
-     */
-    @Override public IgfsOutputStream create(IgfsPath path, boolean overwrite) throws IgniteException;
-
-    /**
-     * Creates a file and opens it for writing.
-     *
-     * @param path File path to create.
-     * @param bufSize Write buffer size (bytes) or {@code zero} to use default value.
-     * @param overwrite Overwrite file if it already exists. Note: you cannot overwrite an existent directory.
-     * @param replication Replication factor.
-     * @param blockSize Block size.
-     * @param props File properties to set.
-     * @return File output stream to write data to.
-     * @throws IgniteException In case of error.
-     */
-    @Override public IgfsOutputStream create(IgfsPath path, int bufSize, boolean overwrite, int replication,
-        long blockSize, @Nullable Map<String, String> props) throws IgniteException;
-
-    /**
-     * Creates a file and opens it for writing.
-     *
-     * @param path File path to create.
-     * @param bufSize Write buffer size (bytes) or {@code zero} to use default value.
-     * @param overwrite Overwrite file if it already exists. Note: you cannot overwrite an existent directory.
-     * @param affKey Affinity key used to store file blocks. If not {@code null}, the whole file will be
-     *      stored on node where {@code affKey} resides.
-     * @param replication Replication factor.
-     * @param blockSize Block size.
-     * @param props File properties to set.
-     * @return File output stream to write data to.
-     * @throws IgniteException In case of error.
-     */
-    public IgfsOutputStream create(IgfsPath path, int bufSize, boolean overwrite,
-        @Nullable IgniteUuid affKey, int replication, long blockSize, @Nullable Map<String, String> props)
-        throws IgniteException;
-
-    /**
-     * Opens an output stream to an existing file for appending data.
-     *
-     * @param path File path to append.
-     * @param create Create file if it doesn't exist yet.
-     * @return File output stream to append data to.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist and create flag is {@code false}.
-     */
-    public IgfsOutputStream append(IgfsPath path, boolean create) throws IgniteException;
-
-    /**
-     * Opens an output stream to an existing file for appending data.
-     *
-     * @param path File path to append.
-     * @param bufSize Write buffer size (bytes) or {@code zero} to use default value.
-     * @param create Create file if it doesn't exist yet.
-     * @param props File properties to set only in case it file was just created.
-     * @return File output stream to append data to.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist and create flag is {@code false}.
-     */
-    @Override public IgfsOutputStream append(IgfsPath path, int bufSize, boolean create,
-        @Nullable Map<String, String> props) throws IgniteException;
-
-    /**
-     * Sets last access time and last modification time for a given path. If argument is {@code null},
-     * corresponding time will not be changed.
-     *
-     * @param path Path to update.
-     * @param accessTime Optional last access time to set. Value {@code -1} does not update access time.
-     * @param modificationTime Optional last modification time to set. Value {@code -1} does not update
-     *      modification time.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If target was not found.
-     * @throws IgniteException If error occurred.
-     */
-    public void setTimes(IgfsPath path, long accessTime, long modificationTime) throws IgniteException;
-
-    /**
-     * Gets affinity block locations for data blocks of the file, i.e. the nodes, on which the blocks
-     * are stored.
-     *
-     * @param path File path to get affinity for.
-     * @param start Position in the file to start affinity resolution from.
-     * @param len Size of data in the file to resolve affinity for.
-     * @return Affinity block locations.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
-     */
-    public Collection<IgfsBlockLocation> affinity(IgfsPath path, long start, long len) throws IgniteException;
-
-    /**
-     * Get affinity block locations for data blocks of the file. In case {@code maxLen} parameter is set and
-     * particular block location length is greater than this value, block locations will be split into smaller
-     * chunks.
-     *
-     * @param path File path to get affinity for.
-     * @param start Position in the file to start affinity resolution from.
-     * @param len Size of data in the file to resolve affinity for.
-     * @param maxLen Maximum length of a single returned block location length.
-     * @return Affinity block locations.
-     * @throws IgniteException In case of error.
-     * @throws org.apache.ignite.igfs.IgfsFileNotFoundException If path doesn't exist.
-     */
-    public Collection<IgfsBlockLocation> affinity(IgfsPath path, long start, long len, long maxLen)
-        throws IgniteException;
-
-    /**
-     * Gets metrics snapshot for this file system.
-     *
-     * @return Metrics.
-     * @throws IgniteException In case of error.
-     */
-    public IgfsMetrics metrics() throws IgniteException;
-
-    /**
-     * Resets metrics for this file system.
-     *
-     * @throws IgniteException In case of error.
-     */
-    public void resetMetrics() throws IgniteException;
-
-    /**
-     * Determines size of the file denoted by provided path. In case if path is a directory, then
-     * total size of all containing entries will be calculated recursively.
-     *
-     * @param path File system path.
-     * @return Total size.
-     * @throws IgniteException In case of error.
-     */
-    public long size(IgfsPath path) throws IgniteException;
-
-    /**
-     * Formats the file system removing all existing entries from it.
-     * <p>
-     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
-     *
-     * @throws IgniteException In case format has failed.
-     */
-    @IgniteAsyncSupported
-    public void format() throws IgniteException;
-
-    /**
-     * Executes IGFS task.
-     * <p>
-     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
-     *
-     * @param task Task to execute.
-     * @param rslvr Optional resolver to control split boundaries.
-     * @param paths Collection of paths to be processed within this task.
-     * @param arg Optional task argument.
-     * @return Task result.
-     * @throws IgniteException If execution failed.
-     */
-    @IgniteAsyncSupported
-    public <T, R> R execute(IgfsTask<T, R> task, @Nullable IgfsRecordResolver rslvr,
-        Collection<IgfsPath> paths, @Nullable T arg) throws IgniteException;
-
-    /**
-     * Executes IGFS task with overridden maximum range length (see
-     * {@link org.apache.ignite.configuration.IgfsConfiguration#getMaximumTaskRangeLength()} for more information).
-     * <p>
-     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
-     *
-     * @param task Task to execute.
-     * @param rslvr Optional resolver to control split boundaries.
-     * @param paths Collection of paths to be processed within this task.
-     * @param skipNonExistentFiles Whether to skip non existent files. If set to {@code true} non-existent files will
-     *     be ignored. Otherwise an exception will be thrown.
-     * @param maxRangeLen Optional maximum range length. If {@code 0}, then by default all consecutive
-     *      IGFS blocks will be included.
-     * @param arg Optional task argument.
-     * @return Task result.
-     * @throws IgniteException If execution failed.
-     */
-    @IgniteAsyncSupported
-    public <T, R> R execute(IgfsTask<T, R> task, @Nullable IgfsRecordResolver rslvr,
-        Collection<IgfsPath> paths, boolean skipNonExistentFiles, long maxRangeLen, @Nullable T arg)
-        throws IgniteException;
-
-    /**
-     * Executes IGFS task.
-     * <p>
-     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
-     *
-     * @param taskCls Task class to execute.
-     * @param rslvr Optional resolver to control split boundaries.
-     * @param paths Collection of paths to be processed within this task.
-     * @param arg Optional task argument.
-     * @return Task result.
-     * @throws IgniteException If execution failed.
-     */
-    @IgniteAsyncSupported
-    public <T, R> R execute(Class<? extends IgfsTask<T, R>> taskCls,
-        @Nullable IgfsRecordResolver rslvr, Collection<IgfsPath> paths, @Nullable T arg) throws IgniteException;
-
-    /**
-     * Executes IGFS task with overridden maximum range length (see
-     * {@link org.apache.ignite.configuration.IgfsConfiguration#getMaximumTaskRangeLength()} for more information).
-     * <p>
-     * Supports asynchronous execution (see {@link IgniteAsyncSupport}).
-     *
-     * @param taskCls Task class to execute.
-     * @param rslvr Optional resolver to control split boundaries.
-     * @param paths Collection of paths to be processed within this task.
-     * @param skipNonExistentFiles Whether to skip non existent files. If set to {@code true} non-existent files will
-     *     be ignored. Otherwise an exception will be thrown.
-     * @param maxRangeLen Maximum range length.
-     * @param arg Optional task argument.
-     * @return Task result.
-     * @throws IgniteException If execution failed.
-     */
-    @IgniteAsyncSupported
-    public <T, R> R execute(Class<? extends IgfsTask<T, R>> taskCls,
-        @Nullable IgfsRecordResolver rslvr, Collection<IgfsPath> paths, boolean skipNonExistentFiles,
-        long maxRangeLen, @Nullable T arg) throws IgniteException;
-
-    /** {@inheritDoc} */
-    @Override public IgniteFs withAsync();
-}