I'm porting a Struts 1 application to Struts 2.
In the Struts 1 application, there is a CommonAction class that inherits from org.apache.struts.actions.DispatchAction.
public class CommonAction extends DispatchAction  
The CommonAction class is also a super class of all the other Action classes in the application like
public class ManageProfilesAction extends CommonAction
Both the subclasses like ManageProfilesAction and the CommonAction have action methods that receive requests from the web. In case of ManageProfilesAction, the associated form bean is ManageProfilesForm while CommonAction has form bean named CommonForm.
Now using Struts 2 approach, I declared CommonAction and ManageProfilesAction like
public class CommonAction implements ServletRequestAware, ModelDriven<? extends CommonForm> {
  protected CommonForm form = new CommonForm();
  @Override
  public CommonForm getModel() {
    return form;
  }
}
public class ManageProfilesAction extends CommonAction {
  private ManageProfilesForm form = new ManageProfilesForm();
  @Override  
  public ManageProfilesForm getModel() {  
    return form;
  }
}
so that both CommonAction and its subclasses like ManageProfilesAction can have methods that receive web requests along with the associated model/form; CommonForm and ManageProfilesForm respectively.
However, I'm getting an compiler error:
public class CommonAction implements ServletRequestAware, ModelDriven<? extends CommonForm> {
required: class or interface without bounds
found:    ? extends CommonForm
Is it somehow workable with some Java generics magic or do I need to change the design thoroughly?