Add Synchronous Plugin Interaction Support #551
Add Synchronous Plugin Interaction Support #551max-lancaster wants to merge 10 commits intopact-foundation:dev/pluginsfrom
Conversation
82da8f1 to
dedfecf
Compare
dedfecf to
12b9663
Compare
|
I've added a commit for some cleanups and things just to save on a bunch of review comments. I think the big design change that stands out is the two interfaces that have moved from the PactNet project to PactNet.Abstractions and made public instead of internal, and then making the port public also. Those are supposed to be implementation detail concerns so I'd prefer to keep them where they are. We should provide some kind of generic public API if needed for plugins if they need to start a mock server instead of PactNet starting it for them at the appropriate time (but I don't see at first hand why that should happen vs. PactNet taking care of it). |
These changes were introduced in order to support a public |
Ok, @adamrodger I took another look at this and I was able to revert the changes that made these details public and still keep my Grpc Extensions library working as intended, I think this should be ready to go now. Basically I didn't really need to inherit from |
@adamrodger I took your commit in the dev/plugins branch that you referenced in Issue #492 and made a "raw" plugin implementation that should work with the
PactNet.Extensions.Grpcpackage I created in PR #548.There may still be some design issues to consider. One thing to note is that Plugins can have both synchronous and asynchronous interactions so I made my builder specific to the synchronous use case so we can add an asynchronous version at some point.