From 1f286f1199605b17e245efe7fa1b66322cfea695 Mon Sep 17 00:00:00 2001 From: Ngalim Siregar Date: Fri, 5 Jul 2019 19:53:26 +0700 Subject: [PATCH] Change msgpack codec from ugorji to vmihailenco --- .travis.yml | 1 - binding/binding_body_test.go | 5 ++--- binding/binding_test.go | 6 ++---- binding/msgpack.go | 5 ++--- debug.go | 4 ++-- debug_test.go | 2 +- go.mod | 4 ++-- go.sum | 20 ++++++++++++++++---- render/msgpack.go | 5 ++--- render/render_test.go | 6 ++---- 10 files changed, 31 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 27c80ef8..2b438721 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,6 @@ language: go matrix: fast_finish: true include: - - go: 1.10.x - go: 1.11.x env: GO111MODULE=on - go: 1.12.x diff --git a/binding/binding_body_test.go b/binding/binding_body_test.go index 901d429c..f1d1aae2 100644 --- a/binding/binding_body_test.go +++ b/binding/binding_body_test.go @@ -8,7 +8,7 @@ import ( "github.com/gin-gonic/gin/testdata/protoexample" "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" - "github.com/ugorji/go/codec" + "github.com/vmihailenco/msgpack" ) func TestBindingBody(t *testing.T) { @@ -53,9 +53,8 @@ func TestBindingBody(t *testing.T) { func msgPackBody(t *testing.T) string { test := FooStruct{"FOO"} - h := new(codec.MsgpackHandle) buf := bytes.NewBuffer(nil) - assert.NoError(t, codec.NewEncoder(buf, h).Encode(test)) + assert.NoError(t, msgpack.NewEncoder(buf).Encode(test)) return buf.String() } diff --git a/binding/binding_test.go b/binding/binding_test.go index 827518f9..c1d1e435 100644 --- a/binding/binding_test.go +++ b/binding/binding_test.go @@ -21,7 +21,7 @@ import ( "github.com/gin-gonic/gin/testdata/protoexample" "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" - "github.com/ugorji/go/codec" + "github.com/vmihailenco/msgpack" ) type appkey struct { @@ -612,11 +612,9 @@ func TestBindingMsgPack(t *testing.T) { Foo: "bar", } - h := new(codec.MsgpackHandle) - assert.NotNil(t, h) buf := bytes.NewBuffer([]byte{}) assert.NotNil(t, buf) - err := codec.NewEncoder(buf, h).Encode(test) + err := msgpack.NewEncoder(buf).Encode(test) assert.NoError(t, err) data := buf.Bytes() diff --git a/binding/msgpack.go b/binding/msgpack.go index b7f73197..e1ca15eb 100644 --- a/binding/msgpack.go +++ b/binding/msgpack.go @@ -9,7 +9,7 @@ import ( "io" "net/http" - "github.com/ugorji/go/codec" + "github.com/vmihailenco/msgpack" ) type msgpackBinding struct{} @@ -27,8 +27,7 @@ func (msgpackBinding) BindBody(body []byte, obj interface{}) error { } func decodeMsgPack(r io.Reader, obj interface{}) error { - cdc := new(codec.MsgpackHandle) - if err := codec.NewDecoder(r, cdc).Decode(&obj); err != nil { + if err := msgpack.NewDecoder(r).Decode(&obj); err != nil { return err } return validate(obj) diff --git a/debug.go b/debug.go index 49080dbf..1ef991c1 100644 --- a/debug.go +++ b/debug.go @@ -12,7 +12,7 @@ import ( "strings" ) -const ginSupportMinGoVer = 10 +const ginSupportMinGoVer = 11 // IsDebugging returns true if the framework is running in debug mode. // Use SetMode(gin.ReleaseMode) to disable debug mode. @@ -67,7 +67,7 @@ func getMinVer(v string) (uint64, error) { func debugPrintWARNINGDefault() { if v, e := getMinVer(runtime.Version()); e == nil && v <= ginSupportMinGoVer { - debugPrint(`[WARNING] Now Gin requires Go 1.10 or later and Go 1.11 will be required soon. + debugPrint(`[WARNING] Now Gin requires Go 1.11. `) } diff --git a/debug_test.go b/debug_test.go index d6f320ef..5a47ec27 100644 --- a/debug_test.go +++ b/debug_test.go @@ -91,7 +91,7 @@ func TestDebugPrintWARNINGDefault(t *testing.T) { }) m, e := getMinVer(runtime.Version()) if e == nil && m <= ginSupportMinGoVer { - assert.Equal(t, "[GIN-debug] [WARNING] Now Gin requires Go 1.10 or later and Go 1.11 will be required soon.\n\n[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.\n\n", re) + assert.Equal(t, "[GIN-debug] [WARNING] Now Gin requires Go 1.11.\n\n[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.\n\n", re) } else { assert.Equal(t, "[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.\n\n", re) } diff --git a/go.mod b/go.mod index 7680d4f7..792e9dc7 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,8 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.1 // indirect github.com/stretchr/testify v1.3.0 - github.com/ugorji/go v1.1.4 - golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c + github.com/vmihailenco/msgpack v4.0.4+incompatible + google.golang.org/appengine v1.6.1 // indirect gopkg.in/go-playground/assert.v1 v1.2.1 // indirect gopkg.in/go-playground/validator.v8 v8.18.2 gopkg.in/yaml.v2 v2.2.2 diff --git a/go.sum b/go.sum index 8610eae2..bd7565cb 100644 --- a/go.sum +++ b/go.sum @@ -17,15 +17,27 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= +github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c h1:uOCk1iQW6Vc18bnC13MfzScl+wdKBmM9Y9kU7Z83/lw= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65 h1:+rhAzEzT3f4JtomfC371qB+0Ola2caSKcY69NUBZrRQ= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223 h1:DH4skfRX4EBpamg7iV4ZlCpblAHI6s6TDM39bFZumv8= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c h1:+EXw7AwNOKzPFXMZ1yNjO40aWCh3PIquJB2fYlv9wcs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +google.golang.org/appengine v1.6.1 h1:QzqyMA1tlu6CgqCDUtU9V+ZKhLFT2dkJuANu5QaxI3I= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXadIrXTM= diff --git a/render/msgpack.go b/render/msgpack.go index dc681fcf..4946e34e 100644 --- a/render/msgpack.go +++ b/render/msgpack.go @@ -7,7 +7,7 @@ package render import ( "net/http" - "github.com/ugorji/go/codec" + "github.com/vmihailenco/msgpack" ) // MsgPack contains the given interface object. @@ -30,6 +30,5 @@ func (r MsgPack) Render(w http.ResponseWriter) error { // WriteMsgPack writes MsgPack ContentType and encodes the given interface object. func WriteMsgPack(w http.ResponseWriter, obj interface{}) error { writeContentType(w, msgpackContentType) - var mh codec.MsgpackHandle - return codec.NewEncoder(w, &mh).Encode(obj) + return msgpack.NewEncoder(w).Encode(obj) } diff --git a/render/render_test.go b/render/render_test.go index 9d7eaeef..bc577582 100644 --- a/render/render_test.go +++ b/render/render_test.go @@ -17,7 +17,7 @@ import ( "github.com/golang/protobuf/proto" "github.com/stretchr/testify/assert" - "github.com/ugorji/go/codec" + "github.com/vmihailenco/msgpack" testdata "github.com/gin-gonic/gin/testdata/protoexample" ) @@ -38,11 +38,9 @@ func TestRenderMsgPack(t *testing.T) { assert.NoError(t, err) - h := new(codec.MsgpackHandle) - assert.NotNil(t, h) buf := bytes.NewBuffer([]byte{}) assert.NotNil(t, buf) - err = codec.NewEncoder(buf, h).Encode(data) + err = msgpack.NewEncoder(buf).Encode(data) assert.NoError(t, err) assert.Equal(t, w.Body.String(), string(buf.Bytes()))