package org.codehaus.mojo.ruby.plexus.component.configurator;
import org.codehaus.classworlds.ClassRealm;
import org.codehaus.mojo.ruby.plexus.component.configurator.converters.composite.RubyObjectWithFieldsConverter;
import org.codehaus.plexus.component.configurator.AbstractComponentConfigurator;
import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
import org.codehaus.plexus.component.configurator.ConfigurationListener;
import org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter;
import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
import org.codehaus.plexus.configuration.PlexusConfiguration;
public class RubyComponentConfigurator
extends AbstractComponentConfigurator
{
public void configureComponent( Object component, PlexusConfiguration configuration,
ExpressionEvaluator expressionEvaluator, ClassRealm containerRealm,
ConfigurationListener listener )
throws ComponentConfigurationException
{
converterLookup.registerConverter( new ClassRealmConverter( containerRealm ) );
// TODO: need the "MojoDescriptor" to load script configurations correctly
RubyObjectWithFieldsConverter converter = new RubyObjectWithFieldsConverter();
converter.processConfiguration( converterLookup, component, containerRealm.getClassLoader(), configuration,
expressionEvaluator, listener );
}
}