JaroslavTulach at 11:18, 16 April 2012 - 2012-04-16 11:18:13

←Older revision Revision as of 11:18, 16 April 2012
Line 1: Line 1:
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]]. Listen to our [[API Design Tips|podcast]]: [[Image:APITip-OSGiCon.mp3]].
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]]. Listen to our [[API Design Tips|podcast]]: [[Image:APITip-OSGiCon.mp3]].
 +
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].

JaroslavTulach at 11:17, 16 April 2012 - 2012-04-16 11:17:27

←Older revision Revision as of 11:17, 16 April 2012
Line 1: Line 1:
-
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]]. Listing to our [[API Design Tips|podcast]]: [[Image:APITip-OSGiCon.mp3]].
+
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]]. Listen to our [[API Design Tips|podcast]]: [[Image:APITip-OSGiCon.mp3]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].

JaroslavTulach at 11:16, 16 April 2012 - 2012-04-16 11:16:45

←Older revision Revision as of 11:16, 16 April 2012
Line 1: Line 1:
-
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]].
+
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]]. Listing to our [[API Design Tips|podcast]]: [[Image:APITip-OSGiCon.mp3]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].

JaroslavTulach at 20:23, 28 March 2012 - 2012-03-28 20:23:14

←Older revision Revision as of 20:23, 28 March 2012
Line 1: Line 1:
-
[[Netbinox]] just had its ''Experiences from building the fastest OSGi container in planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]].
+
[[Netbinox]] just had its ''Experiences from Building the Fastest OSGi Container on the Planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].

JaroslavTulach at 20:22, 28 March 2012 - 2012-03-28 20:22:04

←Older revision Revision as of 20:22, 28 March 2012
Line 1: Line 1:
 +
[[Netbinox]] just had its ''Experiences from building the fastest OSGi container in planet'' at [[OSGiCon]]. Find the slides at the dedicated [[OSGiCon|page]].
 +
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].

JaroslavTulach: /* The Differences */ - 2012-03-25 15:57:13

The Differences

←Older revision Revision as of 15:57, 25 March 2012
Line 30: Line 30:
The goal of the [[Netbinox]] project is to make sure that bundles running inside of the [[OSGi]] container see the exact execution [[environment]] as they are used to. In case you have a bundle and you are calling into the [[OSGi]] [[API]]s and you see some difference, don't hesitate to [https://netbeans.org/bugzilla/enter_bug.cgi?product=platform&component=Netigso report a bug].
The goal of the [[Netbinox]] project is to make sure that bundles running inside of the [[OSGi]] container see the exact execution [[environment]] as they are used to. In case you have a bundle and you are calling into the [[OSGi]] [[API]]s and you see some difference, don't hesitate to [https://netbeans.org/bugzilla/enter_bug.cgi?product=platform&component=Netigso report a bug].
-
The [[Netbinox]] system reconfigures classical [[Equinox]] container and replaces its bundle content access system. Instead of classical (and slow) ''ZipBundleFile'', there is enhanced ''JarBundleFile'' which knows how to communicate with [[NetBeans Runtime Container]] [[netbeans:StartupCache|start caches]]. This is the heart of the whole system that brings the [[performance]] improvements and makes the ''difference''. I write ''difference'' in both, positive and negative meaning. As the whole bundle access system is rewritten, there is non zero probability its behaviour is not [[Amoeba|completely same]] as the original one (see the previous paragraph what to do if you find a difference).
+
The [[Netbinox]] system reconfigures classical [[Equinox]] container and replaces its bundle content access system. Instead of classical (and slow) ''ZipBundleFile'', there is enhanced [http://hg.netbeans.org/main-golden/file/28b6c82b5f81/netbinox/src/org/netbeans/modules/netbinox/JarBundleFile.java JarBundleFile] which knows how to communicate with [[NetBeans Runtime Container]] [[netbeans:StartupCache|start caches]]. This is the heart of the whole system that brings the [[performance]] improvements and makes the ''difference''. I write ''difference'' in both, positive and negative meaning. As the whole bundle access system is rewritten, there is non zero probability its behaviour is not [[Amoeba|completely same]] as the original one (see the previous paragraph what to do if you find a difference).
The deviations observable from within the [[OSGi]] specification shall be limited to those related to bundle content access. However, there may be other type of deviations, as the [[OSGi]] specification does not prescribe the installation layout neither specific [[OSGi]] container extensions, nor it defines behavior of [[ThreadContextClassLoader]]. [[Equinox]] also provides its own extension [[NetbinoxHook|hooks]], not part of [[OSGi]] specification. [[NetbinoxHook]]s are as similar as possible, but are registered in slightly different [[NetbinoxHook|way]].
The deviations observable from within the [[OSGi]] specification shall be limited to those related to bundle content access. However, there may be other type of deviations, as the [[OSGi]] specification does not prescribe the installation layout neither specific [[OSGi]] container extensions, nor it defines behavior of [[ThreadContextClassLoader]]. [[Equinox]] also provides its own extension [[NetbinoxHook|hooks]], not part of [[OSGi]] specification. [[NetbinoxHook]]s are as similar as possible, but are registered in slightly different [[NetbinoxHook|way]].

JaroslavTulach: /* Resources */ - 2012-03-25 12:55:30

Resources

←Older revision Revision as of 12:55, 25 March 2012
Line 62: Line 62:
* Download [[NetBeans]] Java SE 7.1 or newer from [http://netbeans.org/ netbeans.org]
* Download [[NetBeans]] Java SE 7.1 or newer from [http://netbeans.org/ netbeans.org]
* History of alignment of [[Netigso|OSGi and NetBeans]]
* History of alignment of [[Netigso|OSGi and NetBeans]]
 +
* Presentation at [[OSGiCon]] 2012 with [[OSGiCon|slides]]
== [[Netbinox]] is Free! ==
== [[Netbinox]] is Free! ==

JaroslavTulach: /* Resources */ - 2012-03-25 12:53:57

Resources

←Older revision Revision as of 12:53, 25 March 2012
Line 60: Line 60:
* [http://hg.netbeans.org/main-golden/file/6d6ad73f5bcb/netbinox sources] inside [[NetBeans]] [[Mercurial]] repository (dual licensed under [[CDDL]] or [[GPLwithClassPathException]])
* [http://hg.netbeans.org/main-golden/file/6d6ad73f5bcb/netbinox sources] inside [[NetBeans]] [[Mercurial]] repository (dual licensed under [[CDDL]] or [[GPLwithClassPathException]])
:* Old [http://source.apidesign.org/hg/netbinox Repository] with [[GPL]]ed sources
:* Old [http://source.apidesign.org/hg/netbinox Repository] with [[GPL]]ed sources
-
* Download from [[http://netbeans.org/]
+
* Download [[NetBeans]] Java SE 7.1 or newer from [http://netbeans.org/ netbeans.org]
* History of alignment of [[Netigso|OSGi and NetBeans]]
* History of alignment of [[Netigso|OSGi and NetBeans]]

JaroslavTulach: /* The Differences */ - 2011-10-12 16:08:02

The Differences

←Older revision Revision as of 16:08, 12 October 2011
Line 32: Line 32:
The [[Netbinox]] system reconfigures classical [[Equinox]] container and replaces its bundle content access system. Instead of classical (and slow) ''ZipBundleFile'', there is enhanced ''JarBundleFile'' which knows how to communicate with [[NetBeans Runtime Container]] [[netbeans:StartupCache|start caches]]. This is the heart of the whole system that brings the [[performance]] improvements and makes the ''difference''. I write ''difference'' in both, positive and negative meaning. As the whole bundle access system is rewritten, there is non zero probability its behaviour is not [[Amoeba|completely same]] as the original one (see the previous paragraph what to do if you find a difference).
The [[Netbinox]] system reconfigures classical [[Equinox]] container and replaces its bundle content access system. Instead of classical (and slow) ''ZipBundleFile'', there is enhanced ''JarBundleFile'' which knows how to communicate with [[NetBeans Runtime Container]] [[netbeans:StartupCache|start caches]]. This is the heart of the whole system that brings the [[performance]] improvements and makes the ''difference''. I write ''difference'' in both, positive and negative meaning. As the whole bundle access system is rewritten, there is non zero probability its behaviour is not [[Amoeba|completely same]] as the original one (see the previous paragraph what to do if you find a difference).
-
The deviations observable from within the [[OSGi]] specification shall be limited to those related to bundle content access. However, they may be other type of deviations, as the [[OSGi]] specification does not prescribe the installation layout neither specific [[OSGi]] container extensions, nor it defines behavior of [[ThreadContextClassLoader]]. [[Equinox]] also provides its own extension [[NetbinoxHook|hooks]], not part of [[OSGi]] specification. [[NetbinoxHook]]s are as similar as possible, but are registered in slightly different [[NetbinoxHook|way]].
+
The deviations observable from within the [[OSGi]] specification shall be limited to those related to bundle content access. However, there may be other type of deviations, as the [[OSGi]] specification does not prescribe the installation layout neither specific [[OSGi]] container extensions, nor it defines behavior of [[ThreadContextClassLoader]]. [[Equinox]] also provides its own extension [[NetbinoxHook|hooks]], not part of [[OSGi]] specification. [[NetbinoxHook]]s are as similar as possible, but are registered in slightly different [[NetbinoxHook|way]].
-
The [[Netbinox]] system wraps the [[Equinox]] container and takes care of loading its classes. In order to support not just [[Equinox]], but also [[Felix]] (as part of [[Netigso]] project), we had to separate the [[OSGi]] [[API]] classes from the [[JAR]]s of those [[OSGi]] containers. Since version 1.16.8 the the ''modules/ext/equinox.jar'' used by [[Netbinox]] is identical to up stream ''org.eclipse.osgi_VERSION.vDATE.jar'' (it used to contain only [[Equinox]] specific classes before [https://netbeans.org/bugzilla/show_bug.cgi?id=195305 195305] was fixed). The common [[OSGi]] [[API]]s are in ''modules/ext/osgi.cmpn-4.2.jar'' and ''modules/ext/osgi.core-4.2.jar''. No problems related to this separation were reported so far.
+
The [[Netbinox]] system wraps the [[Equinox]] container and takes care of loading its classes. In order to support not just [[Equinox]], but also [[Felix]] (as part of [[Netigso]] project), we had to separate the [[OSGi]] [[API]] classes from the [[JAR]]s of those [[OSGi]] containers. Since version 1.16.8 the ''modules/ext/equinox.jar'' used by [[Netbinox]] is identical to up stream ''org.eclipse.osgi_VERSION.vDATE.jar'' (it used to contain only [[Equinox]] specific classes before [https://netbeans.org/bugzilla/show_bug.cgi?id=195305 195305] was fixed). The common [[OSGi]] [[API]]s are in ''modules/ext/osgi.cmpn-4.2.jar'' and ''modules/ext/osgi.core-4.2.jar''. No problems related to this separation were reported so far.
While using [[Equinox]] in the [[Eclipse]] way, one gets not only the [[OSGi]] container, but often also reuses the launcher. This launcher has some assumptions about configuration files, command line options, etc. None of this is reused by [[Netbinox]]. Rather the configuration files are standard [[NetBeans]] ones (although there are ways to read [[Eclipse]] like ones too). The [[Eclipse]] like command line options are not recognized, however most of the functionality remains accessible via system properties. For example, one cannot use ''-console'' to start the [[Equinox]]'s [[OSGi]] console, but one can still specify ''-J-Dosgi.console='' property to turn the same functionality on. There are ways to enhance the [[NetBeans]] and thus [[Netbinox]] launcher to understand new options, however that is a topic for another document.
While using [[Equinox]] in the [[Eclipse]] way, one gets not only the [[OSGi]] container, but often also reuses the launcher. This launcher has some assumptions about configuration files, command line options, etc. None of this is reused by [[Netbinox]]. Rather the configuration files are standard [[NetBeans]] ones (although there are ways to read [[Eclipse]] like ones too). The [[Eclipse]] like command line options are not recognized, however most of the functionality remains accessible via system properties. For example, one cannot use ''-console'' to start the [[Equinox]]'s [[OSGi]] console, but one can still specify ''-J-Dosgi.console='' property to turn the same functionality on. There are ways to enhance the [[NetBeans]] and thus [[Netbinox]] launcher to understand new options, however that is a topic for another document.

JaroslavTulach at 20:46, 4 October 2011 - 2011-10-04 20:46:21

←Older revision Revision as of 20:46, 4 October 2011
Line 1: Line 1:
-
Interested in [[Swing]] and [[Equinox]]? Then welcome to the world where these systems co-exist in peace! [[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
+
[[Netbinox]] is a synergy between [[NetBeans Platform]] and [[Equinox]]. With recent improvements to [[NetbinoxPerformance]], this project now represents the fastest [[OSGi]] container on the planet. Even faster than plain [[Equinox]].
Since [[NetBeans]] 7.1 the [[Netbinox]] is used by the [[NetBeans]] IDE to host parts of [[Mylyn]] (especially [[bugzilla]] and [[JIRA]] connectors).
Since [[NetBeans]] 7.1 the [[Netbinox]] is used by the [[NetBeans]] IDE to host parts of [[Mylyn]] (especially [[bugzilla]] and [[JIRA]] connectors).