diff --git a/codec/frame.go b/codec/frame.go index b015796e..133e690c 100644 --- a/codec/frame.go +++ b/codec/frame.go @@ -5,29 +5,40 @@ type Frame struct { Data []byte } +// NewFrame returns new frame with data +func NewFrame(data []byte) *Frame { + return &Frame{Data: data} +} + +// MarshalJSON returns frame data func (m *Frame) MarshalJSON() ([]byte, error) { - return m.Data, nil + return m.Marshal() } +// UnmarshalJSON set frame data func (m *Frame) UnmarshalJSON(data []byte) error { - m.Data = data - return nil + return m.Unmarshal(data) } +// ProtoMessage noop func func (m *Frame) ProtoMessage() {} +// Reset resets frame func (m *Frame) Reset() { *m = Frame{} } +// String returns frame as string func (m *Frame) String() string { return string(m.Data) } +// Marshal returns frame data func (m *Frame) Marshal() ([]byte, error) { return m.Data, nil } +// Unmarshal set frame data func (m *Frame) Unmarshal(data []byte) error { m.Data = data return nil diff --git a/server/options.go b/server/options.go index 3b7ec988..ea0d78be 100644 --- a/server/options.go +++ b/server/options.go @@ -16,6 +16,7 @@ import ( "go.unistack.org/micro/v3/network/transport" "go.unistack.org/micro/v3/register" "go.unistack.org/micro/v3/tracer" + "go.unistack.org/micro/v3/util/id" ) // Option func @@ -106,7 +107,7 @@ func NewOptions(opts ...Option) Options { Address: DefaultAddress, Name: DefaultName, Version: DefaultVersion, - ID: DefaultID, + ID: id.Must(), Namespace: DefaultNamespace, } diff --git a/server/server.go b/server/server.go index 45b63f5f..9217b1e6 100644 --- a/server/server.go +++ b/server/server.go @@ -8,7 +8,6 @@ import ( "go.unistack.org/micro/v3/codec" "go.unistack.org/micro/v3/metadata" "go.unistack.org/micro/v3/register" - "go.unistack.org/micro/v3/util/id" ) // DefaultServer default server @@ -21,8 +20,6 @@ var ( DefaultName = "server" // DefaultVersion will be used if no version passed DefaultVersion = "latest" - // DefaultID will be used if no id passed - DefaultID = id.Must() // DefaultRegisterCheck holds func that run before register server DefaultRegisterCheck = func(context.Context) error { return nil } // DefaultRegisterInterval holds interval for register diff --git a/util/reflect/reflect.go b/util/reflect/reflect.go index 9ac53d47..b9e82077 100644 --- a/util/reflect/reflect.go +++ b/util/reflect/reflect.go @@ -91,7 +91,10 @@ func Merge(dst interface{}, mp map[string]interface{}, opts ...Option) error { val, ok := mp[fname] if !ok { - continue + val, ok = mp[dfld.Name] + if !ok { + continue + } } sval = reflect.ValueOf(val)