Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4️⃣ WireMock 4.0 #2329

Open
oleg-nenashev opened this issue Aug 28, 2023 · 2 comments
Open

4️⃣ WireMock 4.0 #2329

oleg-nenashev opened this issue Aug 28, 2023 · 2 comments
Labels

Comments

@oleg-nenashev
Copy link
Member

oleg-nenashev commented Aug 28, 2023

Proposal

A placeholder issue for WireMock 4.0. We want to release it within a year or so from WireMock 3.0. The scope is to be decided, and contributions are welcome!

Tentative scope

References

@oleg-nenashev oleg-nenashev pinned this issue Aug 28, 2023
@oleg-nenashev oleg-nenashev changed the title WireMock 4.0 4️⃣ WireMock 4.0 Aug 28, 2023
@btrautmann
Copy link

btrautmann commented Sep 8, 2023

Not sure how y'all like to prioritize, so feel free to ignore this, but having just gotten my feet wet with WireMock, I've found the biggest pain points to be in the extensions. I think there can be better documentation (I believe I saw an issue for this already Edit: I was thinking of this but it doesn't cover documentation, either inline or in the docs site), but the bigger issue is the API could use some work:

  • The existing builder pattern is not fully functional/flexible as pointed out in RequestPatternBuilder has ability to clear/replace underlying Collection types. #2298
  • I think there needs to be more builders available such as StubMappingBuilder for things like transforming StubMappings using StubMappingTransformer
  • The API as defined is not conducive to working with Kotlin. The biggest issue I see is that nullness annotations are not being used, so when implementing the library's Java types, you can run into sneaky runtime NPEs. One example is again in StubMappingTransformer, the transform method has no nullness annotations so it appears that StubMapping can be null (which I suspect is not true).

I point these things out specifically because a major version change presents the opportunity to make some of these changes in a more future-proof and desirable way, rather than attempting to maintain backwards compat.

@oleg-nenashev
Copy link
Member Author

@btrautmann Thank you! Indeed, the documentation for WireMock 3 is a big gap. Same, not all recent WireMock 2 features are documented. In the next weeks I will be working on closing some of these gaps, as much as my time allows. So any reports here ort in https://github.com/wiremock/wiremock.org/issues would be great.

The biggest issue I see is that nullness annotations are not being used, so when implementing the library's Java types, you can run into sneaky runtime NPEs

Indeed, something on my wishlist too. It does not need to be a major release, but we need to agree on a code style with other maintainers. I am used to setting package level annotations and enforcing nulness checks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Must Have
Development

No branches or pull requests

2 participants