Javadoc
Overide this method if you need a more specialized container tree.
Here is the default block of code for this -
DefaultPicoContainer appCtnr = new DefaultPicoContainer(new Guarding().wrap(new Caching()), makeLifecycleStrategy(), makeParentContainer(), makeAppComponentMonitor());
DefaultPicoContainer sessCtnr;
PicoContainer parentOfRequestContainer;
ThreadLocalLifecycleState sessionState;
Storing sessStoring;
if (stateless) {
sessionState = null;
sessStoring = null;
sessCtnr = null;
parentOfRequestContainer = appCtnr;
} else {
sessionState = new ThreadLocalLifecycleState();
sessStoring = new Storing();
sessCtnr = new DefaultPicoContainer(new Guarding().wrap(sessStoring), makeLifecycleStrategy(), appCtnr, makeSessionComponentMonitor());
sessCtnr.setLifecycleState(sessionState);
parentOfRequestContainer = sessCtnr;
}
Storing reqStoring = new Storing();
DefaultPicoContainer reqCtnr = new DefaultPicoContainer(new Guarding().wrap(addRequestBehaviors(reqStoring)), makeLifecycleStrategy(), sessCtnr, makeRequestComponentMonitor());
ThreadLocalLifecycleState requestState = new ThreadLocalLifecycleState();
reqCtnr.setLifecycleState(requestState);
return new ScopedContainers(appCtnr, sessCtnr, reqCtnr, sessStoring, reqStoring, sessionState, requestState);