The default answer to this question is:
These modules are required in project.xml:
The JavaHelp extension library (jh.jar) is included, currently at version 1.1.3.
Note that some versions of Solaris ship with their own copy of this library in the location /usr/j2se/opt/javahelp/lib/jhall.jar. Since this JAR is included in the extensions path of the JRE on such machines, it would override the copy of jh.jar shipped with the NetBeans integration module. Normally this would be tolerable, but unfortunately the version shipped with Solaris is outdated and exhibits a number of serious bugs, especially in the handling of Japanese search text, which make the NetBeans help system unusable and which were fixed in subsequent official JavaHelp releases. (Note that search databases for JavaHelp help sets are often not cleanly usable in versions of JavaHelp other than the one in which they were built, since details of how HTML substring indices are calculated tend to be unstable between even minor releases.) To avoid such bugs, the NetBeans launcher checks for the existence of the abovementioned file, and if found, prepends the NetBeans jh.jar to the JVM's boot classpath. Other options were considered and rejected as unworkable.Question (deploy-nbm): Can you deploy an NBM via the Update Center? Answer: Yes. Question (deploy-shared): Do you need to be installed in the shared location only, or in the user directory only, or can your module be installed anywhere? Answer: Either. Question (deploy-packages): Are packages of your module made inaccessible by not declaring them public? Answer: Yes. Question (deploy-dependencies): What do other modules need to do to declare a dependency on this one, in addition to or instead of the normal module dependency declaration (e.g. tokens to require)? WARNING: Question with id="deploy-dependencies" has not been answered!
java.io.Filedirectly? Answer: It uses
InstalledFileLocatorto implement the
nbdocsURL protocol, permitting help sets or files to be loaded from disk files in the NetBeans installation, rather than from inside the module. This is necessary to make it easy for users to customize CSS stylesheets, for example. Question (resources-layer): Does your module provide own layer? Does it create any files or folders in it? What it is trying to communicate by that and with which components? Answer: The layer registers the
Helpsingleton, declares some XML DTDs and their processors, installs some menu items, etc. Question (resources-read): Does your module read any resources from layers? For what purpose? Answer: Not directly. It uses lookup to find help sets, while providing an XML processor to make this easier. It provides another XML processor permitting modules to add menu items, but does not directly interpret these. Question (resources-mask): Does your module mask/hide/override any resources provided by other modules in their layers? Answer: No. However the
usersguidemodule does mask the master help link menu item created by this module, replacing it with a similar one which jumps straight to the introductory page of the main NetBeans online help. Question (resources-preferences): Does your module uses preferences via Preferences API? Does your module use NbPreferences or or regular JDK Preferences ? Does it read, write or both ? Does it share preferences with other modules ? If so, then why ? WARNING: Question with id="resources-preferences" has not been answered!
org.openide.util.Lookupor any similar technology to find any components to communicate with? Which ones? Answer: It searches for instances of
javax.help.HelpSetin lookup, according to the API specification. Question (lookup-register): Do you register anything into lookup for other code to find? Answer: A singleton instance of
org.netbeans.api.javahelp.Helpis registered into lookup, according to the API specification. Modules may depend on its existence by requiring a token of the same name. An instance of a handler for the
nbdocsURL protocol (covered in the specification) is also registered. Question (lookup-remove): Do you remove entries of other modules from lookup? Answer: No.
System.getProperty) property? On a similar note, is there something interesting that you pass to
java.util.logging.Logger? Or do you observe what others log? Answer: No. Question (exec-component): Is execution of your code influenced by any (string) property of any of your components? Answer:
OpenIDE/mergeIntoMastercan be set as an attribute on a help set provided programmatically rather than with an XML file to customize one attribute. Such programmatic provision is rare but supported.
instanceof, work with
java.lang.Class, etc.)? Answer: No. Question (exec-threading): What threading models, if any, does your module adhere to? How the project behaves with respect to threading? WARNING: Question with id="exec-threading" has not been answered! Question (security-policy): Does your functionality require modifications to the standard policy file? WARNING: Question with id="security-policy" has not been answered! Question (security-grant): Does your code grant additional rights to some other code? WARNING: Question with id="security-grant" has not been answered!
java.awt.datatransfer.Transferable? Answer: N/A