[
https://issues.jboss.org/browse/CDI-504?page=com.atlassian.jira.plugin.sy...
]
Antoine Sabot-Durand commented on CDI-504:
------------------------------------------
I don't disagree with this idea but I have a few concerns or interrogations:
# As [~pmuir] stated Java have been including API for dealing with env and system property
for a long time. So from my point of view here (and correct me if I'm wrong), is that
the biggest interest of this feature would be typesafe injection of these config values
and thus conversion from string to requested type. I understand that we would only provide
a very limited set of supported type out of the box. But if we don't provide SPI to
allow third party to add their own converter it could become source of frustration and it
won't be in the "all is SPIable" spirit of CDI. So we open the door to
include a converter SPI in the spec. I'm worried about the out of scope and anti-diet
aspect of the spec here...
# In our discussion on Java SE boot in CDI-26 we have 2 {{init()}} method. One of them
allows to boot the container with a parameter map {{init(Map<?,?> params)}}. What
about these parameter from the config point of view? Are they only there to configure
specific aspect of the container or could they be used also for configuration purpose?
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
http://deltaspike.apache.org/documentation/configuration.html
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
(v6.3.11#6341)