services, take 1
Alan.Bateman at oracle.com
Wed Dec 21 02:51:30 PST 2011
On 20/12/2011 23:28, Hinkmond Wong wrote:
> For the Embedded market, it's not just about the registration and life
> cycle part of a container environment (such as OSGi on an embedded
> device) that is important, but also the minimal required runtime
> dynamic memory and static footprint size that is very important in
> being the smallest size possible (better even if it can dynamically
> grow and shrink depending on what services are running).
With Jigsaw then module class loaders will be created and GC'ed when
unreachable as you would expect. This includes modules that provide
implementations of service types. There is an implementation issue/bug
at moment that will prevent module loaders from being GC'ed but we're
sort that out.
In any case, I think part of the issue here is that the term "service"
means different things to different people. When you say "services are
running" then it makes me think of examples like a wireless service or
http service or something that involves its own threads or resources.
With the current effort here then the focus is on getting simple service
provider interfaces working with the module system. I've no doubt there
is there is a need to have dynamic services, service registries and
other things but not clear to me that all of this needs to be the core.
> When real-world embedded customers mention their desires for Jigsaw,
> it typically involves the ability to dynamically adjust the size of
> the underlying Java platform core libraries according to the needs of
> the runtime environment, possibly requiring the modules to be more
> dynamic and to minimize the platform's impact to device resources.
Clearly having a modularized platform will go a long way to meeting some
of these needs. However minimizing footprint at runtime or doing
space/performance tradeoffs based the available resources is going
require a lot of additional work.
More information about the jigsaw-dev