+ "].";
+ "] (" + subject.getName() + ").";
    Object createInstance( DefaultProvider provider ) throws ControlException, InvocationTargetException    {        DefaultComponentHandler handler = provider.getDefaultComponentHandler();        Class subject = handler.getImplementationClass();        Constructor constructor = getConstructor( subject );        Class parts = getPartsClass( subject );        Class contextInnerClass = getInnerClass( subject, "$Context" );        Class[] classes = constructor.getParameterTypes();        Object[] args = new Object[ classes.length ];                //        // A component class may declare any of the following constructor parameter        // types:        // 1. net.dpml.logging.Logger;        // 2. java.util.logging.Logger;        // 3. net.dpml.configuration.Configuration;        // 4. net.dpml.parameters.Parameters        // 5. #Context        // 6. #Parts        //                for( int i=0; i<classes.length; i++ )        {            Class c = classes[i];            if( java.util.logging.Logger.class.isAssignableFrom( c ) )            {                String spec = getPathForLogger( handler );                args[i] = java.util.logging.Logger.getLogger( spec );            }            else if( Logger.class.isAssignableFrom( c ) )            {                String spec = getPathForLogger( handler );                args[i] = new StandardLogger( spec );            }            else if( Parameters.class.isAssignableFrom( c ) )            {                args[i] = createParametersArgument( handler );            }            else if( Configuration.class.isAssignableFrom( c ) )            {                args[i] = createConfigurationArgument( handler );            }            else if( ( null != contextInnerClass ) && contextInnerClass.isAssignableFrom( c ) )            {                args[i] = createContextInvocationHandler( provider, contextInnerClass );            }            else if( parts.isAssignableFrom( c ) )            {                args[i] = createPartsInvocationHandler( handler, parts );            }            else            {                final String error =                   "Unable to resolve a solution for the component constructor parameter ["                  + c.getName()                  + "] at position " + i                   + " for the component ["                  + handler.getPath()                  + "].";                throw new ControllerException( error );            }        }        try        {            Object instance = constructor.newInstance( args );            return instance;        }        catch( InstantiationException e )        {            final String error =               "Instantiation failure within the component ["              + handler              + "].";            throw new ControllerException( error, e );        }        catch( IllegalAccessException e )        {            final String error =               "Cannot access component constructor in ["              + handler              + "].";            throw new ControllerException( error, e );        }    }