NetBeans Feature on Demand ‘Birds of a Feather’ Session at JavaOne 2008
Earlier tonight, I attended the NetBeans ‘Feature on Demand’ Birds of a Feather Session at JavaOne 2008 presented by Sun’s Geertjan Wielenga and Jiri Rechtacek.
The session was an overview of a proposed new set of features known as ‘feature on demand’ within the NetBeans platform. Using this type of capability you could have a stub in place in NetBeans (or any Swing application built on top of the NetBeans Platform) that allows users to see menu items, project wizards, etc. without having to actually have the feature in place. When a menu item or wizard is accessed the first time, the feature downloads, installs, and the user continues on their way without interruption. This could lead to significantly smaller download sizes for NetBeans or Swing apps in general, especially those that target a variety of users, each whom might not need or want each feature that comes bundled with the initial download. This way you do not have to have half a dozen different packages or bundles for your software. You can provide one bundle.
One example the presenters discussed was creating a new Maven project. Even if you did not have the Maven module installed you could see Maven project types listed in the New Project Wizard. Once you click Next in the wizard, using a simple mechanism NetBeans knows that the activated feature is not installed and installs it as specified.
Geertjan discussed the module needed to make this possible, as well as showing a nice wizard you can use in a NetBeans Module or RCP project to add this type of capability to a module project. His live demo went well and showed how the feature worked - minus one tiny glitch which he quickly resolved (however, based on how some of the JavaOne demos went this was miniscule in comparison) . For anyone writing modules/plugins and RCP applications the feature was surprisingly easy to get working.
One point that came up in the discussion that followed was regarding network issues. A feature on demand capability is great, but what happens if the network is down, the Wi-Fi out of range, or some user is intentionally developing in NetBeans off-line? When a project wizard or menu item is activated and the feature on demand service literally cannot retrieve the module, what happens?
The presenters pointed out this is still a set of tools that are highly under construction so nothing is set in stone and can change if need be. Options discussed included some mechanism for gracefully alerting the user that the requested action cannot be performed and why it cannot. It was also discussed that it may also be good to allow the developer who defines if and when feature on demand works for a specific module to also be able to define some sort of custom error handling capability or notification that occurs when the feature on demand fails.
Check out the Feature on Demand discussion on the NetBeans Wiki : http://wiki.netbeans.org/FeatureOnDemand
Geertjan’s original blog posting, Introducing “Feature on Demand” : http://blogs.sun.com/geertjan/date/20080430
Tags: feature on demand, JavaOne, NetBeans, NetBeans load time, performance
May 9th, 2008 at 3:51 pm
[…] a quick follow-up to my previous post on the NetBeans Feature on Demand, I was thinking about how nice it would to further optimize the NetBeans startup time (via module […]