Mark,
When I refer to the application lifecycle I am specifically referring to the "start" phase of an application where dependencies need to be loaded and configured. ASDF is a lisp system with no specific support for java. Java 9 is coming and is scheduled to include new semantics for modules and that may carry with it a need for additional configuration semantics related to the loading of modules. I wasn't aware that ABCL already has an extensibility system for the lifecycle, such as SYS:*MODULE-PROVIDER-FUNCTIONS*. If that can be used to override the default places to search for the abcl-contrib packages, than great. I didn't notice it in the code I was looking at. The core problem that needs to be solved is making a reasonable deployment system for distributed single-jar (uberjar) applications. I don't see much need to go beyond that since quicklisp is included in the contrib library. In the current state of ABCL the contrib package won't load in an uberjar without executing system implementation code that carries with it no guarantees of future support. The same technology that will enable execution from an uberjar, will also make it possible to integrate ABCL into many java systems, with one notable exception of OSGI based systems. These lifecycle issues are something that should be dealt with at the system level, otherwise every ABCL application will need to provide it's own lifecycle code and applications will likely not be interoperable with each-other. When it comes time to deal with OSGI and Java 9 integration issues, the problem of loading contrib libraries, or other libraries, will only get worse if this isn't solved within ABCL. The Java logging systems is a good example of how bad it can get when everyone decides to make their own implementation of core system features. If all libraries end up implementing their own loading lifecycle implementations, it is extremely likely that they will conflict with each-other. ASDF is a good system, but it will be rendered useless in a java environment if no uniform method is provided to properly configure it. In the current state, uberjars produced with abcl and abcl-contrib do not properly configure asdf so the standard code for loading the contrib packages in such applications does not work.