[cdi-dev] [JBoss JIRA] (CDI-504) have a standard CDI annotation like @ConfigProperty from deltapsike
Werner Keil (JIRA)
issues at jboss.org
Mon Feb 9 05:58:49 EST 2015
[ https://issues.jboss.org/browse/CDI-504?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13038710#comment-13038710 ]
Werner Keil commented on CDI-504:
I agree with Antonio and without quoting everything I said on the mailing list here again (since it'll be mirrored there too;-) ) unless CDI 2 can manage a very good level of modularization, e.g. keeping such annotations in a separate "config" module, this should be postponed till a dedicated Config JSR may be welcome. We saw some very similar stuff with the rejected JSR 357. Aspects of it, especially authentication and authorization (which the 357 proposal brushed via OAuth, OpenID, etc.) are reborn with a number-twister in JSR 375 now. And while it may not contribute a lot, the Social Connector solution Agorava that emerged from Seam Social and ideas we had for 357 will certainly be inspirational to 375 and when the time comes may use some of these standards, too;-) Same with Tamaya and a possible future Config JSR.
> have a standard CDI annotation like @ConfigProperty from deltapsike
> Key: CDI-504
> URL: https://issues.jboss.org/browse/CDI-504
> Project: CDI Specification Issues
> Issue Type: Feature Request
> Reporter: James Strachan
> Docker and containerisation is the new hotness; in the docker world images are static and the main way of injecting configuration is via environment variables - so that the same image can be reused but configured at run time with different configuration values. (Changing configuration files requires either different images to be created or using custom volumes which is less ideal in a containerized world).
> So IMHO CDI should provide a simple, natural way to allow environment variables (or system properties) to be easily injected via CDI.
> Delta Spike as a @ConfigProperty annotation which works very nicely
> you can specify a name, default value and use it on an @Inject to provide a value from env vars, system properties or provide a default.
> Given how core and useful this is - it feels like it should be part of the CDI specification; its one simple annotation.
> Currently deltaspike provides a way to configure different sources and whatnot which is cool; I'd be happy if CDI just had a simpler annotation which was only bound to env vars / system properties.
> e.g. @EnvironmentProperty(name = "envvar", deafultValue="cheese")
> There could be debate on whether env vars or system properties should win if the same name is used for both; in a dockerized world I'd prefer env vars to win but folks can always tinker with their run command to make sure they pass in env vars as system properties to work around this I guess.
This message was sent by Atlassian JIRA
More information about the cdi-dev