logger.debug( "ready" );
    public ComponentAdapter(       Logger logger, URI codebase, URI config, URI params, URI categories, Properties properties ) throws Exception    {        super( logger );                m_codebase = codebase;                try        {            ClassLoader classloader = Controller.class.getClassLoader();            URI uri = new URI( "@COMPOSITION-CONTROLLER-URI@" );            Repository repository = Transit.getInstance().getRepository();            Class c = repository.getPluginClass( classloader, uri );            InitialContext context = new InitialContext( logger );            Constructor constructor = c.getConstructor( new Class[]{ControllerContext.class} );            m_controller = (Controller) constructor.newInstance( new Object[]{context} );        }        catch( Exception e )        {            final String error =              "Internal error while attempting to establish the standard part controller.";            throw new ApplicationException( error, e );        }                Model model = m_controller.createModel( codebase );        m_component = m_controller.createComponent( model );                if( null != config )        {            if( model instanceof Configurable )            {                logger.info( "applying configuration: " + config );                try                {                    DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();                    URL url = config.toURL();                    InputStream input = url.openStream();                    Configuration configuration = builder.build( input );                    Configurable configurable = (Configurable) model;                    configurable.configure( configuration );                }                catch( Exception e )                {                    final String error =                       "Error loading configuration: " + config;                    throw new ApplicationException( error, e );                }            }            else            {                final String error =                   "Cannot apply a configuration to a non-configurable managment context."                  + "\nManagement Context: " + model.getClass().getName();                throw new ApplicationException( error );            }        }                if( null != params )        {            throw new UnsupportedOperationException( "Parameters not currently supported." );        }                if( model instanceof ComponentModelManager )        {            ComponentModelManager componentModel = (ComponentModelManager) model;            ContextModelManager cm = componentModel.getContextManager();            Enumeration names = properties.propertyNames();            while( names.hasMoreElements() )            {                String key = (String) names.nextElement();                String value = properties.getProperty( key );                EntryDescriptor entry = cm.getEntryDescriptor( key );                String classname = entry.getClassname();                ValueDirective v = new ValueDirective( classname, value );                cm.setEntryDirective( key, v );            }        }        else        {            final String error =               "Context class not recognized: "               + model.getClass().getName();            throw new UnsupportedOperationException( error );        }    }