-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Open
Labels
🧷 pinnedTells Stalebot not to close this issueTells Stalebot not to close this issue⚡ enhancementRequest for new functionalityRequest for new functionality
Description
Issues with the plugin system
- Concrete plugin implementations should not be in core. Plugins tend to use third party dependencies. We have to shade these in or suffer the dependency. Doing this in core make the core heavier then it needs to be.
- We can't list all available plugins (for CLI options).
- Third party plugins must be referenced by FQN while our own plugins have short names.
- Input validation should happen when parsing. Currently happens at plugin instantiation.
URLOutputStream
is an abomination.- No support for
Path
andFileSystem
APIs. - The use of standard out is implicit in the constructor arguments of the plugin.
Appendable
can't be closed but we trick around that inNiceAppendable
.OutputStream
argument must always be closed. Plugins however can't tell if Cucumber crashed and thus can't clean it up. This should be done by Cucumber (it created the stream so it owns it).
Solution
- Register and create plugins with SPI.
- Provide interfaces to create an instance of a plugin from specific arguments
- Remove
Appendable
as valid argument.
Something in that direction anyway.
Metadata
Metadata
Assignees
Labels
🧷 pinnedTells Stalebot not to close this issueTells Stalebot not to close this issue⚡ enhancementRequest for new functionalityRequest for new functionality