1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.configuration.internal;
20
21 import javax.inject.Named;
22 import javax.inject.Singleton;
23 import org.codehaus.plexus.classworlds.realm.ClassRealm;
24 import org.codehaus.plexus.component.configurator.BasicComponentConfigurator;
25 import org.codehaus.plexus.component.configurator.ComponentConfigurationException;
26 import org.codehaus.plexus.component.configurator.ConfigurationListener;
27 import org.codehaus.plexus.component.configurator.converters.special.ClassRealmConverter;
28 import org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator;
29 import org.codehaus.plexus.configuration.PlexusConfiguration;
30
31
32
33
34
35 @Singleton
36 @Named("enhanced")
37 public class EnhancedComponentConfigurator extends BasicComponentConfigurator {
38
39 public EnhancedComponentConfigurator() {
40 converterLookup = new EnhancedConverterLookup();
41 }
42
43 @Override
44 public void configureComponent(
45 final Object component,
46 final PlexusConfiguration configuration,
47 final ExpressionEvaluator evaluator,
48 final ClassRealm realm,
49 final ConfigurationListener listener)
50 throws ComponentConfigurationException {
51 try {
52 ClassRealmConverter.pushContextRealm(realm);
53
54 new EnhancedConfigurationConverter()
55 .processConfiguration(
56 converterLookup,
57 component,
58 realm,
59 configuration,
60 evaluator,
61 listener);
62 } finally {
63 ClassRealmConverter.popContextRealm();
64 }
65 }
66 }