| @@ -8,7 +8,7 @@ import ( | ||||
| 	"time" | ||||
|  | ||||
| 	"github.com/google/uuid" | ||||
| 	"github.com/imdario/mergo" | ||||
| 	"dario.cat/mergo" | ||||
| 	"go.unistack.org/micro/v4/options" | ||||
| 	mid "go.unistack.org/micro/v4/util/id" | ||||
| 	rutil "go.unistack.org/micro/v4/util/reflect" | ||||
|   | ||||
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @@ -3,9 +3,9 @@ module go.unistack.org/micro/v4 | ||||
| go 1.20 | ||||
|  | ||||
| require ( | ||||
| 	dario.cat/mergo v1.0.0 | ||||
| 	github.com/DATA-DOG/go-sqlmock v1.5.0 | ||||
| 	github.com/google/uuid v1.3.0 | ||||
| 	github.com/imdario/mergo v0.3.15 | ||||
| 	github.com/patrickmn/go-cache v2.1.0+incompatible | ||||
| 	github.com/silas/dag v0.0.0-20220518035006-a7e85ada93c5 | ||||
| 	golang.org/x/sync v0.3.0 | ||||
|   | ||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @@ -1,3 +1,5 @@ | ||||
| dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= | ||||
| dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= | ||||
| github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60= | ||||
| github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= | ||||
| github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= | ||||
| @@ -7,8 +9,6 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ | ||||
| github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= | ||||
| github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= | ||||
| github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= | ||||
| github.com/imdario/mergo v0.3.15 h1:M8XP7IuFNsqUx6VPK2P9OSmsYsI/YFaGil0uD21V3dM= | ||||
| github.com/imdario/mergo v0.3.15/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= | ||||
| github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= | ||||
| github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= | ||||
| github.com/silas/dag v0.0.0-20220518035006-a7e85ada93c5 h1:G/FZtUu7a6NTWl3KUHMV9jkLAh/Rvtf03NWMHaEDl+E= | ||||
|   | ||||
| @@ -7,12 +7,13 @@ import ( | ||||
|  | ||||
| 	"go.unistack.org/micro/v4/client" | ||||
| 	"go.unistack.org/micro/v4/logger" | ||||
| 	"go.unistack.org/micro/v4/options" | ||||
| 	"go.unistack.org/micro/v4/server" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	// DefaultClientCallObserver called by wrapper in client Call | ||||
| 	DefaultClientCallObserver = func(ctx context.Context, req client.Request, rsp interface{}, opts []client.CallOption, err error) []string { | ||||
| 	DefaultClientCallObserver = func(ctx context.Context, req client.Request, rsp interface{}, opts []options.Option, err error) []string { | ||||
| 		labels := []string{"service", req.Service(), "endpoint", req.Endpoint()} | ||||
| 		if err != nil { | ||||
| 			labels = append(labels, "error", err.Error()) | ||||
| @@ -21,7 +22,7 @@ var ( | ||||
| 	} | ||||
|  | ||||
| 	// DefaultClientStreamObserver called by wrapper in client Stream | ||||
| 	DefaultClientStreamObserver = func(ctx context.Context, req client.Request, opts []client.CallOption, stream client.Stream, err error) []string { | ||||
| 	DefaultClientStreamObserver = func(ctx context.Context, req client.Request, opts []options.Option, stream client.Stream, err error) []string { | ||||
| 		labels := []string{"service", req.Service(), "endpoint", req.Endpoint()} | ||||
| 		if err != nil { | ||||
| 			labels = append(labels, "error", err.Error()) | ||||
| @@ -60,9 +61,9 @@ type lWrapper struct { | ||||
|  | ||||
| type ( | ||||
| 	// ClientCallObserver func signature | ||||
| 	ClientCallObserver func(context.Context, client.Request, interface{}, []client.CallOption, error) []string | ||||
| 	ClientCallObserver func(context.Context, client.Request, interface{}, []options.Option, error) []string | ||||
| 	// ClientStreamObserver func signature | ||||
| 	ClientStreamObserver func(context.Context, client.Request, []client.CallOption, client.Stream, error) []string | ||||
| 	ClientStreamObserver func(context.Context, client.Request, []options.Option, client.Stream, error) []string | ||||
| 	// ClientCallFuncObserver func signature | ||||
| 	ClientCallFuncObserver func(context.Context, string, client.Request, interface{}, client.CallOptions, error) []string | ||||
| 	// ServerHandlerObserver func signature | ||||
| @@ -167,7 +168,7 @@ func SkipEndpoints(eps ...string) Option { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (l *lWrapper) Call(ctx context.Context, req client.Request, rsp interface{}, opts ...client.CallOption) error { | ||||
| func (l *lWrapper) Call(ctx context.Context, req client.Request, rsp interface{}, opts ...options.Option) error { | ||||
| 	err := l.Client.Call(ctx, req, rsp, opts...) | ||||
|  | ||||
| 	endpoint := fmt.Sprintf("%s.%s", req.Service(), req.Endpoint()) | ||||
| @@ -190,7 +191,7 @@ func (l *lWrapper) Call(ctx context.Context, req client.Request, rsp interface{} | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (l *lWrapper) Stream(ctx context.Context, req client.Request, opts ...client.CallOption) (client.Stream, error) { | ||||
| func (l *lWrapper) Stream(ctx context.Context, req client.Request, opts ...options.Option) (client.Stream, error) { | ||||
| 	stream, err := l.Client.Stream(ctx, req, opts...) | ||||
|  | ||||
| 	endpoint := fmt.Sprintf("%s.%s", req.Service(), req.Endpoint()) | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| package wrapper // import "go.unistack.org/micro/v4/meter/wrapper" | ||||
| package wrapper | ||||
|  | ||||
| import ( | ||||
| 	"context" | ||||
| @@ -7,6 +7,7 @@ import ( | ||||
|  | ||||
| 	"go.unistack.org/micro/v4/client" | ||||
| 	"go.unistack.org/micro/v4/meter" | ||||
| 	"go.unistack.org/micro/v4/options" | ||||
| 	"go.unistack.org/micro/v4/semconv" | ||||
| 	"go.unistack.org/micro/v4/server" | ||||
| ) | ||||
| @@ -24,7 +25,7 @@ var ( | ||||
| // Options struct | ||||
| type Options struct { | ||||
| 	Meter         meter.Meter | ||||
| 	lopts         []meter.Option | ||||
| 	lopts         []options.Option | ||||
| 	SkipEndpoints []string | ||||
| } | ||||
|  | ||||
| @@ -35,7 +36,7 @@ type Option func(*Options) | ||||
| func NewOptions(opts ...Option) Options { | ||||
| 	options := Options{ | ||||
| 		Meter:         meter.DefaultMeter, | ||||
| 		lopts:         make([]meter.Option, 0, 5), | ||||
| 		lopts:         make([]options.Option, 0, 5), | ||||
| 		SkipEndpoints: DefaultSkipEndpoints, | ||||
| 	} | ||||
| 	for _, o := range opts { | ||||
| @@ -137,7 +138,7 @@ func (w *wrapper) CallFunc(ctx context.Context, addr string, req client.Request, | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (w *wrapper) Call(ctx context.Context, req client.Request, rsp interface{}, opts ...client.CallOption) error { | ||||
| func (w *wrapper) Call(ctx context.Context, req client.Request, rsp interface{}, opts ...options.Option) error { | ||||
| 	endpoint := fmt.Sprintf("%s.%s", req.Service(), req.Endpoint()) | ||||
| 	for _, ep := range w.opts.SkipEndpoints { | ||||
| 		if ep == endpoint { | ||||
| @@ -167,7 +168,7 @@ func (w *wrapper) Call(ctx context.Context, req client.Request, rsp interface{}, | ||||
| 	return err | ||||
| } | ||||
|  | ||||
| func (w *wrapper) Stream(ctx context.Context, req client.Request, opts ...client.CallOption) (client.Stream, error) { | ||||
| func (w *wrapper) Stream(ctx context.Context, req client.Request, opts ...options.Option) (client.Stream, error) { | ||||
| 	endpoint := fmt.Sprintf("%s.%s", req.Service(), req.Endpoint()) | ||||
| 	for _, ep := range w.opts.SkipEndpoints { | ||||
| 		if ep == endpoint { | ||||
|   | ||||
| @@ -5,12 +5,13 @@ import ( | ||||
| 	"testing" | ||||
| 	"time" | ||||
|  | ||||
| 	"go.unistack.org/micro/v4/options" | ||||
| 	"go.unistack.org/micro/v4/store" | ||||
| ) | ||||
|  | ||||
| func TestMemoryReInit(t *testing.T) { | ||||
| 	s := store.NewStore(store.Namespace("aaa")) | ||||
| 	if err := s.Init(store.Namespace("")); err != nil { | ||||
| 	s := store.NewStore(options.Namespace("aaa")) | ||||
| 	if err := s.Init(options.Namespace("")); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	if len(s.Options().Namespace) > 0 { | ||||
| @@ -28,7 +29,7 @@ func TestMemoryBasic(t *testing.T) { | ||||
|  | ||||
| func TestMemoryPrefix(t *testing.T) { | ||||
| 	s := store.NewStore() | ||||
| 	if err := s.Init(store.Namespace("some-prefix")); err != nil { | ||||
| 	if err := s.Init(options.Namespace("some-prefix")); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	basictest(s, t) | ||||
| @@ -36,7 +37,7 @@ func TestMemoryPrefix(t *testing.T) { | ||||
|  | ||||
| func TestMemoryNamespace(t *testing.T) { | ||||
| 	s := store.NewStore() | ||||
| 	if err := s.Init(store.Namespace("some-namespace")); err != nil { | ||||
| 	if err := s.Init(options.Namespace("some-namespace")); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	basictest(s, t) | ||||
| @@ -44,7 +45,7 @@ func TestMemoryNamespace(t *testing.T) { | ||||
|  | ||||
| func TestMemoryNamespacePrefix(t *testing.T) { | ||||
| 	s := store.NewStore() | ||||
| 	if err := s.Init(store.Namespace("some-namespace")); err != nil { | ||||
| 	if err := s.Init(options.Namespace("some-namespace")); err != nil { | ||||
| 		t.Fatal(err) | ||||
| 	} | ||||
| 	basictest(s, t) | ||||
|   | ||||
| @@ -177,7 +177,7 @@ func (ot *tWrapper) Call(ctx context.Context, req client.Request, rsp interface{ | ||||
|  | ||||
| 	nctx, sp := ot.opts.Tracer.Start(ctx, fmt.Sprintf("%s.%s rpc-client", req.Service(), req.Method()), | ||||
| 		tracer.WithSpanKind(tracer.SpanKindClient), | ||||
| 		tracer.WithSpanLabels( | ||||
| 		options.Labels( | ||||
| 			"rpc.service", req.Service(), | ||||
| 			"rpc.method", req.Method(), | ||||
| 			"rpc.flavor", "rpc", | ||||
| @@ -206,7 +206,7 @@ func (ot *tWrapper) Stream(ctx context.Context, req client.Request, opts ...opti | ||||
|  | ||||
| 	nctx, sp := ot.opts.Tracer.Start(ctx, fmt.Sprintf("%s.%s rpc-client", req.Service(), req.Method()), | ||||
| 		tracer.WithSpanKind(tracer.SpanKindClient), | ||||
| 		tracer.WithSpanLabels( | ||||
| 		options.Labels( | ||||
| 			"rpc.service", req.Service(), | ||||
| 			"rpc.method", req.Method(), | ||||
| 			"rpc.flavor", "rpc", | ||||
| @@ -240,7 +240,7 @@ func (ot *tWrapper) ServerHandler(ctx context.Context, req server.Request, rsp i | ||||
|  | ||||
| 	nctx, sp := ot.opts.Tracer.Start(ctx, fmt.Sprintf("%s.%s rpc-server", req.Service(), req.Method()), | ||||
| 		tracer.WithSpanKind(tracer.SpanKindServer), | ||||
| 		tracer.WithSpanLabels( | ||||
| 		options.Labels( | ||||
| 			"rpc.service", req.Service(), | ||||
| 			"rpc.method", req.Method(), | ||||
| 			"rpc.flavor", "rpc", | ||||
| @@ -293,7 +293,7 @@ func (ot *tWrapper) ClientCallFunc(ctx context.Context, addr string, req client. | ||||
|  | ||||
| 	nctx, sp := ot.opts.Tracer.Start(ctx, fmt.Sprintf("%s.%s rpc-client", req.Service(), req.Method()), | ||||
| 		tracer.WithSpanKind(tracer.SpanKindClient), | ||||
| 		tracer.WithSpanLabels( | ||||
| 		options.Labels( | ||||
| 			"rpc.service", req.Service(), | ||||
| 			"rpc.method", req.Method(), | ||||
| 			"rpc.flavor", "rpc", | ||||
|   | ||||
| @@ -20,6 +20,7 @@ import ( | ||||
| 	"go.unistack.org/micro/v4/codec" | ||||
| 	"go.unistack.org/micro/v4/errors" | ||||
| 	"go.unistack.org/micro/v4/metadata" | ||||
| 	"go.unistack.org/micro/v4/options" | ||||
| 	"golang.org/x/sync/errgroup" | ||||
| 	"google.golang.org/grpc/status" | ||||
| 	"google.golang.org/protobuf/proto" | ||||
| @@ -226,7 +227,7 @@ func NewRequestFromFile(c client.Client, reqfile string) (client.Request, error) | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	req := c.NewRequest("test", endpoint, &codec.Frame{Data: reqbuf}, client.RequestContentType(ct)) | ||||
| 	req := c.NewRequest("test", endpoint, &codec.Frame{Data: reqbuf}, options.ContentType(ct)) | ||||
|  | ||||
| 	return req, nil | ||||
| } | ||||
| @@ -373,7 +374,7 @@ func Run(ctx context.Context, c client.Client, m sqlmock.Sqlmock, dir string, ex | ||||
| 			data := &codec.Frame{} | ||||
| 			md := metadata.New(1) | ||||
| 			md.Set("X-Request-Id", xrid) | ||||
| 			cerr := c.Call(metadata.NewOutgoingContext(gctx, md), treq, data, client.WithContentType(treq.ContentType())) | ||||
| 			cerr := c.Call(metadata.NewOutgoingContext(gctx, md), treq, data, options.ContentType(treq.ContentType())) | ||||
|  | ||||
| 			var rspfile string | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user