1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.invoker;
20
21 import javax.inject.Inject;
22 import javax.inject.Named;
23
24 import org.apache.maven.plugin.MojoExecutionException;
25 import org.apache.maven.project.MavenProject;
26 import org.codehaus.plexus.interpolation.InterpolationException;
27 import org.codehaus.plexus.interpolation.Interpolator;
28 import org.codehaus.plexus.interpolation.MapBasedValueSource;
29 import org.codehaus.plexus.interpolation.RegexBasedInterpolator;
30
31
32
33
34 @Named
35 class InterpolatorUtils {
36
37 private final Interpolator atInterpolator;
38
39
40
41
42
43
44 @Inject
45 InterpolatorUtils(MavenProject mavenProject) {
46 atInterpolator = new RegexBasedInterpolator("[@\\$]\\{(.+?)", "}");
47 atInterpolator.addValueSource(new MapBasedValueSource(mavenProject.getProperties()));
48 }
49
50 public String interpolateAtPattern(String value) throws MojoExecutionException {
51
52 if (value == null || !(value.contains("@{") || value.contains("${"))) {
53 return value;
54 }
55
56 try {
57 return atInterpolator.interpolate(value);
58 } catch (InterpolationException e) {
59 throw new MojoExecutionException(e.getMessage(), e);
60 }
61 }
62 }