👍👍😎😎 Luís Carlos Moreira da Costa OSGi, Eclipse, D and Android Evangelist Representative Eclipse Regional Communities Brazil OSGi Alliance Supporter OPAL SWT Widgets Committer RoboVM Committer http://eclipsebrazil.wordpress.com Em 11/03/2016 11:09, "Peter Kriens" <peter.kri...@aqute.biz> escreveu:
> I think the scope of OSGi is quite different from the scope of Jigsaw. > Jigsaw is oriented towards the VM’s modularity to minimize the footprint > and incrementally load the VM, OSGi is about how to architect an > application. > > Jigsaw OSGi Difference > module bundle Jigsaw modules are too closed for third parties that need > access to classes, e.g. a CDI provider > packages packages OSGi uses an advanced package wiring model with > extensive checks (uses constraints), Jigsaw’s is quite primitive and not > supporting multiple version > serviceloader service Jigsaw is about classes, OSGi is about (configured) > instances > > The major difference is that the Jigsaw modules are as minimal as it gets. > In OSGi, the bundle model enables the extender pattern. A pattern where a > bundle provides functionality based on another bundle’s content. Again, for > example a CDI like mechanism as OSGi’s Declarative Services. Similar for > services. Jigsaw provides the class loader hack they call Service Loader > that only provides access to a service class. OSGi provides access to > service instances, which is MUCH more modular, flexible, easier, and more > powerful in all aspects. > > The recent history in Jigsaw is excellent for OSGi because it clearly > demonstrates that what OSGi was blamed for is actually too often a problem > inherent in modularity. Modularity is about fencing your code. However, > fencing your code is trivial. Just like security, a perfectly secure device > is trivially to make. However, it is not useful because it won’t do > anything. If you do not provide ‘holes’ then nothing can get executed. In > Jigsaw they clearly were missing some of the necessary holes to make even > the most simple Java program work. A helper like CDI could not work because > it could not get access to the classes (and thus) annotations of another > module. (Might have changed since I looked.) In practice this is worse, > since any class loading hack in the Java universe (and that is a lot of > hacks) will fail with the current Jigsaw module design. We’ve been blamed > for these fails but it is clear that it is not OSGi. Jigsaw is now going > through the process where they have to design the required holes without > throwing away the benefits of modularity. However, it will also become > clear that many of the ubiquitous Java class loading hacks are > fundamentally problematic. It will be interestingly to see how long it will > take to come with a solution for this, and what that solution is going to > look like. Will they do it right (which breaks a LOT of existing code, as > we did) or buckle and throw away the benefits of modularity? Whatever > happens, I am pretty sure we will be vindicated > > Taking a step back. The essence of modularity is “not knowing”. The more > ignorant your code is to more places where it can live. It is all about > high cohesiveness and low coupling. If there is one thing I’m pretty > satisfied with in the OSGi is the fact that we’ve made that message quite > clear, the OSGi specifications are very alone at the top with respect to > these principles. The Java 9 dilemma you sketch is a perfect illustration > of these principles. The litmus test is really what happens when Java 9 (or > 10) will provide new useful features. Do you have to change your bundles to > leverage them or can they be leveraged without any effort on your side? I > think that bundles that leveraged the cohesion and coupling lessons we’ve > taught will give you a resounding yes. And I think Neil showed that once > Jigsaw provides useful features we can leverage those features (like the > extra protection level) without you having to change your code. > > I am not the official OSGi voice. However, I’ve been influential in the > past. I will do my utmost to leverage Java 9 (or 10, or 11, or 99) where it > makes sense. We are part of the Java eco system and we must leverage what > is out there as long as it makes technical sense. > > So what to do? Well,you asked a biased person :-) Use OSGi to the hilt, as > we show in OSGi enRoute. Write your code in a no-compromise way: OSGi > services everywhere. I am pretty confident then that you code will run on > Java 42 AND leverage the oh so cool features of Java 42 when possible. > > Kind regards, > > Peter Kriens > > > > > > > > > > > > > > > On 11 mrt. 2016, at 13:44, Milen Dyankov <milendyan...@gmail.com> wrote: > > Hello, > > can someone please point me to some resource that describes the plans for > OSGi / JSR 276 interoperability? > > I'm sorry if this has been already discussed here, I just joined the list > after trying without success to search through archives. I was also pretty > sure it would be easy to find this information online but it seams it's > either not available or I don't know how to find it. > > To put some more context to my question, at the moment I'm interested to > know how people who make decisions about OSGi's future, would describes the > general approach of building applications with Java9 and OSGi, rather than > discuss deep technical details. > > It seams to me that Penrose project is inactive (judging by source code > and mailing list activities) from around 2012/2013. Not that I'm very > familiar with it, but IIRC it was supposed to provide that > interoperability. From what I can tell, there is no much interest (if at > all) in this subject from the Java platform engineers. So, assuming Java 9 > will be released soon (let's just say 2017 is soon enough for long term > planning) what will be the recommended way to run OSGi on top of it? Would > one just continue to use classpath and ignore modulepath? If not, then are > there any plans for future versions of OSGi to allow to dynamically load > java modules? Will bundles need to be converted to java modules (perhaps > automatically behind the scenes) or vice versa? > > I would really appreciate it, if someone can share a vision of how would > one build applications with Java 9 and OSGi in the foreseeable future. > > Thank you, > Milen > > -- > http://about.me/milen > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev > > > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org > https://mail.osgi.org/mailman/listinfo/osgi-dev >
_______________________________________________ OSGi Developer Mail List osgi-dev@mail.osgi.org https://mail.osgi.org/mailman/listinfo/osgi-dev