From 0e506a5282e813ef1e4c9b71eec7d6808b5b8ef1 Mon Sep 17 00:00:00 2001 From: Abhinav Gupta Date: Tue, 27 Dec 2016 15:33:37 -0800 Subject: [PATCH] Dispatcher: Drop Choose/Procedures Dispatcher has a router but doesn't have to be a router itself. --- CHANGELOG.md | 2 ++ dispatcher.go | 15 +-------------- internal/crossdock/server/yarpc/server.go | 3 +-- 3 files changed, 4 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6502a682d..e5f0d8398 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,8 @@ v1.0.0-dev (unreleased) `yarpc.ResponseHeaders` to receive response headers for the call. - **Breaking**: Removed `yarpc.Headers` in favor of `map[string]string`. +- **Breaking**: `yarpc.Dispatcher` no longer implements the + `transport.Router` interface. - **Breaking**: Start and Stop for Inbound and Outbound are now expected to be idempotent. - **Breaking**: Combine `ServiceProcedure` and `Registrant` into `Procedure`. diff --git a/dispatcher.go b/dispatcher.go index 06f6573be..e5d2a743c 100644 --- a/dispatcher.go +++ b/dispatcher.go @@ -21,7 +21,6 @@ package yarpc import ( - "context" "fmt" "sync" @@ -189,18 +188,6 @@ func (d *Dispatcher) ClientConfig(service string) transport.ClientConfig { panic(noOutboundForService{Service: service}) } -// Procedures returns a list of services and procedures that have been -// registered with this Dispatcher. -func (d *Dispatcher) Procedures() []transport.Procedure { - return d.table.Procedures() -} - -// Choose picks a handler for the given request or returns an error if a -// handler for this request does not exist. -func (d *Dispatcher) Choose(ctx context.Context, req *transport.Request) (transport.HandlerSpec, error) { - return d.table.Choose(ctx, req) -} - // Register configures the dispatcher's router to route inbound requests to a // collection of procedure handlers. func (d *Dispatcher) Register(rs []transport.Procedure) { @@ -297,7 +284,7 @@ func (d *Dispatcher) Start() error { // Start Inbounds wait = intsync.ErrorWaiter{} for _, i := range d.inbounds { - i.SetRouter(d) + i.SetRouter(d.table) wait.Submit(start(i)) } if errs := wait.Wait(); len(errs) != 0 { diff --git a/internal/crossdock/server/yarpc/server.go b/internal/crossdock/server/yarpc/server.go index b6034f7fd..dbd1adff2 100644 --- a/internal/crossdock/server/yarpc/server.go +++ b/internal/crossdock/server/yarpc/server.go @@ -24,7 +24,6 @@ import ( "fmt" "go.uber.org/yarpc" - "go.uber.org/yarpc/api/transport" "go.uber.org/yarpc/encoding/json" "go.uber.org/yarpc/encoding/raw" "go.uber.org/yarpc/internal/crossdock/thrift/echo/yarpc/echoserver" @@ -68,7 +67,7 @@ func Stop() { } } -func register(reg transport.RouteTable) { +func register(reg *yarpc.Dispatcher) { reg.Register(raw.Procedure("echo/raw", EchoRaw)) reg.Register(json.Procedure("echo", EchoJSON))