Skip to content

Commit 8512738

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 f81e6c5 commit 8512738

File tree

3 files changed

+49
-12
lines changed

3 files changed

+49
-12
lines changed

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: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ public class ResolverConfiguration implements Serializable, IProjectConfiguratio
6464

6565
private List<String> userInactiveProfiles;
6666

67+
private String globalSettingsFile;
68+
69+
private String userSettingsFile;
70+
6771
public ResolverConfiguration() {
6872
}
6973

@@ -77,9 +81,9 @@ public ResolverConfiguration(IProject project) {
7781
public ResolverConfiguration(IProjectConfiguration resolverConfiguration) {
7882
setLifecycleMappingId(resolverConfiguration.getLifecycleMappingId());
7983
setMultiModuleProjectDirectory(resolverConfiguration.getMultiModuleProjectDirectory());
80-
Properties properties2 = new Properties();
81-
properties2.putAll(resolverConfiguration.getConfigurationProperties());
82-
setProperties(properties2);
84+
Properties properties = new Properties();
85+
properties.putAll(resolverConfiguration.getConfigurationProperties());
86+
setProperties(properties);
8387
setResolveWorkspaceProjects(resolverConfiguration.isResolveWorkspaceProjects());
8488
setSelectedProfiles(resolverConfiguration.getSelectedProfiles());
8589
}
@@ -193,22 +197,32 @@ public File getMultiModuleProjectDirectory() {
193197
return multiModuleProjectDirectory;
194198
}
195199

200+
@Override
201+
public String getGlobalSettingsFile() {
202+
return globalSettingsFile;
203+
}
204+
205+
@Override
206+
public String getUserSettingsFile() {
207+
return userSettingsFile;
208+
}
209+
196210
/**
197211
* @param multiModuleProjectDirectory The multiModuleProjectDirectory to set.
198212
*/
199213
public void setMultiModuleProjectDirectory(File multiModuleProjectDirectory) {
200214
if(!Objects.equals(this.multiModuleProjectDirectory, multiModuleProjectDirectory)) {
201215
this.multiModuleProjectDirectory = multiModuleProjectDirectory;
202216
try {
203-
Optional<MavenProperties> mavenProps = MavenProperties.getMavenArgs(multiModuleProjectDirectory);
217+
Optional<MavenProperties> commandLine = MavenProperties.getMavenArgs(multiModuleProjectDirectory);
204218
Map<String, String> props = new LinkedHashMap<>();
219+
commandLine.ifPresent(p -> p.getCliProperties(props::put));
220+
userProperties = Collections.unmodifiableMap(props);
205221
userActiveProfiles = new ArrayList<>();
206222
userInactiveProfiles = new ArrayList<>();
207-
mavenProps.ifPresent(args -> {
208-
args.getCliProperties(props::put);
209-
args.getProfiles(userActiveProfiles::add, userInactiveProfiles::add);
210-
});
211-
userProperties = Collections.unmodifiableMap(props);
223+
commandLine.ifPresent(p -> p.getProfiles(userActiveProfiles::add, userInactiveProfiles::add));
224+
globalSettingsFile = commandLine.map(p -> p.getAlternateGlobalToolchainsFile()).orElse(null);
225+
userSettingsFile = commandLine.map(p -> p.getAlternateUserToolchainsFile()).orElse(null);
212226
} catch(IOException ex) {
213227
//can't use it then... :-(
214228
MavenPluginActivator.getDefault().getLog().error("can't read maven args from " + multiModuleProjectDirectory,
@@ -262,4 +276,4 @@ private static List<String> parseProfiles(String profilesAsText, boolean status)
262276
}
263277
return profiles;
264278
}
265-
}
279+
}

0 commit comments

Comments
 (0)