Where do I begin.
Reflection being used everywhere instead of proper method invocations
All of the 1.1 reflection calls were removed when we made the decision to no longer support 1.1. That doesn't mean that there still isn't reflection calls in the source.
Reflection is still necessary though as support for new APIs from newer JDKs are incorrporated into the JavaHelp releases. Specifically, if the user is on 1.2 then print page setup is handled differently depending on the OS your on; on 1.3 then drag n drop is enabled in Favorites; and on 1.4 the popup wheel mouse is enabled for popups.
Reflection is also necessary to enable the dynamic aquistion of icons, views, merge types, presentations, and help actions. Since all of these data types are stored as text in the HelpSet files the only way of extracting them is through reflection. The side benefit is that this allows for developer created icons, views, merge types, presentations and help actions which would extend the JavaHelp API beyond the standard.
Instead of being cleanly implemented on top of JAXP
JAXP wasn't added until JDK 1.5. As such we need some type of XML processing for prior versions. While the processor isn't the best in the world is does work. Of course this doesn't mean that we shouldn't use JAXP since it's in the JDK's where available, but it's a very low priority since what we have works..
There is also many bugs I have to workaround myself
If you file bugs with suggested fixes they will be fixed. Otherwise all the complaining in the world won't fix them. Goto http://bugs.sun.com/services/bugreport/index.jsp to file the bug. Your specific point on refresh will be looked at for the next release.
Back Button starts to work only after third page is visited
Interesting. I'll take a look at it. But once again filing a bug report with a suggested fix is the best way to get the problem fixed.
The JDIC integration is pathetic because the JDIC Webbrowser does not support same level of functionality
Search highlighting is based on the JEditorPane. In retrospect that was the incorrect implementation. In some future release I'd like to look into changing the search engine so that it isn't dependent on the JEditor pane but the text itself. What the native JDIC browser (or alternative 3rd party browsers) gives you is the better rendering and more extensive plugins. It's a trade off between better rendering versus search highlighting. Tough choice that hopefully sometime in the future we can address.
The sources that are available for download are incomplete
And will remain this way for the near future. This is consistent with sources in JDK. You don't get all the source of the JDK (though this is changing with the Mustang project on java.net). In particular the search engine will not be included as it's proprietary work. If we did open source JavaHelp the sources for the search would not be included but a jar file would be made available.
Part of the sources have been lost over the years
We have all the sources available internally. I'm not sure why this would be done in the first place (restoring), but I am realatively certian that it would be a violation of the license agreement. If there is something that has been removed then you need to speak up. I don't
believe we have removed any APIs, but you shouldn't be coding to anything other than the API. Implementations might have changed dued to tighting of the specification but no functionality was never reduced.
Long Long LONG time ago SUN promised to opensource the library
Last fall there was some consideration of JavaHelp being added to the JDK for mustang. That is no longer an option so open source is again a possibility. However, keep in mind that all changes would be reviewed for compatibility and consistency reasons by the original developers. Not all changes would be accepted. And as mentioned before the 1.1 relics were removed in 2.0.
Posted by: brinkley on August 30, 2005 at 12:09 PM