Hi all,

You probably noticed the the flood of emails regarding wicket-cdi these
last few days, which IMHO is good, because it means wicket-cdi is alive.
However, the current status is that the current (old) implementation of
wicket-cdi works badly with CDI 1.1 and the experimental (new) version is
broken in various ways. This is not good, as there is no good
implementation to use for CDI 1.1 users.

I've reviewed parts of the code in wicket-cdi-1.1 and noticed the following
problems:
- Featuritis: it supports all kinds of usecases nobody is every going to
use, such as: partly managed applications, per-conversation
auto-conversions, per-conversation propagation, package ignores, switched
to enable/disable injection on almost everyting.
- Buggy: auto-conversations are broken for everything but pages, injection
in anonymous classes was broken, probably more.
- Too much state: configuration options are copied all over the place,
objects with different lifecycles share state.
- Too much injection: everything is injected, which makes it almost
impossible to see what's linked to what.

I've also noticed some very nices features:
- CDI 1.1 support with conversations via the Weld API
- Management of the application and the Wicket-cdi configuration by cdi.
- Better implementation of NonContextual injection, using caches.
- Better testcases

The experimental code is in such a state that is it almost impossible to
cleanup. On the other hand, I do not want to loose some of the new
features. Therefore, I propose the following: restart the wicket-cdi-1.1
implementation, starting from the current wicket-cdi implementation and
reintroducing the features one-by-one. Also, I would like to remove some of
the existing features, like most of the toggle-switches, and I would like
to make the new CdiWebApplicationFactory mandatory to always have the
application be managed. All this will still be experimental in wicket 6,
but perhaps it can be made the default in 7. As we at Topicus are currently
starting the migration from JBoss 7.1 to WildFly 8, I can work on this 1 or
2 days a week.

Let me know what you think,
Emond

Reply via email to