This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 205998 - Ability for a feature to depend on another feature
Summary: Ability for a feature to depend on another feature
Status: RESOLVED FIXED
Alias: None
Product: platform
Classification: Unclassified
Component: Autoupdate (show other bugs)
Version: 7.2
Hardware: Other Linux
: P2 normal (vote)
Assignee: Jiri Rechtacek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-06 14:00 UTC by Jaroslav Tulach
Modified: 2013-01-09 09:52 UTC (History)
1 user (show)

See Also:
Issue Type: ENHANCEMENT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jaroslav Tulach 2011-12-06 14:00:46 UTC
Autoupdate API supports definitions of features:
http://bits.netbeans.org/dev/javadoc/org-netbeans-modules-autoupdate-services/org/netbeans/spi/autoupdate/UpdateItem.html#createFeature(java.lang.String, java.lang.String, java.util.Set, java.lang.String, java.lang.String, java.lang.String)
and ergonomics module reuses that heavily. Basically there is a single feature per cluster (lists all its AU visible modules).


The goal of the system is to always operate on cluster boundaries. A cluster (or at least all its AU visible modules) should either be turned on or off if manipulated by ergonomics.

This is hard to achieve in current system. Originally I tried to include all transitive closures into a single closure (e.g. JavaEE would contain its modules as well as all modules coming from JavaSE). This works OK, when turning modules on, but is heavily broken when disabling them (disabling JavaEE disables JavaSE too, see bug 187678).

However without having the transitive closure we get bug 177202 - e.g. not all AU visible modules in clusters were enabled. It is hard to find balance between the enabled/disable scenario.

However there seems to be a good solution: allow features to have dependencies on other features. Thus the JavaEE feature would have dependency on the JavaSE feature and the system would know that it needs to enable whole (AU visible) modules in JavaSE, but when disabling it would know that only modules from JavaEE feature (and potential features on top of it) need to be disabled (nothing from JavaSE).

Please allow dependencies between AU features.
Comment 1 Jiri Rechtacek 2013-01-09 09:52:10 UTC
Fixed in NB7.3 - together with issue 187678.