For various purposes we need Netbinox in the ide cluster. Move it from its own website to NetBeans repository.
Created attachment 108083 [details]
Converting http://source.apidesign.org/hg/netbinox/rev/9faed4fbcbd8 into NetBeans Hg.
The patch is almost final, except the licenses. To get it into NetBeans Hg, I will have to use the standard NetBeans license and I'll change that before integration.
I have changed the code name base from org.apidesign.netbinox to org.netbeans.modules.netbinox. This could cause incompatibility problems to early adopters - in such case, we can keep the original name.
The project page is: http://wiki.netbeans.org/MylynViaOSGi
If core.netigso (w/ Felix) is already in platform and offers itself as an OSGi framework provider, what will cause the NB module system to load Netbinox instead?
(In reply to comment #2)
> If core.netigso (w/ Felix) is already in platform and offers itself as an OSGi
> framework provider,
Applications based on top of NetBeans Platform will use Felix.
> what will cause the NB module system to load Netbinox
The Netbinox framework is registered with position lower than Felix and thus takes precedence if included in the set of enabled modules.
Answering some questions from bug 198248:
JL02 - Felix and Equinox or Netbinox are implementation of the same specification. Thus supporting Equinox is not going to increase or complicate the infrastructure. From the point of view of NetBeans framework, they are the same. Only bundles running inside Felix or Equinox see some differences.
Is it overkill? Not really. It gives users of NetBeans Platform options (and they have them since 6.9), so there is nothing changing on that. The real change is JL01 - yes, we will start to use OSGi bundles in the NetBeans IDE.
JL03 - I don't want parts of Eclipse in the NetBeans Platform, thus I proposed to create ''osgi'' cluster originaly. Jesse convinced me to rather put netbinox and other mylyn bundles into ide cluster. I am find with that, although I still see value in having separated cluster. Probably topic for ear to ear discussion.
(In reply to comment #4)
> Jesse convinced me to rather put netbinox
> and other mylyn bundles into ide cluster.
More precisely - the Mylyn libraries, as well as the regular NB modules depending on them, were already in the ide cluster, so I just recommended (bug #197842 comment #3) that they stay where they are. Assuming that Mylyn cannot run on Felix (?), Netbinox consequently needs to be in either the ide or platform cluster, or in some newly created cluster which would be in all IDE-like cluster configs. I tend to agree with JL03 that the platform cluster is the most natural place for Netbinox (as well as the Eclipse RCP base libraries that Mylyn builds on), but the ide cluster works for this purpose too. Of course the division of modules/bundles into "clusters" is largely arbitrary and driven more by organizational than technical concerns.
Create branch netbinox-198275 in core-main repository and a builder was set up:
Time for more deeper review. Look at
which contains description of current state and see whether it is acceptable. The page provides also wider overview of related changes (e.g. bug 197842 and bug 198248). It is expected that all three issues will be integrated together. However, should there be any problem (probably performance related), it is possible to integrate just the Netbinox for benefit of applications building on top of NetBeans Platform.
Created attachment 109620 [details]
Profiler snapshot showing initialization of Netbinox on Windows (cold start)
Looks like the only concern is slower start. This has been mitigated to less than 10% regression and some other fixes are still in the queue (bug 199739 and bug 199740 and bug 200636), thus I'd like to ask again for permission to integrate next week.
The slowdown is 7%. Memory consumption was a bit up, but this is now fixed, the memory will be released as soon as somebody needs it: http://hg.netbeans.org/core-main/rev/d0d9ef56175f
Approved for integration, with request to also fix bug 200636, bug 199740 and bug 199739 before release 7.1 is done. I'll integrate tomorrow.
Merged as d14326fa3207