chore(parsers.xpath): Migrate away from deprecated protoreflect functions (#16608)
This commit is contained in:
parent
9605623f57
commit
6539e6039b
|
|
@ -241,7 +241,6 @@ following works:
|
|||
- github.com/jcmturner/rpc [Apache License 2.0](https://github.com/jcmturner/rpc/blob/master/LICENSE)
|
||||
- github.com/jedib0t/go-pretty [MIT License](https://github.com/jedib0t/go-pretty/blob/main/LICENSE)
|
||||
- github.com/jeremywohl/flatten [MIT License](https://github.com/jeremywohl/flatten/blob/master/LICENSE)
|
||||
- github.com/jhump/protoreflect [Apache License 2.0](https://github.com/jhump/protoreflect/blob/master/LICENSE)
|
||||
- github.com/jmespath/go-jmespath [Apache License 2.0](https://github.com/jmespath/go-jmespath/blob/master/LICENSE)
|
||||
- github.com/jmhodges/clock [MIT License](https://github.com/jmhodges/clock/blob/main/LICENSE)
|
||||
- github.com/josharian/intern [MIT License](https://github.com/josharian/intern/blob/master/LICENSE.md)
|
||||
|
|
|
|||
3
go.mod
3
go.mod
|
|
@ -129,7 +129,6 @@ require (
|
|||
github.com/jackc/pgx/v4 v4.18.3
|
||||
github.com/jedib0t/go-pretty/v6 v6.6.5
|
||||
github.com/jeremywohl/flatten/v2 v2.0.0-20211013061545-07e4a09fb8e4
|
||||
github.com/jhump/protoreflect v1.16.0
|
||||
github.com/jmespath/go-jmespath v0.4.0
|
||||
github.com/karrick/godirwalk v1.16.2
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
||||
|
|
@ -307,7 +306,7 @@ require (
|
|||
github.com/bitly/go-hostpool v0.1.0 // indirect
|
||||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect
|
||||
github.com/brutella/dnssd v1.2.14 // indirect
|
||||
github.com/bufbuild/protocompile v0.10.0 // indirect
|
||||
github.com/bufbuild/protocompile v0.14.1
|
||||
github.com/caio/go-tdigest/v4 v4.0.1 // indirect
|
||||
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
|
||||
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
|
||||
|
|
|
|||
6
go.sum
6
go.sum
|
|
@ -976,8 +976,8 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
|
|||
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
|
||||
github.com/buengese/sgzip v0.1.1 h1:ry+T8l1mlmiWEsDrH/YHZnCVWD2S3im1KLsyO+8ZmTU=
|
||||
github.com/buengese/sgzip v0.1.1/go.mod h1:i5ZiXGF3fhV7gL1xaRRL1nDnmpNj0X061FQzOS8VMas=
|
||||
github.com/bufbuild/protocompile v0.10.0 h1:+jW/wnLMLxaCEG8AX9lD0bQ5v9h1RUiMKOBOT5ll9dM=
|
||||
github.com/bufbuild/protocompile v0.10.0/go.mod h1:G9qQIQo0xZ6Uyj6CMNz0saGmx2so+KONo8/KrELABiY=
|
||||
github.com/bufbuild/protocompile v0.14.1 h1:iA73zAf/fyljNjQKwYzUHD6AD4R8KMasmwa/FBatYVw=
|
||||
github.com/bufbuild/protocompile v0.14.1/go.mod h1:ppVdAIhbr2H8asPk6k4pY7t9zB1OU5DoEw9xY/FUi1c=
|
||||
github.com/caio/go-tdigest v3.1.0+incompatible h1:uoVMJ3Q5lXmVLCCqaMGHLBWnbGoN6Lpu7OAUPR60cds=
|
||||
github.com/caio/go-tdigest v3.1.0+incompatible/go.mod h1:sHQM/ubZStBUmF1WbB8FAm8q9GjDajLC5T7ydxE3JHI=
|
||||
github.com/caio/go-tdigest/v4 v4.0.1 h1:sx4ZxjmIEcLROUPs2j1BGe2WhOtHD6VSe6NNbBdKYh4=
|
||||
|
|
@ -1666,8 +1666,6 @@ github.com/jeremija/gosubmit v0.2.8 h1:mmSITBz9JxVtu8eqbN+zmmwX7Ij2RidQxhcwRVI4w
|
|||
github.com/jeremija/gosubmit v0.2.8/go.mod h1:Ui+HS073lCFREXBbdfrJzMB57OI/bdxTiLtrDHHhFPI=
|
||||
github.com/jeremywohl/flatten/v2 v2.0.0-20211013061545-07e4a09fb8e4 h1:eA9wi6ZzpIRobvXkn/S2Lyw1hr2pc71zxzOPl7Xjs4w=
|
||||
github.com/jeremywohl/flatten/v2 v2.0.0-20211013061545-07e4a09fb8e4/go.mod h1:s9g9Dfls+aEgucKXKW+i8MRZuLXT2MrD/WjYpMnWfOw=
|
||||
github.com/jhump/protoreflect v1.16.0 h1:54fZg+49widqXYQ0b+usAFHbMkBGR4PpXrsHc8+TBDg=
|
||||
github.com/jhump/protoreflect v1.16.0/go.mod h1:oYPd7nPvcBw/5wlDfm/AVmU9zH9BgqGCI469pGxfj/8=
|
||||
github.com/jlaffaye/ftp v0.2.0 h1:lXNvW7cBu7R/68bknOX3MrRIIqZ61zELs1P2RAiA3lg=
|
||||
github.com/jlaffaye/ftp v0.2.0/go.mod h1:is2Ds5qkhceAPy2xD6RLI6hmp/qysSoymZ+Z2uTnspI=
|
||||
github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package xpath
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
|
@ -10,13 +11,12 @@ import (
|
|||
"strings"
|
||||
|
||||
path "github.com/antchfx/xpath"
|
||||
"github.com/jhump/protoreflect/desc"
|
||||
"github.com/jhump/protoreflect/desc/protoparse"
|
||||
"github.com/bufbuild/protocompile"
|
||||
"github.com/srebhan/protobufquery"
|
||||
"google.golang.org/protobuf/encoding/protowire"
|
||||
"google.golang.org/protobuf/proto"
|
||||
"google.golang.org/protobuf/reflect/protodesc"
|
||||
"google.golang.org/protobuf/reflect/protoreflect"
|
||||
"google.golang.org/protobuf/reflect/protoregistry"
|
||||
"google.golang.org/protobuf/types/dynamicpb"
|
||||
|
||||
"github.com/influxdata/telegraf"
|
||||
|
|
@ -43,26 +43,30 @@ func (d *protobufDocument) Init() error {
|
|||
}
|
||||
|
||||
// Load the file descriptors from the given protocol-buffer definition
|
||||
parser := protoparse.Parser{
|
||||
ImportPaths: d.ImportPaths,
|
||||
InferImportPaths: true,
|
||||
ctx := context.Background()
|
||||
resolver := &protocompile.SourceResolver{ImportPaths: d.ImportPaths}
|
||||
compiler := &protocompile.Compiler{
|
||||
Resolver: protocompile.WithStandardImports(resolver),
|
||||
}
|
||||
fds, err := parser.ParseFiles(d.MessageFiles...)
|
||||
files, err := compiler.Compile(ctx, d.MessageFiles...)
|
||||
if err != nil {
|
||||
return fmt.Errorf("parsing protocol-buffer definition failed: %w", err)
|
||||
}
|
||||
if len(fds) < 1 {
|
||||
if len(files) < 1 {
|
||||
return errors.New("files do not contain a file descriptor")
|
||||
}
|
||||
|
||||
// Register all definitions in the file in the global registry
|
||||
registry, err := protodesc.NewFiles(desc.ToFileDescriptorSet(fds...))
|
||||
if err != nil {
|
||||
return fmt.Errorf("constructing registry failed: %w", err)
|
||||
var registry protoregistry.Files
|
||||
for _, f := range files {
|
||||
if err := registry.RegisterFile(f); err != nil {
|
||||
return fmt.Errorf("adding file %q to registry failed: %w", f.Path(), err)
|
||||
}
|
||||
}
|
||||
|
||||
d.unmarshaller = proto.UnmarshalOptions{
|
||||
RecursionLimit: protowire.DefaultRecursionLimit,
|
||||
Resolver: dynamicpb.NewTypes(registry),
|
||||
Resolver: dynamicpb.NewTypes(®istry),
|
||||
}
|
||||
|
||||
// Lookup given type in the loaded file descriptors
|
||||
|
|
|
|||
Loading…
Reference in New Issue