[doc] Move and link to example from component_manifests.md
The //src/sys/examples/topology example is ideal for demonstrating
capability routing. It now lives under //examples alongside the other
component examples.
Bug: CF-627 #done
Change-Id: I3278061b5e131c6bd4f633c80af1174219f967e2
diff --git a/docs/the-book/components/component_manifests.md b/docs/the-book/components/component_manifests.md
index 99e14f6..26dff7e 100644
--- a/docs/the-book/components/component_manifests.md
+++ b/docs/the-book/components/component_manifests.md
@@ -115,7 +115,7 @@
the path by which the capability is being `offered` or `exposed` to another
component.
-#### Example
+#### Examples
For an example of how these keywords interact, consider the following component
instance tree:
@@ -139,6 +139,9 @@
- *echo_tool* uses `/svc/echo`. When `echo_tool` runs, it will find `/svc/echo`
in its namespace.
+A working example of capability routing can be found at
+[//examples/components/routing](/examples/components/routing).
+
### Facet metadata
*Facets* are metadata that is ignored by the component framework itself, but may
diff --git a/examples/BUILD.gn b/examples/BUILD.gn
index 017963f..c8ee62b 100644
--- a/examples/BUILD.gn
+++ b/examples/BUILD.gn
@@ -11,6 +11,8 @@
"hello_world",
"media",
"speech",
+ "//examples/components/basic:components_basic_example",
+ "//examples/components/routing:components_routing_example",
]
}
diff --git a/garnet/examples/components/v2/BUILD.gn b/examples/components/basic/BUILD.gn
similarity index 81%
rename from garnet/examples/components/v2/BUILD.gn
rename to examples/components/basic/BUILD.gn
index 003ef0c..a66099e 100644
--- a/garnet/examples/components/v2/BUILD.gn
+++ b/examples/components/basic/BUILD.gn
@@ -23,23 +23,13 @@
edition = "2018"
}
-deprecated_fuchsia_component("echo_args_component") {
- manifest = rebase_path("meta/echo_args.cml")
- deps = [
- ":echo_args_bin",
- ]
-
- binary = "echo_args"
-}
-
-package("hello_world_hippo") {
+package("components_basic_example") {
deps = [
":hello_world_bin",
":ls_root_pkg_bin",
+ ":echo_args_bin",
]
- components = [ ":echo_args_component" ]
-
binaries = [
{
name = "hello_world"
@@ -47,6 +37,9 @@
{
name = "ls_root_pkg"
},
+ {
+ name = "echo_args"
+ },
]
meta = [
@@ -58,5 +51,9 @@
path = rebase_path("meta/ls_root_pkg.cml")
dest = "ls_root_pkg.cm"
},
+ {
+ path = rebase_path("meta/echo_args.cml")
+ dest = "echo_args.cm"
+ },
]
}
diff --git a/garnet/examples/components/v2/meta/echo_args.cml b/examples/components/basic/meta/echo_args.cml
similarity index 100%
rename from garnet/examples/components/v2/meta/echo_args.cml
rename to examples/components/basic/meta/echo_args.cml
diff --git a/garnet/examples/components/v2/meta/hello_world.cml b/examples/components/basic/meta/hello_world.cml
similarity index 100%
rename from garnet/examples/components/v2/meta/hello_world.cml
rename to examples/components/basic/meta/hello_world.cml
diff --git a/garnet/examples/components/v2/meta/ls_root_pkg.cml b/examples/components/basic/meta/ls_root_pkg.cml
similarity index 100%
rename from garnet/examples/components/v2/meta/ls_root_pkg.cml
rename to examples/components/basic/meta/ls_root_pkg.cml
diff --git a/garnet/examples/components/v2/src/echo_args.rs b/examples/components/basic/src/echo_args.rs
similarity index 100%
rename from garnet/examples/components/v2/src/echo_args.rs
rename to examples/components/basic/src/echo_args.rs
diff --git a/garnet/examples/components/v2/src/hello_world.rs b/examples/components/basic/src/hello_world.rs
similarity index 100%
rename from garnet/examples/components/v2/src/hello_world.rs
rename to examples/components/basic/src/hello_world.rs
diff --git a/garnet/examples/components/v2/src/ls_root_pkg.rs b/examples/components/basic/src/ls_root_pkg.rs
similarity index 100%
rename from garnet/examples/components/v2/src/ls_root_pkg.rs
rename to examples/components/basic/src/ls_root_pkg.rs
diff --git a/examples/components/routing/BUILD.gn b/examples/components/routing/BUILD.gn
new file mode 100644
index 0000000..2cee1fb
--- /dev/null
+++ b/examples/components/routing/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright 2019 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/package.gni")
+
+package("components_routing_example") {
+ deps = [
+ "//examples/components/routing/echo_server",
+ "//examples/components/routing/echo_client",
+ ]
+ binaries = [
+ {
+ name = "echo_server"
+ },
+ {
+ name = "echo_client"
+ },
+ ]
+ meta = [
+ {
+ path = rebase_path("meta/echo_server.cml")
+ dest = "echo_server.cm"
+ },
+ {
+ path = rebase_path("meta/echo_client.cml")
+ dest = "echo_client.cm"
+ },
+ {
+ path = rebase_path("meta/echo_realm.cml")
+ dest = "echo_realm.cm"
+ },
+ ]
+}
diff --git a/src/sys/examples/topology/echo_client/BUILD.gn b/examples/components/routing/echo_client/BUILD.gn
similarity index 89%
rename from src/sys/examples/topology/echo_client/BUILD.gn
rename to examples/components/routing/echo_client/BUILD.gn
index aa05ea3..d3cbb95 100644
--- a/src/sys/examples/topology/echo_client/BUILD.gn
+++ b/examples/components/routing/echo_client/BUILD.gn
@@ -9,7 +9,7 @@
deps = [
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-component",
- "//src/sys/examples/topology/fidl:echo-rustc",
+ "//examples/components/routing/fidl:echo-rustc",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
]
diff --git a/src/sys/examples/topology/echo_client/src/main.rs b/examples/components/routing/echo_client/src/main.rs
similarity index 89%
rename from src/sys/examples/topology/echo_client/src/main.rs
rename to examples/components/routing/echo_client/src/main.rs
index e10db92..35d12b1 100644
--- a/src/sys/examples/topology/echo_client/src/main.rs
+++ b/examples/components/routing/echo_client/src/main.rs
@@ -6,7 +6,7 @@
use {
failure::{format_err, Error, ResultExt},
- fidl_fidl_examples_topology_echo as fecho, fuchsia_async as fasync,
+ fidl_fidl_examples_routing_echo as fecho, fuchsia_async as fasync,
fuchsia_component::client::connect_to_service,
};
diff --git a/src/sys/examples/topology/echo_server/BUILD.gn b/examples/components/routing/echo_server/BUILD.gn
similarity index 89%
rename from src/sys/examples/topology/echo_server/BUILD.gn
rename to examples/components/routing/echo_server/BUILD.gn
index 1e11cf4..a258c87 100644
--- a/src/sys/examples/topology/echo_server/BUILD.gn
+++ b/examples/components/routing/echo_server/BUILD.gn
@@ -10,7 +10,7 @@
"//garnet/public/lib/fidl/rust/fidl",
"//garnet/public/rust/fuchsia-async",
"//garnet/public/rust/fuchsia-component",
- "//src/sys/examples/topology/fidl:echo-rustc",
+ "//examples/components/routing/fidl:echo-rustc",
"//third_party/rust_crates:failure",
"//third_party/rust_crates:futures-preview",
]
diff --git a/src/sys/examples/topology/echo_server/src/main.rs b/examples/components/routing/echo_server/src/main.rs
similarity index 93%
rename from src/sys/examples/topology/echo_server/src/main.rs
rename to examples/components/routing/echo_server/src/main.rs
index 1e86443..7dc16c0 100644
--- a/src/sys/examples/topology/echo_server/src/main.rs
+++ b/examples/components/routing/echo_server/src/main.rs
@@ -6,7 +6,7 @@
use {
failure::{Error, ResultExt},
- fidl_fidl_examples_topology_echo as fecho, fuchsia_async as fasync,
+ fidl_fidl_examples_routing_echo as fecho, fuchsia_async as fasync,
fuchsia_component::server::ServiceFs,
futures::{StreamExt, TryStreamExt},
};
diff --git a/src/sys/examples/topology/fidl/BUILD.gn b/examples/components/routing/fidl/BUILD.gn
similarity index 86%
rename from src/sys/examples/topology/fidl/BUILD.gn
rename to examples/components/routing/fidl/BUILD.gn
index 909ca95..0d267a6 100644
--- a/src/sys/examples/topology/fidl/BUILD.gn
+++ b/examples/components/routing/fidl/BUILD.gn
@@ -5,7 +5,7 @@
import("//build/fidl/fidl.gni")
fidl("echo") {
- name = "fidl.examples.topology.echo"
+ name = "fidl.examples.routing.echo"
sources = [
"echo.fidl",
diff --git a/src/sys/examples/topology/fidl/echo.fidl b/examples/components/routing/fidl/echo.fidl
similarity index 87%
rename from src/sys/examples/topology/fidl/echo.fidl
rename to examples/components/routing/fidl/echo.fidl
index 3dcd2de..f1b841f 100644
--- a/src/sys/examples/topology/fidl/echo.fidl
+++ b/examples/components/routing/fidl/echo.fidl
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-library fidl.examples.topology.echo;
+library fidl.examples.routing.echo;
[Discoverable]
protocol Echo {
diff --git a/src/sys/examples/topology/meta/echo_client.cml b/examples/components/routing/meta/echo_client.cml
similarity index 76%
rename from src/sys/examples/topology/meta/echo_client.cml
rename to examples/components/routing/meta/echo_client.cml
index 4329f53..fa9f88c 100644
--- a/src/sys/examples/topology/meta/echo_client.cml
+++ b/examples/components/routing/meta/echo_client.cml
@@ -6,7 +6,7 @@
},
"use": [
{
- "service": "/svc/fidl.examples.topology.echo.Echo",
+ "service": "/svc/fidl.examples.routing.echo.Echo",
},
],
}
diff --git a/src/sys/examples/topology/meta/echo_realm.cml b/examples/components/routing/meta/echo_realm.cml
similarity index 72%
rename from src/sys/examples/topology/meta/echo_realm.cml
rename to examples/components/routing/meta/echo_realm.cml
index 4cf49ea..a07d9ed 100644
--- a/src/sys/examples/topology/meta/echo_realm.cml
+++ b/examples/components/routing/meta/echo_realm.cml
@@ -3,7 +3,7 @@
// Route Echo service from server to client.
"offer": [
{
- "service": "/svc/fidl.examples.topology.echo.Echo",
+ "service": "/svc/fidl.examples.routing.echo.Echo",
"from": "#echo_server",
"to": [
{
@@ -17,11 +17,11 @@
"children": [
{
"name": "echo_server",
- "url": "fuchsia-pkg://fuchsia.com/topology_example#meta/echo_server.cm",
+ "url": "fuchsia-pkg://fuchsia.com/routing_example#meta/echo_server.cm",
},
{
"name": "echo_client",
- "url": "fuchsia-pkg://fuchsia.com/topology_example#meta/echo_client.cm",
+ "url": "fuchsia-pkg://fuchsia.com/routing_example#meta/echo_client.cm",
"startup": "eager",
},
],
diff --git a/src/sys/examples/topology/meta/echo_server.cml b/examples/components/routing/meta/echo_server.cml
similarity index 79%
rename from src/sys/examples/topology/meta/echo_server.cml
rename to examples/components/routing/meta/echo_server.cml
index 759a553..f92df21 100644
--- a/src/sys/examples/topology/meta/echo_server.cml
+++ b/examples/components/routing/meta/echo_server.cml
@@ -6,7 +6,7 @@
},
"expose": [
{
- "service": "/svc/fidl.examples.topology.echo.Echo",
+ "service": "/svc/fidl.examples.routing.echo.Echo",
"from": "self",
},
],
diff --git a/garnet/packages/examples/BUILD.gn b/garnet/packages/examples/BUILD.gn
index 6ebaf39..dcfb3de 100644
--- a/garnet/packages/examples/BUILD.gn
+++ b/garnet/packages/examples/BUILD.gn
@@ -11,8 +11,6 @@
"//garnet/bin/glob",
"//garnet/examples/components:component_hello_world",
"//garnet/examples/components:component_hello_world_tests",
- "//garnet/examples/components/v2:hello_world_hippo",
- "//src/sys/examples/topology:topology_example",
]
}
diff --git a/src/sys/component_manager/BUILD.gn b/src/sys/component_manager/BUILD.gn
index 1fb09c4..f6938d1 100644
--- a/src/sys/component_manager/BUILD.gn
+++ b/src/sys/component_manager/BUILD.gn
@@ -91,7 +91,7 @@
test_package("component_manager_tests") {
deps = [
":lib",
- "//garnet/examples/components/v2:hello_world_bin",
+ "//examples/components/basic:hello_world_bin",
]
components =
diff --git a/src/sys/component_manager/tests/BUILD.gn b/src/sys/component_manager/tests/BUILD.gn
index 927d0a9..3bcb11b 100644
--- a/src/sys/component_manager/tests/BUILD.gn
+++ b/src/sys/component_manager/tests/BUILD.gn
@@ -43,35 +43,47 @@
]
}
-deprecated_fuchsia_component("echo_realm") {
- manifest = rebase_path("meta/echo_realm.cml")
-}
-
test_package("routing_integration_test") {
deps = [
":mock_pkg_resolver_bin",
":routing_integration_test_bin",
+ "//examples/components/routing/echo_server",
+ "//examples/components/routing/echo_client",
]
components = [
- ":echo_realm",
"//src/sys/component_manager:component_manager_as_v1_component",
- "//src/sys/examples/topology:echo_server",
- "//src/sys/examples/topology:echo_client",
]
meta = [
{
- path =
- rebase_path("meta/mock_pkg_resolver_for_routing_integration_test.cmx")
+ path = rebase_path("meta/mock_pkg_resolver_for_routing_integration_test.cmx")
dest = "mock_pkg_resolver.cmx"
},
+ {
+ path = rebase_path("//examples/components/routing/meta/echo_server.cml")
+ dest = "echo_server.cm"
+ },
+ {
+ path = rebase_path("//examples/components/routing/meta/echo_client.cml")
+ dest = "echo_client.cm"
+ },
+ {
+ path = rebase_path("meta/echo_realm.cml")
+ dest = "echo_realm.cm"
+ },
]
binaries = [
{
name = "mock_pkg_resolver"
},
+ {
+ name = "echo_server"
+ },
+ {
+ name = "echo_client"
+ },
]
tests = [
@@ -102,11 +114,10 @@
deps = [
":elf_runner_test_bin",
":mock_pkg_resolver_bin",
- "//garnet/examples/components/v2:echo_args_bin",
+ "//examples/components/basic:echo_args_bin",
]
components = [
- "//garnet/examples/components/v2:echo_args_component",
"//src/sys/component_manager:component_manager_as_v1_component",
]
@@ -119,6 +130,10 @@
path = rebase_path("meta/echo_no_args.cml")
dest = "echo_no_args.cm"
},
+ {
+ path = rebase_path("//examples/components/basic/meta/echo_args.cml")
+ dest = "echo_args.cm"
+ },
]
binaries = [
diff --git a/src/sys/component_manager/tests/meta/echo_realm.cml b/src/sys/component_manager/tests/meta/echo_realm.cml
index a34b2e8..7bd5c1e 100644
--- a/src/sys/component_manager/tests/meta/echo_realm.cml
+++ b/src/sys/component_manager/tests/meta/echo_realm.cml
@@ -1,11 +1,11 @@
// Realm for integration test that provisions an Echo client and service and eagerly runs the
-// client. We don't use the topology examples's echo_realm.cml because we need the component URIs
+// client. We don't use the routing examples's echo_realm.cml because we need the component URIs
// to refer to the test package.
{
// Route Echo service from server to client.
"offer": [
{
- "service": "/svc/fidl.examples.topology.echo.Echo",
+ "service": "/svc/fidl.examples.routing.echo.Echo",
"from": "#echo_server",
"to": [
{
diff --git a/src/sys/dash/BUILD.gn b/src/sys/dash/BUILD.gn
index 37a4186..1bacd47 100644
--- a/src/sys/dash/BUILD.gn
+++ b/src/sys/dash/BUILD.gn
@@ -37,7 +37,7 @@
deps = [
":dash_test_bin",
":zircon-bin-manifest",
- "//garnet/examples/components/v2:hello_world_bin",
+ "//examples/components/basic:hello_world_bin",
"//src/sys/component_manager/tests:mock_pkg_resolver_bin",
]
@@ -76,7 +76,7 @@
package("dash") {
deps = [
":zircon-bin-manifest",
- "//garnet/examples/components/v2:hello_world_bin",
+ "//examples/components/basic:hello_world_bin",
]
components = [ ":dash_component" ]
diff --git a/src/sys/examples/topology/BUILD.gn b/src/sys/examples/topology/BUILD.gn
deleted file mode 100644
index b874c4e..0000000
--- a/src/sys/examples/topology/BUILD.gn
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2019 The Fuchsia Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import("//build/package.gni")
-import("//build/package/component.gni")
-
-deprecated_fuchsia_component("echo_server") {
- manifest = rebase_path("meta/echo_server.cml")
- deps = [
- "//src/sys/examples/topology/echo_server",
- ]
- binary = "echo_server"
-}
-
-deprecated_fuchsia_component("echo_client") {
- manifest = rebase_path("meta/echo_client.cml")
- deps = [
- "//src/sys/examples/topology/echo_client",
- ]
- binary = "echo_client"
-}
-
-deprecated_fuchsia_component("echo_realm") {
- manifest = rebase_path("meta/echo_realm.cml")
-}
-
-package("topology_example") {
- components = [
- ":echo_server",
- ":echo_client",
- ":echo_realm",
- ]
-}