Introduce MessageReflector to enable alternative protobuf runtimes
Rehash of #132 since that PR ended up with some bad merge conflicts.
See https://github.com/bufbuild/protovalidate-java/issues/80
See https://github.com/open-toast/protokt/pull/402 for what the implementation looks like given this PR
Hey! We recently switched the CEL implementation, can you rebase. Also can you add a test target that runs the test against an alternate protobuf runtime?
I'll rebase, no problem.
As far as a test case, I had implemented the validation in protokt's repository itself. Would you like me to move that implementation here? Or pull in the protokt runtime as a test dependency?
I'm open to whatever strategy you all want here but don't want to do the scaffolding work if you decide to structure it differently. For now, this PR just includes what we'd need to implement protovalidate within protokt (which does support it right now, but only through conversion to DynamicMessage).
@srikrsna-buf I've rebased this PR on the current main branch and it passes all conformance tests. Working on porting that support to protokt so I can point to a working commit like in the PR description with this implementation.
@srikrsna-buf Okay, I've updated the link to the protokt PR, which contains instructions to run the conformance tests there (after publishing this branch to Maven local). The new implementation still fails some conformance tests due to differences in value conversion for the new CEL implementation but I'm slowly bringing that number down.
Hey, just checking in on this. Aside from the conflict, is this ready for review?
@chrispine yes, thank you! Open to alternative API suggestions as well - this is just one way to get interoperation with other runtimes to work.