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