move to micro v4

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2023-05-05 20:06:27 +03:00
parent 29507e05c2
commit 67d5795e89
9 changed files with 62 additions and 217 deletions

View File

@ -1,3 +1,3 @@
package service package service
//go:generate protoc -I./proto -I. --go-grpc_out=paths=source_relative:./proto --go_out=paths=source_relative:./proto --go-micro_out=components=micro|grpc,standalone=true,debug=true,paths=source_relative:./micro proto/service.proto //go:generate protoc -I./proto -I. --go_out=paths=source_relative:./proto --go-micro_out=components=micro|grpc,standalone=true,debug=true,paths=source_relative:./micro proto/service.proto

15
go.mod
View File

@ -1,19 +1,10 @@
module go.unistack.org/micro-config-service/v3 module go.unistack.org/micro-config-service/v4
go 1.18 go 1.20
require ( require (
github.com/imdario/mergo v0.3.13 github.com/imdario/mergo v0.3.13
go.unistack.org/micro-server-http/v3 v3.10.13 go.unistack.org/micro/v4 v4.0.1
go.unistack.org/micro/v3 v3.10.16
google.golang.org/grpc v1.52.3 google.golang.org/grpc v1.52.3
google.golang.org/protobuf v1.28.1 google.golang.org/protobuf v1.28.1
) )
require (
github.com/golang/protobuf v1.5.2 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 // indirect
)

View File

@ -1,6 +1,6 @@
// Code generated by protoc-gen-go-micro. DO NOT EDIT. // Code generated by protoc-gen-go-micro. DO NOT EDIT.
// versions: // versions:
// - protoc-gen-go-micro v3.10.2 // - protoc-gen-go-micro v4.0.0
// - protoc v3.21.12 // - protoc v3.21.12
// source: service.proto // source: service.proto
@ -8,24 +8,24 @@ package servicepb
import ( import (
context "context" context "context"
proto "go.unistack.org/micro-config-service/v3/proto" proto "go.unistack.org/micro-config-service/v4/proto"
v3 "go.unistack.org/micro-server-http/v3" v4 "go.unistack.org/micro-server-http/v4"
client "go.unistack.org/micro/v3/client" client "go.unistack.org/micro/v4/client"
) )
var ( var (
ConfigName = "Config" ConfigServiceName = "ConfigService"
) )
var ( var (
ConfigServerEndpoints = []v3.EndpointMetadata{} ConfigServiceServerEndpoints = []v4.EndpointMetadata{}
) )
type ConfigClient interface { type ConfigServiceClient interface {
Load(ctx context.Context, req *proto.LoadRequest, opts ...client.CallOption) (*proto.LoadResponse, error) Load(ctx context.Context, req *proto.LoadRequest, opts ...client.CallOption) (*proto.LoadResponse, error)
Save(ctx context.Context, req *proto.SaveRequest, opts ...client.CallOption) (*proto.SaveResponse, error) Save(ctx context.Context, req *proto.SaveRequest, opts ...client.CallOption) (*proto.SaveResponse, error)
} }
type ConfigServer interface { type ConfigServiceServer interface {
Load(ctx context.Context, req *proto.LoadRequest, rsp *proto.LoadResponse) error Load(ctx context.Context, req *proto.LoadRequest, rsp *proto.LoadResponse) error
Save(ctx context.Context, req *proto.SaveRequest, rsp *proto.SaveResponse) error Save(ctx context.Context, req *proto.SaveRequest, rsp *proto.SaveResponse) error
} }

View File

@ -1,64 +1,64 @@
// Code generated by protoc-gen-go-micro. DO NOT EDIT. // Code generated by protoc-gen-go-micro. DO NOT EDIT.
// protoc-gen-go-micro version: v3.10.2 // protoc-gen-go-micro version: v4.0.0
// source: service.proto // source: service.proto
package servicepb package servicepb
import ( import (
context "context" context "context"
proto "go.unistack.org/micro-config-service/v3/proto" proto "go.unistack.org/micro-config-service/v4/proto"
client "go.unistack.org/micro/v3/client" client "go.unistack.org/micro/v4/client"
server "go.unistack.org/micro/v3/server" server "go.unistack.org/micro/v4/server"
) )
type configClient struct { type configServiceClient struct {
c client.Client c client.Client
name string name string
} }
func NewConfigClient(name string, c client.Client) ConfigClient { func NewConfigServiceClient(name string, c client.Client) ConfigServiceClient {
return &configClient{c: c, name: name} return &configServiceClient{c: c, name: name}
} }
func (c *configClient) Load(ctx context.Context, req *proto.LoadRequest, opts ...client.CallOption) (*proto.LoadResponse, error) { func (c *configServiceClient) Load(ctx context.Context, req *proto.LoadRequest, opts ...client.CallOption) (*proto.LoadResponse, error) {
rsp := &proto.LoadResponse{} rsp := &proto.LoadResponse{}
err := c.c.Call(ctx, c.c.NewRequest(c.name, "Config.Load", req), rsp, opts...) err := c.c.Call(ctx, c.c.NewRequest(c.name, "ConfigService.Load", req), rsp, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return rsp, nil return rsp, nil
} }
func (c *configClient) Save(ctx context.Context, req *proto.SaveRequest, opts ...client.CallOption) (*proto.SaveResponse, error) { func (c *configServiceClient) Save(ctx context.Context, req *proto.SaveRequest, opts ...client.CallOption) (*proto.SaveResponse, error) {
rsp := &proto.SaveResponse{} rsp := &proto.SaveResponse{}
err := c.c.Call(ctx, c.c.NewRequest(c.name, "Config.Save", req), rsp, opts...) err := c.c.Call(ctx, c.c.NewRequest(c.name, "ConfigService.Save", req), rsp, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return rsp, nil return rsp, nil
} }
type configServer struct { type configServiceServer struct {
ConfigServer ConfigServiceServer
} }
func (h *configServer) Load(ctx context.Context, req *proto.LoadRequest, rsp *proto.LoadResponse) error { func (h *configServiceServer) Load(ctx context.Context, req *proto.LoadRequest, rsp *proto.LoadResponse) error {
return h.ConfigServer.Load(ctx, req, rsp) return h.ConfigServiceServer.Load(ctx, req, rsp)
} }
func (h *configServer) Save(ctx context.Context, req *proto.SaveRequest, rsp *proto.SaveResponse) error { func (h *configServiceServer) Save(ctx context.Context, req *proto.SaveRequest, rsp *proto.SaveResponse) error {
return h.ConfigServer.Save(ctx, req, rsp) return h.ConfigServiceServer.Save(ctx, req, rsp)
} }
func RegisterConfigServer(s server.Server, sh ConfigServer, opts ...server.HandlerOption) error { func RegisterConfigServiceServer(s server.Server, sh ConfigServiceServer, opts ...server.HandlerOption) error {
type config interface { type configService interface {
Load(ctx context.Context, req *proto.LoadRequest, rsp *proto.LoadResponse) error Load(ctx context.Context, req *proto.LoadRequest, rsp *proto.LoadResponse) error
Save(ctx context.Context, req *proto.SaveRequest, rsp *proto.SaveResponse) error Save(ctx context.Context, req *proto.SaveRequest, rsp *proto.SaveResponse) error
} }
type Config struct { type ConfigService struct {
config configService
} }
h := &configServer{sh} h := &configServiceServer{sh}
var nopts []server.HandlerOption var nopts []server.HandlerOption
return s.Handle(s.NewHandler(&Config{h}, append(nopts, opts...)...)) return s.Handle(s.NewHandler(&ConfigService{h}, append(nopts, opts...)...))
} }

View File

@ -1,8 +1,8 @@
package service package service
import ( import (
"go.unistack.org/micro/v3/client" "go.unistack.org/micro/v4/client"
"go.unistack.org/micro/v3/config" "go.unistack.org/micro/v4/config"
) )
type clientKey struct{} type clientKey struct{}

View File

@ -221,19 +221,19 @@ var file_service_proto_rawDesc = []byte{
0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x61, 0x28, 0x0c, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x0e, 0x0a, 0x0c, 0x53, 0x61,
0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x76, 0x0a, 0x06, 0x43, 0x6f, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x7d, 0x0a, 0x0d, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x2e, 0x73, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x04, 0x4c,
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x6f, 0x61, 0x64, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f,
0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76,
0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x04, 0x53, 0x69, 0x63, 0x65, 0x2e, 0x4c, 0x6f, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
0x61, 0x76, 0x65, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x22, 0x00, 0x12, 0x35, 0x0a, 0x04, 0x53, 0x61, 0x76, 0x65, 0x12, 0x14, 0x2e, 0x73, 0x65, 0x72,
0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x15, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x52,
0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x6f, 0x2e, 0x75, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x39, 0x5a, 0x37, 0x67, 0x6f, 0x2e,
0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x6e, 0x69, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x6d, 0x69, 0x63,
0x69, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x72, 0x6f, 0x2d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63,
0x6f, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x65, 0x2f, 0x76, 0x34, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x69,
0x72, 0x6f, 0x74, 0x6f, 0x33, 0x63, 0x65, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -256,10 +256,10 @@ var file_service_proto_goTypes = []interface{}{
(*SaveResponse)(nil), // 3: service.SaveResponse (*SaveResponse)(nil), // 3: service.SaveResponse
} }
var file_service_proto_depIdxs = []int32{ var file_service_proto_depIdxs = []int32{
0, // 0: service.Config.Load:input_type -> service.LoadRequest 0, // 0: service.ConfigService.Load:input_type -> service.LoadRequest
2, // 1: service.Config.Save:input_type -> service.SaveRequest 2, // 1: service.ConfigService.Save:input_type -> service.SaveRequest
1, // 2: service.Config.Load:output_type -> service.LoadResponse 1, // 2: service.ConfigService.Load:output_type -> service.LoadResponse
3, // 3: service.Config.Save:output_type -> service.SaveResponse 3, // 3: service.ConfigService.Save:output_type -> service.SaveResponse
2, // [2:4] is the sub-list for method output_type 2, // [2:4] is the sub-list for method output_type
0, // [0:2] is the sub-list for method input_type 0, // [0:2] is the sub-list for method input_type
0, // [0:0] is the sub-list for extension type_name 0, // [0:0] is the sub-list for extension type_name

View File

@ -1,9 +1,9 @@
syntax = "proto3"; syntax = "proto3";
package service; package service;
option go_package="go.unistack.org/micro-config-service/v3/proto;servicepb"; option go_package="go.unistack.org/micro-config-service/v4/proto;servicepb";
service Config { service ConfigService {
rpc Load(LoadRequest) returns (LoadResponse) {}; rpc Load(LoadRequest) returns (LoadResponse) {};
rpc Save(SaveRequest) returns (SaveResponse) {}; rpc Save(SaveRequest) returns (SaveResponse) {};
} }

View File

@ -1,146 +0,0 @@
// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.3.0
// - protoc v3.21.12
// source: service.proto
package servicepb
import (
context "context"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
status "google.golang.org/grpc/status"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.32.0 or later.
const _ = grpc.SupportPackageIsVersion7
const (
Config_Load_FullMethodName = "/service.Config/Load"
Config_Save_FullMethodName = "/service.Config/Save"
)
// ConfigClient is the client API for Config service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type ConfigClient interface {
Load(ctx context.Context, in *LoadRequest, opts ...grpc.CallOption) (*LoadResponse, error)
Save(ctx context.Context, in *SaveRequest, opts ...grpc.CallOption) (*SaveResponse, error)
}
type configClient struct {
cc grpc.ClientConnInterface
}
func NewConfigClient(cc grpc.ClientConnInterface) ConfigClient {
return &configClient{cc}
}
func (c *configClient) Load(ctx context.Context, in *LoadRequest, opts ...grpc.CallOption) (*LoadResponse, error) {
out := new(LoadResponse)
err := c.cc.Invoke(ctx, Config_Load_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *configClient) Save(ctx context.Context, in *SaveRequest, opts ...grpc.CallOption) (*SaveResponse, error) {
out := new(SaveResponse)
err := c.cc.Invoke(ctx, Config_Save_FullMethodName, in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// ConfigServer is the server API for Config service.
// All implementations must embed UnimplementedConfigServer
// for forward compatibility
type ConfigServer interface {
Load(context.Context, *LoadRequest) (*LoadResponse, error)
Save(context.Context, *SaveRequest) (*SaveResponse, error)
mustEmbedUnimplementedConfigServer()
}
// UnimplementedConfigServer must be embedded to have forward compatible implementations.
type UnimplementedConfigServer struct {
}
func (UnimplementedConfigServer) Load(context.Context, *LoadRequest) (*LoadResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Load not implemented")
}
func (UnimplementedConfigServer) Save(context.Context, *SaveRequest) (*SaveResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method Save not implemented")
}
func (UnimplementedConfigServer) mustEmbedUnimplementedConfigServer() {}
// UnsafeConfigServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ConfigServer will
// result in compilation errors.
type UnsafeConfigServer interface {
mustEmbedUnimplementedConfigServer()
}
func RegisterConfigServer(s grpc.ServiceRegistrar, srv ConfigServer) {
s.RegisterService(&Config_ServiceDesc, srv)
}
func _Config_Load_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(LoadRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ConfigServer).Load(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Config_Load_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ConfigServer).Load(ctx, req.(*LoadRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Config_Save_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SaveRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ConfigServer).Save(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: Config_Save_FullMethodName,
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ConfigServer).Save(ctx, req.(*SaveRequest))
}
return interceptor(ctx, in, info, handler)
}
// Config_ServiceDesc is the grpc.ServiceDesc for Config service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Config_ServiceDesc = grpc.ServiceDesc{
ServiceName: "service.Config",
HandlerType: (*ConfigServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "Load",
Handler: _Config_Load_Handler,
},
{
MethodName: "Save",
Handler: _Config_Save_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "service.proto",
}

View File

@ -1,15 +1,15 @@
package service // import "go.unistack.org/micro-config-service/v3" package service // import "go.unistack.org/micro-config-service/v4"
import ( import (
"context" "context"
"fmt" "fmt"
"github.com/imdario/mergo" "github.com/imdario/mergo"
pbmicro "go.unistack.org/micro-config-service/v3/micro" pbmicro "go.unistack.org/micro-config-service/v4/micro"
pb "go.unistack.org/micro-config-service/v3/proto" pb "go.unistack.org/micro-config-service/v4/proto"
"go.unistack.org/micro/v3/client" "go.unistack.org/micro/v4/client"
"go.unistack.org/micro/v3/config" "go.unistack.org/micro/v4/config"
rutil "go.unistack.org/micro/v3/util/reflect" rutil "go.unistack.org/micro/v4/util/reflect"
) )
var _ config.Config = &serviceConfig{} var _ config.Config = &serviceConfig{}