Overview
The scope of the NanoContainer project is to complement the PicoContainer project, providing it with additional functionality. The project comprises of several components which can either be adaptions in various guises of PicoContainer (eg composition by-class-name rather than by-class), or adaptations to external components bringing them closer to the Dependency Injection ideal - particularly Constructor Injection
The first and primary implementation language of NanoContainer is Java. NanoContainer has also a port for .NET.
NanoContainer
NanoContainer is a Dependency Injection container that manages trees of PicoContainers.
Container
Container adds the following features to PicoContainer:
- Classloader (classpath) management, including very programmable permissions.
- Class name based composition (via reflection)
- Multiple meta-data and script language support: XML, Groovy, Beanshell, Jython, Rhino (Javascript)
Multiple meta-data languages are supported because we officially stand against a single meta-data language. Of the script languages, XML is the most widely used and mature, but Groovy is most promising because of the its optional builder syntax.
If you're tired of writing as much XML as you write Java, give the GroovyMarkup based composition script a go.
Booter
Booter is a mechanism for launching a tree of NanoContainer components and containers.
Deployer
Deployer leverages on Commons VFS to deploy NanoContainer components and containers from archives and folders.
NanoContainer Components
NanoWar
NanoWar is a component that delivers NanoContainer to servlet container web-apps. It has works in conjunction with WebWork, WebWork2, Struts, Axis. It also has an homegrown simple web framework called NanoWeb.
Persistence
NanoContainer adapters to persistence libraries, such as Hibernate.
Remoting
A remoting framework in the NanoContainer style.
IoC
NanoContainer adapters other IoC frameworks, such as Avalon.
Tools
Some tools that are useful at build time rather than runtime.
Sandbox
Sandbox contains components that are still developing and not ready for release.
News
Dec 12, 2007
NanoContainer 1.1.2 and Nanowar 1.1.1 have been released. Downloads are available from Downloads.
