<?xml version="1.0"?>
<component id="assembler" parent="openejb">
    <super id="openejb">OpenEJB</super>
    <super id="assembler">Assembler</super>
    <image src="images/figure-openejb.gif"/>
    <name>Assembler</name>
    <definition>
        Instantiates and assembles a configured, runnable, 
        instance of the container system and all sub-components.
        Vendors needing extreme control over the construction of the container
        system can get it by implementing this class.  Doing this 
        comes with large amounts of resposibility and 
        complexity and should not be done without consulting 
        the OpenEJB team first.
    </definition>
    <responsibility>Instantiate and initialize all Container implementations</responsibility>    
    <responsibility>Instantiate and initialize TransactionService implementation</responsibility>    
    <responsibility>Instantiate and initialize SecurityService implementation</responsibility>    
    <responsibility>Instantiate and initialize all ResourceManagers</responsibility>    
    <responsibility>Load all deployed beans</responsibility>    
    <responsibility>Populate each deployment&#39;s JNDI ENC</responsibility>    
    <responsibility>Populate the IntraVM Server&#39;s global, client, JNDI namespace</responsibility>    
    <related-package>org.openejb.spi.Assembler</related-package>
    <image src=""/>
    <implementation id="classicassembler">Classic Assembler</implementation>
</component>

