The "One Laptop Per Child" project has a great device ready to ship, but there's no Java on there. Let's think about working together to put Java on OLPC!
Replies:
22 -
Pages:
2
[
12
| Next
]
Threads:
[
Previous
|
Next
]
The plans for
Glassfish V3
are available, and one of the goals for driving this version is modularisation. They have a choice: use a tried and tested modular system in the form of OSGi, or write their own. Guess which one they chose?
For some unknown reason, people still think that developing their own modularisation systems is a good idea. In this case, Glassfish has spun off
modsys.dev.java.net
as the modularisation layer that they'll be using (in version 0.1-SNAPSHOT at present).
What is it that makes people want to re-invent the wheel the whole time? Is it just because they don't know about alternative options? What makes people want to go out and develop
modules
or
plugin systems
(or even try and couple them to the
language
itself
).
It would be really great if -- regardless of choice of IDE or appserver -- there would be interchangable modules between the two. Currently, there's only one frontrunner which is likely to make that happen, and Glassfish can either decide to join in or not.
+1
There's sometimes a romance to being the "other guys" to an establishment (i.e. Apple/Mac), but you have to wonder in situations like this what the motivation is...
actually it has nothing to do with NIH, it is pragmatism.
OSGi is a bit too big/complex for what we want to achieve, modsys is under 50Kb of code (which help our startup time quite a bit). I have added many hooks so we can support all types of modules like OSGi and maven for instance therefore it's pretty much open to any modules type. There is little doubt we will support some OSGi bundles at some point. We will however probably never need a be a full OSGi container.
Another reason is that we want to have a model which will ideally transition nicely with the JSR277 work that will appear in Java SE 7. Hence most of the current modsys interfaces are loosely based on the current 277.
The idea is that modsys.dev.java.net (for the modules/class loading) part would mainly become obsolete once 277 materializes in the JDK and we don't want to have to change too much GlassFish when that happens. Having modules and class loaders natively handled by the JVM is probably a good thing, and that should be irrespective on how modules are defined.
Of course this is still very early and the GlassFish community may influence these choices.
> actually it has nothing to do with NIH, it is pragmatism.
Fair enough. It would be good to know what the pragmatic issues are.
> OSGi is a bit too big/complex for what we want to
> achieve, modsys is under 50Kb of code (which help our
> startup time quite a bit).
Interesting. But this is only 0.1-SNAPSHOT release, right? You surely haven't finished implementing it. I'd bet that by the time it goes 1.0 (and a real 1.0, none of this Groovy 1.0-RCrandom() crap for years) that it's significantly more than 50k.
OK, so that's 5x what your current version is, but it's been tested for some time. Similarly, ProSyst has an implementation (based on R3) which is 230k
> I have added many hooks so
> we can support all types of modules like OSGi and
> maven for instance therefore it's pretty much open to
> any modules type.
OSGi is more than modules, and to underestimate it means that you won't be able to support it later. It defines the way in which classloading occurs and the lifecycle, rather than statements like:
Module subsystem should notify modules when the module is loaded, started or stopped. A module can only be loaded once within a class loader, however, it can be started and stopped multiple times. Modules which are not used are elected by the module subsystem for garbage collection. Once a module is garbage collected, the runtime will stop the module and then flush its class loader. After this operation, the JVM will be in a state equivalent to the module never being loaded. If the module is re-loaded, it will use a new class loader, hence all static variable and initialization will need to be redone.
> We will however probably never need a be a full OSGi
> container.
To underestimate what you'll need is to ignore history. Eventually, you'll end up developing something and going through the same learning process as the OSGi did, except six years later.
> Another reason is that we want to have a model which
> will ideally transition nicely with the JSR277 work
> that will appear in Java SE 7. Hence most of the
> current modsys interfaces are loosely based on the
> current 277.
So, instead of using a well-defined, well-tested system to implement a modular architecture (and, it should be noted, one that every other competitor - IBM, BEA, JBoss already uses), you're basing it on a specification which hasn't even been implemented yet? I'm intrigued. Why that choice?
> The idea is that modsys.dev.java.net (for the
> modules/class loading) part would mainly become
> obsolete once 277 materializes in the JDK and we
> don't want to have to change too much GlassFish when
> that happens. Having modules and class loaders
> natively handled by the JVM is probably a good thing,
> and that should be irrespective on how modules are
> defined.
This is a circular argument. You're basing it on JSR277 because you want it to be based on JSR277, and then justify that by saying that this is a Good Thing and that this will involve less changes to base it on JSR277. You might as well argue it makes sense to implement it in Ruby, because then there will be less changes when you finally use Ruby.
> Of course this is still very early and the GlassFish
> community may influence these choices.
So if the GlassFish community didn't start this idea, who did?
There's another open source OSGi runtime called Concierge which weighs in at under 80k, although it is R3 only: http://concierge.sourceforge.net/
However this completely misses the point: Glassfish is an implementation of the Java
Enterprise Edition
specification. OSGi, particularly Concierge, is designed to run in resource constrained environments such as mobile phones or vehicle engine management systems as well as standard desktop and server systems.
Since when was Java EE concerned with resource-constrained environments or saving a few hundred K? Isn't it far more important to build a robust platform on a mature, well designed core?
> > actually it has nothing to do with NIH, it is
> pragmatism.
>
> Fair enough. It would be good to know what the
> pragmatic issues are.
>
> > OSGi is a bit too big/complex for what we want
> to
> > achieve, modsys is under 50Kb of code (which
> help our
> > startup time quite a bit).
>
> Interesting. But this is only 0.1-SNAPSHOT release,
> right? You surely haven't finished implementing it.
> I'd bet that by the time it goes 1.0 (and a real 1.0,
> none of this Groovy 1.0-RCrandom() crap for years)
> that it's significantly more than 50k.
actually I hope not. most of the innovation will come on top of the module/class loading which actually can run on OSGi runtime out of the box since I have put in place APIs to isolate from the actual module/class loading.
>
> Did you know that Knopflerfish tiny is 278k?
>
yes I know knopferfish, it is a very good OSGi distrib.
> http://www.knopflerfish.org/releases/2.0.1/knopflerfis > h_osgi_tiny_2.0.1.zip
>
> OK, so that's 5x what your current version is, but
> it's been tested for some time. Similarly, ProSyst
> has an implementation (based on R3) which is 230k
>
I have not heard such good things on R3 but that's beyond the point.
> http://www.prosyst.com/datasheets/mBS/mBS_CLDC_Edition > _1.0.pdf
>
> > I have added many hooks so
> > we can support all types of modules like OSGi
> and
> > maven for instance therefore it's pretty much
> open to
> > any modules type.
>
> OSGi is more than modules, and to underestimate it
> means that you won't be able to support it later. It
> defines the way in which classloading occurs and the
> lifecycle, rather than statements like:
right and that's some of the problems I have with it. I just want modules and class loaders, not much else.
>
>
> Module subsystem should notify modules when the
> module is loaded, started or stopped. A module can
> only be loaded once within a class loader, however,
> it can be started and stopped multiple times. Modules
> which are not used are elected by the module
> subsystem for garbage collection. Once a module is
> garbage collected, the runtime will stop the module
> and then flush its class loader. After this
> operation, the JVM will be in a state equivalent to
> the module never being loaded. If the module is
> re-loaded, it will use a new class loader, hence all
> static variable and initialization will need to be
> redone.
>
>
> > We will however probably never need a be a full
> OSGi
> > container.
>
> To underestimate what you'll need is to ignore
> history. Eventually, you'll end up developing
> something and going through the same learning process
> as the OSGi did, except six years later.
>
not me, I am planning to delegate that work to the 277 expert group really...
> > Another reason is that we want to have a model
> which
> > will ideally transition nicely with the JSR277
> work
> > that will appear in Java SE 7. Hence most of
> the
> > current modsys interfaces are loosely based on
> the
> > current 277.
>
> So, instead of using a well-defined, well-tested
> system to implement a modular architecture (and, it
> should be noted, one that every other competitor -
> IBM, BEA, JBoss already uses), you're basing it on a
> specification which hasn't even been implemented yet?
> I'm intrigued. Why that choice?
you are not intrigued, you just want to sell me the technology you like ! Note that I do like OSGi too, however, I think relying on the JDK is the way to go, I would love to see 277 and OSGi meet somewhere...
as for the well-defined well tested argument, it's only valid to a certain extent. For instance, applying blindly we would still be doing cobol and cics. Innovation is important. Again, don't try to drag this into a OSGi/277 fight I think it would be more constructive to try to influence both crowds to come to a mutually beneficial solution.
>
> > The idea is that modsys.dev.java.net (for the
> > modules/class loading) part would mainly become
> > obsolete once 277 materializes in the JDK and
> we
> > don't want to have to change too much GlassFish
> when
> > that happens. Having modules and class loaders
> > natively handled by the JVM is probably a good
> thing,
> > and that should be irrespective on how modules
> are
> > defined.
>
> This is a circular argument. You're basing it on
> JSR277 because you want it to be based on JSR277, and
> then justify that by saying that this is a Good Thing
> and that this will involve less changes to base it on
> JSR277. You might as well argue it makes sense to
> implement it in Ruby, because then there will be less
> changes when you finally use Ruby.
sure if I wanted to migrate to Ruby, I think starting by implementing some part of the system in Ruby would make perfect sense.
>
> > Of course this is still very early and the
> GlassFish
> > community may influence these choices.
>
> So if the GlassFish community didn't start this idea,
> who did?
I never said it did not start it, I just said things may still be changed.
> Interesting. But this is only 0.1-SNAPSHOT release,
> right? You surely haven't finished implementing it.
> I'd bet that by the time it goes 1.0 (and a real 1.0,
> none of this Groovy 1.0-RCrandom() crap for years)
> that it's significantly more than 50k.
> actually I hope not. most of the innovation will come on top of the module/class
> loading which actually can run on OSGi runtime out of the box since I have put in
> place APIs to isolate from the actual module/class loading.
I'm not sure what you're saying here. Does this mean that modsys will run on top of OSGi? If so, what exactly is the point? Or do you mean to imply that OSGi will run on top of modsys? The latter won't work -- OSGi *is* the module system, and so there's very little point of it sitting on top of another module system which it won't end up using.
> > OSGi is more than modules, and to underestimate it
> > means that you won't be able to support it later. It
> > defines the way in which classloading occurs and the
> > lifecycle, rather than statements like:
>
> right and that's some of the problems I have with it.
> I just want modules and class loaders, not much else.
Remember what modsys is being designed for, as an under-the-hood implementation of J2EE servers, which are not known for their memory or resource constraints.
Furthermore, there's a lot of things that you might find you need later, even if you think you'd only need modules. In any case, you're missing one of the main points, which is even if you don't need everything (and bear in mind that the KF tiny distribution only contains the mandatory layers, and not the optional ones e.g. DS) that it's still a well-tested and tried module system that's gone through all of the learning of finding the problems (e.g. what classes are visible from what classloaders, ensuring that bundles don't start up if there's an inconsistent set of dependencies, what happens in the case of multiple versions etc.) which would solve the problems modsys is trying to solve immediately.
In addition, Glassfish would then be able to use other OSGi bundles natively without any kind of mapping layer which may not achieve what you want.
> > To underestimate what you'll need is to ignore
> > history. Eventually, you'll end up developing
> > something and going through the same learning process
> > as the OSGi did, except six years later.
> >
>
> not me, I am planning to delegate that work to the 277 expert group really...
How can you start putting together modsys when there's only an early access draft which does a lot of hand-waving about how module lifecycle is supposed to work? Surely you're going to need to wait until there's some kind of draft (or TCK) before you can start putting this together? Or is this a Sun-funded project that will try to be a JSR277 reference implementation?
> > I'm intrigued. Why that choice?
>
> You are not intrigued, you just want to sell me the technology you like !
> Note that I do like OSGi too, however, I think relying on the JDK is the
> way to go, I would love to see 277 and OSGi meet somewhere...
I'm still intrigued as to why you would choose to base this on a non-existent specification with 0 years proof in the field, versus a solid specification that has been in use for over 6 years, unless this is the planned JSR277 reference implementation work. Regardless of which may be my preferred solution (and bear in mind there's nothing to prefer with 277 since it doesn't exist yet), I'm intrigued as to why anyone would risk basing it on a moving specification.
In any case, it's somewhat irrelevant; 277 *isn't* in the JVM yet, and there's no guarantee that it will be. Even when 277 is finished, there will still be many JVMs that don't have it installed, so the adoption is likely to be a long way down the road.
OSGi and JSR277 could come together; but the 277 JSR EG don't appear to want to come and join the OSGi party, preferring to stand alone in the corner with a lone drink and not talking to anyone.
Alex, why are you over-simplifying and trying to make this sounds it has to be an either/or between OSGi and JSR277? Really, this is not the point.
I would also be interested in knowing what *you* would gain from GlassFish using "straight" OSGi and I'd much rather have this discussion happen in the GlassFish community (forums, mailing lists, user experience meetings, ...). You are most welcome to join.
Thanks for the invite, but I'm already involved in too much community stuff at the moment.
What I would gain from GlassFish being OSGi? Right now, absolutely nothing. I don't use it. To that extent, it doesn't affect me personally or professionally at all.
However, all the other major players (WebSphere, Weblogic, JBoss) are already using or moving towards an OSGi runtime. That means if I wanted to target extensions for those servers at some point in the future, I'm going to target the technology that's got the biggest market share, which will be OSGi. Will I bother writing something that works for modsys? Not really; that's only one of the implementations and an equivalent size customer base to other open-source servers (which historically, have less money than their commercial counterparts).
In the IDE space, each one of IntelliJ/NetBeans/Eclipse has their own plugin system, and none of them are compatible. Wouldn't it be great to be able to use plugins/libraries interchangeably on these systems?
In the server world, the choice has already been made to use OSGi by the big commercial backers. I therefore wondered aloud what possible benefits there can be for GlassFish bucking the trend and doing its own thing.
As for the either/or for OSGi or 277 -- it's more like either/nor. There is no 277 at the moment; there are at least four implementations of OSGi already available (three of which are open source).
If you're going to build some kind of compatibility layer for 277, do it on *top* of OSGi. Don't take the simplistic view that OSGi is another layer that you can bind on top of another module system; OSGi *is* the module system.
I really think we're not having this (valuable) discussion in the right place and I still think you're looking at it only thru the OSGi lens (you did mention it 9 times in your last post! )
Glassfish to become modularised
At 9:55 AM on Mar 23, 2007, Alex Blewitt
wrote:
For some unknown reason, people still think that developing their own modularisation systems is a good idea. In this case, Glassfish has spun off modsys.dev.java.net as the modularisation layer that they'll be using (in version 0.1-SNAPSHOT at present).
What is it that makes people want to re-invent the wheel the whole time? Is it just because they don't know about alternative options? What makes people want to go out and develop modules or plugin systems (or even try and couple them to the language itself ).
It would be really great if -- regardless of choice of IDE or appserver -- there would be interchangable modules between the two. Currently, there's only one frontrunner which is likely to make that happen, and Glassfish can either decide to join in or not.
22 replies so far (
Post your own)
Re: Glassfish to become modularised
I like your style.Re: Glassfish to become modularised
+1There's sometimes a romance to being the "other guys" to an establishment (i.e. Apple/Mac), but you have to wonder in situations like this what the motivation is...
Re: Glassfish to become modularised
It's called "Not Invented Here".Steve
Re: Glassfish to become modularised
Yeah, but in that situation, the "other guys" are betterRe: Glassfish to become modularised
Re: Glassfish to become modularised
actually it has nothing to do with NIH, it is pragmatism.OSGi is a bit too big/complex for what we want to achieve, modsys is under 50Kb of code (which help our startup time quite a bit). I have added many hooks so we can support all types of modules like OSGi and maven for instance therefore it's pretty much open to any modules type. There is little doubt we will support some OSGi bundles at some point. We will however probably never need a be a full OSGi container.
Another reason is that we want to have a model which will ideally transition nicely with the JSR277 work that will appear in Java SE 7. Hence most of the current modsys interfaces are loosely based on the current 277.
The idea is that modsys.dev.java.net (for the modules/class loading) part would mainly become obsolete once 277 materializes in the JDK and we don't want to have to change too much GlassFish when that happens. Having modules and class loaders natively handled by the JVM is probably a good thing, and that should be irrespective on how modules are defined.
Of course this is still very early and the GlassFish community may influence these choices.
Re: Glassfish to become modularised
> actually it has nothing to do with NIH, it is pragmatism.Fair enough. It would be good to know what the pragmatic issues are.
> OSGi is a bit too big/complex for what we want to
> achieve, modsys is under 50Kb of code (which help our
> startup time quite a bit).
Interesting. But this is only 0.1-SNAPSHOT release, right? You surely haven't finished implementing it. I'd bet that by the time it goes 1.0 (and a real 1.0, none of this Groovy 1.0-RCrandom() crap for years) that it's significantly more than 50k.
Did you know that Knopflerfish tiny is 278k?
http://www.knopflerfish.org/releases/2.0.1/knopflerfish_osgi_tiny_2.0.1.zip
OK, so that's 5x what your current version is, but it's been tested for some time. Similarly, ProSyst has an implementation (based on R3) which is 230k
http://www.prosyst.com/datasheets/mBS/mBS_CLDC_Edition_1.0.pdf
> I have added many hooks so
> we can support all types of modules like OSGi and
> maven for instance therefore it's pretty much open to
> any modules type.
OSGi is more than modules, and to underestimate it means that you won't be able to support it later. It defines the way in which classloading occurs and the lifecycle, rather than statements like:
> We will however probably never need a be a full OSGi
> container.
To underestimate what you'll need is to ignore history. Eventually, you'll end up developing something and going through the same learning process as the OSGi did, except six years later.
> Another reason is that we want to have a model which
> will ideally transition nicely with the JSR277 work
> that will appear in Java SE 7. Hence most of the
> current modsys interfaces are loosely based on the
> current 277.
So, instead of using a well-defined, well-tested system to implement a modular architecture (and, it should be noted, one that every other competitor - IBM, BEA, JBoss already uses), you're basing it on a specification which hasn't even been implemented yet? I'm intrigued. Why that choice?
> The idea is that modsys.dev.java.net (for the
> modules/class loading) part would mainly become
> obsolete once 277 materializes in the JDK and we
> don't want to have to change too much GlassFish when
> that happens. Having modules and class loaders
> natively handled by the JVM is probably a good thing,
> and that should be irrespective on how modules are
> defined.
This is a circular argument. You're basing it on JSR277 because you want it to be based on JSR277, and then justify that by saying that this is a Good Thing and that this will involve less changes to base it on JSR277. You might as well argue it makes sense to implement it in Ruby, because then there will be less changes when you finally use Ruby.
> Of course this is still very early and the GlassFish
> community may influence these choices.
So if the GlassFish community didn't start this idea, who did?
Alex.
Re: Glassfish to become modularised
There's another open source OSGi runtime called Concierge which weighs in at under 80k, although it is R3 only: http://concierge.sourceforge.net/However this completely misses the point: Glassfish is an implementation of the Java Enterprise Edition specification. OSGi, particularly Concierge, is designed to run in resource constrained environments such as mobile phones or vehicle engine management systems as well as standard desktop and server systems.
Since when was Java EE concerned with resource-constrained environments or saving a few hundred K? Isn't it far more important to build a robust platform on a mature, well designed core?
Re: Glassfish to become modularised
> > actually it has nothing to do with NIH, it is> pragmatism.
>
> Fair enough. It would be good to know what the
> pragmatic issues are.
>
> > OSGi is a bit too big/complex for what we want
> to
> > achieve, modsys is under 50Kb of code (which
> help our
> > startup time quite a bit).
>
> Interesting. But this is only 0.1-SNAPSHOT release,
> right? You surely haven't finished implementing it.
> I'd bet that by the time it goes 1.0 (and a real 1.0,
> none of this Groovy 1.0-RCrandom() crap for years)
> that it's significantly more than 50k.
actually I hope not. most of the innovation will come on top of the module/class loading which actually can run on OSGi runtime out of the box since I have put in place APIs to isolate from the actual module/class loading.
>
> Did you know that Knopflerfish tiny is 278k?
>
yes I know knopferfish, it is a very good OSGi distrib.
> http://www.knopflerfish.org/releases/2.0.1/knopflerfis
> h_osgi_tiny_2.0.1.zip
>
> OK, so that's 5x what your current version is, but
> it's been tested for some time. Similarly, ProSyst
> has an implementation (based on R3) which is 230k
>
I have not heard such good things on R3 but that's beyond the point.
> http://www.prosyst.com/datasheets/mBS/mBS_CLDC_Edition
> _1.0.pdf
>
> > I have added many hooks so
> > we can support all types of modules like OSGi
> and
> > maven for instance therefore it's pretty much
> open to
> > any modules type.
>
> OSGi is more than modules, and to underestimate it
> means that you won't be able to support it later. It
> defines the way in which classloading occurs and the
> lifecycle, rather than statements like:
right and that's some of the problems I have with it. I just want modules and class loaders, not much else.
>
>
>
> > We will however probably never need a be a full
> OSGi
> > container.
>
> To underestimate what you'll need is to ignore
> history. Eventually, you'll end up developing
> something and going through the same learning process
> as the OSGi did, except six years later.
>
not me, I am planning to delegate that work to the 277 expert group really...
> > Another reason is that we want to have a model
> which
> > will ideally transition nicely with the JSR277
> work
> > that will appear in Java SE 7. Hence most of
> the
> > current modsys interfaces are loosely based on
> the
> > current 277.
>
> So, instead of using a well-defined, well-tested
> system to implement a modular architecture (and, it
> should be noted, one that every other competitor -
> IBM, BEA, JBoss already uses), you're basing it on a
> specification which hasn't even been implemented yet?
> I'm intrigued. Why that choice?
you are not intrigued, you just want to sell me the technology you like ! Note that I do like OSGi too, however, I think relying on the JDK is the way to go, I would love to see 277 and OSGi meet somewhere...
as for the well-defined well tested argument, it's only valid to a certain extent. For instance, applying blindly we would still be doing cobol and cics. Innovation is important. Again, don't try to drag this into a OSGi/277 fight I think it would be more constructive to try to influence both crowds to come to a mutually beneficial solution.
>
> > The idea is that modsys.dev.java.net (for the
> > modules/class loading) part would mainly become
> > obsolete once 277 materializes in the JDK and
> we
> > don't want to have to change too much GlassFish
> when
> > that happens. Having modules and class loaders
> > natively handled by the JVM is probably a good
> thing,
> > and that should be irrespective on how modules
> are
> > defined.
>
> This is a circular argument. You're basing it on
> JSR277 because you want it to be based on JSR277, and
> then justify that by saying that this is a Good Thing
> and that this will involve less changes to base it on
> JSR277. You might as well argue it makes sense to
> implement it in Ruby, because then there will be less
> changes when you finally use Ruby.
sure if I wanted to migrate to Ruby, I think starting by implementing some part of the system in Ruby would make perfect sense.
>
> > Of course this is still very early and the
> GlassFish
> > community may influence these choices.
>
> So if the GlassFish community didn't start this idea,
> who did?
I never said it did not start it, I just said things may still be changed.
Jerome
>
> Alex.
Re: Glassfish to become modularised
+1.Nice point, Alex!
Re: Glassfish to become modularised
> Interesting. But this is only 0.1-SNAPSHOT release,> right? You surely haven't finished implementing it.
> I'd bet that by the time it goes 1.0 (and a real 1.0,
> none of this Groovy 1.0-RCrandom() crap for years)
> that it's significantly more than 50k.
> actually I hope not. most of the innovation will come on top of the module/class
> loading which actually can run on OSGi runtime out of the box since I have put in
> place APIs to isolate from the actual module/class loading.
I'm not sure what you're saying here. Does this mean that modsys will run on top of OSGi? If so, what exactly is the point? Or do you mean to imply that OSGi will run on top of modsys? The latter won't work -- OSGi *is* the module system, and so there's very little point of it sitting on top of another module system which it won't end up using.
> > OSGi is more than modules, and to underestimate it
> > means that you won't be able to support it later. It
> > defines the way in which classloading occurs and the
> > lifecycle, rather than statements like:
>
> right and that's some of the problems I have with it.
> I just want modules and class loaders, not much else.
Remember what modsys is being designed for, as an under-the-hood implementation of J2EE servers, which are not known for their memory or resource constraints.
Furthermore, there's a lot of things that you might find you need later, even if you think you'd only need modules. In any case, you're missing one of the main points, which is even if you don't need everything (and bear in mind that the KF tiny distribution only contains the mandatory layers, and not the optional ones e.g. DS) that it's still a well-tested and tried module system that's gone through all of the learning of finding the problems (e.g. what classes are visible from what classloaders, ensuring that bundles don't start up if there's an inconsistent set of dependencies, what happens in the case of multiple versions etc.) which would solve the problems modsys is trying to solve immediately.
In addition, Glassfish would then be able to use other OSGi bundles natively without any kind of mapping layer which may not achieve what you want.
> > To underestimate what you'll need is to ignore
> > history. Eventually, you'll end up developing
> > something and going through the same learning process
> > as the OSGi did, except six years later.
> >
>
> not me, I am planning to delegate that work to the 277 expert group really...
How can you start putting together modsys when there's only an early access draft which does a lot of hand-waving about how module lifecycle is supposed to work? Surely you're going to need to wait until there's some kind of draft (or TCK) before you can start putting this together? Or is this a Sun-funded project that will try to be a JSR277 reference implementation?
> > I'm intrigued. Why that choice?
>
> You are not intrigued, you just want to sell me the technology you like !
> Note that I do like OSGi too, however, I think relying on the JDK is the
> way to go, I would love to see 277 and OSGi meet somewhere...
I'm still intrigued as to why you would choose to base this on a non-existent specification with 0 years proof in the field, versus a solid specification that has been in use for over 6 years, unless this is the planned JSR277 reference implementation work. Regardless of which may be my preferred solution (and bear in mind there's nothing to prefer with 277 since it doesn't exist yet), I'm intrigued as to why anyone would risk basing it on a moving specification.
In any case, it's somewhat irrelevant; 277 *isn't* in the JVM yet, and there's no guarantee that it will be. Even when 277 is finished, there will still be many JVMs that don't have it installed, so the adoption is likely to be a long way down the road.
OSGi and JSR277 could come together; but the 277 JSR EG don't appear to want to come and join the OSGi party, preferring to stand alone in the corner with a lone drink and not talking to anyone.
Alex.
Re: Glassfish to become modularised
Alex, why are you over-simplifying and trying to make this sounds it has to be an either/or between OSGi and JSR277? Really, this is not the point.I would also be interested in knowing what *you* would gain from GlassFish using "straight" OSGi and I'd much rather have this discussion happen in the GlassFish community (forums, mailing lists, user experience meetings, ...). You are most welcome to join.
Re: Glassfish to become modularised
Thanks for the invite, but I'm already involved in too much community stuff at the moment.What I would gain from GlassFish being OSGi? Right now, absolutely nothing. I don't use it. To that extent, it doesn't affect me personally or professionally at all.
However, all the other major players (WebSphere, Weblogic, JBoss) are already using or moving towards an OSGi runtime. That means if I wanted to target extensions for those servers at some point in the future, I'm going to target the technology that's got the biggest market share, which will be OSGi. Will I bother writing something that works for modsys? Not really; that's only one of the implementations and an equivalent size customer base to other open-source servers (which historically, have less money than their commercial counterparts).
In the IDE space, each one of IntelliJ/NetBeans/Eclipse has their own plugin system, and none of them are compatible. Wouldn't it be great to be able to use plugins/libraries interchangeably on these systems?
In the server world, the choice has already been made to use OSGi by the big commercial backers. I therefore wondered aloud what possible benefits there can be for GlassFish bucking the trend and doing its own thing.
As for the either/or for OSGi or 277 -- it's more like either/nor. There is no 277 at the moment; there are at least four implementations of OSGi already available (three of which are open source).
If you're going to build some kind of compatibility layer for 277, do it on *top* of OSGi. Don't take the simplistic view that OSGi is another layer that you can bind on top of another module system; OSGi *is* the module system.
Alex.
Re: Glassfish to become modularised
I really think we're not having this (valuable) discussion in the right place and I still think you're looking at it only thru the OSGi lens (you did mention it 9 times in your last post!