[netemul_runner] Port to use libsys

DX-387 #comment

TEST=CQ

Change-Id: I038a1f821321026d7e71675be5d37da9d9fda722
diff --git a/garnet/bin/netemul_runner/BUILD.gn b/garnet/bin/netemul_runner/BUILD.gn
index fc77c5c..c4efbb3 100644
--- a/garnet/bin/netemul_runner/BUILD.gn
+++ b/garnet/bin/netemul_runner/BUILD.gn
@@ -28,8 +28,6 @@
     "//garnet/bin/netemul_runner/model",
     "//garnet/lib/cmx:cmx",
     "//garnet/lib/process",
-    "//garnet/public/lib/component/cpp",
-    "//garnet/public/lib/component/cpp/testing",
     "//garnet/public/lib/fsl",
     "//garnet/public/lib/fxl",
     "//garnet/public/lib/json",
@@ -42,6 +40,7 @@
     "//garnet/public/lib/netemul/sync:sync_service",
     "//sdk/fidl/fuchsia.sys",
     "//sdk/lib/sys/cpp",
+    "//sdk/lib/sys/cpp/testing:enclosing_environment",
     "//third_party/rapidjson",
     "//zircon/public/lib/async-cpp",
     "//zircon/public/lib/async-default",
@@ -61,7 +60,8 @@
 
   deps = [
     ":src",
-    "//garnet/public/lib/component/cpp",
+    "//garnet/public/lib/fxl",
+    "//sdk/lib/sys/cpp",
     "//third_party/rapidjson",
     "//zircon/public/lib/async-loop-cpp",
     "//zircon/public/lib/memfs-cpp",
@@ -76,7 +76,6 @@
 
   deps = [
     ":src",
-    "//garnet/public/lib/component/cpp",
     "//garnet/public/lib/fsl",
     "//garnet/public/lib/fxl/test:gtest_main",
     "//garnet/public/lib/gtest",
diff --git a/garnet/bin/netemul_runner/main.cc b/garnet/bin/netemul_runner/main.cc
index d3de3c7..4e7b5ce 100644
--- a/garnet/bin/netemul_runner/main.cc
+++ b/garnet/bin/netemul_runner/main.cc
@@ -4,10 +4,10 @@
 
 #include <fcntl.h>
 #include <lib/async-loop/cpp/loop.h>
-#include <lib/component/cpp/startup_context.h>
 #include <lib/fxl/command_line.h>
 #include <lib/fxl/log_settings_command_line.h>
 #include <lib/fxl/logging.h>
+#include <lib/sys/cpp/component_context.h>
 #include <lib/sys/cpp/termination_reason.h>
 #include <iostream>
 #include "sandbox.h"
@@ -74,7 +74,7 @@
   } else {
     FXL_LOG(INFO) << "Exposing fuchsia.netemul.sandbox.Sandbox service";
     SandboxService service(loop.dispatcher());
-    auto context = component::StartupContext::CreateFromStartupInfo();
+    auto context = sys::ComponentContext::CreateFromStartupInfo();
     context->outgoing().AddPublicService(service.GetHandler());
     loop.Run();
   }
diff --git a/garnet/bin/netemul_runner/managed_environment.cc b/garnet/bin/netemul_runner/managed_environment.cc
index 4b7c1d8..c47d92a 100644
--- a/garnet/bin/netemul_runner/managed_environment.cc
+++ b/garnet/bin/netemul_runner/managed_environment.cc
@@ -8,8 +8,8 @@
 
 namespace netemul {
 
-using component::testing::EnclosingEnvironment;
-using component::testing::EnvironmentServices;
+using sys::testing::EnclosingEnvironment;
+using sys::testing::EnvironmentServices;
 
 ManagedEnvironment::Ptr ManagedEnvironment::CreateRoot(
     const fuchsia::sys::EnvironmentPtr& parent,
@@ -21,7 +21,7 @@
 
 ManagedEnvironment::ManagedEnvironment(const SandboxEnv::Ptr& sandbox_env)
     : sandbox_env_(sandbox_env) {}
-component::testing::EnclosingEnvironment& ManagedEnvironment::environment() {
+sys::testing::EnclosingEnvironment& ManagedEnvironment::environment() {
   return *env_;
 }
 
diff --git a/garnet/bin/netemul_runner/managed_environment.h b/garnet/bin/netemul_runner/managed_environment.h
index e8f85d5..9d8cc79 100644
--- a/garnet/bin/netemul_runner/managed_environment.h
+++ b/garnet/bin/netemul_runner/managed_environment.h
@@ -6,9 +6,8 @@
 #define GARNET_BIN_NETEMUL_RUNNER_MANAGED_ENVIRONMENT_H_
 
 #include <fuchsia/netemul/environment/cpp/fidl.h>
-#include <lib/component/cpp/testing/enclosing_environment.h>
 #include <lib/fxl/macros.h>
-#include <lib/svc/cpp/services.h>
+#include <lib/sys/cpp/testing/enclosing_environment.h>
 #include <memory>
 #include "managed_launcher.h"
 #include "managed_logger.h"
@@ -31,13 +30,6 @@
 
   const SandboxEnv::Ptr& sandbox_env() const { return sandbox_env_; }
 
-  const std::shared_ptr<component::Services>& services() {
-    if (!services_) {
-      services_ = std::make_shared<component::Services>();
-    }
-    return services_;
-  }
-
   void GetLauncher(
       ::fidl::InterfaceRequest<::fuchsia::sys::Launcher> launcher) override;
 
@@ -60,7 +52,7 @@
  protected:
   friend ManagedLauncher;
 
-  component::testing::EnclosingEnvironment& environment();
+  sys::testing::EnclosingEnvironment& environment();
   ManagedLoggerCollection& loggers();
   zx::channel OpenVdevDirectory();
   zx::channel OpenVdataDirectory();
@@ -71,10 +63,9 @@
               const ManagedEnvironment* managed_parent = nullptr);
 
   SandboxEnv::Ptr sandbox_env_;
-  std::unique_ptr<component::testing::EnclosingEnvironment> env_;
+  std::unique_ptr<sys::testing::EnclosingEnvironment> env_;
   std::unique_ptr<ManagedLoggerCollection> loggers_;
   std::unique_ptr<ManagedLauncher> launcher_;
-  std::shared_ptr<component::Services> services_;
   EnvironmentRunningCallback running_callback_;
   fidl::BindingSet<FManagedEnvironment> bindings_;
   std::vector<ManagedEnvironment::Ptr> children_;
diff --git a/garnet/bin/netemul_runner/runner/BUILD.gn b/garnet/bin/netemul_runner/runner/BUILD.gn
index a9d7be0..e54ac52 100644
--- a/garnet/bin/netemul_runner/runner/BUILD.gn
+++ b/garnet/bin/netemul_runner/runner/BUILD.gn
@@ -15,11 +15,11 @@
 
   deps = [
     "//garnet/lib/cmx:cmx",
-    "//sdk/fidl/fuchsia.sys",
-    "//garnet/public/lib/component/cpp",
     "//garnet/public/lib/fsl",
     "//garnet/public/lib/fxl",
     "//garnet/public/lib/pkg_url",
+    "//sdk/fidl/fuchsia.sys",
+    "//sdk/lib/sys/cpp",
     "//third_party/rapidjson",
     "//zircon/public/lib/async-cpp",
     "//zircon/public/lib/async-default",
diff --git a/garnet/bin/netemul_runner/runner/runner.cc b/garnet/bin/netemul_runner/runner/runner.cc
index 631d0dc..5e6fcba 100644
--- a/garnet/bin/netemul_runner/runner/runner.cc
+++ b/garnet/bin/netemul_runner/runner/runner.cc
@@ -12,7 +12,6 @@
 #include "garnet/lib/cmx/cmx.h"
 
 namespace netemul {
-using component::StartupContext;
 static const char* kSandbox =
     "fuchsia-pkg://fuchsia.com/netemul_sandbox#meta/netemul_sandbox.cmx";
 static const char* kDefinitionArg = "--definition=";
@@ -24,12 +23,10 @@
   }
   dispatcher_ = dispatcher;
 
-  startup_context_ = StartupContext::CreateFromStartupInfo();
-  startup_context_->ConnectToEnvironmentService(
-      launcher_.NewRequest(dispatcher_));
-  startup_context_->ConnectToEnvironmentService(
-      loader_.NewRequest(dispatcher_));
-  startup_context_->outgoing().AddPublicService(
+  component_context_ = sys::ComponentContext::CreateFromStartupInfo();
+  component_context_->svc()->Connect(launcher_.NewRequest(dispatcher_));
+  component_context_->svc()->Connect(loader_.NewRequest(dispatcher_));
+  component_context_->outgoing().AddPublicService(
       bindings_.GetHandler(this, dispatcher_));
 }
 
diff --git a/garnet/bin/netemul_runner/runner/runner.h b/garnet/bin/netemul_runner/runner/runner.h
index 1c837cf..5418f15 100644
--- a/garnet/bin/netemul_runner/runner/runner.h
+++ b/garnet/bin/netemul_runner/runner/runner.h
@@ -5,9 +5,9 @@
 #ifndef GARNET_BIN_NETEMUL_RUNNER_RUNNER_RUNNER_H_
 #define GARNET_BIN_NETEMUL_RUNNER_RUNNER_RUNNER_H_
 
-#include <lib/component/cpp/startup_context.h>
+#include <fuchsia/sys/cpp/fidl.h>
 #include <lib/fidl/cpp/binding_set.h>
-#include "fuchsia/sys/cpp/fidl.h"
+#include <lib/sys/cpp/component_context.h>
 
 namespace netemul {
 class Runner : public fuchsia::sys::Runner {
@@ -26,7 +26,7 @@
       fidl::InterfaceRequest<fuchsia::sys::ComponentController> controller);
 
   async_dispatcher_t* dispatcher_;
-  std::unique_ptr<component::StartupContext> startup_context_;
+  std::unique_ptr<sys::ComponentContext> component_context_;
   fidl::BindingSet<FRunner> bindings_;
   fuchsia::sys::LauncherPtr launcher_;
   fuchsia::sys::LoaderPtr loader_;
diff --git a/garnet/bin/netemul_runner/sandbox.cc b/garnet/bin/netemul_runner/sandbox.cc
index 2967e2e..d72f56e 100644
--- a/garnet/bin/netemul_runner/sandbox.cc
+++ b/garnet/bin/netemul_runner/sandbox.cc
@@ -6,13 +6,12 @@
 #include <fcntl.h>
 #include <lib/async/cpp/task.h>
 #include <lib/async/default.h>
-#include <lib/component/cpp/startup_context.h>
-#include <lib/component/cpp/testing/test_util.h>
 #include <lib/fdio/watcher.h>
 #include <lib/fsl/io/fd.h>
 #include <lib/fxl/logging.h>
 #include <lib/fxl/strings/concatenate.h>
 #include <lib/pkg_url/fuchsia_pkg_url.h>
+#include <lib/sys/cpp/service_directory.h>
 #include <lib/sys/cpp/termination_reason.h>
 #include <zircon/status.h>
 #include "garnet/lib/cmx/cmx.h"
@@ -47,9 +46,9 @@
 #define ASSERT_HELPER_DISPATCHER ASSERT_DISPATCHER(helper_loop_->dispatcher())
 
 Sandbox::Sandbox(SandboxArgs args) : env_config_(std::move(args.config)) {
-  auto startup_context = component::StartupContext::CreateFromStartupInfo();
-  startup_context->ConnectToEnvironmentService(parent_env_.NewRequest());
-  startup_context->ConnectToEnvironmentService(loader_.NewRequest());
+  auto services = sys::ServiceDirectory::CreateFromNamespace();
+  services->Connect(parent_env_.NewRequest());
+  services->Connect(loader_.NewRequest());
   parent_env_.set_error_handler([](zx_status_t err) {
     FXL_LOG(ERROR) << "Lost connection to parent environment";
   });
diff --git a/garnet/bin/netemul_runner/sandbox_service.cc b/garnet/bin/netemul_runner/sandbox_service.cc
index 99a865f..08bf652 100644
--- a/garnet/bin/netemul_runner/sandbox_service.cc
+++ b/garnet/bin/netemul_runner/sandbox_service.cc
@@ -4,7 +4,7 @@
 
 #include "sandbox_service.h"
 #include <lib/async/task.h>
-#include <lib/component/cpp/startup_context.h>
+#include <lib/sys/cpp/service_directory.h>
 
 namespace netemul {
 
@@ -24,9 +24,8 @@
       parent_->BindingClosed(this);
     });
 
-    auto startup_context = component::StartupContext::CreateFromStartupInfo();
-    startup_context->ConnectToEnvironmentService(
-        parent_env_.NewRequest(loop_->dispatcher()));
+    auto services = sys::ServiceDirectory::CreateFromNamespace();
+    services->Connect(parent_env_.NewRequest(loop_->dispatcher()));
     parent_env_.set_error_handler([this](zx_status_t err) {
       FXL_LOG(ERROR) << "Lost connection to parent environment";
     });