Community
Participate
Working Groups
ModuleFactoryDelegate lacks an API mechanism to allow the subclass to initialize properly. ModuleDelegate contains a mechanism, but ModuleFactoryDelegate does not. ModuleDelegate example: public final void initialize(IModule newModule) { this.module = newModule; initialize(); } /** * Initializes this module delegate. This method gives delegates a chance * to do their own initialization. * <p> * This method is called by the server core framework. * Clients should never call this method. * </p> */ public void initialize() { // do nothing } The initialization of a ModuleFactoryDelegate does not behave similarly. final void initialize(ModuleFactory newFactory, IProgressMonitor monitor) { factory = newFactory; } The designation of package-private and final indicate this to be intentional, but it seems to be a horrible oversight.
API, so unfortunately will have to defer to post 1.5.
I don't think the following change would break any API or binary compatability: In the ModuleFactoryDelegate class, Change: final void initialize(ModuleFactory newFactory, IProgressMonitor monitor) { factory = newFactory; } To: final void initialize(ModuleFactory newFactory, IProgressMonitor monitor) { factory = newFactory; initialize(); } public void initialize() { // do nothing } If I'm wrong please don't hesitate to correct me. Such a change would be beneficial to any extension implementer who requires a factory be set for their initialization routine.
Fix will be dropped along with the fix to 150181. *** This bug has been marked as a duplicate of 150181 ***
Closing old bugs.