[ https://issues.apache.org/jira/browse/JSPWIKI-155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13848657#comment-13848657 ]
Juan Pablo Santos Rodríguez commented on JSPWIKI-155: ----------------------------------------------------- Hi, giving up on extracting interfaces 'til JSPWIKI-303: having locally extracted them, o.a.w.api.engine ends up with a bunch of interfaces which a) are pretty likely to change because of JSPWIKI-303 and, b) the dependency between WikiEngine and it's managers is blurred, but not eliminated, by another in-between layer. So, no real benefits unless this extraction comes from API creation, just too much noise.. Making the relevant Managers not final should be enough for now to provide the extensibility means requested initially in this JIRA > Allow customisation of core classes via ClassUtil.getMappedObject > ----------------------------------------------------------------- > > Key: JSPWIKI-155 > URL: https://issues.apache.org/jira/browse/JSPWIKI-155 > Project: JSPWiki > Issue Type: Improvement > Components: Core & storage > Affects Versions: 2.6.0 > Reporter: Simon Kitching > Priority: Minor > Fix For: 2.10 > > > The WikiEngine class uses the ClassUtils.getMappedObject method to locate its > critical helper objects, rather than just call "new". > The intentention of this existing code is for people to be able to override > the core implementations with custom ones - with the warning that these core > objects do not have stable public apis, and may change in any release. > Unfortunately because (a) the returned object is cast to a concrete type, and > (b) many of these concrete types are declared "final" this facility is > actually almost useless. > It would be nice for the "final" to be removed from these classes, and from > their member methods so that getMappedObject becomes useful. Alternately, > interfaces could be created for the concrete classes that WikiEngine > currently uses, and all code modified to use the interface instead; the > existing implementations could then remain final. That approach is much more > intrusive though. > Note that in discussions on the email lists it has been suggested that the > "final" qualifier on these classes helps make jspwiki more secure. Personally > I'm not at all convinced that is true though. -- This message was sent by Atlassian JIRA (v6.1.4#6159)