Container

Logging configurator

LoggingConfigurator resposibility is setting up the Log4j. It was introduced so that log system configufration were preformed in a way uniform with oterh parts of the system.

Functionality anticipated in the future:

  • runtime modification of logging configuration, most notably logger verbosities
  • management of loggers through textual interaction, and possibly JMX
  • customized log4j file appenders working over Ledge FileSystem

more

Logger factory

Logger factory plugs into the container using component customization mechanism, and provides components that declare a dependency on a DNA Logger (using a org.jcontainer.dna.Logger component parameter) with an initialized and ready to go logger instance.

more

Configuration factory

Configuration factory plugs into the container using component customization mechanism, and provides components that declare a dependency on a DNA Configuration (using a org.jcontainer.dna.Configuration component parameter) with an initialized configuration object.

The contents of the configuration object are read from an XML file, and verified against a RelaxNG schema.

Functionality anticipated in the future

  • Detecting of components that support runtime reconfiguration (possibly by extending org.jcontainer.dna.Configurableinterface.
  • Triggering of re-reading configuration from files on reconfigurable components
  • Programmatic setting of configuration of reconfigurable components.

more

Ledge container

LedgeContainer is a NanoContainer flawor, that uses the FileSystem component for loading the composition file, and parses it using Ledge XMLFrontEnd. It also pre-feeds the internal PicoContainer with objects required by various container subsystems, including a FileSystem, ClassLoader and confiuration directory path.

more

Command line interface

Allows running Ledge applications from the command line. After the continer is started and components are composed and configured, a designated component is looked up and method void main(String[]) is invoked on it. Note that it this mehtod should be non-static so it may take advantage of the actual component instance composed by the container.

more