Revert "Revert "Merge branch 'trunk' into HDFS-7240""
After testing it was confirmed that these changes work as
expected.

This reverts commit 7a542fb3270953fff039c9b1bd7ba7afa35a842c.


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

Branch: refs/heads/HDFS-7240
Commit: b78c94f44c454f35eeadb34d48fea649ea491de5
Parents: d0488c7
Author: Anu Engineer <aengin...@apache.org>
Authored: Mon Apr 2 19:58:09 2018 -0700
Committer: Anu Engineer <aengin...@apache.org>
Committed: Mon Apr 2 19:58:09 2018 -0700

----------------------------------------------------------------------
 BUILDING.txt                                    |    32 +-
 dev-support/bin/dist-layout-stitching           |     1 +
 dev-support/bin/win-vs-upgrade.cmd              |    39 +
 dev-support/docker/Dockerfile                   |     3 +
 dev-support/win-paths-eg.cmd                    |    49 +
 .../hadoop-annotations/pom.xml                  |    15 -
 hadoop-common-project/hadoop-common/pom.xml     |    28 +
 .../org/apache/hadoop/conf/Configuration.java   |     5 +-
 .../java/org/apache/hadoop/util/ThreadUtil.java |    26 +-
 .../org/apache/hadoop/util/VersionInfo.java     |     3 +-
 .../src/main/native/native.vcxproj              |     2 +
 .../org/apache/hadoop/crypto/OpensslCipher.c    |    33 +
 .../apache/hadoop/conf/TestConfiguration.java   |    31 +
 .../apache/hadoop/fs/FileContextTestHelper.java |     4 +-
 .../hadoop/fs/contract/ContractTestUtils.java   |    32 +-
 .../apache/hadoop/test/GenericTestUtils.java    |     7 +-
 .../hadoop/crypto/key/kms/server/KMSWebApp.java |     6 +
 .../java/org/apache/hadoop/hdfs/DFSClient.java  |     2 +-
 .../hadoop-hdfs-native-client/pom.xml           |   116 +-
 .../src/CMakeLists.txt                          |    17 +-
 .../main/native/libhdfs-tests/native_mini_dfs.c |    22 +-
 .../main/native/libhdfs-tests/native_mini_dfs.h |    11 +-
 .../libhdfs-tests/test_libhdfs_mini_stress.c    |   350 +
 .../libhdfs-tests/test_libhdfs_threaded.c       |    70 +-
 .../native/libhdfspp/CMake/FindCyrusSASL.cmake  |    49 +
 .../main/native/libhdfspp/CMake/FindGSasl.cmake |    44 +
 .../src/main/native/libhdfspp/CMakeLists.txt    |   297 +
 .../src/main/native/libhdfspp/CONTRIBUTING.md   |   161 +
 .../src/main/native/libhdfspp/doc/Doxyfile.in   |    35 +
 .../src/main/native/libhdfspp/doc/mainpage.dox  |    26 +
 .../native/libhdfspp/examples/CMakeLists.txt    |    20 +
 .../native/libhdfspp/examples/c/CMakeLists.txt  |    20 +
 .../libhdfspp/examples/c/cat/CMakeLists.txt     |    27 +
 .../main/native/libhdfspp/examples/c/cat/cat.c  |   121 +
 .../examples/c/connect_cancel/CMakeLists.txt    |    27 +
 .../examples/c/connect_cancel/connect_cancel.c  |   107 +
 .../native/libhdfspp/examples/cc/CMakeLists.txt |    24 +
 .../libhdfspp/examples/cc/cat/CMakeLists.txt    |    27 +
 .../native/libhdfspp/examples/cc/cat/cat.cc     |    89 +
 .../examples/cc/connect_cancel/CMakeLists.txt   |    27 +
 .../cc/connect_cancel/connect_cancel.cc         |   154 +
 .../libhdfspp/examples/cc/find/CMakeLists.txt   |    27 +
 .../native/libhdfspp/examples/cc/find/find.cc   |   140 +
 .../examples/cc/gendirs/CMakeLists.txt          |    27 +
 .../libhdfspp/examples/cc/gendirs/gendirs.cc    |   122 +
 .../libhdfspp/include/hdfspp/block_location.h   |   177 +
 .../libhdfspp/include/hdfspp/config_parser.h    |    68 +
 .../libhdfspp/include/hdfspp/content_summary.h  |    48 +
 .../native/libhdfspp/include/hdfspp/events.h    |   141 +
 .../native/libhdfspp/include/hdfspp/fsinfo.h    |    48 +
 .../native/libhdfspp/include/hdfspp/hdfs_ext.h  |   394 +
 .../native/libhdfspp/include/hdfspp/hdfspp.h    |   492 +
 .../native/libhdfspp/include/hdfspp/locks.h     |   110 +
 .../main/native/libhdfspp/include/hdfspp/log.h  |    60 +
 .../native/libhdfspp/include/hdfspp/options.h   |   136 +
 .../native/libhdfspp/include/hdfspp/statinfo.h  |    59 +
 .../native/libhdfspp/include/hdfspp/status.h    |   111 +
 .../main/native/libhdfspp/include/hdfspp/uri.h  |   137 +
 .../main/native/libhdfspp/lib/CMakeLists.txt    |    25 +
 .../libhdfspp/lib/bindings/CMakeLists.txt       |    19 +
 .../libhdfspp/lib/bindings/c/CMakeLists.txt     |    21 +
 .../native/libhdfspp/lib/bindings/c/hdfs.cc     |  2007 ++
 .../native/libhdfspp/lib/common/CMakeLists.txt  |    24 +
 .../native/libhdfspp/lib/common/async_stream.h  |    49 +
 .../native/libhdfspp/lib/common/auth_info.cc    |    18 +
 .../native/libhdfspp/lib/common/auth_info.h     |    90 +
 .../libhdfspp/lib/common/cancel_tracker.cc      |    37 +
 .../libhdfspp/lib/common/cancel_tracker.h       |    40 +
 .../libhdfspp/lib/common/config_parser.cc       |   219 +
 .../libhdfspp/lib/common/configuration.cc       |   169 +
 .../native/libhdfspp/lib/common/configuration.h |   108 +
 .../lib/common/configuration_loader.cc          |   328 +
 .../libhdfspp/lib/common/configuration_loader.h |   138 +
 .../lib/common/configuration_loader_impl.h      |   122 +
 .../libhdfspp/lib/common/content_summary.cc     |    55 +
 .../libhdfspp/lib/common/continuation/asio.h    |    65 +
 .../lib/common/continuation/continuation.h      |   137 +
 .../lib/common/continuation/protobuf.h          |   129 +
 .../main/native/libhdfspp/lib/common/fsinfo.cc  |    61 +
 .../libhdfspp/lib/common/hdfs_configuration.cc  |   210 +
 .../libhdfspp/lib/common/hdfs_configuration.h   |    70 +
 .../libhdfspp/lib/common/hdfs_ioservice.cc      |   146 +
 .../libhdfspp/lib/common/hdfs_ioservice.h       |    79 +
 .../libhdfspp/lib/common/libhdfs_events_impl.cc |    89 +
 .../libhdfspp/lib/common/libhdfs_events_impl.h  |    59 +
 .../main/native/libhdfspp/lib/common/locks.cc   |   100 +
 .../main/native/libhdfspp/lib/common/logging.cc |   227 +
 .../main/native/libhdfspp/lib/common/logging.h  |   217 +
 .../libhdfspp/lib/common/namenode_info.cc       |   178 +
 .../native/libhdfspp/lib/common/namenode_info.h |    49 +
 .../native/libhdfspp/lib/common/new_delete.h    |    52 +
 .../libhdfspp/lib/common/optional_wrapper.h     |    43 +
 .../main/native/libhdfspp/lib/common/options.cc |    61 +
 .../native/libhdfspp/lib/common/retry_policy.cc |    87 +
 .../native/libhdfspp/lib/common/retry_policy.h  |   160 +
 .../libhdfspp/lib/common/sasl_authenticator.h   |    66 +
 .../libhdfspp/lib/common/sasl_digest_md5.cc     |   240 +
 .../native/libhdfspp/lib/common/statinfo.cc     |    74 +
 .../main/native/libhdfspp/lib/common/status.cc  |   192 +
 .../src/main/native/libhdfspp/lib/common/uri.cc |   454 +
 .../main/native/libhdfspp/lib/common/util.cc    |   170 +
 .../src/main/native/libhdfspp/lib/common/util.h |   185 +
 .../main/native/libhdfspp/lib/common/util_c.h   |    31 +
 .../libhdfspp/lib/connection/CMakeLists.txt     |    21 +
 .../lib/connection/datanodeconnection.cc        |    72 +
 .../lib/connection/datanodeconnection.h         |    97 +
 .../main/native/libhdfspp/lib/fs/CMakeLists.txt |    21 +
 .../libhdfspp/lib/fs/bad_datanode_tracker.cc    |    71 +
 .../libhdfspp/lib/fs/bad_datanode_tracker.h     |    75 +
 .../main/native/libhdfspp/lib/fs/filehandle.cc  |   370 +
 .../main/native/libhdfspp/lib/fs/filehandle.h   |   147 +
 .../main/native/libhdfspp/lib/fs/filesystem.cc  |   859 +
 .../main/native/libhdfspp/lib/fs/filesystem.h   |   291 +
 .../native/libhdfspp/lib/fs/filesystem_sync.cc  |   607 +
 .../libhdfspp/lib/fs/namenode_operations.cc     |   727 +
 .../libhdfspp/lib/fs/namenode_operations.h      |   136 +
 .../native/libhdfspp/lib/proto/CMakeLists.txt   |    87 +
 .../libhdfspp/lib/proto/protoc_gen_hrpc.cc      |    95 +
 .../native/libhdfspp/lib/reader/CMakeLists.txt  |    21 +
 .../native/libhdfspp/lib/reader/block_reader.cc |   571 +
 .../native/libhdfspp/lib/reader/block_reader.h  |   159 +
 .../native/libhdfspp/lib/reader/datatransfer.cc |    52 +
 .../native/libhdfspp/lib/reader/datatransfer.h  |    75 +
 .../libhdfspp/lib/reader/datatransfer_impl.h    |   136 +
 .../main/native/libhdfspp/lib/reader/fileinfo.h |    38 +
 .../native/libhdfspp/lib/reader/readergroup.cc  |    55 +
 .../native/libhdfspp/lib/reader/readergroup.h   |    52 +
 .../native/libhdfspp/lib/rpc/CMakeLists.txt     |    31 +
 .../libhdfspp/lib/rpc/cyrus_sasl_engine.cc      |   469 +
 .../libhdfspp/lib/rpc/cyrus_sasl_engine.h       |    50 +
 .../native/libhdfspp/lib/rpc/gsasl_engine.cc    |   230 +
 .../native/libhdfspp/lib/rpc/gsasl_engine.h     |    47 +
 .../libhdfspp/lib/rpc/namenode_tracker.cc       |   142 +
 .../native/libhdfspp/lib/rpc/namenode_tracker.h |    84 +
 .../main/native/libhdfspp/lib/rpc/request.cc    |   179 +
 .../src/main/native/libhdfspp/lib/rpc/request.h |    87 +
 .../native/libhdfspp/lib/rpc/rpc_connection.h   |   182 +
 .../libhdfspp/lib/rpc/rpc_connection_impl.cc    |   506 +
 .../libhdfspp/lib/rpc/rpc_connection_impl.h     |   463 +
 .../main/native/libhdfspp/lib/rpc/rpc_engine.cc |   334 +
 .../main/native/libhdfspp/lib/rpc/rpc_engine.h  |   190 +
 .../native/libhdfspp/lib/rpc/sasl_engine.cc     |    80 +
 .../main/native/libhdfspp/lib/rpc/sasl_engine.h |   104 +
 .../native/libhdfspp/lib/rpc/sasl_protocol.cc   |   407 +
 .../native/libhdfspp/lib/rpc/sasl_protocol.h    |    84 +
 .../main/native/libhdfspp/tests/CMakeLists.txt  |   170 +
 .../native/libhdfspp/tests/bad_datanode_test.cc |   330 +
 .../libhdfspp/tests/configuration_test.cc       |   573 +
 .../native/libhdfspp/tests/configuration_test.h |   158 +
 .../native/libhdfspp/tests/hdfs_builder_test.cc |   137 +
 .../libhdfspp/tests/hdfs_config_connect_bugs.cc |   136 +
 .../libhdfspp/tests/hdfs_configuration_test.cc  |   172 +
 .../native/libhdfspp/tests/hdfs_ext_test.cc     |   771 +
 .../libhdfspp/tests/hdfs_ioservice_test.cc      |   105 +
 .../src/main/native/libhdfspp/tests/hdfs_shim.c |   524 +
 .../native/libhdfspp/tests/hdfspp_errors.cc     |   116 +
 .../native/libhdfspp/tests/hdfspp_mini_dfs.h    |   194 +
 .../libhdfspp/tests/hdfspp_mini_dfs_smoke.cc    |    49 +
 .../native/libhdfspp/tests/libhdfs_wrapper.c    |    22 +
 .../native/libhdfspp/tests/libhdfs_wrapper.h    |    28 +
 .../libhdfspp/tests/libhdfs_wrapper_defines.h   |    97 +
 .../libhdfspp/tests/libhdfs_wrapper_undefs.h    |   107 +
 .../native/libhdfspp/tests/libhdfspp_wrapper.cc |    22 +
 .../native/libhdfspp/tests/libhdfspp_wrapper.h  |    29 +
 .../libhdfspp/tests/libhdfspp_wrapper_defines.h |   107 +
 .../main/native/libhdfspp/tests/logging_test.cc |   374 +
 .../native/libhdfspp/tests/mock_connection.cc   |    40 +
 .../native/libhdfspp/tests/mock_connection.h    |   140 +
 .../libhdfspp/tests/node_exclusion_test.cc      |    86 +
 .../libhdfspp/tests/remote_block_reader_test.cc |   536 +
 .../native/libhdfspp/tests/retry_policy_test.cc |    63 +
 .../native/libhdfspp/tests/rpc_engine_test.cc   |   505 +
 .../libhdfspp/tests/sasl_digest_md5_test.cc     |    47 +
 .../src/main/native/libhdfspp/tests/uri_test.cc |   293 +
 .../native/libhdfspp/tests/user_lock_test.cc    |   225 +
 .../libhdfspp/third_party/asio-1.10.2/COPYING   |     4 +
 .../third_party/asio-1.10.2/include/asio.hpp    |   122 +
 .../asio-1.10.2/include/asio/async_result.hpp   |    94 +
 .../include/asio/basic_datagram_socket.hpp      |   949 +
 .../include/asio/basic_deadline_timer.hpp       |   520 +
 .../include/asio/basic_io_object.hpp            |   240 +
 .../include/asio/basic_raw_socket.hpp           |   940 +
 .../include/asio/basic_seq_packet_socket.hpp    |   565 +
 .../include/asio/basic_serial_port.hpp          |   695 +
 .../include/asio/basic_signal_set.hpp           |   384 +
 .../asio-1.10.2/include/asio/basic_socket.hpp   |  1518 ++
 .../include/asio/basic_socket_acceptor.hpp      |  1136 +
 .../include/asio/basic_socket_iostream.hpp      |   286 +
 .../include/asio/basic_socket_streambuf.hpp     |   567 +
 .../include/asio/basic_stream_socket.hpp        |   852 +
 .../include/asio/basic_streambuf.hpp            |   369 +
 .../include/asio/basic_streambuf_fwd.hpp        |    33 +
 .../include/asio/basic_waitable_timer.hpp       |   519 +
 .../asio-1.10.2/include/asio/buffer.hpp         |  2239 ++
 .../include/asio/buffered_read_stream.hpp       |   244 +
 .../include/asio/buffered_read_stream_fwd.hpp   |    25 +
 .../include/asio/buffered_stream.hpp            |   258 +
 .../include/asio/buffered_stream_fwd.hpp        |    25 +
 .../include/asio/buffered_write_stream.hpp      |   236 +
 .../include/asio/buffered_write_stream_fwd.hpp  |    25 +
 .../include/asio/buffers_iterator.hpp           |   481 +
 .../include/asio/completion_condition.hpp       |   218 +
 .../asio-1.10.2/include/asio/connect.hpp        |   823 +
 .../asio-1.10.2/include/asio/coroutine.hpp      |   328 +
 .../include/asio/datagram_socket_service.hpp    |   432 +
 .../asio-1.10.2/include/asio/deadline_timer.hpp |    63 +
 .../include/asio/deadline_timer_service.hpp     |   173 +
 .../include/asio/detail/addressof.hpp           |    38 +
 .../asio-1.10.2/include/asio/detail/array.hpp   |    38 +
 .../include/asio/detail/array_fwd.hpp           |    34 +
 .../asio-1.10.2/include/asio/detail/assert.hpp  |    32 +
 .../include/asio/detail/atomic_count.hpp        |    45 +
 .../asio/detail/base_from_completion_cond.hpp   |    68 +
 .../include/asio/detail/bind_handler.hpp        |   489 +
 .../include/asio/detail/buffer_resize_guard.hpp |    66 +
 .../asio/detail/buffer_sequence_adapter.hpp     |   383 +
 .../asio/detail/buffered_stream_storage.hpp     |   126 +
 .../include/asio/detail/call_stack.hpp          |   125 +
 .../include/asio/detail/chrono_time_traits.hpp  |   190 +
 .../include/asio/detail/completion_handler.hpp  |    81 +
 .../asio-1.10.2/include/asio/detail/config.hpp  |   895 +
 .../include/asio/detail/consuming_buffers.hpp   |   292 +
 .../asio-1.10.2/include/asio/detail/cstdint.hpp |    46 +
 .../include/asio/detail/date_time_fwd.hpp       |    34 +
 .../asio/detail/deadline_timer_service.hpp      |   227 +
 .../include/asio/detail/dependent_type.hpp      |    36 +
 .../include/asio/detail/descriptor_ops.hpp      |   117 +
 .../include/asio/detail/descriptor_read_op.hpp  |   119 +
 .../include/asio/detail/descriptor_write_op.hpp |   119 +
 .../include/asio/detail/dev_poll_reactor.hpp    |   210 +
 .../include/asio/detail/epoll_reactor.hpp       |   242 +
 .../asio-1.10.2/include/asio/detail/event.hpp   |    48 +
 .../asio/detail/eventfd_select_interrupter.hpp  |    83 +
 .../include/asio/detail/fd_set_adapter.hpp      |    39 +
 .../include/asio/detail/fenced_block.hpp        |    76 +
 .../include/asio/detail/function.hpp            |    38 +
 .../asio/detail/gcc_arm_fenced_block.hpp        |    89 +
 .../asio/detail/gcc_hppa_fenced_block.hpp       |    66 +
 .../asio/detail/gcc_sync_fenced_block.hpp       |    63 +
 .../asio/detail/gcc_x86_fenced_block.hpp        |    89 +
 .../asio/detail/handler_alloc_helpers.hpp       |    82 +
 .../asio/detail/handler_cont_helpers.hpp        |    45 +
 .../asio/detail/handler_invoke_helpers.hpp      |    57 +
 .../include/asio/detail/handler_tracking.hpp    |   159 +
 .../asio/detail/handler_type_requirements.hpp   |   488 +
 .../include/asio/detail/hash_map.hpp            |   331 +
 .../detail/impl/buffer_sequence_adapter.ipp     |   118 +
 .../include/asio/detail/impl/descriptor_ops.ipp |   451 +
 .../asio/detail/impl/dev_poll_reactor.hpp       |    78 +
 .../asio/detail/impl/dev_poll_reactor.ipp       |   445 +
 .../include/asio/detail/impl/epoll_reactor.hpp  |    76 +
 .../include/asio/detail/impl/epoll_reactor.ipp  |   662 +
 .../detail/impl/eventfd_select_interrupter.ipp  |   165 +
 .../asio/detail/impl/handler_tracking.ipp       |   305 +
 .../include/asio/detail/impl/kqueue_reactor.hpp |    80 +
 .../include/asio/detail/impl/kqueue_reactor.ipp |   463 +
 .../detail/impl/pipe_select_interrupter.ipp     |   124 +
 .../include/asio/detail/impl/posix_event.ipp    |    47 +
 .../include/asio/detail/impl/posix_mutex.ipp    |    46 +
 .../include/asio/detail/impl/posix_thread.ipp   |    74 +
 .../include/asio/detail/impl/posix_tss_ptr.ipp  |    46 +
 .../detail/impl/reactive_descriptor_service.ipp |   208 +
 .../impl/reactive_serial_port_service.ipp       |   151 +
 .../impl/reactive_socket_service_base.ipp       |   267 +
 .../asio/detail/impl/resolver_service_base.ipp  |   130 +
 .../include/asio/detail/impl/select_reactor.hpp |    87 +
 .../include/asio/detail/impl/select_reactor.ipp |   313 +
 .../asio/detail/impl/service_registry.hpp       |    88 +
 .../asio/detail/impl/service_registry.ipp       |   188 +
 .../asio/detail/impl/signal_set_service.ipp     |   647 +
 .../include/asio/detail/impl/socket_ops.ipp     |  3394 +++
 .../detail/impl/socket_select_interrupter.ipp   |   175 +
 .../include/asio/detail/impl/strand_service.hpp |   118 +
 .../include/asio/detail/impl/strand_service.ipp |   176 +
 .../asio/detail/impl/task_io_service.hpp        |    78 +
 .../asio/detail/impl/task_io_service.ipp        |   474 +
 .../include/asio/detail/impl/throw_error.ipp    |    60 +
 .../asio/detail/impl/timer_queue_ptime.ipp      |    84 +
 .../asio/detail/impl/timer_queue_set.ipp        |   101 +
 .../include/asio/detail/impl/win_event.ipp      |    67 +
 .../detail/impl/win_iocp_handle_service.ipp     |   528 +
 .../asio/detail/impl/win_iocp_io_service.hpp    |   130 +
 .../asio/detail/impl/win_iocp_io_service.ipp    |   531 +
 .../impl/win_iocp_serial_port_service.ipp       |   180 +
 .../impl/win_iocp_socket_service_base.ipp       |   728 +
 .../include/asio/detail/impl/win_mutex.ipp      |    78 +
 .../detail/impl/win_object_handle_service.ipp   |   444 +
 .../asio/detail/impl/win_static_mutex.ipp       |   118 +
 .../include/asio/detail/impl/win_thread.ipp     |   139 +
 .../include/asio/detail/impl/win_tss_ptr.ipp    |    57 +
 .../detail/impl/winrt_ssocket_service_base.ipp  |   612 +
 .../asio/detail/impl/winrt_timer_scheduler.hpp  |    79 +
 .../asio/detail/impl/winrt_timer_scheduler.ipp  |   122 +
 .../include/asio/detail/impl/winsock_init.ipp   |    82 +
 .../include/asio/detail/io_control.hpp          |   134 +
 .../include/asio/detail/keyword_tss_ptr.hpp     |    70 +
 .../include/asio/detail/kqueue_reactor.hpp      |   219 +
 .../asio-1.10.2/include/asio/detail/limits.hpp  |    26 +
 .../asio/detail/local_free_on_block_exit.hpp    |    57 +
 .../include/asio/detail/macos_fenced_block.hpp  |    61 +
 .../asio-1.10.2/include/asio/detail/mutex.hpp   |    48 +
 .../include/asio/detail/noncopyable.hpp         |    43 +
 .../include/asio/detail/null_event.hpp          |    88 +
 .../include/asio/detail/null_fenced_block.hpp   |    45 +
 .../include/asio/detail/null_mutex.hpp          |    64 +
 .../include/asio/detail/null_reactor.hpp        |    67 +
 .../include/asio/detail/null_signal_blocker.hpp |    69 +
 .../include/asio/detail/null_socket_service.hpp |   497 +
 .../include/asio/detail/null_static_mutex.hpp   |    60 +
 .../include/asio/detail/null_thread.hpp         |    61 +
 .../include/asio/detail/null_tss_ptr.hpp        |    68 +
 .../include/asio/detail/object_pool.hpp         |   146 +
 .../include/asio/detail/old_win_sdk_compat.hpp  |   214 +
 .../include/asio/detail/op_queue.hpp            |   156 +
 .../include/asio/detail/operation.hpp           |    38 +
 .../asio/detail/pipe_select_interrupter.hpp     |    89 +
 .../include/asio/detail/pop_options.hpp         |   105 +
 .../include/asio/detail/posix_event.hpp         |   126 +
 .../asio/detail/posix_fd_set_adapter.hpp        |   118 +
 .../include/asio/detail/posix_mutex.hpp         |    76 +
 .../asio/detail/posix_signal_blocker.hpp        |    85 +
 .../include/asio/detail/posix_static_mutex.hpp  |    64 +
 .../include/asio/detail/posix_thread.hpp        |   105 +
 .../include/asio/detail/posix_tss_ptr.hpp       |    79 +
 .../include/asio/detail/push_options.hpp        |   138 +
 .../asio/detail/reactive_descriptor_service.hpp |   322 +
 .../asio/detail/reactive_null_buffers_op.hpp    |    88 +
 .../detail/reactive_serial_port_service.hpp     |   234 +
 .../asio/detail/reactive_socket_accept_op.hpp   |   136 +
 .../asio/detail/reactive_socket_connect_op.hpp  |   106 +
 .../asio/detail/reactive_socket_recv_op.hpp     |   123 +
 .../asio/detail/reactive_socket_recvfrom_op.hpp |   133 +
 .../asio/detail/reactive_socket_recvmsg_op.hpp  |   125 +
 .../asio/detail/reactive_socket_send_op.hpp     |   120 +
 .../asio/detail/reactive_socket_sendto_op.hpp   |   123 +
 .../asio/detail/reactive_socket_service.hpp     |   457 +
 .../detail/reactive_socket_service_base.hpp     |   450 +
 .../asio-1.10.2/include/asio/detail/reactor.hpp |    32 +
 .../include/asio/detail/reactor_fwd.hpp         |    40 +
 .../include/asio/detail/reactor_op.hpp          |    61 +
 .../include/asio/detail/reactor_op_queue.hpp    |   168 +
 .../include/asio/detail/regex_fwd.hpp           |    35 +
 .../include/asio/detail/resolve_endpoint_op.hpp |   121 +
 .../include/asio/detail/resolve_op.hpp          |   131 +
 .../include/asio/detail/resolver_service.hpp    |   129 +
 .../asio/detail/resolver_service_base.hpp       |   129 +
 .../include/asio/detail/scoped_lock.hpp         |   101 +
 .../include/asio/detail/scoped_ptr.hpp          |    79 +
 .../include/asio/detail/select_interrupter.hpp  |    46 +
 .../include/asio/detail/select_reactor.hpp      |   219 +
 .../include/asio/detail/service_registry.hpp    |   156 +
 .../include/asio/detail/shared_ptr.hpp          |    38 +
 .../include/asio/detail/signal_blocker.hpp      |    44 +
 .../include/asio/detail/signal_handler.hpp      |    82 +
 .../include/asio/detail/signal_init.hpp         |    47 +
 .../include/asio/detail/signal_op.hpp           |    49 +
 .../include/asio/detail/signal_set_service.hpp  |   216 +
 .../include/asio/detail/socket_holder.hpp       |    98 +
 .../include/asio/detail/socket_ops.hpp          |   334 +
 .../include/asio/detail/socket_option.hpp       |   316 +
 .../asio/detail/socket_select_interrupter.hpp   |    91 +
 .../include/asio/detail/socket_types.hpp        |   404 +
 .../asio/detail/solaris_fenced_block.hpp        |    61 +
 .../include/asio/detail/static_mutex.hpp        |    52 +
 .../include/asio/detail/std_event.hpp           |   176 +
 .../include/asio/detail/std_mutex.hpp           |    73 +
 .../include/asio/detail/std_static_mutex.hpp    |    81 +
 .../include/asio/detail/std_thread.hpp          |    65 +
 .../include/asio/detail/strand_service.hpp      |   142 +
 .../include/asio/detail/task_io_service.hpp     |   201 +
 .../asio/detail/task_io_service_operation.hpp   |    76 +
 .../asio/detail/task_io_service_thread_info.hpp |    40 +
 .../asio-1.10.2/include/asio/detail/thread.hpp  |    56 +
 .../include/asio/detail/thread_info_base.hpp    |    91 +
 .../include/asio/detail/throw_error.hpp         |    53 +
 .../include/asio/detail/throw_exception.hpp     |    51 +
 .../include/asio/detail/timer_queue.hpp         |   332 +
 .../include/asio/detail/timer_queue_base.hpp    |    68 +
 .../include/asio/detail/timer_queue_ptime.hpp   |    93 +
 .../include/asio/detail/timer_queue_set.hpp     |    66 +
 .../include/asio/detail/timer_scheduler.hpp     |    35 +
 .../include/asio/detail/timer_scheduler_fwd.hpp |    40 +
 .../asio-1.10.2/include/asio/detail/tss_ptr.hpp |    69 +
 .../include/asio/detail/type_traits.hpp         |    58 +
 .../include/asio/detail/variadic_templates.hpp  |    63 +
 .../include/asio/detail/wait_handler.hpp        |    83 +
 .../asio-1.10.2/include/asio/detail/wait_op.hpp |    45 +
 .../include/asio/detail/weak_ptr.hpp            |    38 +
 .../include/asio/detail/win_event.hpp           |   126 +
 .../include/asio/detail/win_fd_set_adapter.hpp  |   149 +
 .../include/asio/detail/win_fenced_block.hpp    |    89 +
 .../asio/detail/win_iocp_handle_read_op.hpp     |   109 +
 .../asio/detail/win_iocp_handle_service.hpp     |   322 +
 .../asio/detail/win_iocp_handle_write_op.hpp    |   101 +
 .../include/asio/detail/win_iocp_io_service.hpp |   315 +
 .../asio/detail/win_iocp_null_buffers_op.hpp    |   119 +
 .../include/asio/detail/win_iocp_operation.hpp  |    95 +
 .../asio/detail/win_iocp_overlapped_op.hpp      |    88 +
 .../asio/detail/win_iocp_overlapped_ptr.hpp     |   144 +
 .../detail/win_iocp_serial_port_service.hpp     |   228 +
 .../asio/detail/win_iocp_socket_accept_op.hpp   |   165 +
 .../asio/detail/win_iocp_socket_connect_op.hpp  |   124 +
 .../asio/detail/win_iocp_socket_recv_op.hpp     |   115 +
 .../asio/detail/win_iocp_socket_recvfrom_op.hpp |   123 +
 .../asio/detail/win_iocp_socket_recvmsg_op.hpp  |   116 +
 .../asio/detail/win_iocp_socket_send_op.hpp     |   109 +
 .../asio/detail/win_iocp_socket_service.hpp     |   525 +
 .../detail/win_iocp_socket_service_base.hpp     |   524 +
 .../asio/detail/win_iocp_thread_info.hpp        |    34 +
 .../include/asio/detail/win_mutex.hpp           |    78 +
 .../asio/detail/win_object_handle_service.hpp   |   183 +
 .../include/asio/detail/win_static_mutex.hpp    |    74 +
 .../include/asio/detail/win_thread.hpp          |   139 +
 .../include/asio/detail/win_tss_ptr.hpp         |    79 +
 .../include/asio/detail/wince_thread.hpp        |   116 +
 .../include/asio/detail/winrt_async_manager.hpp |   294 +
 .../include/asio/detail/winrt_async_op.hpp      |    65 +
 .../include/asio/detail/winrt_resolve_op.hpp    |   117 +
 .../asio/detail/winrt_resolver_service.hpp      |   183 +
 .../asio/detail/winrt_socket_connect_op.hpp     |    90 +
 .../asio/detail/winrt_socket_recv_op.hpp        |   110 +
 .../asio/detail/winrt_socket_send_op.hpp        |   101 +
 .../asio/detail/winrt_ssocket_service.hpp       |   232 +
 .../asio/detail/winrt_ssocket_service_base.hpp  |   355 +
 .../asio/detail/winrt_timer_scheduler.hpp       |   131 +
 .../include/asio/detail/winrt_utils.hpp         |   106 +
 .../include/asio/detail/winsock_init.hpp        |   128 +
 .../include/asio/detail/wrapped_handler.hpp     |   291 +
 .../asio-1.10.2/include/asio/error.hpp          |   331 +
 .../asio-1.10.2/include/asio/error_code.hpp     |   188 +
 .../include/asio/generic/basic_endpoint.hpp     |   193 +
 .../include/asio/generic/datagram_protocol.hpp  |   123 +
 .../include/asio/generic/detail/endpoint.hpp    |   133 +
 .../asio/generic/detail/impl/endpoint.ipp       |   109 +
 .../include/asio/generic/raw_protocol.hpp       |   121 +
 .../asio/generic/seq_packet_protocol.hpp        |   122 +
 .../include/asio/generic/stream_protocol.hpp    |   127 +
 .../include/asio/handler_alloc_hook.hpp         |    81 +
 .../include/asio/handler_continuation_hook.hpp  |    54 +
 .../include/asio/handler_invoke_hook.hpp        |    85 +
 .../asio-1.10.2/include/asio/handler_type.hpp   |   112 +
 .../include/asio/high_resolution_timer.hpp      |    63 +
 .../include/asio/impl/buffered_read_stream.hpp  |   358 +
 .../include/asio/impl/buffered_write_stream.hpp |   338 +
 .../asio-1.10.2/include/asio/impl/connect.hpp   |   428 +
 .../asio-1.10.2/include/asio/impl/error.ipp     |   128 +
 .../include/asio/impl/error_code.ipp            |   128 +
 .../include/asio/impl/handler_alloc_hook.ipp    |    77 +
 .../include/asio/impl/io_service.hpp            |   152 +
 .../include/asio/impl/io_service.ipp            |   155 +
 .../asio-1.10.2/include/asio/impl/read.hpp      |   753 +
 .../asio-1.10.2/include/asio/impl/read_at.hpp   |   810 +
 .../include/asio/impl/read_until.hpp            |  1147 +
 .../include/asio/impl/serial_port_base.hpp      |    59 +
 .../include/asio/impl/serial_port_base.ipp      |   554 +
 .../asio-1.10.2/include/asio/impl/spawn.hpp     |   336 +
 .../asio-1.10.2/include/asio/impl/src.cpp       |    25 +
 .../asio-1.10.2/include/asio/impl/src.hpp       |    74 +
 .../include/asio/impl/use_future.hpp            |   172 +
 .../asio-1.10.2/include/asio/impl/write.hpp     |   765 +
 .../asio-1.10.2/include/asio/impl/write_at.hpp  |   825 +
 .../asio-1.10.2/include/asio/io_service.hpp     |   770 +
 .../asio-1.10.2/include/asio/ip/address.hpp     |   200 +
 .../asio-1.10.2/include/asio/ip/address_v4.hpp  |   241 +
 .../asio-1.10.2/include/asio/ip/address_v6.hpp  |   246 +
 .../include/asio/ip/basic_endpoint.hpp          |   263 +
 .../include/asio/ip/basic_resolver.hpp          |   268 +
 .../include/asio/ip/basic_resolver_entry.hpp    |    94 +
 .../include/asio/ip/basic_resolver_iterator.hpp |   260 +
 .../include/asio/ip/basic_resolver_query.hpp    |   244 +
 .../include/asio/ip/detail/endpoint.hpp         |   139 +
 .../include/asio/ip/detail/impl/endpoint.ipp    |   204 +
 .../include/asio/ip/detail/socket_option.hpp    |   569 +
 .../asio-1.10.2/include/asio/ip/host_name.hpp   |    42 +
 .../asio-1.10.2/include/asio/ip/icmp.hpp        |   115 +
 .../include/asio/ip/impl/address.hpp            |    53 +
 .../include/asio/ip/impl/address.ipp            |   226 +
 .../include/asio/ip/impl/address_v4.hpp         |    53 +
 .../include/asio/ip/impl/address_v4.ipp         |   178 +
 .../include/asio/ip/impl/address_v6.hpp         |    53 +
 .../include/asio/ip/impl/address_v6.ipp         |   298 +
 .../include/asio/ip/impl/basic_endpoint.hpp     |    55 +
 .../include/asio/ip/impl/host_name.ipp          |    54 +
 .../asio-1.10.2/include/asio/ip/multicast.hpp   |   191 +
 .../include/asio/ip/resolver_query_base.hpp     |   130 +
 .../include/asio/ip/resolver_service.hpp        |   176 +
 .../asio-1.10.2/include/asio/ip/tcp.hpp         |   155 +
 .../asio-1.10.2/include/asio/ip/udp.hpp         |   111 +
 .../asio-1.10.2/include/asio/ip/unicast.hpp     |    70 +
 .../asio-1.10.2/include/asio/ip/v6_only.hpp     |    69 +
 .../include/asio/is_read_buffered.hpp           |    59 +
 .../include/asio/is_write_buffered.hpp          |    59 +
 .../include/asio/local/basic_endpoint.hpp       |   239 +
 .../include/asio/local/connect_pair.hpp         |   104 +
 .../include/asio/local/datagram_protocol.hpp    |    80 +
 .../include/asio/local/detail/endpoint.hpp      |   133 +
 .../include/asio/local/detail/impl/endpoint.ipp |   128 +
 .../include/asio/local/stream_protocol.hpp      |    90 +
 .../asio-1.10.2/include/asio/placeholders.hpp   |   123 +
 .../include/asio/posix/basic_descriptor.hpp     |   490 +
 .../asio/posix/basic_stream_descriptor.hpp      |   362 +
 .../include/asio/posix/descriptor_base.hpp      |    97 +
 .../include/asio/posix/stream_descriptor.hpp    |    37 +
 .../asio/posix/stream_descriptor_service.hpp    |   260 +
 .../include/asio/raw_socket_service.hpp         |   432 +
 .../asio-1.10.2/include/asio/read.hpp           |   631 +
 .../asio-1.10.2/include/asio/read_at.hpp        |   664 +
 .../asio-1.10.2/include/asio/read_until.hpp     |   923 +
 .../include/asio/seq_packet_socket_service.hpp  |   380 +
 .../asio-1.10.2/include/asio/serial_port.hpp    |    36 +
 .../include/asio/serial_port_base.hpp           |   167 +
 .../include/asio/serial_port_service.hpp        |   253 +
 .../asio-1.10.2/include/asio/signal_set.hpp     |    28 +
 .../include/asio/signal_set_service.hpp         |   134 +
 .../include/asio/socket_acceptor_service.hpp    |   302 +
 .../asio-1.10.2/include/asio/socket_base.hpp    |   520 +
 .../asio-1.10.2/include/asio/spawn.hpp          |   265 +
 .../asio-1.10.2/include/asio/ssl.hpp            |    30 +
 .../include/asio/ssl/basic_context.hpp          |    40 +
 .../asio-1.10.2/include/asio/ssl/context.hpp    |   787 +
 .../include/asio/ssl/context_base.hpp           |   167 +
 .../include/asio/ssl/context_service.hpp        |    40 +
 .../asio/ssl/detail/buffered_handshake_op.hpp   |   110 +
 .../include/asio/ssl/detail/engine.hpp          |   164 +
 .../include/asio/ssl/detail/handshake_op.hpp    |    68 +
 .../include/asio/ssl/detail/impl/engine.ipp     |   326 +
 .../asio/ssl/detail/impl/openssl_init.ipp       |   145 +
 .../asio-1.10.2/include/asio/ssl/detail/io.hpp  |   347 +
 .../include/asio/ssl/detail/openssl_init.hpp    |   101 +
 .../include/asio/ssl/detail/openssl_types.hpp   |    28 +
 .../asio/ssl/detail/password_callback.hpp       |    72 +
 .../include/asio/ssl/detail/read_op.hpp         |    73 +
 .../include/asio/ssl/detail/shutdown_op.hpp     |    60 +
 .../include/asio/ssl/detail/stream_core.hpp     |   126 +
 .../include/asio/ssl/detail/verify_callback.hpp |    68 +
 .../include/asio/ssl/detail/write_op.hpp        |    73 +
 .../asio-1.10.2/include/asio/ssl/error.hpp      |    68 +
 .../include/asio/ssl/impl/context.hpp           |    71 +
 .../include/asio/ssl/impl/context.ipp           |   950 +
 .../asio-1.10.2/include/asio/ssl/impl/error.ipp |    57 +
 .../asio/ssl/impl/rfc2818_verification.ipp      |   166 +
 .../asio-1.10.2/include/asio/ssl/impl/src.hpp   |    28 +
 .../include/asio/ssl/old/basic_context.hpp      |   434 +
 .../include/asio/ssl/old/context_service.hpp    |   174 +
 .../ssl/old/detail/openssl_context_service.hpp  |   386 +
 .../asio/ssl/old/detail/openssl_operation.hpp   |   524 +
 .../ssl/old/detail/openssl_stream_service.hpp   |   571 +
 .../asio-1.10.2/include/asio/ssl/old/stream.hpp |   501 +
 .../include/asio/ssl/old/stream_service.hpp     |   184 +
 .../include/asio/ssl/rfc2818_verification.hpp   |   100 +
 .../asio-1.10.2/include/asio/ssl/stream.hpp     |   756 +
 .../include/asio/ssl/stream_base.hpp            |    52 +
 .../include/asio/ssl/stream_service.hpp         |    40 +
 .../include/asio/ssl/verify_context.hpp         |    73 +
 .../include/asio/ssl/verify_mode.hpp            |    63 +
 .../asio-1.10.2/include/asio/steady_timer.hpp   |    61 +
 .../asio-1.10.2/include/asio/strand.hpp         |   251 +
 .../include/asio/stream_socket_service.hpp      |   376 +
 .../asio-1.10.2/include/asio/streambuf.hpp      |    33 +
 .../asio-1.10.2/include/asio/system_error.hpp   |   131 +
 .../asio-1.10.2/include/asio/system_timer.hpp   |    57 +
 .../asio-1.10.2/include/asio/thread.hpp         |    92 +
 .../asio-1.10.2/include/asio/time_traits.hpp    |    96 +
 .../asio-1.10.2/include/asio/unyield.hpp        |    21 +
 .../asio-1.10.2/include/asio/use_future.hpp     |    92 +
 .../asio-1.10.2/include/asio/version.hpp        |    23 +
 .../asio-1.10.2/include/asio/wait_traits.hpp    |    41 +
 .../include/asio/waitable_timer_service.hpp     |   168 +
 .../include/asio/windows/basic_handle.hpp       |   281 +
 .../asio/windows/basic_object_handle.hpp        |   178 +
 .../asio/windows/basic_random_access_handle.hpp |   376 +
 .../asio/windows/basic_stream_handle.hpp        |   359 +
 .../include/asio/windows/object_handle.hpp      |    38 +
 .../asio/windows/object_handle_service.hpp      |   177 +
 .../include/asio/windows/overlapped_ptr.hpp     |   116 +
 .../asio/windows/random_access_handle.hpp       |    37 +
 .../windows/random_access_handle_service.hpp    |   220 +
 .../include/asio/windows/stream_handle.hpp      |    37 +
 .../asio/windows/stream_handle_service.hpp      |   218 +
 .../asio-1.10.2/include/asio/write.hpp          |   618 +
 .../asio-1.10.2/include/asio/write_at.hpp       |   670 +
 .../asio-1.10.2/include/asio/yield.hpp          |    23 +
 .../third_party/asio-1.10.2/src/asio.cpp        |    11 +
 .../third_party/asio-1.10.2/src/asio_ssl.cpp    |    11 +
 .../third_party/gmock-1.7.0/CMakeLists.txt      |    21 +
 .../libhdfspp/third_party/gmock-1.7.0/LICENSE   |    28 +
 .../third_party/gmock-1.7.0/gmock-gtest-all.cc  | 11443 ++++++++++
 .../third_party/gmock-1.7.0/gmock/gmock.h       | 14198 ++++++++++++
 .../third_party/gmock-1.7.0/gmock_main.cc       |    54 +
 .../third_party/gmock-1.7.0/gtest/gtest.h       | 20061 +++++++++++++++++
 .../third_party/protobuf/protobuf/cpp_helpers.h |    82 +
 .../rapidxml-1.13/rapidxml/license.txt          |    52 +
 .../rapidxml-1.13/rapidxml/rapidxml.hpp         |  2596 +++
 .../rapidxml/rapidxml_iterators.hpp             |   174 +
 .../rapidxml-1.13/rapidxml/rapidxml_print.hpp   |   421 +
 .../rapidxml-1.13/rapidxml/rapidxml_utils.hpp   |   122 +
 .../libhdfspp/third_party/tr2/optional.hpp      |  1068 +
 .../third_party/uriparser2/CMakeLists.txt       |    27 +
 .../uriparser2/uriparser2/.gitignore            |     4 +
 .../third_party/uriparser2/uriparser2/LICENSE   |    19 +
 .../third_party/uriparser2/uriparser2/Makefile  |    20 +
 .../third_party/uriparser2/uriparser2/README.md |   103 +
 .../uriparser2/uriparser2/test-uriparser2.c     |   108 +
 .../uriparser2/uriparser2/uriparser/AUTHORS     |     2 +
 .../uriparser2/uriparser2/uriparser/COPYING     |    36 +
 .../uriparser2/uriparser2/uriparser/Uri.h       |   752 +
 .../uriparser2/uriparser2/uriparser/UriBase.h   |   188 +
 .../uriparser2/uriparser2/uriparser/UriCommon.c |   527 +
 .../uriparser2/uriparser2/uriparser/UriCommon.h |    96 +
 .../uriparser2/uriparser/UriCompare.c           |   191 +
 .../uriparser2/uriparser/UriDefsAnsi.h          |    82 +
 .../uriparser2/uriparser/UriDefsConfig.h        |   105 +
 .../uriparser2/uriparser/UriDefsUnicode.h       |    82 +
 .../uriparser2/uriparser2/uriparser/UriEscape.c |   449 +
 .../uriparser2/uriparser2/uriparser/UriFile.c   |   182 +
 .../uriparser2/uriparser2/uriparser/UriIp4.c    |   325 +
 .../uriparser2/uriparser2/uriparser/UriIp4.h    |    87 +
 .../uriparser2/uriparser/UriIp4Base.c           |    96 +
 .../uriparser2/uriparser/UriIp4Base.h           |    59 +
 .../uriparser2/uriparser/UriNormalize.c         |   722 +
 .../uriparser2/uriparser/UriNormalizeBase.c     |   119 +
 .../uriparser2/uriparser/UriNormalizeBase.h     |    53 +
 .../uriparser2/uriparser2/uriparser/UriParse.c  |  2205 ++
 .../uriparser2/uriparser/UriParseBase.c         |    90 +
 .../uriparser2/uriparser/UriParseBase.h         |    55 +
 .../uriparser2/uriparser2/uriparser/UriQuery.c  |   456 +
 .../uriparser2/uriparser/UriRecompose.c         |   573 +
 .../uriparser2/uriparser/UriResolve.c           |   255 +
 .../uriparser2/uriparser/UriShorten.c           |   316 +
 .../uriparser2/uriparser2/uriparser2.c          |   273 +
 .../uriparser2/uriparser2/uriparser2.h          |   101 +
 .../main/native/libhdfspp/tools/CMakeLists.txt  |    93 +
 .../libhdfspp/tools/hdfs_allowSnapshot.cc       |    86 +
 .../src/main/native/libhdfspp/tools/hdfs_cat.cc |    83 +
 .../main/native/libhdfspp/tools/hdfs_chgrp.cc   |   185 +
 .../main/native/libhdfspp/tools/hdfs_chmod.cc   |   183 +
 .../main/native/libhdfspp/tools/hdfs_chown.cc   |   195 +
 .../native/libhdfspp/tools/hdfs_copyToLocal.cc  |    88 +
 .../main/native/libhdfspp/tools/hdfs_count.cc   |    93 +
 .../libhdfspp/tools/hdfs_createSnapshot.cc      |    95 +
 .../libhdfspp/tools/hdfs_deleteSnapshot.cc      |    87 +
 .../src/main/native/libhdfspp/tools/hdfs_df.cc  |    89 +
 .../libhdfspp/tools/hdfs_disallowSnapshot.cc    |    86 +
 .../src/main/native/libhdfspp/tools/hdfs_du.cc  |   176 +
 .../main/native/libhdfspp/tools/hdfs_find.cc    |   146 +
 .../src/main/native/libhdfspp/tools/hdfs_get.cc |    88 +
 .../src/main/native/libhdfspp/tools/hdfs_ls.cc  |   130 +
 .../main/native/libhdfspp/tools/hdfs_mkdir.cc   |    98 +
 .../native/libhdfspp/tools/hdfs_moveToLocal.cc  |    90 +
 .../libhdfspp/tools/hdfs_renameSnapshot.cc      |    88 +
 .../src/main/native/libhdfspp/tools/hdfs_rm.cc  |    90 +
 .../main/native/libhdfspp/tools/hdfs_setrep.cc  |   172 +
 .../main/native/libhdfspp/tools/hdfs_stat.cc    |    87 +
 .../main/native/libhdfspp/tools/hdfs_tail.cc    |   124 +
 .../main/native/libhdfspp/tools/tools_common.cc |   142 +
 .../main/native/libhdfspp/tools/tools_common.h  |    37 +
 .../dev-support/findbugsExcludeFile.xml         |    22 +
 hadoop-hdfs-project/hadoop-hdfs-rbf/pom.xml     |   236 +
 .../hdfs/protocolPB/RouterAdminProtocolPB.java  |    44 +
 ...uterAdminProtocolServerSideTranslatorPB.java |   211 +
 .../RouterAdminProtocolTranslatorPB.java        |   208 +
 .../hadoop/hdfs/protocolPB/package-info.java    |    18 +
 .../federation/metrics/FederationMBean.java     |   223 +
 .../federation/metrics/FederationMetrics.java   |   766 +
 .../federation/metrics/FederationRPCMBean.java  |    92 +
 .../metrics/FederationRPCMetrics.java           |   250 +
 .../FederationRPCPerformanceMonitor.java        |   221 +
 .../federation/metrics/NamenodeBeanMetrics.java |   634 +
 .../federation/metrics/StateStoreMBean.java     |    45 +
 .../federation/metrics/StateStoreMetrics.java   |   149 +
 .../server/federation/metrics/package-info.java |    27 +
 .../resolver/ActiveNamenodeResolver.java        |   118 +
 .../resolver/FederationNamenodeContext.java     |    87 +
 .../FederationNamenodeServiceState.java         |    46 +
 .../resolver/FederationNamespaceInfo.java       |    73 +
 .../resolver/FileSubclusterResolver.java        |    75 +
 .../resolver/MembershipNamenodeResolver.java    |   317 +
 .../federation/resolver/MountTableManager.java  |    80 +
 .../federation/resolver/MountTableResolver.java |   597 +
 .../MultipleDestinationMountTableResolver.java  |   116 +
 .../resolver/NamenodePriorityComparator.java    |    66 +
 .../resolver/NamenodeStatusReport.java          |   406 +
 .../federation/resolver/PathLocation.java       |   212 +
 .../federation/resolver/RemoteLocation.java     |    76 +
 .../resolver/order/DestinationOrder.java        |    30 +
 .../resolver/order/HashFirstResolver.java       |    71 +
 .../federation/resolver/order/HashResolver.java |   137 +
 .../resolver/order/LocalResolver.java           |   297 +
 .../resolver/order/OrderedResolver.java         |    37 +
 .../resolver/order/RandomResolver.java          |    62 +
 .../federation/resolver/order/package-info.java |    29 +
 .../federation/resolver/package-info.java       |    41 +
 .../federation/router/ConnectionContext.java    |   104 +
 .../federation/router/ConnectionManager.java    |   435 +
 .../federation/router/ConnectionPool.java       |   337 +
 .../federation/router/ConnectionPoolId.java     |   123 +
 .../server/federation/router/DFSRouter.java     |    76 +
 .../server/federation/router/ErasureCoding.java |   198 +
 .../federation/router/FederationUtil.java       |   208 +
 .../router/NamenodeHeartbeatService.java        |   362 +
 .../federation/router/PeriodicService.java      |   198 +
 .../hdfs/server/federation/router/Quota.java    |   208 +
 .../server/federation/router/RBFConfigKeys.java |   229 +
 .../router/RemoteLocationContext.java           |    68 +
 .../server/federation/router/RemoteMethod.java  |   164 +
 .../server/federation/router/RemoteParam.java   |    71 +
 .../hdfs/server/federation/router/Router.java   |   655 +
 .../federation/router/RouterAdminServer.java    |   298 +
 .../server/federation/router/RouterClient.java  |    80 +
 .../router/RouterHeartbeatService.java          |   166 +
 .../federation/router/RouterHttpServer.java     |   124 +
 .../server/federation/router/RouterMetrics.java |    73 +
 .../federation/router/RouterMetricsService.java |   108 +
 .../router/RouterPermissionChecker.java         |    82 +
 .../federation/router/RouterQuotaManager.java   |   172 +
 .../router/RouterQuotaUpdateService.java        |   227 +
 .../federation/router/RouterQuotaUsage.java     |   119 +
 .../federation/router/RouterRpcClient.java      |  1081 +
 .../federation/router/RouterRpcMonitor.java     |   108 +
 .../federation/router/RouterRpcServer.java      |  2330 ++
 .../router/RouterSafeModeException.java         |    53 +
 .../router/RouterSafemodeService.java           |   149 +
 .../federation/router/RouterServiceState.java   |    31 +
 .../federation/router/RouterStateManager.java   |    50 +
 .../server/federation/router/package-info.java  |    31 +
 .../federation/store/CachedRecordStore.java     |   242 +
 .../federation/store/MembershipStore.java       |   126 +
 .../federation/store/MountTableStore.java       |    49 +
 .../server/federation/store/RecordStore.java    |   100 +
 .../server/federation/store/RouterStore.java    |    78 +
 .../federation/store/StateStoreCache.java       |    36 +
 .../store/StateStoreCacheUpdateService.java     |    70 +
 .../StateStoreConnectionMonitorService.java     |    67 +
 .../federation/store/StateStoreService.java     |   450 +
 .../store/StateStoreUnavailableException.java   |    33 +
 .../federation/store/StateStoreUtils.java       |   109 +
 .../store/driver/StateStoreDriver.java          |   203 +
 .../driver/StateStoreRecordOperations.java      |   148 +
 .../store/driver/StateStoreSerializer.java      |   119 +
 .../store/driver/impl/StateStoreBaseImpl.java   |    86 +
 .../driver/impl/StateStoreFileBaseImpl.java     |   462 +
 .../store/driver/impl/StateStoreFileImpl.java   |   148 +
 .../driver/impl/StateStoreFileSystemImpl.java   |   178 +
 .../driver/impl/StateStoreSerializableImpl.java |    98 +
 .../driver/impl/StateStoreSerializerPBImpl.java |   115 +
 .../driver/impl/StateStoreZooKeeperImpl.java    |   328 +
 .../store/driver/impl/package-info.java         |    39 +
 .../federation/store/driver/package-info.java   |    37 +
 .../store/impl/MembershipStoreImpl.java         |   310 +
 .../store/impl/MountTableStoreImpl.java         |   154 +
 .../federation/store/impl/RouterStoreImpl.java  |    93 +
 .../federation/store/impl/package-info.java     |    31 +
 .../server/federation/store/package-info.java   |    62 +
 .../protocol/AddMountTableEntryRequest.java     |    47 +
 .../protocol/AddMountTableEntryResponse.java    |    42 +
 .../store/protocol/EnterSafeModeRequest.java    |    32 +
 .../store/protocol/EnterSafeModeResponse.java   |    50 +
 .../protocol/GetMountTableEntriesRequest.java   |    49 +
 .../protocol/GetMountTableEntriesResponse.java  |    53 +
 .../GetNamenodeRegistrationsRequest.java        |    52 +
 .../GetNamenodeRegistrationsResponse.java       |    55 +
 .../store/protocol/GetNamespaceInfoRequest.java |    30 +
 .../protocol/GetNamespaceInfoResponse.java      |    52 +
 .../protocol/GetRouterRegistrationRequest.java  |    47 +
 .../protocol/GetRouterRegistrationResponse.java |    44 +
 .../protocol/GetRouterRegistrationsRequest.java |    34 +
 .../GetRouterRegistrationsResponse.java         |    55 +
 .../store/protocol/GetSafeModeRequest.java      |    31 +
 .../store/protocol/GetSafeModeResponse.java     |    49 +
 .../store/protocol/LeaveSafeModeRequest.java    |    32 +
 .../store/protocol/LeaveSafeModeResponse.java   |    50 +
 .../protocol/NamenodeHeartbeatRequest.java      |    52 +
 .../protocol/NamenodeHeartbeatResponse.java     |    49 +
 .../protocol/RemoveMountTableEntryRequest.java  |    49 +
 .../protocol/RemoveMountTableEntryResponse.java |    42 +
 .../store/protocol/RouterHeartbeatRequest.java  |    50 +
 .../store/protocol/RouterHeartbeatResponse.java |    49 +
 .../protocol/UpdateMountTableEntryRequest.java  |    51 +
 .../protocol/UpdateMountTableEntryResponse.java |    43 +
 .../UpdateNamenodeRegistrationRequest.java      |    72 +
 .../UpdateNamenodeRegistrationResponse.java     |    51 +
 .../pb/AddMountTableEntryRequestPBImpl.java     |    84 +
 .../pb/AddMountTableEntryResponsePBImpl.java    |    76 +
 .../impl/pb/EnterSafeModeRequestPBImpl.java     |    62 +
 .../impl/pb/EnterSafeModeResponsePBImpl.java    |    73 +
 .../impl/pb/FederationProtocolPBTranslator.java |   145 +
 .../pb/GetMountTableEntriesRequestPBImpl.java   |    76 +
 .../pb/GetMountTableEntriesResponsePBImpl.java  |   104 +
 .../GetNamenodeRegistrationsRequestPBImpl.java  |    87 +
 .../GetNamenodeRegistrationsResponsePBImpl.java |    99 +
 .../impl/pb/GetNamespaceInfoRequestPBImpl.java  |    60 +
 .../impl/pb/GetNamespaceInfoResponsePBImpl.java |    95 +
 .../pb/GetRouterRegistrationRequestPBImpl.java  |    70 +
 .../pb/GetRouterRegistrationResponsePBImpl.java |    79 +
 .../pb/GetRouterRegistrationsRequestPBImpl.java |    61 +
 .../GetRouterRegistrationsResponsePBImpl.java   |   102 +
 .../impl/pb/GetSafeModeRequestPBImpl.java       |    62 +
 .../impl/pb/GetSafeModeResponsePBImpl.java      |    73 +
 .../impl/pb/LeaveSafeModeRequestPBImpl.java     |    62 +
 .../impl/pb/LeaveSafeModeResponsePBImpl.java    |    73 +
 .../impl/pb/NamenodeHeartbeatRequestPBImpl.java |    93 +
 .../pb/NamenodeHeartbeatResponsePBImpl.java     |    71 +
 .../pb/RemoveMountTableEntryRequestPBImpl.java  |    76 +
 .../pb/RemoveMountTableEntryResponsePBImpl.java |    76 +
 .../impl/pb/RouterHeartbeatRequestPBImpl.java   |    78 +
 .../impl/pb/RouterHeartbeatResponsePBImpl.java  |    70 +
 .../pb/UpdateMountTableEntryRequestPBImpl.java  |    96 +
 .../pb/UpdateMountTableEntryResponsePBImpl.java |    76 +
 ...UpdateNamenodeRegistrationRequestPBImpl.java |    95 +
 ...pdateNamenodeRegistrationResponsePBImpl.java |    73 +
 .../store/protocol/impl/pb/package-info.java    |    29 +
 .../federation/store/protocol/package-info.java |    31 +
 .../federation/store/records/BaseRecord.java    |   215 +
 .../store/records/MembershipState.java          |   336 +
 .../store/records/MembershipStats.java          |   130 +
 .../federation/store/records/MountTable.java    |   437 +
 .../server/federation/store/records/Query.java  |    66 +
 .../federation/store/records/QueryResult.java   |    56 +
 .../federation/store/records/RouterState.java   |   168 +
 .../store/records/StateStoreVersion.java        |    91 +
 .../records/impl/pb/MembershipStatePBImpl.java  |   335 +
 .../records/impl/pb/MembershipStatsPBImpl.java  |   201 +
 .../store/records/impl/pb/MountTablePBImpl.java |   317 +
 .../store/records/impl/pb/PBRecord.java         |    47 +
 .../records/impl/pb/RouterStatePBImpl.java      |   202 +
 .../impl/pb/StateStoreVersionPBImpl.java        |    79 +
 .../store/records/impl/pb/package-info.java     |    29 +
 .../federation/store/records/package-info.java  |    36 +
 .../federation/utils/ConsistentHashRing.java    |   144 +
 .../server/federation/utils/package-info.java   |    28 +
 .../hdfs/tools/federation/RouterAdmin.java      |   640 +
 .../hdfs/tools/federation/package-info.java     |    28 +
 .../src/main/proto/FederationProtocol.proto     |   244 +
 .../src/main/proto/RouterProtocol.proto         |    62 +
 .../src/main/resources/hdfs-rbf-default.xml     |   434 +
 .../src/main/webapps/proto-web.xml              |    16 +
 .../main/webapps/router/federationhealth.html   |   424 +
 .../src/main/webapps/router/federationhealth.js |   381 +
 .../src/main/webapps/router/index.html          |    24 +
 .../src/main/webapps/router/robots.txt          |     2 +
 .../src/site/markdown/HDFSRouterFederation.md   |   373 +
 .../src/site/resources/css/site.css             |    30 +
 .../site/resources/images/routerfederation.png  |   Bin 0 -> 24961 bytes
 .../hadoop-hdfs-rbf/src/site/site.xml           |    28 +
 .../fs/contract/router/RouterHDFSContract.java  |    98 +
 .../router/TestRouterHDFSContractAppend.java    |    44 +
 .../router/TestRouterHDFSContractConcat.java    |    51 +
 .../router/TestRouterHDFSContractCreate.java    |    48 +
 .../router/TestRouterHDFSContractDelete.java    |    48 +
 .../TestRouterHDFSContractGetFileStatus.java    |    49 +
 .../router/TestRouterHDFSContractMkdir.java     |    48 +
 .../router/TestRouterHDFSContractOpen.java      |    48 +
 .../router/TestRouterHDFSContractRename.java    |    48 +
 .../TestRouterHDFSContractRootDirectory.java    |    64 +
 .../router/TestRouterHDFSContractSeek.java      |    49 +
 .../router/TestRouterHDFSContractSetTimes.java  |    49 +
 .../server/federation/FederationTestUtils.java  |   277 +
 .../server/federation/MiniRouterDFSCluster.java |  1028 +
 .../hdfs/server/federation/MockResolver.java    |   313 +
 .../server/federation/RouterConfigBuilder.java  |   163 +
 .../server/federation/StateStoreDFSCluster.java |   148 +
 .../metrics/TestFederationMetrics.java          |   293 +
 .../federation/metrics/TestMetricsBase.java     |   196 +
 .../resolver/TestMountTableResolver.java        |   528 +
 .../TestMultipleDestinationResolver.java        |   419 +
 .../resolver/TestNamenodeResolver.java          |   284 +
 .../resolver/order/TestLocalResolver.java       |   143 +
 .../router/TestConnectionManager.java           |   157 +
 .../federation/router/TestRBFConfigFields.java  |    51 +
 .../server/federation/router/TestRouter.java    |   150 +
 .../federation/router/TestRouterAdmin.java      |   340 +
 .../federation/router/TestRouterAdminCLI.java   |   479 +
 .../router/TestRouterAllResolver.java           |   402 +
 .../router/TestRouterHeartbeatService.java      |   146 +
 .../federation/router/TestRouterMountTable.java |   143 +
 .../router/TestRouterNamenodeHeartbeat.java     |   168 +
 .../router/TestRouterNamenodeMonitoring.java    |   143 +
 .../federation/router/TestRouterQuota.java      |   451 +
 .../router/TestRouterQuotaManager.java          |   125 +
 .../router/TestRouterRPCClientRetries.java      |   160 +
 .../server/federation/router/TestRouterRpc.java |  1072 +
 .../router/TestRouterRpcMultiDestination.java   |   216 +
 .../federation/router/TestRouterSafemode.java   |   200 +
 .../store/FederationStateStoreTestUtils.java    |   274 +
 .../federation/store/TestStateStoreBase.java    |    81 +
 .../store/TestStateStoreMembershipState.java    |   463 +
 .../store/TestStateStoreMountTable.java         |   250 +
 .../store/TestStateStoreRouterState.java        |   195 +
 .../store/driver/TestStateStoreDriverBase.java  |   613 +
 .../store/driver/TestStateStoreFile.java        |    76 +
 .../store/driver/TestStateStoreFileBase.java    |    47 +
 .../store/driver/TestStateStoreFileSystem.java  |    94 +
 .../store/driver/TestStateStoreZK.java          |   105 +
 .../store/records/TestMembershipState.java      |   129 +
 .../store/records/TestMountTable.java           |   259 +
 .../store/records/TestRouterState.java          |    85 +
 .../src/test/resources/contract/hdfs.xml        |   114 +
 .../src/test/resources/hdfs-site.xml            |    29 +
 .../src/test/resources/log4j.properties         |    23 +
 .../dev-support/findbugsExcludeFile.xml         |     3 -
 hadoop-hdfs-project/hadoop-hdfs/pom.xml         |     6 -
 .../org/apache/hadoop/hdfs/DFSConfigKeys.java   |   204 -
 .../hdfs/protocolPB/RouterAdminProtocolPB.java  |    44 -
 ...uterAdminProtocolServerSideTranslatorPB.java |   211 -
 .../RouterAdminProtocolTranslatorPB.java        |   208 -
 .../server/blockmanagement/BlockManager.java    |     7 +
 .../BlockUnderConstructionFeature.java          |     6 +-
 .../server/datanode/web/DatanodeHttpServer.java |     1 +
 .../federation/metrics/FederationMBean.java     |   223 -
 .../federation/metrics/FederationMetrics.java   |   766 -
 .../federation/metrics/FederationRPCMBean.java  |    92 -
 .../metrics/FederationRPCMetrics.java           |   250 -
 .../FederationRPCPerformanceMonitor.java        |   221 -
 .../federation/metrics/NamenodeBeanMetrics.java |   634 -
 .../federation/metrics/StateStoreMBean.java     |    45 -
 .../federation/metrics/StateStoreMetrics.java   |   149 -
 .../server/federation/metrics/package-info.java |    27 -
 .../resolver/ActiveNamenodeResolver.java        |   118 -
 .../resolver/FederationNamenodeContext.java     |    87 -
 .../FederationNamenodeServiceState.java         |    46 -
 .../resolver/FederationNamespaceInfo.java       |    73 -
 .../resolver/FileSubclusterResolver.java        |    75 -
 .../resolver/MembershipNamenodeResolver.java    |   317 -
 .../federation/resolver/MountTableManager.java  |    80 -
 .../federation/resolver/MountTableResolver.java |   597 -
 .../resolver/NamenodePriorityComparator.java    |    63 -
 .../resolver/NamenodeStatusReport.java          |   406 -
 .../federation/resolver/PathLocation.java       |   212 -
 .../federation/resolver/RemoteLocation.java     |    76 -
 .../resolver/order/DestinationOrder.java        |    29 -
 .../federation/resolver/order/package-info.java |    29 -
 .../federation/resolver/package-info.java       |    41 -
 .../federation/router/ConnectionContext.java    |   104 -
 .../federation/router/ConnectionManager.java    |   436 -
 .../federation/router/ConnectionPool.java       |   337 -
 .../federation/router/ConnectionPoolId.java     |   123 -
 .../server/federation/router/DFSRouter.java     |    76 -
 .../server/federation/router/ErasureCoding.java |   198 -
 .../federation/router/FederationUtil.java       |   209 -
 .../router/NamenodeHeartbeatService.java        |   362 -
 .../federation/router/PeriodicService.java      |   198 -
 .../hdfs/server/federation/router/Quota.java    |   208 -
 .../router/RemoteLocationContext.java           |    68 -
 .../server/federation/router/RemoteMethod.java  |   164 -
 .../server/federation/router/RemoteParam.java   |    71 -
 .../hdfs/server/federation/router/Router.java   |   656 -
 .../federation/router/RouterAdminServer.java    |   298 -
 .../server/federation/router/RouterClient.java  |    80 -
 .../router/RouterHeartbeatService.java          |   167 -
 .../federation/router/RouterHttpServer.java     |   124 -
 .../server/federation/router/RouterMetrics.java |    73 -
 .../federation/router/RouterMetricsService.java |   108 -
 .../router/RouterPermissionChecker.java         |    82 -
 .../federation/router/RouterQuotaManager.java   |   172 -
 .../router/RouterQuotaUpdateService.java        |   228 -
 .../federation/router/RouterQuotaUsage.java     |   119 -
 .../federation/router/RouterRpcClient.java      |  1022 -
 .../federation/router/RouterRpcMonitor.java     |   108 -
 .../federation/router/RouterRpcServer.java      |  2189 --
 .../router/RouterSafeModeException.java         |    53 -
 .../router/RouterSafemodeService.java           |   150 -
 .../federation/router/RouterServiceState.java   |    31 -
 .../federation/router/RouterStateManager.java   |    50 -
 .../server/federation/router/package-info.java  |    31 -
 .../federation/store/CachedRecordStore.java     |   242 -
 .../federation/store/MembershipStore.java       |   126 -
 .../federation/store/MountTableStore.java       |    49 -
 .../server/federation/store/RecordStore.java    |   100 -
 .../server/federation/store/RouterStore.java    |    78 -
 .../federation/store/StateStoreCache.java       |    36 -
 .../store/StateStoreCacheUpdateService.java     |    70 -
 .../StateStoreConnectionMonitorService.java     |    67 -
 .../federation/store/StateStoreService.java     |   450 -
 .../store/StateStoreUnavailableException.java   |    33 -
 .../federation/store/StateStoreUtils.java       |   109 -
 .../store/driver/StateStoreDriver.java          |   203 -
 .../driver/StateStoreRecordOperations.java      |   148 -
 .../store/driver/StateStoreSerializer.java      |   119 -
 .../store/driver/impl/StateStoreBaseImpl.java   |    86 -
 .../driver/impl/StateStoreFileBaseImpl.java     |   462 -
 .../store/driver/impl/StateStoreFileImpl.java   |   148 -
 .../driver/impl/StateStoreFileSystemImpl.java   |   178 -
 .../driver/impl/StateStoreSerializableImpl.java |    98 -
 .../driver/impl/StateStoreSerializerPBImpl.java |   115 -
 .../driver/impl/StateStoreZooKeeperImpl.java    |   328 -
 .../store/driver/impl/package-info.java         |    39 -
 .../federation/store/driver/package-info.java   |    37 -
 .../store/impl/MembershipStoreImpl.java         |   310 -
 .../store/impl/MountTableStoreImpl.java         |   154 -
 .../federation/store/impl/RouterStoreImpl.java  |    93 -
 .../federation/store/impl/package-info.java     |    31 -
 .../server/federation/store/package-info.java   |    62 -
 .../protocol/AddMountTableEntryRequest.java     |    47 -
 .../protocol/AddMountTableEntryResponse.java    |    42 -
 .../store/protocol/EnterSafeModeRequest.java    |    32 -
 .../store/protocol/EnterSafeModeResponse.java   |    50 -
 .../protocol/GetMountTableEntriesRequest.java   |    49 -
 .../protocol/GetMountTableEntriesResponse.java  |    53 -
 .../GetNamenodeRegistrationsRequest.java        |    52 -
 .../GetNamenodeRegistrationsResponse.java       |    55 -
 .../store/protocol/GetNamespaceInfoRequest.java |    30 -
 .../protocol/GetNamespaceInfoResponse.java      |    52 -
 .../protocol/GetRouterRegistrationRequest.java  |    47 -
 .../protocol/GetRouterRegistrationResponse.java |    44 -
 .../protocol/GetRouterRegistrationsRequest.java |    34 -
 .../GetRouterRegistrationsResponse.java         |    55 -
 .../store/protocol/GetSafeModeRequest.java      |    31 -
 .../store/protocol/GetSafeModeResponse.java     |    49 -
 .../store/protocol/LeaveSafeModeRequest.java    |    32 -
 .../store/protocol/LeaveSafeModeResponse.java   |    50 -
 .../protocol/NamenodeHeartbeatRequest.java      |    52 -
 .../protocol/NamenodeHeartbeatResponse.java     |    49 -
 .../protocol/RemoveMountTableEntryRequest.java  |    49 -
 .../protocol/RemoveMountTableEntryResponse.java |    42 -
 .../store/protocol/RouterHeartbeatRequest.java  |    50 -
 .../store/protocol/RouterHeartbeatResponse.java |    49 -
 .../protocol/UpdateMountTableEntryRequest.java  |    51 -
 .../protocol/UpdateMountTableEntryResponse.java |    43 -
 .../UpdateNamenodeRegistrationRequest.java      |    72 -
 .../UpdateNamenodeRegistrationResponse.java     |    51 -
 .../pb/AddMountTableEntryRequestPBImpl.java     |    84 -
 .../pb/AddMountTableEntryResponsePBImpl.java    |    76 -
 .../impl/pb/EnterSafeModeRequestPBImpl.java     |    62 -
 .../impl/pb/EnterSafeModeResponsePBImpl.java    |    73 -
 .../impl/pb/FederationProtocolPBTranslator.java |   145 -
 .../pb/GetMountTableEntriesRequestPBImpl.java   |    76 -
 .../pb/GetMountTableEntriesResponsePBImpl.java  |   104 -
 .../GetNamenodeRegistrationsRequestPBImpl.java  |    87 -
 .../GetNamenodeRegistrationsResponsePBImpl.java |    99 -
 .../impl/pb/GetNamespaceInfoRequestPBImpl.java  |    60 -
 .../impl/pb/GetNamespaceInfoResponsePBImpl.java |    95 -
 .../pb/GetRouterRegistrationRequestPBImpl.java  |    70 -
 .../pb/GetRouterRegistrationResponsePBImpl.java |    79 -
 .../pb/GetRouterRegistrationsRequestPBImpl.java |    61 -
 .../GetRouterRegistrationsResponsePBImpl.java   |   102 -
 .../impl/pb/GetSafeModeRequestPBImpl.java       |    62 -
 .../impl/pb/GetSafeModeResponsePBImpl.java      |    73 -
 .../impl/pb/LeaveSafeModeRequestPBImpl.java     |    62 -
 .../impl/pb/LeaveSafeModeResponsePBImpl.java    |    73 -
 .../impl/pb/NamenodeHeartbeatRequestPBImpl.java |    93 -
 .../pb/NamenodeHeartbeatResponsePBImpl.java     |    71 -
 .../pb/RemoveMountTableEntryRequestPBImpl.java  |    76 -
 .../pb/RemoveMountTableEntryResponsePBImpl.java |    76 -
 .../impl/pb/RouterHeartbeatRequestPBImpl.java   |    78 -
 .../impl/pb/RouterHeartbeatResponsePBImpl.java  |    70 -
 .../pb/UpdateMountTableEntryRequestPBImpl.java  |    96 -
 .../pb/UpdateMountTableEntryResponsePBImpl.java |    76 -
 ...UpdateNamenodeRegistrationRequestPBImpl.java |    95 -
 ...pdateNamenodeRegistrationResponsePBImpl.java |    73 -
 .../store/protocol/impl/pb/package-info.java    |    29 -
 .../federation/store/protocol/package-info.java |    31 -
 .../federation/store/records/BaseRecord.java    |   215 -
 .../store/records/MembershipState.java          |   336 -
 .../store/records/MembershipStats.java          |   130 -
 .../federation/store/records/MountTable.java    |   430 -
 .../server/federation/store/records/Query.java  |    66 -
 .../federation/store/records/QueryResult.java   |    56 -
 .../federation/store/records/RouterState.java   |   168 -
 .../store/records/StateStoreVersion.java        |    91 -
 .../records/impl/pb/MembershipStatePBImpl.java  |   335 -
 .../records/impl/pb/MembershipStatsPBImpl.java  |   201 -
 .../store/records/impl/pb/MountTablePBImpl.java |   313 -
 .../store/records/impl/pb/PBRecord.java         |    47 -
 .../records/impl/pb/RouterStatePBImpl.java      |   202 -
 .../impl/pb/StateStoreVersionPBImpl.java        |    79 -
 .../store/records/impl/pb/package-info.java     |    29 -
 .../federation/store/records/package-info.java  |    36 -
 .../hdfs/server/namenode/FSDirTruncateOp.java   |     5 +-
 .../hdfs/server/namenode/FSNamesystem.java      |     2 +-
 .../hadoop/hdfs/server/namenode/INode.java      |     6 +-
 .../server/namenode/snapshot/FileDiffList.java  |     3 +-
 .../hdfs/tools/federation/RouterAdmin.java      |   626 -
 .../hdfs/tools/federation/package-info.java     |    28 -
 .../hdfs/tools/snapshot/SnapshotDiff.java       |     1 +
 .../org/apache/hadoop/hdfs/web/JsonUtil.java    |     3 +
 .../src/main/proto/FederationProtocol.proto     |   243 -
 .../src/main/proto/RouterProtocol.proto         |    62 -
 .../src/main/resources/hdfs-default.xml         |   408 -
 .../main/webapps/router/federationhealth.html   |   424 -
 .../src/main/webapps/router/federationhealth.js |   381 -
 .../src/main/webapps/router/index.html          |    24 -
 .../src/main/webapps/router/robots.txt          |     2 -
 .../src/site/markdown/HDFSRouterFederation.md   |   373 -
 .../site/resources/images/routerfederation.png  |   Bin 24961 -> 0 bytes
 .../org/apache/hadoop/hdfs/DFSTestUtil.java     |    37 +
 .../apache/hadoop/hdfs/TestEncryptionZones.java |    41 +
 .../hdfs/server/datanode/TestBlockRecovery.java |    83 +
 .../server/federation/FederationTestUtils.java  |   246 -
 .../hdfs/server/federation/MockResolver.java    |   313 -
 .../server/federation/RouterConfigBuilder.java  |   163 -
 .../server/federation/RouterDFSCluster.java     |  1005 -
 .../server/federation/StateStoreDFSCluster.java |   148 -
 .../metrics/TestFederationMetrics.java          |   293 -
 .../federation/metrics/TestMetricsBase.java     |   196 -
 .../resolver/TestMountTableResolver.java        |   528 -
 .../resolver/TestNamenodeResolver.java          |   284 -
 .../router/TestConnectionManager.java           |   157 -
 .../router/TestNamenodeHeartbeat.java           |   168 -
 .../server/federation/router/TestRouter.java    |   150 -
 .../federation/router/TestRouterAdmin.java      |   292 -
 .../federation/router/TestRouterAdminCLI.java   |   444 -
 .../router/TestRouterHeartbeatService.java      |   147 -
 .../federation/router/TestRouterMountTable.java |   143 -
 .../router/TestRouterNamenodeMonitoring.java    |   143 -
 .../federation/router/TestRouterQuota.java      |   452 -
 .../router/TestRouterQuotaManager.java          |   125 -
 .../router/TestRouterRPCClientRetries.java      |   160 -
 .../server/federation/router/TestRouterRpc.java |  1072 -
 .../router/TestRouterRpcMultiDestination.java   |   216 -
 .../federation/router/TestRouterSafemode.java   |   201 -
 .../store/FederationStateStoreTestUtils.java    |   274 -
 .../federation/store/TestStateStoreBase.java    |    81 -
 .../store/TestStateStoreMembershipState.java    |   463 -
 .../store/TestStateStoreMountTable.java         |   250 -
 .../store/TestStateStoreRouterState.java        |   195 -
 .../store/driver/TestStateStoreDriverBase.java  |   613 -
 .../store/driver/TestStateStoreFile.java        |    76 -
 .../store/driver/TestStateStoreFileBase.java    |    47 -
 .../store/driver/TestStateStoreFileSystem.java  |    94 -
 .../store/driver/TestStateStoreZK.java          |   105 -
 .../store/records/TestMembershipState.java      |   129 -
 .../store/records/TestMountTable.java           |   259 -
 .../store/records/TestRouterState.java          |    85 -
 .../snapshot/TestSnapshotDiffReport.java        |    25 +-
 .../org/apache/hadoop/hdfs/web/TestWebHDFS.java |     6 +-
 .../hadoop/hdfs/web/TestWebHdfsTimeouts.java    |     6 +-
 hadoop-hdfs-project/pom.xml                     |     1 +
 .../org/apache/hadoop/mapred/TestQueue.java     |     7 +-
 hadoop-project/pom.xml                          |     7 +-
 hadoop-project/src/site/site.xml                |     3 +-
 .../fs/aliyun/oss/AliyunOSSCopyFileContext.java |    70 +
 .../fs/aliyun/oss/AliyunOSSCopyFileTask.java    |    65 +
 .../fs/aliyun/oss/AliyunOSSFileSystem.java      |    51 +-
 .../apache/hadoop/fs/aliyun/oss/Constants.java  |    16 +
 .../oss/TestAliyunOSSFileSystemContract.java    |   130 +
 .../apache/hadoop/tools/HadoopArchiveLogs.java  |   214 +-
 .../hadoop/tools/TestHadoopArchiveLogs.java     |    82 +-
 .../tools/hadoop-aws/committer_architecture.md  |    76 +-
 .../markdown/tools/hadoop-aws/committers.md     |    18 +-
 .../markdown/tools/hadoop-aws/encryption.md     |     8 +-
 .../src/site/markdown/tools/hadoop-aws/index.md |    34 +-
 .../site/markdown/tools/hadoop-aws/s3guard.md   |     4 +-
 .../site/markdown/tools/hadoop-aws/testing.md   |    20 +-
 .../tools/hadoop-aws/troubleshooting_s3a.md     |     2 +-
 .../fs/contract/s3a/ITestS3AContractDistCp.java |    17 +
 hadoop-tools/hadoop-azure-datalake/pom.xml      |    19 +
 .../fs/adl/live/TestAdlContractDistCpLive.java  |    36 +
 .../org/apache/hadoop/tools/CopyListing.java    |     3 +-
 .../hadoop/tools/CopyListingFileStatus.java     |    13 +-
 .../apache/hadoop/tools/DistCpConstants.java    |    20 +-
 .../apache/hadoop/tools/DistCpOptionSwitch.java |    20 +-
 .../org/apache/hadoop/tools/DistCpOptions.java  |    23 +
 .../org/apache/hadoop/tools/OptionsParser.java  |     6 +
 .../hadoop/tools/mapred/CopyCommitter.java      |   219 +-
 .../hadoop/tools/mapred/DeletedDirTracker.java  |   181 +
 .../apache/hadoop/tools/util/DistCpUtils.java   |    41 +-
 .../contract/AbstractContractDistCpTest.java    |   453 +-
 .../tools/contract/TestLocalContractDistCp.java |    36 +
 .../hadoop/tools/mapred/TestCopyCommitter.java  |   165 +-
 .../tools/mapred/TestDeletedDirTracker.java     |   250 +
 .../hadoop/tools/util/TestDistCpUtils.java      |    46 +-
 .../src/test/resources/contract/localfs.xml     |   128 +
 .../src/test/resources/log4j.properties         |    13 +-
 .../api/records/AllocationTagNamespace.java     |   336 -
 .../api/records/AllocationTagNamespaceType.java |    29 -
 .../hadoop/yarn/api/records/AllocationTags.java |    50 -
 .../hadoop/yarn/api/records/Evaluable.java      |    38 -
 .../yarn/api/records/TargetApplications.java    |    53 -
 .../yarn/api/resource/PlacementConstraints.java |    58 +-
 .../hadoop/yarn/conf/YarnConfiguration.java     |     5 +-
 .../InvalidAllocationTagException.java          |    34 -
 .../src/main/resources/yarn-default.xml         |     4 +-
 .../RegisterNodeManagerRequest.java             |     5 +
 .../pb/RegisterNodeManagerRequestPBImpl.java    |    80 +
 .../yarn_server_common_service_protos.proto     |     1 +
 .../hadoop/yarn/server/nodemanager/Context.java |     4 +-
 .../nodemanager/LocalDirsHandlerService.java    |     7 +-
 .../yarn/server/nodemanager/NodeManager.java    |    24 +
 .../nodemanager/NodeStatusUpdaterImpl.java      |    14 +
 .../runtime/DockerLinuxContainerRuntime.java    |    10 +-
 .../logaggregation/AppLogAggregatorImpl.java    |    11 +-
 .../tracker/NMLogAggregationStatusTracker.java  |   270 +
 .../TestLinuxContainerExecutorWithMocks.java    |     4 +-
 .../amrmproxy/BaseAMRMProxyTest.java            |     6 +
 .../BaseContainerManagerTest.java               |    19 +
 .../runtime/TestDockerContainerRuntime.java     |    98 +-
 .../TestNMLogAggregationStatusTracker.java      |   151 +
 .../resourcemanager/ResourceTrackerService.java |    17 +-
 .../resourcemanager/rmnode/RMNodeImpl.java      |     6 +
 .../rmnode/RMNodeStartedEvent.java              |    11 +
 .../scheduler/SchedulerApplicationAttempt.java  |    15 +-
 .../constraint/AllocationTagNamespace.java      |   312 +
 .../scheduler/constraint/AllocationTags.java    |    82 +
 .../constraint/AllocationTagsManager.java       |   146 +-
 .../scheduler/constraint/Evaluable.java         |    38 +
 .../constraint/PlacementConstraintsUtil.java    |    55 +-
 .../constraint/TargetApplications.java          |    51 +
 .../algorithm/LocalAllocationTagsManager.java   |    27 +-
 .../SingleConstraintAppPlacementAllocator.java  |    17 +-
 .../security/QueueACLsManager.java              |     1 -
 .../resourcemanager/webapp/RMWSConsts.java      |     8 +
 .../webapp/RMWebServiceProtocol.java            |    18 +
 .../resourcemanager/webapp/RMWebServices.java   |    55 +-
 .../yarn/server/resourcemanager/MockAM.java     |    11 +-
 .../rmcontainer/TestRMContainerImpl.java        |    47 +-
 ...estSchedulingRequestContainerAllocation.java |   126 +
 .../constraint/TestAllocationTagsManager.java   |   272 +-
 .../constraint/TestAllocationTagsNamespace.java |    36 +-
 .../TestPlacementConstraintsUtil.java           |   247 +-
 .../TestLocalAllocationTagsManager.java         |    33 +-
 ...stSingleConstraintAppPlacementAllocator.java |     9 +-
 .../webapp/TestRMWebServices.java               |    84 +
 .../webapp/DefaultRequestInterceptorREST.java   |     9 +
 .../webapp/FederationInterceptorREST.java       |     6 +
 .../server/router/webapp/RouterWebServices.java |    17 +
 .../webapp/MockRESTRequestInterceptor.java      |     6 +
 .../PassThroughRESTRequestInterceptor.java      |     8 +
 .../pom.xml                                     |     8 +
 .../pom.xml                                     |     4 +
 .../storage/reader/ApplicationEntityReader.java |    14 +-
 .../reader/FlowActivityEntityReader.java        |     4 +-
 .../storage/reader/FlowRunEntityReader.java     |     7 +-
 .../storage/reader/GenericEntityReader.java     |    12 +-
 .../reader/SubApplicationEntityReader.java      |    15 +-
 .../storage/reader/TimelineEntityReader.java    |    46 +-
 .../pom.xml                                     |     4 +
 .../src/main/webapp/app/initializers/loader.js  |     7 +-
 1227 files changed, 219630 insertions(+), 37636 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/BUILDING.txt
----------------------------------------------------------------------
diff --git a/BUILDING.txt b/BUILDING.txt
index 6c266e5..f1df194 100644
--- a/BUILDING.txt
+++ b/BUILDING.txt
@@ -11,6 +11,8 @@ Requirements:
 * Zlib devel (if compiling native code)
 * openssl devel (if compiling native hadoop-pipes and to get the best HDFS 
encryption performance)
 * Linux FUSE (Filesystem in Userspace) version 2.6 or above (if compiling 
fuse_dfs)
+* Jansson C XML parsing library ( if compiling libwebhdfs )
+* Doxygen ( if compiling libhdfspp and generating the documents )
 * Internet connection for first build (to fetch all Maven and Hadoop 
dependencies)
 * python (for releasedocs)
 * bats (for shell code testing)
@@ -348,7 +350,7 @@ Requirements:
 * Maven 3.0 or later
 * ProtocolBuffer 2.5.0
 * CMake 3.1 or newer
-* Windows SDK 7.1 or Visual Studio 2010 Professional
+* Visual Studio 2010 Professional or Higher
 * Windows SDK 8.1 (if building CPU rate control for the container executor)
 * zlib headers (if building native code bindings for zlib)
 * Internet connection for first build (to fetch all Maven and Hadoop 
dependencies)
@@ -359,18 +361,15 @@ Requirements:
 Unix command-line tools are also included with the Windows Git package which
 can be downloaded from http://git-scm.com/downloads
 
-If using Visual Studio, it must be Visual Studio 2010 Professional (not 2012).
+If using Visual Studio, it must be Professional level or higher.
 Do not use Visual Studio Express.  It does not support compiling for 64-bit,
-which is problematic if running a 64-bit system.  The Windows SDK 7.1 is free 
to
-download here:
-
-http://www.microsoft.com/en-us/download/details.aspx?id=8279
+which is problematic if running a 64-bit system.
 
 The Windows SDK 8.1 is available to download at:
 
 http://msdn.microsoft.com/en-us/windows/bg162891.aspx
 
-Cygwin is neither required nor supported.
+Cygwin is not required.
 
 
----------------------------------------------------------------------------------
 Building:
@@ -378,21 +377,12 @@ Building:
 Keep the source code tree in a short path to avoid running into problems 
related
 to Windows maximum path length limitation (for example, C:\hdc).
 
-Run builds from a Windows SDK Command Prompt. (Start, All Programs,
-Microsoft Windows SDK v7.1, Windows SDK 7.1 Command Prompt).
-
-JAVA_HOME must be set, and the path must not contain spaces. If the full path
-would contain spaces, then use the Windows short path instead.
-
-You must set the Platform environment variable to either x64 or Win32 depending
-on whether you're running a 64-bit or 32-bit system. Note that this is
-case-sensitive. It must be "Platform", not "PLATFORM" or "platform".
-Environment variables on Windows are usually case-insensitive, but Maven treats
-them as case-sensitive. Failure to set this environment variable correctly will
-cause msbuild to fail while building the native code in hadoop-common.
+There is one support command file located in dev-support called 
win-paths-eg.cmd.
+It should be copied somewhere convenient and modified to fit your needs.
 
-set Platform=x64 (when building on a 64-bit system)
-set Platform=Win32 (when building on a 32-bit system)
+win-paths-eg.cmd sets up the environment for use. You will need to modify this
+file. It will put all of the required components in the command path,
+configure the bit-ness of the build, and set several optional components.
 
 Several tests require that the user must have the Create Symbolic Links
 privilege.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/dev-support/bin/dist-layout-stitching
----------------------------------------------------------------------
diff --git a/dev-support/bin/dist-layout-stitching 
b/dev-support/bin/dist-layout-stitching
index c0787be..cff2ce7 100755
--- a/dev-support/bin/dist-layout-stitching
+++ b/dev-support/bin/dist-layout-stitching
@@ -128,6 +128,7 @@ run copy 
"${ROOT}/hadoop-hdfs-project/hadoop-hdfs/target/hadoop-hdfs-${VERSION}"
 run copy 
"${ROOT}/hadoop-hdfs-project/hadoop-hdfs-nfs/target/hadoop-hdfs-nfs-${VERSION}" 
.
 run copy 
"${ROOT}/hadoop-hdfs-project/hadoop-hdfs-client/target/hadoop-hdfs-client-${VERSION}"
 .
 run copy 
"${ROOT}/hadoop-hdfs-project/hadoop-hdfs-native-client/target/hadoop-hdfs-native-client-${VERSION}"
 .
+run copy 
"${ROOT}/hadoop-hdfs-project/hadoop-hdfs-rbf/target/hadoop-hdfs-rbf-${VERSION}" 
.
 
 run copy "${ROOT}/hadoop-yarn-project/target/hadoop-yarn-project-${VERSION}" .
 run copy "${ROOT}/hadoop-mapreduce-project/target/hadoop-mapreduce-${VERSION}" 
.

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/dev-support/bin/win-vs-upgrade.cmd
----------------------------------------------------------------------
diff --git a/dev-support/bin/win-vs-upgrade.cmd 
b/dev-support/bin/win-vs-upgrade.cmd
new file mode 100644
index 0000000..d8c9d73
--- /dev/null
+++ b/dev-support/bin/win-vs-upgrade.cmd
@@ -0,0 +1,39 @@
+@ECHO OFF
+@REM Licensed to the Apache Software Foundation (ASF) under one or more
+@REM contributor license agreements.  See the NOTICE file distributed with
+@REM this work for additional information regarding copyright ownership.
+@REM The ASF licenses this file to You under the Apache License, Version 2.0
+@REM (the "License"); you may not use this file except in compliance with
+@REM the License.  You may obtain a copy of the License at
+@REM
+@REM     http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing, software
+@REM distributed under the License is distributed on an "AS IS" BASIS,
+@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@REM See the License for the specific language governing permissions and
+@REM limitations under the License.
+
+@WHERE devenv
+IF %ERRORLEVEL% NEQ 0 (
+  @ECHO "devenv command was not found. Verify your compiler installation 
level."
+  EXIT /b 1
+)
+
+@REM Need to save output to a file because for loop will just
+@REM loop forever... :(
+
+SET srcdir=%1
+SET workdir=%2
+
+IF EXIST %srcdir%\Backup (
+  @ECHO "Solution files already upgraded."
+  EXIT /b 0
+)
+
+CD %srcdir%
+DIR /B *.sln > %workdir%\HADOOP-SLN-UPGRADE.TXT
+
+FOR /F %%f IN (%workdir%\HADOOP-SLN-UPGRADE.TXT) DO (
+  devenv %%f /upgrade
+)

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/dev-support/docker/Dockerfile
----------------------------------------------------------------------
diff --git a/dev-support/docker/Dockerfile b/dev-support/docker/Dockerfile
index cefb3dd..369c606 100644
--- a/dev-support/docker/Dockerfile
+++ b/dev-support/docker/Dockerfile
@@ -42,6 +42,7 @@ RUN apt-get -q update && apt-get -q install -y \
     apt-utils \
     build-essential \
     bzip2 \
+    clang \
     curl \
     doxygen \
     fuse \
@@ -54,6 +55,7 @@ RUN apt-get -q update && apt-get -q install -y \
     libfuse-dev \
     libprotobuf-dev \
     libprotoc-dev \
+    libsasl2-dev \
     libsnappy-dev \
     libssl-dev \
     libtool \
@@ -71,6 +73,7 @@ RUN apt-get -q update && apt-get -q install -y \
     software-properties-common \
     snappy \
     sudo \
+    valgrind \
     zlib1g-dev
 
 #######

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/dev-support/win-paths-eg.cmd
----------------------------------------------------------------------
diff --git a/dev-support/win-paths-eg.cmd b/dev-support/win-paths-eg.cmd
new file mode 100644
index 0000000..f9acae0
--- /dev/null
+++ b/dev-support/win-paths-eg.cmd
@@ -0,0 +1,49 @@
+@ECHO OFF
+@REM Licensed to the Apache Software Foundation (ASF) under one or more
+@REM contributor license agreements.  See the NOTICE file distributed with
+@REM this work for additional information regarding copyright ownership.
+@REM The ASF licenses this file to You under the Apache License, Version 2.0
+@REM (the "License"); you may not use this file except in compliance with
+@REM the License.  You may obtain a copy of the License at
+@REM
+@REM     http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing, software
+@REM distributed under the License is distributed on an "AS IS" BASIS,
+@REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@REM See the License for the specific language governing permissions and
+@REM limitations under the License.
+
+@REM *************************************************
+@REM JDK and these settings MUST MATCH
+@REM
+@REM 64-bit : Platform = x64, VCVARSPLAT = amd64
+@REM
+@REM 32-bit : Platform = Win32, VCVARSPLAT = x86
+@REM
+
+SET Platform=x64
+SET VCVARSPLAT=amd64
+
+@REM ******************
+@REM Forcibly move the Maven local repo
+
+SET MAVEN_OPTS=-Dmaven.repo.local=C:\Tools\m2
+
+@REM *******************************************
+@REM
+@REM Locations of your bits and pieces
+@REM
+@REM NOTE: cmake is assumed to already be on the
+@REM command path
+@REM
+
+SET MAVEN_HOME=C:\Tools\apache-maven-3.5.0
+SET JAVA_HOME=C:\Tools\jdk
+SET MSVS=C:\Program Files (x86)\Microsoft Visual Studio 12.0
+SET PROTO_BIN=C:\Tools\protobuf-2.5.0
+SET GIT_HOME=C:\Program Files\Git
+
+SET PATH=%JAVA_HOME%\bin;%MAVEN_HOME%\bin;%PROTO_BIN%;%GIT_HOME%\bin;%PATH%
+
+CALL "%MSVS%\VC\vcvarsall.bat" %VCVARSPLAT%

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/hadoop-common-project/hadoop-annotations/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-annotations/pom.xml 
b/hadoop-common-project/hadoop-annotations/pom.xml
index 4506551..64dde71 100644
--- a/hadoop-common-project/hadoop-annotations/pom.xml
+++ b/hadoop-common-project/hadoop-annotations/pom.xml
@@ -39,21 +39,6 @@
 
   <profiles>
     <profile>
-      <id>jdk1.7</id>
-      <activation>
-        <jdk>1.7</jdk>
-      </activation>
-      <dependencies>
-        <dependency>
-          <groupId>jdk.tools</groupId>
-          <artifactId>jdk.tools</artifactId>
-          <version>1.7</version>
-          <scope>system</scope>
-          <systemPath>${java.home}/../lib/tools.jar</systemPath>
-        </dependency>
-      </dependencies>
-    </profile>
-    <profile>
       <id>jdk1.8</id>
       <activation>
         <jdk>1.8</jdk>

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/hadoop-common-project/hadoop-common/pom.xml
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/pom.xml 
b/hadoop-common-project/hadoop-common/pom.xml
index 49d3575..1a16dc4 100644
--- a/hadoop-common-project/hadoop-common/pom.xml
+++ b/hadoop-common-project/hadoop-common/pom.xml
@@ -839,6 +839,20 @@
             <artifactId>exec-maven-plugin</artifactId>
             <executions>
               <execution>
+                <id>convert-ms-winutils</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>exec</goal>
+                </goals>
+                <configuration>
+                  
<executable>${basedir}\..\..\dev-support\bin\win-vs-upgrade.cmd</executable>
+                  <arguments>
+                    <argument>${basedir}\src\main\winutils</argument>
+                    <argument>${project.build.directory}</argument>
+                  </arguments>
+                </configuration>
+              </execution>
+              <execution>
                 <id>compile-ms-winutils</id>
                 <phase>compile</phase>
                 <goals>
@@ -858,6 +872,20 @@
                 </configuration>
               </execution>
               <execution>
+                <id>convert-ms-native-dll</id>
+                <phase>generate-sources</phase>
+                <goals>
+                  <goal>exec</goal>
+                </goals>
+                <configuration>
+                  
<executable>${basedir}\..\..\dev-support\bin\win-vs-upgrade.cmd</executable>
+                  <arguments>
+                    <argument>${basedir}\src\main\native</argument>
+                    <argument>${project.build.directory}</argument>
+                  </arguments>
+                </configuration>
+              </execution>
+              <execution>
                 <id>compile-ms-native-dll</id>
                 <phase>compile</phase>
                 <goals>

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
index 00b4702..e0a5866 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/conf/Configuration.java
@@ -816,8 +816,11 @@ public class Configuration implements 
Iterable<Map.Entry<String,String>>,
    */
   @SuppressWarnings("unchecked")
   public Configuration(Configuration other) {
-    this.resources = (ArrayList<Resource>) other.resources.clone();
     synchronized(other) {
+      // Make sure we clone a finalized state
+      // Resources like input streams can be processed only once
+      other.getProps();
+      this.resources = (ArrayList<Resource>) other.resources.clone();
       if (other.properties != null) {
         this.properties = (Properties)other.properties.clone();
       }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/b78c94f4/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ThreadUtil.java
----------------------------------------------------------------------
diff --git 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ThreadUtil.java
 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ThreadUtil.java
index 6444428..2cda8a4 100644
--- 
a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ThreadUtil.java
+++ 
b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ThreadUtil.java
@@ -53,8 +53,7 @@ public class ThreadUtil {
    * Convenience method that returns a resource as inputstream from the
    * classpath.
    * <p>
-   * It first attempts to use the Thread's context classloader and if not
-   * set it uses the class' classloader.
+   * Uses the Thread's context classloader to load resource.
    *
    * @param resourceName resource to retrieve.
    *
@@ -68,6 +67,27 @@ public class ThreadUtil {
       throw new IOException("Can not read resource file '" + resourceName +
           "' because class loader of the current thread is null");
     }
+    return getResourceAsStream(cl, resourceName);
+  }
+
+  /**
+   * Convenience method that returns a resource as inputstream from the
+   * classpath using given classloader.
+   * <p>
+   *
+   * @param cl ClassLoader to be used to retrieve resource.
+   * @param resourceName resource to retrieve.
+   *
+   * @throws IOException thrown if resource cannot be loaded
+   * @return inputstream with the resource.
+   */
+  public static InputStream getResourceAsStream(ClassLoader cl,
+        String resourceName)
+        throws IOException {
+    if (cl == null) {
+      throw new IOException("Can not read resource file '" + resourceName +
+          "' because given class loader is null");
+    }
     InputStream is = cl.getResourceAsStream(resourceName);
     if (is == null) {
       throw new IOException("Can not read resource file '" +
@@ -75,4 +95,6 @@ public class ThreadUtil {
     }
     return is;
   }
+
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to