I agree with Bob. One important difference we make in
Hudson is, rather than supporting 1000's of plugins by
keeping backward compatibilities with outdated technologies,
we take bold steps to move to new technologies and try to
keep the core more stable, scalable and modern. On the
process we may keep only few 100s of most important plugins
working better on the modern core. But that is sufficient
for enterprises with huge Hudson installation looking for a
much stabler CI server.
Having said that, we have a bug existing for more than a
year stating
Hudson does not work when deployed to
Glassfish 4.x. I'm wondering if this simple workaround
is stable enough to include it in the next bugfix release
and then take up the task of moving to the standard DI
implementation.
Now comes the question, which is the standard DI ?
I have very limited knowledge of CDI. Based on my
understanding (through limited reading)
CDI = DI + additional contexts. In
Hudson we use only DI (Guice). There are three DI
implementations (Guice, HK2, Spring). Weld which is a
CDI reference implementation, has its
own DI (I think it is simplified spring DI) and additional
contexts.
Theoretically I would think the DI in CDI would be
switchable (or play nicely with other DI). That means either
you use the default DI in Weld or plug in Guice/
HK2
as DI. Looks like Glassfish 4.x is making
HK2 work with CDI.
Do we need to have the full CDI (which is a superset)
bundled in Hudson or use only the subset but standard DI in
Hudson so that when we run on EE7 containers with CDI
already in place, the bundled DI becomes "inactive" allowing
the container CDI to take over (or am I just being ignorant
here
:-) ).
So which one is the standard DI -- HK2, Guice, Spring, Weld
DI?
- Winston