Converting any application to be fit for a framework like NetBeans can be done on various levels. The integration can be shallow and use just a few integration points, or it can be more deep and tightly follow the paradigms of the NetBeans framework.
Level 0 - Launchable
- Enhance your manifest - with NetBeans tags so your JAR is recognized as NetBeans Module
- Use dependencies between modules - instance of plain Class-Path you can now how dependencies between modules
- Register a menu item - just register a menu item in layer file of your module which will invoke your original application
Level 1 - Integrated
- Integrate Visually - to get the benefits of NetBeans Window System aka docking framework
- Use NetBeans Visual APIs - the first ones are TopComponent and DialogDisplayer
- Change initialization code of your application - use ModuleInstall or declarative registrations through layer of META-INF/services
- this is usually a pretty minimal change, about 1%
Level 2 - Use Case Support
- Bind your application to other Modules - inspect the already existing functionality and try to use it
- Simplify Work Flow - to fit into the NetBeans framework paradigms
- Listen to Global Selection - listen what other modules do and update your state according to that
- this is a modest effort integration, however it pays off by reusing already existing functionality of NetBeans
Level 3 - Aligned
- Become good citizen - by exposing your own state to other modules (so they know what you are doing)
- Eliminate Duplicated Functionality - reuse navigator window, task list, progress API, etc. instead of having your own
- cooperate with other modules
- Adapt your application to NetBeans
- this kind of integration brings full benefits of the NetBeans Platform, however it also requires a greater effort to be reached
Read more from the platform presentation...