We recommend that you follow the following guidelines when implement your own plugin:
After naming a module and deciding a package name for that module, Netbeans makes it very difficult to change these settings. Choose those names carefully. While Netbeans provides refactoring options, they don't always work. When they don't, you might have to change multiple files in the "nbproject" folder that is visible only in the "Files" window (as opposed to the "Projects" window).
For complex projects, split your code into modules, and combine them in a module suite. To decide what each module should contain, consider these guidelines:
When you create a module suite, make sure to copy the arguments "default_options" in the INTViewer/etc/intviewer.conf file to your platform.properties file.
Example:
The following options in the INTViewer/etc/intviewer.conf file
default_options="--branding intviewer -J-Dnetbeans.indexing.noFileRefresh=true -J-da -J-Xms600M -J-Xmx1G -J-Dcom.interactive.jcarnac.jogl.debug=true -J-Dsun.java2d.noddraw=true -J-Duser.language=en -J-Duser.country=US"
should appear as follow in the platform.properties file of your module suite:
run.args.extra=-J-Djogl.disable.opengles=true -J-Dnb.winsys.sliding.effects=true -J-Dsun.java2d.noddraw=true -J-Dnetbeans.indexing.noFileRefresh=true -J-da -J-Djava.util.logging.config.file=${progdir}/../intlogging.properties -J-Xms600M -J-Xmx3G -J-Duser.language=en -J-Duser.country=US
(root): the main classes, such as the main top component of the module
For large projects, there are benefits making service providers pluggable.
For example, if your module suite relies on a set of Unix script files installed locally, make the discovery and use of these files pluggable so that a Windows developer who cannot run these script files can execute most of the code without errors.
NetBeans has a built-in "lookup" mechanism that makes pluggable services easy to implement.