dev@glassfish.java.net

Module State

From: Chris Kasso <chris.kasso_at_oracle.com>
Date: Mon, 21 Nov 2011 17:53:06 -0800

After GF has been fired up and in a stable state I list the state
of all the modules. They tend to be in one of three states:

   NEW
   RESOLVED
   READY

The hk2 modules docs:

http://hk2.java.net/modules.html

has a section (Initialization of Modules) which describes the various
states a module may be in. My read of this documentation suggests
that a module would not be in the RESOLVED state for long:

RESOLVED : Once a module is in resolved state, all classloaders have
   been set up correctly and exported interfaces are available. The module
   will load the LifecyclePolicy (if any defined in the manifest file) and
   will invoke the LifecyclePolicy.start(Module) method. The system will
   then send the ModuleLifecycleListener.moduleStarted(Module) events to
   all potential listener and finally switch the module to READY.

It seems that RESOLVED is a short-lived state a module goes through
on the way to being READY. But in practice that doesn't seem to be
the case. I see modules essentially in that state indefinitely as if
they are waiting on some other event before they become READY.

What does it mean for a module to be RESOLVED but not READY? What
triggers it to finally become READY (or what triggered it to leave
the NEW state in the first place)?

Chris