We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
For example:
@Command(name = "hassq", mixinStandardHelpOptions = true, subcommands = { StateCommand.class, AreaCommand.class, EntityCommand.class, EventCommand.class, ConfigCommand.class}, versionProvider = VersionProvider.class)
and then VersionProvider looks like this:
@Unremovable @Singleton public class VersionProvider implements IVersionProvider { @ConfigProperty(name = "quarkus.application.version") String version; @Override public String[] getVersion() throws Exception { return new String[] { version }; } }
This is picked up by quarkus picocli extension as we provided a picocli IFactory.
It shouldn't be necessary to specify @unremovable in this case should it ? Right now it is required though.
There are multiple other class references via annotation in picocli apis:
rg "Class<\? extends .*>.*default" src/main/java/picocli/CommandLine.java 3960: Class<? extends ITypeConverter<?>>[] converter() default {}; 4016: Class<? extends Iterable<String>> completionCandidates() default NoCompletionCandidates.class; 4126: Class<? extends IParameterConsumer> parameterConsumer() default NullParameterConsumer.class; 4131: Class<? extends IParameterPreprocessor> preprocessor() default NoOpParameterPreprocessor.class; 4262: Class<? extends ITypeConverter<?>>[] converter() default {}; 4313: Class<? extends Iterable<String>> completionCandidates() default NoCompletionCandidates.class; 4360: Class<? extends IParameterConsumer> parameterConsumer() default NullParameterConsumer.class; 4377: Class<? extends IParameterPreprocessor> preprocessor() default NoOpParameterPreprocessor.class; 4642: Class<? extends IVersionProvider> versionProvider() default NoVersionProvider.class; 4757: Class<? extends IDefaultValueProvider> defaultValueProvider() default NoDefaultProvider.class; 4876: Class<? extends IModelTransformer> modelTransformer() default NoOpModelTransformer.class; 4881: Class<? extends IParameterPreprocessor> preprocessor() default NoOpParameterPreprocessor.class;
and I expect all of these will today require @unremovable even though we should be able to detect that picocli will eventually need them.
Suggestion is thus that Arc gets instructed to leave these around if beans are of any of those types.
Anyone see an issue making this happen?
No response
The text was updated successfully, but these errors were encountered:
/cc @ebullient (picocli)
Sorry, something went wrong.
This is semi-related to #29379
Let me have a look
#38083 takes care of it
Merge pull request #38083 from geoand/#38077
37db001
Make Picocli version providers unremovable classes
Successfully merging a pull request may close this issue.
Description
For example:
and then VersionProvider looks like this:
This is picked up by quarkus picocli extension as we provided a picocli IFactory.
It shouldn't be necessary to specify @unremovable in this case should it ? Right now it is required though.
There are multiple other class references via annotation in picocli apis:
and I expect all of these will today require @unremovable even though we should be able to detect that picocli will eventually need them.
Suggestion is thus that Arc gets instructed to leave these around if beans are of any of those types.
Anyone see an issue making this happen?
Implementation ideas
No response
The text was updated successfully, but these errors were encountered: