[GLASSFISH-19400] Glassfish Domain Ondemand Starting Created: 04/Dec/12 Updated: 05/Dec/12
|Affects Version/s:||future release|
|Remaining Estimate:||Not Specified|
|Time Spent:||Not Specified|
|Original Estimate:||Not Specified|
This is a big feature and improvement on GF's kernel.
modules/ will be installed into felix cache.
Although there is a flag which indicates whether on-demand provisioning, on-demand true means is to only install minimize and reqired set of bundles, then using provisioning tool(eg. felix obr) is to provisioning bundles and dependencies dynamiclly.
Once implementing the feature, glassfish's starting performance and memory consuming will be improved greatly.
In order to attain the goal, we need to do some experiments and tasks.
|Comment by TangYong [ 04/Dec/12 ]|
I have a initial design about gf on-demand starting as following:
1 divide gf's modules into a set of subsystem
Just as the above showing, we define a subsystem called "webcontainer" which is made up of some modules under modules directory. We also define these modules's startlevel in order to start module correctly.
: modules which consist of subsystems of gf should also include "autostat" or other directories apart from "modules".
In order to define a subsystem of gf, we need to define which modules consist of the subsystem correctly.
Then, I start to say why we need to define such subsystems for glassfish and it can bring us which advantages.
Once glassfish started in an on-demand way which only install and start a minimize and reqired set of modules, we will face a problem that how we can activate other modules?
There are two ways:
: as for gf's container starting, hk2 layer along with osgi-adapter can resolve service dependencies and start dependent modules on-demand. However, for some scenes in which we must start some modules ahead of time, we need to define whether module starts in subsystem definition, this is why we define a property called "start=XXX",
<module startlevel="XX" start=false>org.glassfish.web.web-glue</module>
2) creating new command simliar "asadmin install-subsystem XXX"
2 defining which modules consist of minimize and reqired modules while starting domain
3 enhancing "asadmin deploy --type " in order to support subsystem activation