if( provider.getLogger().isTraceEnabled() ) { provider.getLogger().trace( "building part: " + key ); }
    DefaultPartsManager( DefaultProvider provider ) throws RemoteException, IOException, ControlException    {        m_provider = provider;                DefaultComponentHandler handler = provider.getDefaultComponentHandler();        ClassLoader classloader = handler.getClassLoader();        ComponentModel model = handler.getComponentModel();        String partition = model.getContextPath();        final String base = partition + Model.PARTITION_SEPARATOR;        PartReference[] references = model.getPartReferences();        m_keys = new String[ references.length ];        m_components = new ComponentHandler[ references.length ];                if( references.length > 0 )        {            if( provider.getLogger().isTraceEnabled() )            {                provider.getLogger().trace( "building internal parts" );            }        }                for( int i=0; i < references.length; i++ )        {            PartReference ref = references[i];            String key = ref.getKey();            m_keys[i] = key;            Directive part = ref.getDirective();            if( part instanceof ComponentDirective )            {                try                {                    ComponentDirective directive = (ComponentDirective) part;                    Classpath classpath = resolveClasspath( directive );                    ComponentController controller = handler.getComponentController();                    ComponentModel manager =                       controller.createComponentModel( classloader, classpath, base, directive, key );                    ComponentHandler component =                       controller.createDefaultComponentHandler( m_provider, classloader, manager, true );                    m_components[i] = component;                }                catch( Exception e )                {                    final String error =                       "Internal error while attempting to create a subsidiary part ["                      + key                      + "] in ["                      + m_provider                      + "]";                    throw new ControllerRuntimeException( error, e );                }            }            else            {                final String error =                   "Component directive class ["                   + part.getClass()                   + "] not recognized.";                throw new UnsupportedOperationException( error );            }        }    }