Skip to content

Commit 7125782

Browse files
committed
Consider the settings files location in project configuration
Currently the settings files are not considered when grouping projects by there project configuration. As the settings files can have an impact they should be considered when grouping projects. Signed-off-by: Christoph Läubrich <[email protected]>
1 parent 6880fa1 commit 7125782

File tree

4 files changed

+58
-5
lines changed

4 files changed

+58
-5
lines changed

org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/embedder/MavenProperties.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,20 @@ public static void getCliProperties(CommandLine commandLine, BiConsumer<String,
237237
}
238238
}
239239

240+
public static String getAlternateGlobalToolchainsFile(CommandLine commandline) {
241+
if(commandline != null && commandline.hasOption(CLIManager.ALTERNATE_GLOBAL_TOOLCHAINS)) {
242+
return commandline.getOptionValue(CLIManager.ALTERNATE_USER_SETTINGS);
243+
}
244+
return null;
245+
}
246+
247+
public static String getAlternateUserToolchainsFile(CommandLine commandline) {
248+
if(commandline != null && commandline.hasOption(CLIManager.ALTERNATE_USER_TOOLCHAINS)) {
249+
return commandline.getOptionValue(CLIManager.ALTERNATE_USER_TOOLCHAINS);
250+
}
251+
return null;
252+
}
253+
240254
public static void getCliProperty(String property, BiConsumer<String, String> consumer) {
241255
int index = property.indexOf('=');
242256
if(index <= 0) {

org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/registry/MavenProjectFacade.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -664,6 +664,10 @@ private static final class MavenProjectConfiguration implements IProjectConfigur
664664

665665
private List<String> inactiveProfiles;
666666

667+
private String globalSettingsFile;
668+
669+
private String userSettingsFile;
670+
667671
private MavenProjectConfiguration(IProjectConfiguration baseConfiguration) {
668672
if(baseConfiguration == null) {
669673
//we should really forbid this but some test seem to pass null!
@@ -677,6 +681,8 @@ private MavenProjectConfiguration(IProjectConfiguration baseConfiguration) {
677681
this.profiles = baseConfiguration.getSelectedProfiles();
678682
this.activeProfiles = List.copyOf(baseConfiguration.getActiveProfileList());
679683
this.inactiveProfiles = List.copyOf(baseConfiguration.getInactiveProfileList());
684+
this.globalSettingsFile = baseConfiguration.getGlobalSettingsFile();
685+
this.userSettingsFile = baseConfiguration.getUserSettingsFile();
680686
}
681687

682688
@Override
@@ -735,6 +741,16 @@ public List<String> getInactiveProfileList() {
735741
return inactiveProfiles;
736742
}
737743

744+
@Override
745+
public String getGlobalSettingsFile() {
746+
return globalSettingsFile;
747+
}
748+
749+
@Override
750+
public String getUserSettingsFile() {
751+
return userSettingsFile;
752+
}
753+
738754
}
739755

740756

org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IProjectConfiguration.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ public interface IProjectConfiguration {
5454

5555
File getMultiModuleProjectDirectory();
5656

57+
String getGlobalSettingsFile();
58+
59+
String getUserSettingsFile();
60+
5761
/**
5862
* Computes a hashcode over the contents of the given configuration, that is a semantic hash-code that can be used in
5963
* combination of {@link #contentsEquals(IProjectConfiguration, IProjectConfiguration)}
@@ -65,7 +69,8 @@ public static int contentsHashCode(IProjectConfiguration configuration) {
6569
return Objects.hash(configuration.isResolveWorkspaceProjects(), configuration.getActiveProfileList(),
6670
configuration.getInactiveProfileList(), configuration.getLifecycleMappingId(),
6771
configuration.getConfigurationProperties(), configuration.getUserProperties(),
68-
configuration.getMultiModuleProjectDirectory());
72+
configuration.getMultiModuleProjectDirectory(), configuration.getGlobalSettingsFile(),
73+
configuration.getUserSettingsFile());
6974
}
7075

7176
public static boolean contentsEquals(IProjectConfiguration configuration, IProjectConfiguration other) {
@@ -81,7 +86,9 @@ public static boolean contentsEquals(IProjectConfiguration configuration, IProje
8186
&& Objects.equals(configuration.getInactiveProfileList(), other.getInactiveProfileList())
8287
&& Objects.equals(configuration.getConfigurationProperties(), other.getConfigurationProperties())
8388
&& Objects.equals(configuration.getUserProperties(), other.getUserProperties())
84-
&& Objects.equals(configuration.getMultiModuleProjectDirectory(), other.getMultiModuleProjectDirectory());
89+
&& Objects.equals(configuration.getMultiModuleProjectDirectory(), other.getMultiModuleProjectDirectory())
90+
&& Objects.equals(configuration.getGlobalSettingsFile(), other.getGlobalSettingsFile())
91+
&& Objects.equals(configuration.getUserSettingsFile(), other.getUserSettingsFile());
8592
}
8693

8794
}

org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/ResolverConfiguration.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ public class ResolverConfiguration implements Serializable, IProjectConfiguratio
6666

6767
private List<String> userInactiveProfiles;
6868

69+
private String globalSettingsFile;
70+
71+
private String userSettingsFile;
72+
6973
public ResolverConfiguration() {
7074
}
7175

@@ -79,9 +83,9 @@ public ResolverConfiguration(IProject project) {
7983
public ResolverConfiguration(IProjectConfiguration resolverConfiguration) {
8084
setLifecycleMappingId(resolverConfiguration.getLifecycleMappingId());
8185
setMultiModuleProjectDirectory(resolverConfiguration.getMultiModuleProjectDirectory());
82-
Properties properties2 = new Properties();
83-
properties2.putAll(resolverConfiguration.getConfigurationProperties());
84-
setProperties(properties2);
86+
Properties properties = new Properties();
87+
properties.putAll(resolverConfiguration.getConfigurationProperties());
88+
setProperties(properties);
8589
setResolveWorkspaceProjects(resolverConfiguration.isResolveWorkspaceProjects());
8690
setSelectedProfiles(resolverConfiguration.getSelectedProfiles());
8791
}
@@ -195,6 +199,16 @@ public File getMultiModuleProjectDirectory() {
195199
return multiModuleProjectDirectory;
196200
}
197201

202+
@Override
203+
public String getGlobalSettingsFile() {
204+
return globalSettingsFile;
205+
}
206+
207+
@Override
208+
public String getUserSettingsFile() {
209+
return userSettingsFile;
210+
}
211+
198212
/**
199213
* @param multiModuleProjectDirectory The multiModuleProjectDirectory to set.
200214
*/
@@ -209,6 +223,8 @@ public void setMultiModuleProjectDirectory(File multiModuleProjectDirectory) {
209223
userActiveProfiles = new ArrayList<>();
210224
userInactiveProfiles = new ArrayList<>();
211225
MavenProperties.getProfiles(commandLine, userActiveProfiles::add, userInactiveProfiles::add);
226+
globalSettingsFile = MavenProperties.getAlternateGlobalToolchainsFile(commandLine);
227+
userSettingsFile = MavenProperties.getAlternateUserToolchainsFile(commandLine);
212228
} catch(IOException | ParseException ex) {
213229
//can't use it then... :-(
214230
MavenPluginActivator.getDefault().getLog().error("can't read maven args from " + multiModuleProjectDirectory,

0 commit comments

Comments
 (0)