1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugin.internal;
20
21 import com.google.inject.Binder;
22 import com.google.inject.Module;
23 import com.google.inject.name.Names;
24 import org.apache.maven.api.model.Plugin;
25 import org.apache.maven.api.xml.XmlNode;
26 import org.apache.maven.internal.xml.XmlPlexusConfiguration;
27 import org.codehaus.plexus.configuration.PlexusConfiguration;
28
29 class PluginConfigurationModule implements Module {
30
31 private final Plugin plugin;
32
33 PluginConfigurationModule(Plugin plugin) {
34 this.plugin = plugin;
35 }
36
37 @Override
38 public void configure(Binder binder) {
39 if (plugin.getKey() != null) {
40 XmlNode configuration = plugin.getConfiguration();
41 if (configuration == null) {
42 configuration = XmlNode.newInstance("configuration");
43 }
44 binder.bind(XmlNode.class)
45 .annotatedWith(Names.named(plugin.getKey()))
46 .toInstance(configuration);
47 binder.bind(PlexusConfiguration.class)
48 .annotatedWith(Names.named(plugin.getKey()))
49 .toInstance(XmlPlexusConfiguration.toPlexusConfiguration(configuration));
50 }
51 }
52 }