Skip to content

Commit 228728c

Browse files
authored
Refactor RegisterQueryServices -> RegisterServices (cosmos#7518)
* Refactor RegisterQueryServices -> RegisterServices * Fix tests
1 parent 647ad0d commit 228728c

File tree

21 files changed

+84
-71
lines changed

21 files changed

+84
-71
lines changed

simapp/app.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,7 +359,7 @@ func NewSimApp(
359359

360360
app.mm.RegisterInvariants(&app.CrisisKeeper)
361361
app.mm.RegisterRoutes(app.Router(), app.QueryRouter(), encodingConfig.Amino)
362-
app.mm.RegisterQueryServices(app.GRPCQueryRouter())
362+
app.mm.RegisterServices(module.NewConfigurator(app.GRPCQueryRouter()))
363363

364364
// add test gRPC service for testing gRPC queries in isolation
365365
testdata.RegisterTestServiceServer(app.GRPCQueryRouter(), testdata.TestServiceImpl{})

tests/mocks/types_module_module.go

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

types/module/configurator.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package module
2+
3+
import "github.com/gogo/protobuf/grpc"
4+
5+
// Configurator provides the hooks to allow modules to configure and register
6+
// their services in the RegisterServices method. It is designed to eventually
7+
// support module object capabilities isolation as described in
8+
// https://github.com/cosmos/cosmos-sdk/issues/7093
9+
type Configurator interface {
10+
QueryServer() grpc.Server
11+
}
12+
13+
type configurator struct {
14+
queryServer grpc.Server
15+
}
16+
17+
// NewConfigurator returns a new Configurator instance
18+
func NewConfigurator(queryServer grpc.Server) Configurator {
19+
return configurator{queryServer: queryServer}
20+
}
21+
22+
var _ Configurator = configurator{}
23+
24+
// QueryServer implements the Configurator.QueryServer method
25+
func (c configurator) QueryServer() grpc.Server {
26+
return c.queryServer
27+
}

types/module/module.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ package module
3131
import (
3232
"encoding/json"
3333

34-
"github.com/gogo/protobuf/grpc"
3534
"github.com/grpc-ecosystem/grpc-gateway/runtime"
3635

3736
"github.com/gorilla/mux"
@@ -173,8 +172,8 @@ type AppModule interface {
173172
// Deprecated: use RegisterQueryService
174173
LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier
175174

176-
// RegisterQueryService allows a module to register a gRPC query service
177-
RegisterQueryService(grpc.Server)
175+
// RegisterServices allows a module to register services
176+
RegisterServices(Configurator)
178177

179178
// ABCI
180179
BeginBlock(sdk.Context, abci.RequestBeginBlock)
@@ -207,8 +206,8 @@ func (GenesisOnlyAppModule) QuerierRoute() string { return "" }
207206
// LegacyQuerierHandler returns an empty module querier
208207
func (gam GenesisOnlyAppModule) LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier { return nil }
209208

210-
// RegisterQueryService registers all gRPC query services.
211-
func (gam GenesisOnlyAppModule) RegisterQueryService(grpc.Server) {}
209+
// RegisterServices registers all services.
210+
func (gam GenesisOnlyAppModule) RegisterServices(Configurator) {}
212211

213212
// BeginBlock returns an empty module begin-block
214213
func (gam GenesisOnlyAppModule) BeginBlock(ctx sdk.Context, req abci.RequestBeginBlock) {}
@@ -288,10 +287,10 @@ func (m *Manager) RegisterRoutes(router sdk.Router, queryRouter sdk.QueryRouter,
288287
}
289288
}
290289

291-
// RegisterQueryServices registers all module query services
292-
func (m *Manager) RegisterQueryServices(grpcRouter grpc.Server) {
290+
// RegisterServices registers all module services
291+
func (m *Manager) RegisterServices(cfg Configurator) {
293292
for _, module := range m.Modules {
294-
module.RegisterQueryService(grpcRouter)
293+
module.RegisterServices(cfg)
295294
}
296295
}
297296

types/module/module_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,10 @@ func TestManager_RegisterRoutes(t *testing.T) {
162162
mockAppModule1.EXPECT().QuerierRoute().Times(2).Return("querierRoute1")
163163
mockAppModule2.EXPECT().QuerierRoute().Times(1).Return("")
164164
handler3 := sdk.Querier(nil)
165-
mockAppModule1.EXPECT().NewQuerierHandler().Times(1).Return(handler3)
165+
amino := codec.NewLegacyAmino()
166+
mockAppModule1.EXPECT().LegacyQuerierHandler(amino).Times(1).Return(handler3)
166167
queryRouter.EXPECT().AddRoute(gomock.Eq("querierRoute1"), gomock.Eq(handler3)).Times(1)
167168

168-
amino := codec.NewLegacyAmino()
169169
mm.RegisterRoutes(router, queryRouter, amino)
170170
}
171171

@@ -182,10 +182,11 @@ func TestManager_RegisterQueryServices(t *testing.T) {
182182
require.Equal(t, 2, len(mm.Modules))
183183

184184
queryRouter := mocks.NewMockServer(mockCtrl)
185-
mockAppModule1.EXPECT().RegisterQueryService(queryRouter).Times(1)
186-
mockAppModule2.EXPECT().RegisterQueryService(queryRouter).Times(1)
185+
cfg := module.NewConfigurator(queryRouter)
186+
mockAppModule1.EXPECT().RegisterServices(cfg).Times(1)
187+
mockAppModule2.EXPECT().RegisterServices(cfg).Times(1)
187188

188-
mm.RegisterQueryServices(queryRouter)
189+
mm.RegisterServices(cfg)
189190
}
190191

191192
func TestManager_InitGenesis(t *testing.T) {

x/auth/module.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"fmt"
77
"math/rand"
88

9-
"github.com/gogo/protobuf/grpc"
109
"github.com/grpc-ecosystem/grpc-gateway/runtime"
1110

1211
"github.com/gorilla/mux"
@@ -128,8 +127,8 @@ func (am AppModule) LegacyQuerierHandler(legacyQuerierCdc *codec.LegacyAmino) sd
128127

129128
// RegisterQueryService registers a GRPC query service to respond to the
130129
// module-specific GRPC queries.
131-
func (am AppModule) RegisterQueryService(server grpc.Server) {
132-
types.RegisterQueryServer(server, am.accountKeeper)
130+
func (am AppModule) RegisterServices(cfg module.Configurator) {
131+
types.RegisterQueryServer(cfg.QueryServer(), am.accountKeeper)
133132
}
134133

135134
// InitGenesis performs genesis initialization for the auth module. It returns

x/auth/vesting/module.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package vesting
33
import (
44
"encoding/json"
55

6-
"github.com/gogo/protobuf/grpc"
76
"github.com/gorilla/mux"
87
"github.com/grpc-ecosystem/grpc-gateway/runtime"
98
"github.com/spf13/cobra"
@@ -102,7 +101,7 @@ func (am AppModule) Route() sdk.Route {
102101
func (AppModule) QuerierRoute() string { return "" }
103102

104103
// RegisterQueryService performs a no-op.
105-
func (am AppModule) RegisterQueryService(_ grpc.Server) {}
104+
func (am AppModule) RegisterServices(_ module.Configurator) {}
106105

107106
// LegacyQuerierHandler performs a no-op.
108107
func (am AppModule) LegacyQuerierHandler(_ *codec.LegacyAmino) sdk.Querier {

x/bank/module.go

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"fmt"
77
"math/rand"
88

9-
"github.com/gogo/protobuf/grpc"
109
"github.com/gorilla/mux"
1110
"github.com/grpc-ecosystem/grpc-gateway/runtime"
1211
"github.com/spf13/cobra"
@@ -97,8 +96,8 @@ type AppModule struct {
9796

9897
// RegisterQueryService registers a GRPC query service to respond to the
9998
// module-specific GRPC queries.
100-
func (am AppModule) RegisterQueryService(server grpc.Server) {
101-
types.RegisterQueryServer(server, am.keeper)
99+
func (am AppModule) RegisterServices(cfg module.Configurator) {
100+
types.RegisterQueryServer(cfg.QueryServer(), am.keeper)
102101
}
103102

104103
// NewAppModule creates a new AppModule object

x/capability/module.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"fmt"
66
"math/rand"
77

8-
"github.com/gogo/protobuf/grpc"
98
"github.com/gorilla/mux"
109
"github.com/grpc-ecosystem/grpc-gateway/runtime"
1110
"github.com/spf13/cobra"
@@ -114,7 +113,7 @@ func (am AppModule) LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier { retur
114113

115114
// RegisterQueryService registers a GRPC query service to respond to the
116115
// module-specific GRPC queries.
117-
func (am AppModule) RegisterQueryService(grpc.Server) {}
116+
func (am AppModule) RegisterServices(module.Configurator) {}
118117

119118
// RegisterInvariants registers the capability module's invariants.
120119
func (am AppModule) RegisterInvariants(_ sdk.InvariantRegistry) {}

x/crisis/module.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"encoding/json"
55
"fmt"
66

7-
"github.com/gogo/protobuf/grpc"
87
"github.com/gorilla/mux"
98
"github.com/grpc-ecosystem/grpc-gateway/runtime"
109
"github.com/spf13/cobra"
@@ -115,7 +114,7 @@ func (AppModule) LegacyQuerierHandler(*codec.LegacyAmino) sdk.Querier { return n
115114

116115
// RegisterQueryService registers a GRPC query service to respond to the
117116
// module-specific GRPC queries.
118-
func (am AppModule) RegisterQueryService(grpc.Server) {}
117+
func (am AppModule) RegisterServices(module.Configurator) {}
119118

120119
// InitGenesis performs genesis initialization for the crisis module. It returns
121120
// no validator updates.

0 commit comments

Comments
 (0)