use of org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator in project maven-plugins by apache.
the class EvaluateMojoTest method testEvaluateWithoutExpressionWithOutput.
/**
* Tests evaluation of an expression in interactive mode with a mock input handler, when "output" is set.
* @throws Exception in case of errors.
*/
public void testEvaluateWithoutExpressionWithOutput() throws Exception {
File testPom = new File(getBasedir(), "target/test-classes/unit/evaluate/plugin-config-output.xml");
EvaluateMojo mojo = (EvaluateMojo) lookupMojo("evaluate", testPom);
InputHandler inputHandler = mock(InputHandler.class);
when(inputHandler.readLine()).thenReturn("${project.artifactId}", "0");
ExpressionEvaluator expressionEvaluator = mock(PluginParameterExpressionEvaluator.class);
when(expressionEvaluator.evaluate(anyString())).thenReturn("My result");
setUpMojo(mojo, inputHandler, expressionEvaluator);
mojo.execute();
String ls = System.getProperty("line.separator");
assertTrue(interceptingLogger.infoLogs.contains(ls + "My result"));
assertFalse(interceptingLogger.warnLogs.isEmpty());
verify(expressionEvaluator).evaluate("${project.artifactId}");
verify(inputHandler, times(2)).readLine();
}
use of org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator in project maven-plugins by apache.
the class EvaluateMojoTest method testEvaluateWithoutExpression.
/**
* Tests evaluation of an expression in interactive mode with a mock input handler.
* @throws Exception in case of errors.
*/
public void testEvaluateWithoutExpression() throws Exception {
File testPom = new File(getBasedir(), "target/test-classes/unit/evaluate/plugin-config.xml");
EvaluateMojo mojo = (EvaluateMojo) lookupMojo("evaluate", testPom);
InputHandler inputHandler = mock(InputHandler.class);
when(inputHandler.readLine()).thenReturn("${project.groupId}", "0");
ExpressionEvaluator expressionEvaluator = mock(PluginParameterExpressionEvaluator.class);
when(expressionEvaluator.evaluate(anyString())).thenReturn("My result");
setUpMojo(mojo, inputHandler, expressionEvaluator);
mojo.execute();
String ls = System.getProperty("line.separator");
assertTrue(interceptingLogger.infoLogs.contains(ls + "My result"));
assertTrue(interceptingLogger.warnLogs.isEmpty());
verify(expressionEvaluator).evaluate("${project.groupId}");
verify(inputHandler, times(2)).readLine();
}
use of org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator in project intellij-plugins by JetBrains.
the class AdditionalSourceRootUtil method addByBuildHelper.
public static void addByBuildHelper(MojoExecution mojoExecution, MavenSession session, MavenProject project, Logger logger) {
final PlexusConfiguration parentConfiguration = new XmlPlexusConfiguration(mojoExecution.getConfiguration());
final PlexusConfiguration configuration = parentConfiguration.getChild("sources");
if (configuration == null) {
return;
}
final PlexusConfiguration[] sources = configuration.getChildren();
if (sources == null) {
return;
}
final ExpressionEvaluator expressionEvaluator = new PluginParameterExpressionEvaluator(session, mojoExecution);
for (PlexusConfiguration source : sources) {
addFile(evaluate(expressionEvaluator, source.getValue(), logger), project, expressionEvaluator);
}
}
use of org.codehaus.plexus.component.configurator.expression.ExpressionEvaluator in project maven-plugins by apache.
the class DefaultAssemblyArchiver method configureComponent.
private void configureComponent(final Object component, final Xpp3Dom config, final AssemblerConfigurationSource configSource) throws ComponentLookupException, ComponentConfigurationException {
final ComponentConfigurator configurator = container.lookup(ComponentConfigurator.class, "basic");
final ConfigurationListener listener = new DebugConfigurationListener(getLogger());
final ExpressionEvaluator expressionEvaluator = new AssemblyExpressionEvaluator(configSource);
final XmlPlexusConfiguration configuration = new XmlPlexusConfiguration(config);
final Object[] containerRealm = getContainerRealm();
/*
* NOTE: The signature of configureComponent() has changed in Maven 3.x, the reflection prevents a linkage error
* and makes the code work with both Maven 2 and 3.
*/
try {
final Method configureComponent = ComponentConfigurator.class.getMethod("configureComponent", Object.class, PlexusConfiguration.class, ExpressionEvaluator.class, (Class<?>) containerRealm[1], ConfigurationListener.class);
configureComponent.invoke(configurator, component, configuration, expressionEvaluator, containerRealm[0], listener);
} catch (final NoSuchMethodException e) {
throw new RuntimeException(e);
} catch (final IllegalAccessException e) {
throw new RuntimeException(e);
} catch (final InvocationTargetException e) {
if (e.getCause() instanceof ComponentConfigurationException) {
throw (ComponentConfigurationException) e.getCause();
}
throw new RuntimeException(e.getCause());
}
}
Aggregations