Skip to content

Commit 3c5a887

Browse files
committed
Use enhanced Mojo-Configuration methods
1 parent 28c0022 commit 3c5a887

File tree

7 files changed

+75
-86
lines changed

7 files changed

+75
-86
lines changed

org.eclipse.m2e.apt.core/src/org/eclipse/m2e/apt/internal/AbstractAptConfiguratorDelegate.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,12 @@
5050

5151
import org.apache.maven.artifact.Artifact;
5252
import org.apache.maven.execution.MavenSession;
53-
import org.apache.maven.model.PluginExecution;
5453
import org.apache.maven.plugin.MojoExecution;
5554
import org.apache.maven.project.MavenProject;
5655

5756
import org.eclipse.m2e.apt.internal.utils.ProjectUtils;
5857
import org.eclipse.m2e.core.MavenPlugin;
58+
import org.eclipse.m2e.core.embedder.IMaven.IConfigurationParameter;
5959
import org.eclipse.m2e.core.project.IMavenProjectFacade;
6060
import org.eclipse.m2e.core.project.configurator.AbstractBuildParticipant;
6161
import org.eclipse.m2e.core.project.configurator.AbstractProjectConfigurator;
@@ -357,13 +357,12 @@ private IClasspathEntryDescriptor getEntryDescriptor(IClasspathDescriptor classp
357357

358358
protected <T> T getParameterValue(String parameter, Class<T> asType, MojoExecution mojoExecution)
359359
throws CoreException {
360-
PluginExecution execution = new PluginExecution();
361-
execution.setConfiguration(mojoExecution.getConfiguration());
362360
MavenProject mavenProject = mavenFacade.getMavenProject();
363361
return mavenFacade.createExecutionContext().execute(mavenProject, (context, monitor) -> {
364362
//TODO provide as part of the execution context? We then probably won't need the project parameter at all?
365-
return MavenPlugin.getMaven().getMojoParameterValue(mavenProject, parameter, asType, mojoExecution.getPlugin(),
366-
execution, mojoExecution.getGoal(), null);
363+
IConfigurationParameter configParameter = MavenPlugin.getMaven()
364+
.getMojoConfiguration(mavenProject, mojoExecution, null).get(parameter);
365+
return configParameter.exists() ? configParameter.as(asType) : null;
367366
}, null);
368367
}
369368

org.eclipse.m2e.apt.core/src/org/eclipse/m2e/apt/internal/compiler/MavenCompilerBuildParticipant.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@
3535

3636
import org.eclipse.m2e.core.MavenPlugin;
3737
import org.eclipse.m2e.core.embedder.IMaven;
38+
import org.eclipse.m2e.core.embedder.IMaven.IConfigurationElement;
39+
import org.eclipse.m2e.core.embedder.IMaven.IConfigurationParameter;
3840
import org.eclipse.m2e.core.project.IMavenProjectFacade;
3941
import org.eclipse.m2e.core.project.configurator.MojoExecutionBuildParticipant;
4042

@@ -64,12 +66,13 @@ public Set<IProject> build(int kind, IProgressMonitor monitor) throws Exception
6466
//TODO check delta / scan source for *.java
6567
IMavenProjectFacade mavenProjectFacade = getMavenProjectFacade();
6668
MavenProject project = mavenProjectFacade.getMavenProject();
67-
String compilerArgument = maven.getMojoParameterValue(project, mojoExecution, "compilerArgument", String.class,
68-
null);
69-
boolean isAnnotationProcessingEnabled = (compilerArgument == null) || !compilerArgument.contains("-proc:none");
69+
IConfigurationElement config = maven.getMojoConfiguration(project, mojoExecution, null);
70+
IConfigurationParameter compilerArgumentConfig = config.get("compilerArgument");
71+
boolean isAnnotationProcessingEnabled = !compilerArgumentConfig.exists()
72+
|| !compilerArgumentConfig.as(String.class).contains("-proc:none");
7073
if(isAnnotationProcessingEnabled) {
71-
String proc = maven.getMojoParameterValue(project, mojoExecution, PROC, String.class, null);
72-
isAnnotationProcessingEnabled = !"none".equals(proc);
74+
IConfigurationParameter procConfig = config.get(PROC);
75+
isAnnotationProcessingEnabled = !procConfig.exists() || !"none".equals(procConfig.as(String.class));
7376
}
7477
if(!isAnnotationProcessingEnabled) {
7578
return Collections.emptySet();
@@ -112,8 +115,7 @@ public Set<IProject> build(int kind, IProgressMonitor monitor) throws Exception
112115
}
113116

114117
// tell m2e builder to refresh generated files
115-
File generated = maven.getMojoParameterValue(project, getMojoExecution(),
116-
MavenCompilerJdtAptDelegate.OUTPUT_DIRECTORY_PARAMETER, File.class, null);
118+
File generated = maven.getMojoConfiguration(project, getMojoExecution(), null).get(MavenCompilerJdtAptDelegate.OUTPUT_DIRECTORY_PARAMETER).as(File.class);
117119
if(generated != null) {
118120
buildContext.refresh(generated);
119121
}

org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/IMaven.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ default <T> T getMojoParameterValue(MavenProject project, MojoExecution mojoExec
193193
/**
194194
* @since 1.4
195195
*/
196+
//TODO: deprecate that as well? Without 1:1 replacement? M2E code base does not use it anymore
196197
<T> T getMojoParameterValue(MavenProject project, String parameter, Class<T> type, Plugin plugin,
197198
ConfigurationContainer configuration, String goal, IProgressMonitor monitor) throws CoreException;
198199

org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/lifecyclemapping/LifecycleMappingFactory.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import java.util.List;
3939
import java.util.ListIterator;
4040
import java.util.Map;
41-
import java.util.Map.Entry;
4241
import java.util.Objects;
4342
import java.util.Set;
4443
import java.util.jar.JarFile;
@@ -83,6 +82,7 @@
8382

8483
import org.eclipse.m2e.core.MavenPlugin;
8584
import org.eclipse.m2e.core.embedder.IMaven;
85+
import org.eclipse.m2e.core.embedder.IMaven.IConfigurationParameter;
8686
import org.eclipse.m2e.core.internal.IMavenConstants;
8787
import org.eclipse.m2e.core.internal.MavenPluginActivator;
8888
import org.eclipse.m2e.core.internal.Messages;
@@ -705,14 +705,14 @@ private static List<PluginExecutionMetadata> applyParametersFilter(List<PluginEx
705705
private static boolean hasMatchingParameterValue(MavenProject mavenProject, MojoExecution execution,
706706
PluginExecutionMetadata metadata, IMaven maven, IProgressMonitor monitor) throws CoreException {
707707
Map<String, Object> parameters = metadata.getFilter().getParameters();
708-
for(Entry<String, Object> entry : parameters.entrySet()) {
709-
MojoExecution setupExecution = maven.setupMojoExecution(mavenProject, execution, monitor);
710-
String value = maven.getMojoParameterValue(mavenProject, setupExecution, entry.getKey(), String.class, monitor);
711-
if(!Objects.equals(entry.getValue(), value)) {
712-
return false;
713-
}
714-
}
715-
return true;
708+
MojoExecution setupExecution = maven.setupMojoExecution(mavenProject, execution, monitor);
709+
org.eclipse.m2e.core.embedder.IMaven.IConfigurationElement mojoConfig = maven.getMojoConfiguration(mavenProject,
710+
setupExecution, monitor);
711+
712+
return parameters.entrySet().stream().allMatch(e -> {
713+
IConfigurationParameter parameter = mojoConfig.get(e.getKey());
714+
return parameter.exists() && Objects.equals(parameter.as(String.class), e.getValue());
715+
});
716716
}
717717

718718
private static boolean isValidPluginExecutionMetadata(PluginExecutionMetadata metadata) {

org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/configurator/AbstractProjectConfigurator.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@
3434

3535
import org.codehaus.plexus.util.xml.Xpp3Dom;
3636

37-
import org.apache.maven.model.PluginExecution;
3837
import org.apache.maven.plugin.MojoExecution;
3938
import org.apache.maven.project.MavenProject;
4039

4140
import org.eclipse.m2e.core.MavenPlugin;
4241
import org.eclipse.m2e.core.embedder.IMaven;
42+
import org.eclipse.m2e.core.embedder.IMaven.IConfigurationParameter;
4343
import org.eclipse.m2e.core.embedder.IMavenConfiguration;
4444
import org.eclipse.m2e.core.internal.Messages;
4545
import org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory;
@@ -178,13 +178,15 @@ public static void addNature(IProject project, String natureId, int updateFlags,
178178

179179
/**
180180
* @since 1.4
181+
* @deprecated use {@link IMaven#getMojoConfiguration(MavenProject, MojoExecution, IProgressMonitor)} directly instead
182+
* and query the returned {@link org.eclipse.m2e.core.embedder.IMaven.IConfigurationElement}
181183
*/
184+
@Deprecated(forRemoval = true, since = "2.1")
182185
protected <T> T getParameterValue(MavenProject project, String parameter, Class<T> asType,
183186
MojoExecution mojoExecution, IProgressMonitor monitor) throws CoreException {
184-
PluginExecution execution = new PluginExecution();
185-
execution.setConfiguration(mojoExecution.getConfiguration());
186-
return maven.getMojoParameterValue(project, parameter, asType, mojoExecution.getPlugin(), execution,
187-
mojoExecution.getGoal(), monitor);
187+
IConfigurationParameter configParameter = maven.getMojoConfiguration(project, mojoExecution, monitor)
188+
.get(parameter);
189+
return configParameter.exists() ? configParameter.as(asType) : null;
188190
}
189191

190192
protected void assertHasNature(IProject project, String natureId) throws CoreException {

0 commit comments

Comments
 (0)