Skip to content

GH-877: Implement Plexus converter that can convert algebraic sealed types#881

Merged
ascopes merged 6 commits into
mainfrom
feature/GH-877-sealed-type-converter
Dec 3, 2025
Merged

GH-877: Implement Plexus converter that can convert algebraic sealed types#881
ascopes merged 6 commits into
mainfrom
feature/GH-877-sealed-type-converter

Conversation

@ascopes

@ascopes ascopes commented Nov 30, 2025

Copy link
Copy Markdown
Owner

The implementation of this will expect users to take a 'kind' attribute on the marker for a sealed type parameter which is used via reflection to determine the concrete implementation class. Right now, we have to provide this info on each implementation via an annotation such that we can influence the behaviour that will eventually be provided for us by GH-880.

This PR also changes the documentation and plugin interface so that users will pass in a list containing all plugins now rather than having four distinct parameters for the same information. The exisiting parameters have been kept and still work the same way, but are now undocumented in the plugin guide, and are marked as deprecated-for-removal in v5.0.0.

With this change, we will be able to use sealed implementation kinds for the parameter in future changes, further supporting GH-877.

@ascopes ascopes self-assigned this Nov 30, 2025
@ascopes ascopes added the chore General tech debt work. label Nov 30, 2025
@codecov

codecov Bot commented Nov 30, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.88%. Comparing base (8625d4c) to head (ada4e83).
⚠️ Report is 15 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #881      +/-   ##
==========================================
+ Coverage   92.66%   92.88%   +0.22%     
==========================================
  Files          71       72       +1     
  Lines        1975     2034      +59     
  Branches      127      131       +4     
==========================================
+ Hits         1830     1889      +59     
  Misses        104      104              
  Partials       41       41              
Files with missing lines Coverage Δ
...protobufmavenplugin/mojo/AbstractGenerateMojo.java 100.00% <100.00%> (ø)
...fmavenplugin/plexus/SealedTypePlexusConverter.java 100.00% <100.00%> (ø)
...ufmavenplugin/plugins/BinaryMavenProtocPlugin.java 100.00% <100.00%> (ø)
...tobufmavenplugin/plugins/BinaryPluginResolver.java 75.41% <100.00%> (ø)
...tobufmavenplugin/plugins/JvmMavenProtocPlugin.java 100.00% <100.00%> (ø)
...protobufmavenplugin/plugins/JvmPluginResolver.java 86.00% <ø> (ø)
.../protobufmavenplugin/plugins/PathProtocPlugin.java 50.00% <100.00%> (ø)
...obufmavenplugin/plugins/ProjectPluginResolver.java 100.00% <100.00%> (ø)
...opes/protobufmavenplugin/plugins/ProtocPlugin.java 100.00% <ø> (ø)
...s/protobufmavenplugin/plugins/UriProtocPlugin.java 12.50% <100.00%> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

…types

The implementation of this will expect users to take a 'kind' attribute
on the marker for a sealed type parameter which is used via reflection
to determine the concrete implementation class. Right now, we have to
provide this info on each implementation via an annotation such that
we can influence the behaviour that will eventually be provided for us
by GH-880.

This PR also changes the documentation and plugin interface so that users
will pass in a <plugins> list containing all plugins now rather than
having four distinct parameters for the same information. The exisiting
parameters have been kept and still work the same way, but are now
undocumented in the plugin guide, and are marked as deprecated-for-removal
in v5.0.0.

With this change, we will be able to use sealed implementation kinds for
the <protoc/> parameter in future changes, further supporting GH-877.
@ascopes
ascopes force-pushed the feature/GH-877-sealed-type-converter branch from ccd9889 to 584f0c7 Compare December 1, 2025 08:31
@ascopes
ascopes force-pushed the feature/GH-877-sealed-type-converter branch from bcae639 to 3cb4991 Compare December 2, 2025 08:37
@ascopes
ascopes merged commit 13e040a into main Dec 3, 2025
16 checks passed
@ascopes
ascopes deleted the feature/GH-877-sealed-type-converter branch December 3, 2025 13:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore General tech debt work.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant