You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ka...@apache.org on 2016/04/07 00:48:35 UTC

[05/11] mesos git commit: Changed MasterDetector/Contender namespace.

Changed MasterDetector/Contender namespace.

Also modified users of MasterContender and MasterDetector to use this
namespace.

Review: https://reviews.apache.org/r/44288/


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

Branch: refs/heads/master
Commit: a529a9e8d061abc478a6850ae48de95636561c35
Parents: f24f282
Author: Anurag Singh <an...@gmail.com>
Authored: Wed Apr 6 15:07:53 2016 -0400
Committer: Kapil Arya <ka...@mesosphere.io>
Committed: Wed Apr 6 18:36:18 2016 -0400

----------------------------------------------------------------------
 include/mesos/scheduler.hpp                     |  8 +++--
 include/mesos/v1/scheduler.hpp                  | 10 +++---
 src/cli/resolve.cpp                             |  7 ++--
 src/local/local.cpp                             |  6 ++++
 src/master/contender.cpp                        | 12 ++++---
 src/master/detector.cpp                         | 27 ++++++++------
 src/master/main.cpp                             |  8 ++++-
 src/master/master.cpp                           |  6 ++++
 src/master/master.hpp                           | 10 +++---
 src/sched/sched.cpp                             |  6 ++--
 src/scheduler/scheduler.cpp                     |  5 ++-
 src/slave/main.cpp                              |  4 +++
 src/slave/slave.cpp                             |  2 ++
 src/slave/slave.hpp                             | 10 +++---
 src/tests/authentication_tests.cpp              |  3 ++
 src/tests/cluster.cpp                           |  8 +++--
 src/tests/cluster.hpp                           | 14 ++++----
 src/tests/command_executor_tests.cpp            |  2 ++
 src/tests/container_logger_tests.cpp            |  2 ++
 .../docker_containerizer_tests.cpp              |  2 ++
 .../external_containerizer_test.cpp             |  2 ++
 .../containerizer/filesystem_isolator_tests.cpp |  2 ++
 src/tests/containerizer/isolator_tests.cpp      |  2 ++
 .../containerizer/memory_pressure_tests.cpp     |  2 ++
 src/tests/containerizer/port_mapping_tests.cpp  |  2 ++
 .../containerizer/provisioner_docker_tests.cpp  |  2 ++
 .../containerizer/runtime_isolator_tests.cpp    |  2 ++
 src/tests/credentials_tests.cpp                 |  3 ++
 src/tests/disk_quota_tests.cpp                  |  2 ++
 src/tests/exception_tests.cpp                   |  2 ++
 src/tests/executor_http_api_tests.cpp           |  2 ++
 src/tests/fault_tolerance_tests.cpp             |  3 ++
 src/tests/fetcher_cache_tests.cpp               |  2 ++
 src/tests/gc_tests.cpp                          |  2 ++
 src/tests/health_check_tests.cpp                |  2 ++
 src/tests/hook_tests.cpp                        |  2 ++
 src/tests/http_fault_tolerance_tests.cpp        |  2 ++
 src/tests/master_allocator_tests.cpp            |  3 ++
 src/tests/master_authorization_tests.cpp        |  3 ++
 src/tests/master_contender_detector_tests.cpp   | 10 ++++++
 src/tests/master_maintenance_tests.cpp          |  2 ++
 src/tests/master_quota_tests.cpp                |  2 ++
 src/tests/master_slave_reconciliation_tests.cpp |  2 ++
 src/tests/master_tests.cpp                      |  5 +++
 src/tests/master_validation_tests.cpp           |  2 ++
 src/tests/mesos.cpp                             |  4 +++
 src/tests/mesos.hpp                             | 38 +++++++++++---------
 src/tests/metrics_tests.cpp                     |  2 ++
 src/tests/oversubscription_tests.cpp            |  3 ++
 src/tests/partition_tests.cpp                   |  3 ++
 src/tests/persistent_volume_endpoints_tests.cpp |  2 ++
 src/tests/persistent_volume_tests.cpp           |  3 ++
 src/tests/reconciliation_tests.cpp              |  3 ++
 src/tests/registrar_zookeeper_tests.cpp         |  2 ++
 src/tests/reservation_endpoints_tests.cpp       |  2 ++
 src/tests/reservation_tests.cpp                 |  3 ++
 src/tests/resource_offers_tests.cpp             |  2 ++
 src/tests/role_tests.cpp                        |  2 ++
 src/tests/scheduler_driver_tests.cpp            |  2 ++
 src/tests/scheduler_event_call_tests.cpp        |  3 ++
 src/tests/scheduler_http_api_tests.cpp          |  2 ++
 src/tests/scheduler_tests.cpp                   |  3 ++
 src/tests/slave_recovery_tests.cpp              |  3 ++
 src/tests/slave_tests.cpp                       |  3 ++
 src/tests/status_update_manager_tests.cpp       |  2 ++
 65 files changed, 241 insertions(+), 63 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/include/mesos/scheduler.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/scheduler.hpp b/include/mesos/scheduler.hpp
index 5b153d2..859edd2 100644
--- a/include/mesos/scheduler.hpp
+++ b/include/mesos/scheduler.hpp
@@ -46,10 +46,14 @@ class MesosProcess;
 } // namespace scheduler {
 
 namespace internal {
-class MasterDetector;
 class SchedulerProcess;
 } // namespace internal {
 
+namespace master {
+namespace detector {
+class MasterDetector;
+} // namespace detector {
+} // namespace master {
 
 // Callback interface to be implemented by frameworks' schedulers.
 // Note that only one callback will be invoked at a time, so it is not
@@ -442,7 +446,7 @@ public:
 
 protected:
   // Used to detect (i.e., choose) the master.
-  std::shared_ptr<internal::MasterDetector> detector;
+  std::shared_ptr<master::detector::MasterDetector> detector;
 
 private:
   void initialize();

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/include/mesos/v1/scheduler.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/v1/scheduler.hpp b/include/mesos/v1/scheduler.hpp
index 5264732..6603075 100644
--- a/include/mesos/v1/scheduler.hpp
+++ b/include/mesos/v1/scheduler.hpp
@@ -30,10 +30,11 @@
 
 namespace mesos {
 
-// Forward declaration.
-namespace internal {
+namespace master {
+namespace detector {
 class MasterDetector;
-} // namespace internal {
+} // namespace detector {
+} // namespace master {
 
 namespace v1 {
 namespace scheduler {
@@ -100,7 +101,8 @@ protected:
       const std::function<void()>& connected,
       const std::function<void()>& disconnected,
       const std::function<void(const std::queue<Event>&)>& received,
-      const Option<std::shared_ptr<mesos::internal::MasterDetector>>& detector);
+      const Option<std::shared_ptr<mesos::master::detector::MasterDetector>>&
+        detector);
 
   // Stops the library so that:
   //   - No more calls can be sent to the master.

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/cli/resolve.cpp
----------------------------------------------------------------------
diff --git a/src/cli/resolve.cpp b/src/cli/resolve.cpp
index 257e290..23bb0f1 100644
--- a/src/cli/resolve.cpp
+++ b/src/cli/resolve.cpp
@@ -16,6 +16,8 @@
 
 #include <iostream>
 
+#include <mesos/master/detector.hpp>
+
 #include <process/future.hpp>
 
 #include <stout/duration.hpp>
@@ -26,8 +28,6 @@
 #include <stout/strings.hpp>
 #include <stout/try.hpp>
 
-#include "master/detector.hpp"
-
 #include "messages/messages.hpp"
 
 using namespace mesos;
@@ -80,7 +80,8 @@ int main(int argc, char** argv)
   }
 
   string master = argv[1];
-  Try<MasterDetector*> detector = MasterDetector::create(master);
+  Try<mesos::master::detector::MasterDetector*> detector =
+    mesos::master::detector::MasterDetector::create(master);
 
   if (detector.isError()) {
     cerr << "Failed to create a master detector: " << detector.error() << endl;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/local/local.cpp
----------------------------------------------------------------------
diff --git a/src/local/local.cpp b/src/local/local.cpp
index 0d98018..ddc1eca 100644
--- a/src/local/local.cpp
+++ b/src/local/local.cpp
@@ -77,6 +77,12 @@ using namespace mesos::internal::log;
 
 using mesos::master::allocator::Allocator;
 
+using mesos::master::contender::MasterContender;
+using mesos::master::contender::StandaloneMasterContender;
+
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::internal::master::allocator::HierarchicalDRFAllocator;
 
 using mesos::internal::master::Master;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/master/contender.cpp
----------------------------------------------------------------------
diff --git a/src/master/contender.cpp b/src/master/contender.cpp
index 846f516..6f3fa0e 100644
--- a/src/master/contender.cpp
+++ b/src/master/contender.cpp
@@ -14,6 +14,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
+#include <mesos/master/contender.hpp>
+
 #include <process/defer.hpp>
 #include <process/id.hpp>
 #include <process/process.hpp>
@@ -36,9 +38,8 @@ using namespace process;
 using namespace zookeeper;
 
 namespace mesos {
-namespace internal {
-
-using namespace master;
+namespace master {
+namespace contender {
 
 const Duration MASTER_CONTENDER_ZK_SESSION_TIMEOUT = Seconds(10);
 
@@ -241,10 +242,11 @@ Future<Future<Nothing> > ZooKeeperMasterContenderProcess::contend()
   contender = new LeaderContender(
       group.get(),
       stringify(json),
-      master::MASTER_INFO_JSON_LABEL);
+      mesos::internal::master::MASTER_INFO_JSON_LABEL);
   candidacy = contender->contend();
   return candidacy.get();
 }
 
-} // namespace internal {
+} // namespace contender  {
+} // namespace master {
 } // namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/master/detector.cpp
----------------------------------------------------------------------
diff --git a/src/master/detector.cpp b/src/master/detector.cpp
index 9274435..fc3bd85 100644
--- a/src/master/detector.cpp
+++ b/src/master/detector.cpp
@@ -17,6 +17,8 @@
 #include <set>
 #include <string>
 
+#include <mesos/master/detector.hpp>
+
 #include <process/defer.hpp>
 #include <process/dispatch.hpp>
 #include <process/future.hpp>
@@ -49,7 +51,8 @@ using std::set;
 using std::string;
 
 namespace mesos {
-namespace internal {
+namespace master {
+namespace detector {
 
 const Duration MASTER_DETECTOR_ZK_SESSION_TIMEOUT = Seconds(10);
 
@@ -250,7 +253,8 @@ Try<MasterDetector*> MasterDetector::create(const Option<string>& _mechanism)
     return Error("Failed to parse '" + mechanism + "'");
   }
 
-  return new StandaloneMasterDetector(protobuf::createMasterInfo(pid));
+  return new StandaloneMasterDetector(
+      internal::protobuf::createMasterInfo(pid));
 }
 
 
@@ -273,8 +277,8 @@ StandaloneMasterDetector::StandaloneMasterDetector(const MasterInfo& leader)
 
 StandaloneMasterDetector::StandaloneMasterDetector(const UPID& leader)
 {
-  process =
-    new StandaloneMasterDetectorProcess(protobuf::createMasterInfo(leader));
+  process = new StandaloneMasterDetectorProcess(
+      internal::protobuf::createMasterInfo(leader));
 
   spawn(process);
 }
@@ -298,7 +302,7 @@ void StandaloneMasterDetector::appoint(const UPID& leader)
 {
   dispatch(process,
            &StandaloneMasterDetectorProcess::appoint,
-           protobuf::createMasterInfo(leader));
+           internal::protobuf::createMasterInfo(leader));
 }
 
 
@@ -431,8 +435,9 @@ void ZooKeeperMasterDetectorProcess::fetched(
     // with the old format.
     UPID pid = UPID(data.get().get());
     LOG(WARNING) << "Leading master " << pid << " has data in old format";
-    leader = protobuf::createMasterInfo(pid);
-  } else if (label.isSome() && label.get() == master::MASTER_INFO_LABEL) {
+    leader = mesos::internal::protobuf::createMasterInfo(pid);
+  } else if (label.isSome() &&
+             label.get() == internal::master::MASTER_INFO_LABEL) {
     MasterInfo info;
     if (!info.ParseFromString(data.get().get())) {
       leader = None();
@@ -444,7 +449,8 @@ void ZooKeeperMasterDetectorProcess::fetched(
                  << "ZooKeeper (" << label.get() << "): this will be deprecated"
                  << " as of Mesos 0.24 (see MESOS-2340)";
     leader = info;
-  } else if (label.isSome() && label.get() == master::MASTER_INFO_JSON_LABEL) {
+  } else if (label.isSome() &&
+             label.get() == internal::master::MASTER_INFO_JSON_LABEL) {
     Try<JSON::Object> object = JSON::parse<JSON::Object>(data.get().get());
 
     if (object.isError()) {
@@ -456,7 +462,7 @@ void ZooKeeperMasterDetectorProcess::fetched(
     }
 
     Try<mesos::MasterInfo> info =
-        ::protobuf::parse<mesos::MasterInfo>(object.get());
+      ::protobuf::parse<mesos::MasterInfo>(object.get());
 
     if (info.isError()) {
       leader = None();
@@ -511,5 +517,6 @@ Future<Option<MasterInfo> > ZooKeeperMasterDetector::detect(
   return dispatch(process, &ZooKeeperMasterDetectorProcess::detect, previous);
 }
 
-} // namespace internal {
+} // namespace detector {
+} // namespace master {
 } // namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/master/main.cpp
----------------------------------------------------------------------
diff --git a/src/master/main.cpp b/src/master/main.cpp
index 181bbcb..1e01800 100644
--- a/src/master/main.cpp
+++ b/src/master/main.cpp
@@ -27,6 +27,8 @@
 #include <mesos/authorizer/authorizer.hpp>
 
 #include <mesos/master/allocator.hpp>
+#include <mesos/master/contender.hpp>
+#include <mesos/master/detector.hpp>
 
 #include <mesos/module/anonymous.hpp>
 #include <mesos/module/authorizer.hpp>
@@ -55,7 +57,6 @@
 #include "logging/flags.hpp"
 #include "logging/logging.hpp"
 
-#include "master/contender.hpp"
 #include "master/detector.hpp"
 #include "master/master.hpp"
 #include "master/registrar.hpp"
@@ -86,6 +87,11 @@ using mesos::Parameters;
 
 using mesos::master::allocator::Allocator;
 
+using mesos::master::contender::MasterContender;
+
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::modules::Anonymous;
 using mesos::modules::ModuleManager;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 2cfa507..36ebaf7 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -34,6 +34,8 @@
 #include <mesos/authorizer/authorizer.hpp>
 
 #include <mesos/master/allocator.hpp>
+#include <mesos/master/contender.hpp>
+#include <mesos/master/detector.hpp>
 
 #include <mesos/module/authenticator.hpp>
 #include <mesos/module/http_authenticator.hpp>
@@ -123,6 +125,10 @@ namespace authentication = process::http::authentication;
 
 using mesos::master::allocator::Allocator;
 
+using mesos::master::contender::MasterContender;
+
+using mesos::master::detector::MasterDetector;
+
 using mesos::http::authentication::BasicAuthenticatorFactory;
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index e5b16f9..6712b45 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -33,6 +33,8 @@
 #include <mesos/maintenance/maintenance.hpp>
 
 #include <mesos/master/allocator.hpp>
+#include <mesos/master/contender.hpp>
+#include <mesos/master/detector.hpp>
 
 #include <mesos/module/authenticator.hpp>
 
@@ -372,8 +374,8 @@ public:
          Registrar* registrar,
          Repairer* repairer,
          Files* files,
-         MasterContender* contender,
-         MasterDetector* detector,
+         mesos::master::contender::MasterContender* contender,
+         mesos::master::detector::MasterDetector* detector,
          const Option<Authorizer*>& authorizer,
          const Option<std::shared_ptr<process::RateLimiter>>&
            slaveRemovalLimiter,
@@ -1260,8 +1262,8 @@ private:
   Repairer* repairer;
   Files* files;
 
-  MasterContender* contender;
-  MasterDetector* detector;
+  mesos::master::contender::MasterContender* contender;
+  mesos::master::detector::MasterDetector* detector;
 
   const Option<Authorizer*> authorizer;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index d740ef6..5f6f551 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -37,6 +37,8 @@
 
 #include <mesos/authentication/authenticatee.hpp>
 
+#include <mesos/master/detector.hpp>
+
 #include <mesos/module/authenticatee.hpp>
 
 #include <mesos/scheduler/scheduler.hpp>
@@ -80,8 +82,6 @@
 #include "logging/flags.hpp"
 #include "logging/logging.hpp"
 
-#include "master/detector.hpp"
-
 #include "messages/messages.hpp"
 
 #include "module/manager.hpp"
@@ -96,6 +96,8 @@ using namespace mesos::internal;
 using namespace mesos::internal::master;
 using namespace mesos::scheduler;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Clock;
 using process::DispatchEvent;
 using process::Future;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/scheduler/scheduler.cpp
----------------------------------------------------------------------
diff --git a/src/scheduler/scheduler.cpp b/src/scheduler/scheduler.cpp
index 5263a9c..f9d54f9 100644
--- a/src/scheduler/scheduler.cpp
+++ b/src/scheduler/scheduler.cpp
@@ -32,6 +32,8 @@
 #include <mesos/v1/mesos.hpp>
 #include <mesos/v1/scheduler.hpp>
 
+#include <mesos/master/detector.hpp>
+
 #include <process/async.hpp>
 #include <process/defer.hpp>
 #include <process/delay.hpp>
@@ -69,7 +71,6 @@
 #include "logging/flags.hpp"
 #include "logging/logging.hpp"
 
-#include "master/detector.hpp"
 #include "master/validation.hpp"
 
 #include "messages/messages.hpp"
@@ -88,6 +89,8 @@ using std::vector;
 
 using mesos::internal::recordio::Reader;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Owned;
 using process::wait; // Necessary on some OS's to disambiguate.
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/slave/main.cpp
----------------------------------------------------------------------
diff --git a/src/slave/main.cpp b/src/slave/main.cpp
index dc3a2d2..1a9aa1b 100644
--- a/src/slave/main.cpp
+++ b/src/slave/main.cpp
@@ -19,6 +19,8 @@
 #include <vector>
 #include <utility>
 
+#include <mesos/master/detector.hpp>
+
 #include <mesos/mesos.hpp>
 
 #include <mesos/module/anonymous.hpp>
@@ -64,6 +66,8 @@ using namespace mesos::internal::slave;
 using mesos::modules::Anonymous;
 using mesos::modules::ModuleManager;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::QoSController;
 using mesos::slave::ResourceEstimator;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/slave/slave.cpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.cpp b/src/slave/slave.cpp
index cd4264e..f090c85 100644
--- a/src/slave/slave.cpp
+++ b/src/slave/slave.cpp
@@ -94,6 +94,8 @@
 
 using mesos::executor::Call;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::QoSController;
 using mesos::slave::QoSCorrection;
 using mesos::slave::ResourceEstimator;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/slave/slave.hpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.hpp b/src/slave/slave.hpp
index 5b6076a..76f3aff 100644
--- a/src/slave/slave.hpp
+++ b/src/slave/slave.hpp
@@ -32,6 +32,8 @@
 
 #include <mesos/executor/executor.hpp>
 
+#include <mesos/master/detector.hpp>
+
 #include <mesos/module/authenticatee.hpp>
 
 #include <mesos/slave/qos_controller.hpp>
@@ -64,8 +66,6 @@
 
 #include "internal/evolve.hpp"
 
-#include "master/detector.hpp"
-
 #include "messages/messages.hpp"
 
 #include "slave/constants.hpp"
@@ -85,8 +85,6 @@
 namespace mesos {
 namespace internal {
 
-class MasterDetector; // Forward declaration.
-
 namespace slave {
 
 using namespace process;
@@ -102,7 +100,7 @@ class Slave : public ProtobufProcess<Slave>
 public:
   Slave(const std::string& id,
         const Flags& flags,
-        MasterDetector* detector,
+        mesos::master::detector::MasterDetector* detector,
         Containerizer* containerizer,
         Files* files,
         GarbageCollector* gc,
@@ -523,7 +521,7 @@ private:
 
   boost::circular_buffer<process::Owned<Framework>> completedFrameworks;
 
-  MasterDetector* detector;
+  mesos::master::detector::MasterDetector* detector;
 
   Containerizer* containerizer;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/authentication_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/authentication_tests.cpp b/src/tests/authentication_tests.cpp
index 8143cd7..7c956c6 100644
--- a/src/tests/authentication_tests.cpp
+++ b/src/tests/authentication_tests.cpp
@@ -36,6 +36,9 @@ using namespace process;
 using mesos::internal::master::Master;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using testing::_;
 using testing::Eq;
 using testing::Return;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/cluster.cpp
----------------------------------------------------------------------
diff --git a/src/tests/cluster.cpp b/src/tests/cluster.cpp
index eefc2fa..4a27e08 100644
--- a/src/tests/cluster.cpp
+++ b/src/tests/cluster.cpp
@@ -57,8 +57,6 @@
 #include "log/log.hpp"
 
 #include "master/constants.hpp"
-#include "master/contender.hpp"
-#include "master/detector.hpp"
 #include "master/flags.hpp"
 #include "master/master.hpp"
 #include "master/registrar.hpp"
@@ -83,6 +81,12 @@
 
 #include "tests/cluster.hpp"
 
+using mesos::master::contender::StandaloneMasterContender;
+using mesos::master::contender::ZooKeeperMasterContender;
+
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+using mesos::master::detector::ZooKeeperMasterDetector;
 
 namespace mesos {
 namespace internal {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/cluster.hpp
----------------------------------------------------------------------
diff --git a/src/tests/cluster.hpp b/src/tests/cluster.hpp
index 2598140..39ca15e 100644
--- a/src/tests/cluster.hpp
+++ b/src/tests/cluster.hpp
@@ -25,6 +25,8 @@
 #include <mesos/authorizer/authorizer.hpp>
 
 #include <mesos/master/allocator.hpp>
+#include <mesos/master/contender.hpp>
+#include <mesos/master/detector.hpp>
 
 #include <mesos/slave/resource_estimator.hpp>
 
@@ -42,8 +44,6 @@
 #include "log/log.hpp"
 
 #include "master/constants.hpp"
-#include "master/contender.hpp"
-#include "master/detector.hpp"
 #include "master/flags.hpp"
 #include "master/master.hpp"
 #include "master/registrar.hpp"
@@ -91,7 +91,7 @@ public:
   ~Master();
 
   // Returns a new master detector for this instance of master.
-  process::Owned<MasterDetector> createDetector();
+  process::Owned<mesos::master::detector::MasterDetector> createDetector();
 
   // Returns the `MasterInfo` associated with the underlying master process.
   MasterInfo getMasterInfo();
@@ -112,8 +112,8 @@ private:
   // Dependencies that are created by the factory method.
   process::Owned<mesos::master::allocator::Allocator> allocator;
   process::Owned<Authorizer> authorizer;
-  process::Owned<MasterContender> contender;
-  process::Owned<MasterDetector> detector;
+  process::Owned<mesos::master::contender::MasterContender> contender;
+  process::Owned<mesos::master::detector::MasterDetector> detector;
   process::Owned<log::Log> log;
   process::Owned<state::Storage> storage;
   process::Owned<state::protobuf::State> state;
@@ -139,7 +139,7 @@ public:
   //   * Terminating the slave process.
   //   * On Linux, we will simulate an OS process exiting.
   static Try<process::Owned<Slave>> start(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       const slave::Flags& flags = slave::Flags(),
       const Option<std::string>& id = None(),
       const Option<slave::Containerizer*>& containerizer = None(),
@@ -185,7 +185,7 @@ private:
   bool cleanUpContainersInDestructor = true;
 
   // Master detector that is not managed by this object.
-  MasterDetector* detector;
+  mesos::master::detector::MasterDetector* detector;
 
   // Containerizer that is either owned outside of this `Slave` object
   // or by `ownedContainerizer`.  We keep a copy of this pointer

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/command_executor_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/command_executor_tests.cpp b/src/tests/command_executor_tests.cpp
index 970cdc3..843233a 100644
--- a/src/tests/command_executor_tests.cpp
+++ b/src/tests/command_executor_tests.cpp
@@ -39,6 +39,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Future;
 using process::Owned;
 using process::PID;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/container_logger_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/container_logger_tests.cpp b/src/tests/container_logger_tests.cpp
index eff19c8..efadcea 100644
--- a/src/tests/container_logger_tests.cpp
+++ b/src/tests/container_logger_tests.cpp
@@ -73,6 +73,8 @@ using mesos::internal::slave::state::FrameworkState;
 using mesos::internal::slave::state::RunState;
 using mesos::internal::slave::state::SlaveState;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerLogger;
 using mesos::slave::Isolator;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/docker_containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_containerizer_tests.cpp b/src/tests/containerizer/docker_containerizer_tests.cpp
index a2ac254..524e8fa 100644
--- a/src/tests/containerizer/docker_containerizer_tests.cpp
+++ b/src/tests/containerizer/docker_containerizer_tests.cpp
@@ -56,6 +56,8 @@ using mesos::internal::slave::DockerContainerizerProcess;
 using mesos::internal::slave::Fetcher;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerLogger;
 
 using std::list;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/external_containerizer_test.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/external_containerizer_test.cpp b/src/tests/containerizer/external_containerizer_test.cpp
index 5e21163..2547c86 100644
--- a/src/tests/containerizer/external_containerizer_test.cpp
+++ b/src/tests/containerizer/external_containerizer_test.cpp
@@ -48,6 +48,8 @@ using mesos::internal::master::Master;
 using mesos::internal::slave::Containerizer;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using std::string;
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/filesystem_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/filesystem_isolator_tests.cpp b/src/tests/containerizer/filesystem_isolator_tests.cpp
index b3bd5a0..51e60c2 100644
--- a/src/tests/containerizer/filesystem_isolator_tests.cpp
+++ b/src/tests/containerizer/filesystem_isolator_tests.cpp
@@ -79,6 +79,8 @@ using mesos::internal::slave::ProvisionerProcess;
 using mesos::internal::slave::Slave;
 using mesos::internal::slave::Store;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerLogger;
 using mesos::slave::Isolator;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/isolator_tests.cpp b/src/tests/containerizer/isolator_tests.cpp
index 7e16846..843b896 100644
--- a/src/tests/containerizer/isolator_tests.cpp
+++ b/src/tests/containerizer/isolator_tests.cpp
@@ -99,6 +99,8 @@ using mesos::internal::slave::PosixCpuIsolatorProcess;
 using mesos::internal::slave::PosixMemIsolatorProcess;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerConfig;
 using mesos::slave::ContainerLaunchInfo;
 using mesos::slave::Isolator;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/memory_pressure_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/memory_pressure_tests.cpp b/src/tests/containerizer/memory_pressure_tests.cpp
index be6c3a1..c90dcb9 100644
--- a/src/tests/containerizer/memory_pressure_tests.cpp
+++ b/src/tests/containerizer/memory_pressure_tests.cpp
@@ -46,6 +46,8 @@ using mesos::internal::slave::MesosContainerizer;
 using mesos::internal::slave::MesosContainerizerProcess;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using std::vector;
 
 using testing::_;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/port_mapping_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/port_mapping_tests.cpp b/src/tests/containerizer/port_mapping_tests.cpp
index ce985f4..21ad1e1 100644
--- a/src/tests/containerizer/port_mapping_tests.cpp
+++ b/src/tests/containerizer/port_mapping_tests.cpp
@@ -78,6 +78,8 @@ using namespace routing::queueing;
 
 using mesos::internal::master::Master;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerConfig;
 using mesos::slave::ContainerLaunchInfo;
 using mesos::slave::Isolator;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index 74bfce4..69505c9 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -55,6 +55,8 @@ using process::Promise;
 
 using master::Master;
 
+using mesos::master::detector::MasterDetector;
+
 using slave::ImageInfo;
 using slave::Slave;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/containerizer/runtime_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/runtime_isolator_tests.cpp b/src/tests/containerizer/runtime_isolator_tests.cpp
index 9f3b0b0..a11a3ff 100644
--- a/src/tests/containerizer/runtime_isolator_tests.cpp
+++ b/src/tests/containerizer/runtime_isolator_tests.cpp
@@ -40,6 +40,8 @@ using process::PID;
 
 using master::Master;
 
+using mesos::master::detector::MasterDetector;
+
 using slave::Slave;
 
 namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/credentials_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/credentials_tests.cpp b/src/tests/credentials_tests.cpp
index b61ba2e..1ceb31b 100644
--- a/src/tests/credentials_tests.cpp
+++ b/src/tests/credentials_tests.cpp
@@ -34,8 +34,11 @@ using std::string;
 using std::vector;
 
 using mesos::internal::master::Master;
+
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::PID;
 
 using testing::_;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/disk_quota_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/disk_quota_tests.cpp b/src/tests/disk_quota_tests.cpp
index 7f5e32f..1564f70 100644
--- a/src/tests/disk_quota_tests.cpp
+++ b/src/tests/disk_quota_tests.cpp
@@ -61,6 +61,8 @@ using mesos::internal::slave::Fetcher;
 using mesos::internal::slave::MesosContainerizer;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 namespace mesos {
 namespace internal {
 namespace tests {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/exception_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/exception_tests.cpp b/src/tests/exception_tests.cpp
index a50ccf1..a9b1c23 100644
--- a/src/tests/exception_tests.cpp
+++ b/src/tests/exception_tests.cpp
@@ -39,6 +39,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Future;
 using process::Owned;
 using process::PID;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/executor_http_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/executor_http_api_tests.cpp b/src/tests/executor_http_api_tests.cpp
index ff7b672..fd322ee 100644
--- a/src/tests/executor_http_api_tests.cpp
+++ b/src/tests/executor_http_api_tests.cpp
@@ -43,6 +43,8 @@ using mesos::internal::recordio::Reader;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::v1::executor::Call;
 using mesos::v1::executor::Event;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/fault_tolerance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fault_tolerance_tests.cpp b/src/tests/fault_tolerance_tests.cpp
index 6723887..e076c91 100644
--- a/src/tests/fault_tolerance_tests.cpp
+++ b/src/tests/fault_tolerance_tests.cpp
@@ -61,6 +61,9 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Message;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/fetcher_cache_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fetcher_cache_tests.cpp b/src/tests/fetcher_cache_tests.cpp
index 798c0cf..9ffcd23 100644
--- a/src/tests/fetcher_cache_tests.cpp
+++ b/src/tests/fetcher_cache_tests.cpp
@@ -69,6 +69,8 @@ using mesos::internal::slave::MesosContainerizerProcess;
 using mesos::internal::slave::Fetcher;
 using mesos::internal::slave::FetcherProcess;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Future;
 using process::HttpEvent;
 using process::Latch;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/gc_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/gc_tests.cpp b/src/tests/gc_tests.cpp
index 68a789c..fc22b23 100644
--- a/src/tests/gc_tests.cpp
+++ b/src/tests/gc_tests.cpp
@@ -61,6 +61,8 @@ using mesos::internal::slave::GarbageCollector;
 using mesos::internal::slave::GarbageCollectorProcess;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/health_check_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/health_check_tests.cpp b/src/tests/health_check_tests.cpp
index 35344d7..1c4a554 100644
--- a/src/tests/health_check_tests.cpp
+++ b/src/tests/health_check_tests.cpp
@@ -45,6 +45,8 @@ using mesos::internal::slave::MesosContainerizer;
 using mesos::internal::slave::MesosContainerizerProcess;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerLogger;
 
 using process::Clock;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/hook_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hook_tests.cpp b/src/tests/hook_tests.cpp
index 595991d..0bbb7ac 100644
--- a/src/tests/hook_tests.cpp
+++ b/src/tests/hook_tests.cpp
@@ -61,6 +61,8 @@ using mesos::internal::slave::Fetcher;
 using mesos::internal::slave::MesosContainerizer;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerLogger;
 
 using process::Clock;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/http_fault_tolerance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/http_fault_tolerance_tests.cpp b/src/tests/http_fault_tolerance_tests.cpp
index c06e07d..baa0739 100644
--- a/src/tests/http_fault_tolerance_tests.cpp
+++ b/src/tests/http_fault_tolerance_tests.cpp
@@ -53,6 +53,8 @@ using mesos::internal::master::Master;
 using mesos::internal::slave::Containerizer;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::v1::scheduler::Call;
 using mesos::v1::scheduler::Event;
 using mesos::v1::scheduler::Mesos;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_allocator_tests.cpp b/src/tests/master_allocator_tests.cpp
index 9d74b9e..3904456 100644
--- a/src/tests/master_allocator_tests.cpp
+++ b/src/tests/master_allocator_tests.cpp
@@ -58,6 +58,9 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_authorization_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_authorization_tests.cpp b/src/tests/master_authorization_tests.cpp
index 8b9b899..a9175f9 100644
--- a/src/tests/master_authorization_tests.cpp
+++ b/src/tests/master_authorization_tests.cpp
@@ -49,6 +49,9 @@ using mesos::internal::master::allocator::MesosAllocatorProcess;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_contender_detector_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_contender_detector_tests.cpp b/src/tests/master_contender_detector_tests.cpp
index 616a2c7..88e8cc7 100644
--- a/src/tests/master_contender_detector_tests.cpp
+++ b/src/tests/master_contender_detector_tests.cpp
@@ -57,6 +57,16 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::contender::MASTER_CONTENDER_ZK_SESSION_TIMEOUT;
+using mesos::master::contender::MasterContender;
+using mesos::master::contender::StandaloneMasterContender;
+using mesos::master::contender::ZooKeeperMasterContender;
+
+using mesos::master::detector::MASTER_DETECTOR_ZK_SESSION_TIMEOUT;
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+using mesos::master::detector::ZooKeeperMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_maintenance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_maintenance_tests.cpp b/src/tests/master_maintenance_tests.cpp
index b42a81f..31d6c70 100644
--- a/src/tests/master_maintenance_tests.cpp
+++ b/src/tests/master_maintenance_tests.cpp
@@ -64,6 +64,8 @@ using mesos::internal::master::allocator::MesosAllocatorProcess;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::v1::scheduler::Call;
 using mesos::v1::scheduler::Event;
 using mesos::v1::scheduler::Mesos;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_quota_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_quota_tests.cpp b/src/tests/master_quota_tests.cpp
index c39e3ea..e4a65bf 100644
--- a/src/tests/master_quota_tests.cpp
+++ b/src/tests/master_quota_tests.cpp
@@ -48,6 +48,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::quota::QuotaRequest;
 using mesos::quota::QuotaStatus;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_slave_reconciliation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_slave_reconciliation_tests.cpp b/src/tests/master_slave_reconciliation_tests.cpp
index 988f1d4..f459e31 100644
--- a/src/tests/master_slave_reconciliation_tests.cpp
+++ b/src/tests/master_slave_reconciliation_tests.cpp
@@ -47,6 +47,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Message;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index bb599c9..06e5ed8 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -77,6 +77,11 @@ using mesos::internal::slave::Slave;
 using mesos::internal::slave::Containerizer;
 using mesos::internal::slave::MesosContainerizerProcess;
 
+using mesos::master::contender::MASTER_CONTENDER_ZK_SESSION_TIMEOUT;
+
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/master_validation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_validation_tests.cpp b/src/tests/master_validation_tests.cpp
index 010479c..8a5bf94 100644
--- a/src/tests/master_validation_tests.cpp
+++ b/src/tests/master_validation_tests.cpp
@@ -51,6 +51,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/mesos.cpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.cpp b/src/tests/mesos.cpp
index 803b925..1b7a8fd 100644
--- a/src/tests/mesos.cpp
+++ b/src/tests/mesos.cpp
@@ -21,6 +21,8 @@
 
 #include <mesos/slave/container_logger.hpp>
 
+#include <mesos/master/detector.hpp>
+
 #include <stout/check.hpp>
 #include <stout/foreach.hpp>
 #include <stout/json.hpp>
@@ -56,6 +58,8 @@ using testing::Invoke;
 
 using mesos::fetcher::FetcherInfo;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::slave::ContainerLogger;
 
 using namespace process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/mesos.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.hpp b/src/tests/mesos.hpp
index 8c8cd1a..c81330a 100644
--- a/src/tests/mesos.hpp
+++ b/src/tests/mesos.hpp
@@ -39,6 +39,8 @@
 
 #include <mesos/fetcher/fetcher.hpp>
 
+#include <mesos/master/detector.hpp>
+
 #include <mesos/slave/container_logger.hpp>
 #include <mesos/slave/qos_controller.hpp>
 #include <mesos/slave/resource_estimator.hpp>
@@ -156,52 +158,52 @@ protected:
 
   // Starts a slave with the specified detector and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, containerizer, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       slave::Containerizer* containerizer,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, containerizer, id, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       slave::Containerizer* containerizer,
       const std::string& id,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, GC, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       slave::GarbageCollector* gc,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, resource estimator, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       mesos::slave::ResourceEstimator* resourceEstimator,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, containerizer,
   // resource estimator, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       slave::Containerizer* containerizer,
       mesos::slave::ResourceEstimator* resourceEstimator,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, QoS Controller, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       mesos::slave::QoSController* qosController,
       const Option<slave::Flags>& flags = None());
 
   // Starts a slave with the specified detector, containerizer,
   // QoS Controller, and flags.
   virtual Try<process::Owned<cluster::Slave>> StartSlave(
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       slave::Containerizer* containerizer,
       mesos::slave::QoSController* qosController,
       const Option<slave::Flags>& flags = None());
@@ -855,7 +857,7 @@ class TestingMesosSchedulerDriver : public MesosSchedulerDriver
 public:
   TestingMesosSchedulerDriver(
       Scheduler* scheduler,
-      MasterDetector* _detector)
+      mesos::master::detector::MasterDetector* _detector)
     : MesosSchedulerDriver(
           scheduler,
           DEFAULT_FRAMEWORK_INFO,
@@ -865,12 +867,13 @@ public:
   {
     // No-op destructor as _detector lives on the stack.
     detector =
-      std::shared_ptr<MasterDetector>(_detector, [](MasterDetector*) {});
+      std::shared_ptr<mesos::master::detector::MasterDetector>(
+          _detector, [](mesos::master::detector::MasterDetector*) {});
   }
 
   TestingMesosSchedulerDriver(
       Scheduler* scheduler,
-      MasterDetector* _detector,
+      mesos::master::detector::MasterDetector* _detector,
       const FrameworkInfo& framework,
       bool implicitAcknowledgements = true)
     : MesosSchedulerDriver(
@@ -882,12 +885,13 @@ public:
   {
     // No-op destructor as _detector lives on the stack.
     detector =
-      std::shared_ptr<MasterDetector>(_detector, [](MasterDetector*) {});
+      std::shared_ptr<mesos::master::detector::MasterDetector>(
+          _detector, [](mesos::master::detector::MasterDetector*) {});
   }
 
   TestingMesosSchedulerDriver(
       Scheduler* scheduler,
-      MasterDetector* _detector,
+      mesos::master::detector::MasterDetector* _detector,
       const FrameworkInfo& framework,
       bool implicitAcknowledgements,
       const Credential& credential)
@@ -900,7 +904,8 @@ public:
   {
     // No-op destructor as _detector lives on the stack.
     detector =
-      std::shared_ptr<MasterDetector>(_detector, [](MasterDetector*) {});
+      std::shared_ptr<mesos::master::detector::MasterDetector>(
+          _detector, [](mesos::master::detector::MasterDetector*) {});
   }
 };
 
@@ -966,7 +971,8 @@ public:
       const std::string& master,
       ContentType contentType,
       const std::shared_ptr<MockHTTPScheduler<Mesos, Event>>& _scheduler,
-      const Option<std::shared_ptr<MasterDetector>>& detector = None())
+      const Option<std::shared_ptr<mesos::master::detector::MasterDetector>>&
+          detector = None())
     : Mesos(
           master,
           contentType,
@@ -1244,7 +1250,7 @@ class MockSlave : public slave::Slave
 public:
   MockSlave(
       const slave::Flags& flags,
-      MasterDetector* detector,
+      mesos::master::detector::MasterDetector* detector,
       slave::Containerizer* containerizer,
       const Option<mesos::slave::QoSController*>& qosController = None());
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/metrics_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/metrics_tests.cpp b/src/tests/metrics_tests.cpp
index 51b4515..eacff67 100644
--- a/src/tests/metrics_tests.cpp
+++ b/src/tests/metrics_tests.cpp
@@ -31,6 +31,8 @@
 using mesos::internal::master::Master;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Owned;
 
 namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/oversubscription_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/oversubscription_tests.cpp b/src/tests/oversubscription_tests.cpp
index 84e1104..e69ac02 100644
--- a/src/tests/oversubscription_tests.cpp
+++ b/src/tests/oversubscription_tests.cpp
@@ -56,6 +56,9 @@ using mesos::internal::master::Master;
 using mesos::internal::slave::LoadQoSController;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::slave::QoSCorrection;
 
 using std::list;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/partition_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/partition_tests.cpp b/src/tests/partition_tests.cpp
index 349adbf..76e9b3b 100644
--- a/src/tests/partition_tests.cpp
+++ b/src/tests/partition_tests.cpp
@@ -47,6 +47,9 @@ using mesos::internal::master::allocator::MesosAllocatorProcess;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Message;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/persistent_volume_endpoints_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/persistent_volume_endpoints_tests.cpp b/src/tests/persistent_volume_endpoints_tests.cpp
index da5e6eb..9b8ad34 100644
--- a/src/tests/persistent_volume_endpoints_tests.cpp
+++ b/src/tests/persistent_volume_endpoints_tests.cpp
@@ -48,6 +48,8 @@ using mesos::internal::master::DEFAULT_ALLOCATION_INTERVAL;
 using mesos::internal::master::Master;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/persistent_volume_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/persistent_volume_tests.cpp b/src/tests/persistent_volume_tests.cpp
index 4786750..4e7f07c 100644
--- a/src/tests/persistent_volume_tests.cpp
+++ b/src/tests/persistent_volume_tests.cpp
@@ -59,6 +59,9 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using std::list;
 using std::string;
 using std::vector;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/reconciliation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/reconciliation_tests.cpp b/src/tests/reconciliation_tests.cpp
index 5f2a35e..f3df7be 100644
--- a/src/tests/reconciliation_tests.cpp
+++ b/src/tests/reconciliation_tests.cpp
@@ -48,6 +48,9 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/registrar_zookeeper_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/registrar_zookeeper_tests.cpp b/src/tests/registrar_zookeeper_tests.cpp
index 45b687c..98a5e31 100644
--- a/src/tests/registrar_zookeeper_tests.cpp
+++ b/src/tests/registrar_zookeeper_tests.cpp
@@ -36,6 +36,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Future;
 using process::Owned;
 using process::PID;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/reservation_endpoints_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/reservation_endpoints_tests.cpp b/src/tests/reservation_endpoints_tests.cpp
index 95a8f3e..2e0f6c1 100644
--- a/src/tests/reservation_endpoints_tests.cpp
+++ b/src/tests/reservation_endpoints_tests.cpp
@@ -47,6 +47,8 @@ using mesos::internal::master::Master;
 using mesos::internal::protobuf::createLabel;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/reservation_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/reservation_tests.cpp b/src/tests/reservation_tests.cpp
index a9261bd..d9acfc8 100644
--- a/src/tests/reservation_tests.cpp
+++ b/src/tests/reservation_tests.cpp
@@ -53,6 +53,9 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/resource_offers_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/resource_offers_tests.cpp b/src/tests/resource_offers_tests.cpp
index 1cf292e..046adae 100644
--- a/src/tests/resource_offers_tests.cpp
+++ b/src/tests/resource_offers_tests.cpp
@@ -40,6 +40,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Future;
 using process::Owned;
 using process::PID;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/role_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/role_tests.cpp b/src/tests/role_tests.cpp
index 20ccca3..056359b 100644
--- a/src/tests/role_tests.cpp
+++ b/src/tests/role_tests.cpp
@@ -29,6 +29,8 @@
 using mesos::internal::master::Master;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using std::string;
 using std::vector;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/scheduler_driver_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/scheduler_driver_tests.cpp b/src/tests/scheduler_driver_tests.cpp
index 824aa96..2171857 100644
--- a/src/tests/scheduler_driver_tests.cpp
+++ b/src/tests/scheduler_driver_tests.cpp
@@ -50,6 +50,8 @@ using mesos::internal::master::allocator::MesosAllocatorProcess;
 
 using mesos::internal::master::Master;
 
+using mesos::master::detector::MasterDetector;
+
 using mesos::internal::slave::Containerizer;
 using mesos::internal::slave::Slave;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/scheduler_event_call_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/scheduler_event_call_tests.cpp b/src/tests/scheduler_event_call_tests.cpp
index 00e9977..02d108c 100644
--- a/src/tests/scheduler_event_call_tests.cpp
+++ b/src/tests/scheduler_event_call_tests.cpp
@@ -42,6 +42,9 @@
 using mesos::internal::master::Master;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::scheduler::Event;
 
 using process::Clock;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/scheduler_http_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/scheduler_http_api_tests.cpp b/src/tests/scheduler_http_api_tests.cpp
index b65790a..3ac7622 100644
--- a/src/tests/scheduler_http_api_tests.cpp
+++ b/src/tests/scheduler_http_api_tests.cpp
@@ -46,6 +46,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::recordio::Reader;
 
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::v1::scheduler::Call;
 using mesos::v1::scheduler::Event;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/scheduler_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/scheduler_tests.cpp b/src/tests/scheduler_tests.cpp
index 0c66f65..ecdf36c 100644
--- a/src/tests/scheduler_tests.cpp
+++ b/src/tests/scheduler_tests.cpp
@@ -55,6 +55,9 @@ using mesos::internal::master::Master;
 using mesos::internal::slave::Containerizer;
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::v1::scheduler::Call;
 using mesos::v1::scheduler::Event;
 using mesos::v1::scheduler::Mesos;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/slave_recovery_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp
index 0d59a06..08d51eb 100644
--- a/src/tests/slave_recovery_tests.cpp
+++ b/src/tests/slave_recovery_tests.cpp
@@ -73,6 +73,9 @@ using google::protobuf::RepeatedPtrField;
 
 using mesos::internal::master::Master;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using mesos::v1::executor::Call;
 
 using std::map;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/slave_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_tests.cpp b/src/tests/slave_tests.cpp
index c4d80aa..5ef981f 100644
--- a/src/tests/slave_tests.cpp
+++ b/src/tests/slave_tests.cpp
@@ -68,6 +68,9 @@ using mesos::internal::master::Master;
 
 using mesos::internal::protobuf::createLabel;
 
+using mesos::master::detector::MasterDetector;
+using mesos::master::detector::StandaloneMasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a529a9e8/src/tests/status_update_manager_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/status_update_manager_tests.cpp b/src/tests/status_update_manager_tests.cpp
index af989a9..f5313a1 100644
--- a/src/tests/status_update_manager_tests.cpp
+++ b/src/tests/status_update_manager_tests.cpp
@@ -48,6 +48,8 @@ using mesos::internal::master::Master;
 
 using mesos::internal::slave::Slave;
 
+using mesos::master::detector::MasterDetector;
+
 using process::Clock;
 using process::Future;
 using process::Owned;