The bootstrap process looks like this: - The bootstrapper creates the overall container context object - Core configuration is read from the classpath at "o.a.r.c.core-config.xml". - Each component called out in the core configuration is instantiated and put into the context. - The core config includes component callouts for the following: - AnnotatedClassDeployer, which sets up dependency injection for the container components. - CommandLineArgumentParser, which reads the command line and sets appropriate values into the context (mainly the profile directory). - MBeanRegistrar, which takes note of any manageable components placed in the context, and registers them with the MBeanContainer. - ShutdownListener, which acts as an MBean to allow shutdown of the container from a JMX console. - FileUtilityImpl, which provides file services to other components. - PropertiesFileReader, which reads all the '.properties' files in the profile directory, and puts them into the context under their file names. - This facility allows components to simply declare a Properties object and use the @Injected annotation to get their config files loaded. - ProfileConfigReader, which reads the profile configuration and sets up all the components in that config. - The profile configuration is subject to more editing and customization than the core config.