Hi,

I just pushed some initial work for [1] and [2] in
branch generified-component-4930.

So far it doesn't look nice.

The added generics break somehow setMetaData/getMetaData methods - you can
see compilation errors in Component and Page classes. I think it is caused
by the anonymous instance of MetaDataKey ( new MetaDataKey<T>(type) {} ).

Also the visit*** methods do not compile at the moment, but even if we find
a way to fix their signature I think writing a visitor will become quite
cumbersome.
At the moment we have IVisitor
and org.apache.wicket.util.iterator.AbstractHierarchyIterator which do the
same job. The Iterator API is supposed to be simpler to write for the
users. Maybe we can drop  IVisitor ... ?!

I'd like to ask for help with this task. It is supposed to be the biggest
API break for Wicket 7.0. My current feeling is that the end result won't
be very pleasant for the user-land code.
For example the application code will have to do something like:

  WebMarkupContainer<Void> wmc = new WebMarkupContainer<>("id")

It is not that much but we have to decide whether we want it.
But first let's try to fix the compilation problems.


1. https://issues.apache.org/jira/browse/WICKET-4930 (Add generics to
o.a.w.Component)
2.
https://cwiki.apache.org/confluence/display/WICKET/Wicket+7.0+Roadmap#Wicket7.0Roadmap-Genericsfororg.apache.wicket.Component

Reply via email to