Skip to content

Commit 8aeeda6

Browse files
authored
Merge branch 'master' into feat-classpathentry-excluding
2 parents 5583529 + 53c0eaf commit 8aeeda6

28 files changed

+723
-349
lines changed

.github/workflows/junit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
done
4646
4747
- name: Publish Test Results
48-
uses: EnricoMi/publish-unit-test-result-action@e780361cd1fc1b1a170624547b3ffda64787d365 # v2.12.0
48+
uses: EnricoMi/publish-unit-test-result-action@8885e273a4343cd7b48eaa72428dea0c3067ea98 # v2.14.0
4949
with:
5050
commit: ${{ github.event.workflow_run.head_sha }}
5151
event_file: artifacts/Event File/event.json

.github/workflows/maven.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
with:
4646
run: mvn clean verify -Pits -Dtycho.p2.baselineMode=failCommon --batch-mode
4747
- name: Upload Test Results
48-
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
48+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
4949
with:
5050
name: test-results-${{ matrix.os }}
5151
if-no-files-found: error
@@ -56,7 +56,7 @@ jobs:
5656
runs-on: ubuntu-latest
5757
steps:
5858
- name: Upload
59-
uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0
59+
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
6060
with:
6161
name: Event File
6262
path: ${{ github.event_path }}

RELEASE_NOTES.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@
88

99
Updated the embedded Maven from version 3.9.5 to 3.9.6; [Maven 3.9.6 Release Notes](https://maven.apache.org/docs/3.9.6/release-notes.html).
1010

11+
### New project preference for automated Maven project configuration updates
12+
13+
Automatic configuration updates for Maven projects can now be disabled the in the project preferences.
14+
This allows to disable these updates individually per project and to store the setting in a preference-file under version control,
15+
which is useful for projects that require special workspace configuration that doesn't exactly match the configuration in the `pom.xml`.
16+
17+
![grafik](https://github.com/eclipse-m2e/m2e-core/assets/44067969/7d27ceda-5d13-4f0e-97f0-ff34c94d7493)
1118

1219
## 2.5.0
1320

org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Manifest-Version: 1.0
22
Bundle-ManifestVersion: 2
33
Bundle-SymbolicName: org.eclipse.m2e.core.ui;singleton:=true
4-
Bundle-Version: 2.0.7.qualifier
4+
Bundle-Version: 2.0.800.qualifier
55
Bundle-RequiredExecutionEnvironment: JavaSE-17
66
Bundle-Name: %Bundle-Name
77
Bundle-Vendor: %Bundle-Vendor
@@ -56,3 +56,4 @@ Service-Component: OSGI-INF/component.xml,
5656
OSGI-INF/org.eclipse.m2e.core.ui.internal.archetype.ArchetypeGenerator.xml,
5757
OSGI-INF/org.eclipse.m2e.core.ui.internal.archetype.ArchetypePlugin.xml
5858
Automatic-Module-Name: org.eclipse.m2e.core.ui
59+

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,7 @@ public class Messages extends NLS {
557557

558558
public static String MavenRepositoryView_update_one;
559559

560-
public static String MavenSettingsPreferencePage_userSettingsBrowseButton_text;
560+
public static String MavenSettingsPreferencePage_settingsBrowseButton_text;
561561

562562
public static String MavenSettingsPreferencePage_btnUpdate;
563563

@@ -569,6 +569,10 @@ public class Messages extends NLS {
569569

570570
public static String MavenSettingsPreferencePage_error_userSettingsParse;
571571

572+
public static String MavenSettingsPreferencePage_error_userToolchainsMissing;
573+
574+
public static String MavenSettingsPreferencePage_error_userToolchainsParse;
575+
572576
public static String MavenSettingsPreferencePage_job_indexing;
573577

574578
public static String MavenSettingsPreferencePage_job_updating;
@@ -603,6 +607,12 @@ public class Messages extends NLS {
603607

604608
public static String MavenWarningsPreferencePage_notCoveredMojoExecution;
605609

610+
public static String MavenSettingsPreferencePage_userToolchainslink1;
611+
612+
public static String MavenSettingsPreferencePage_userToolchainslink2;
613+
614+
public static String MavenSettingsPreferencePage_userToolchainslink_tooltip;
615+
606616
public static String MavenWarningsPreferencePage_versionDupParent;
607617

608618
public static String MavenWarningsPreferencePage_overridingManagedPreferences;
@@ -1025,8 +1035,6 @@ public class Messages extends NLS {
10251035

10261036
public static String MavenInstallationWizardPage_selectProjectTitle;
10271037

1028-
public static String MavenSettingsPreferencePage_globalSettingsBrowseButton_text;
1029-
10301038
public static String MavenProjectWizardArchetypeParametersPage_runInteractive;
10311039

10321040
static {

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/actions/MavenPropertyTester.java

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,18 @@
1818
import org.eclipse.core.resources.IFolder;
1919
import org.eclipse.core.resources.IProject;
2020
import org.eclipse.core.resources.IResource;
21+
import org.eclipse.core.runtime.Adapters;
2122
import org.eclipse.core.runtime.CoreException;
22-
import org.eclipse.core.runtime.IAdaptable;
2323
import org.eclipse.core.runtime.IPath;
2424
import org.eclipse.core.runtime.NullProgressMonitor;
2525
import org.eclipse.ui.IFileEditorInput;
2626

2727
import org.eclipse.m2e.core.MavenPlugin;
2828
import org.eclipse.m2e.core.embedder.ArtifactKey;
2929
import org.eclipse.m2e.core.internal.IMavenConstants;
30+
import org.eclipse.m2e.core.internal.project.ResolverConfigurationIO;
3031
import org.eclipse.m2e.core.project.IMavenProjectFacade;
3132
import org.eclipse.m2e.core.project.IMavenProjectRegistry;
32-
import org.eclipse.m2e.core.project.IProjectConfiguration;
3333
import org.eclipse.m2e.core.project.MavenProjectUtils;
3434

3535

@@ -60,19 +60,11 @@ public class MavenPropertyTester extends PropertyTester {
6060
@Override
6161
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
6262
if(WORKSPACE_RESULUTION_ENABLE.equals(property)) {
63-
boolean enableWorkspaceResolution = true;
64-
IAdaptable adaptable = (IAdaptable) receiver;
65-
66-
IProject projectAdapter = adaptable.getAdapter(IProject.class);
63+
IProject projectAdapter = Adapters.adapt(receiver, IProject.class);
6764
if(projectAdapter != null) {
68-
IMavenProjectRegistry projectManager = MavenPlugin.getMavenProjectRegistry();
69-
IMavenProjectFacade projectFacade = projectManager.create(projectAdapter, new NullProgressMonitor());
70-
if(projectFacade != null) {
71-
IProjectConfiguration configuration = projectFacade.getConfiguration();
72-
return !configuration.isResolveWorkspaceProjects();
73-
}
65+
return !ResolverConfigurationIO.isResolveWorkspaceProjects(projectAdapter);
7466
}
75-
return enableWorkspaceResolution;
67+
return true;
7668
}
7769

7870
if(HAS_ARTIFACT_KEY.equals(property)) {

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,19 +309,23 @@ MavenRepositoryView_reload_msg=This will reload the settings.xml and rebuild the
309309
MavenRepositoryView_reload_title=Reload settings.xml
310310
MavenRepositoryView_update_more=Update Indexes
311311
MavenRepositoryView_update_one=Update Index
312-
MavenSettingsPreferencePage_userSettingsBrowseButton_text=Browse...
312+
MavenSettingsPreferencePage_settingsBrowseButton_text=Browse...
313313
MavenSettingsPreferencePage_btnUpdate=Update Settings
314314
MavenSettingsPreferencePage_error_globalSettingsMissing=Global settings file doesn't exist
315315
MavenSettingsPreferencePage_error_userSettingsMissing=User settings file doesn't exist
316316
MavenSettingsPreferencePage_error_globalSettingsParse=Unable to parse global settings file {0}
317317
MavenSettingsPreferencePage_error_userSettingsParse=Unable to parse user settings file {0}
318-
MavenSettingsPreferencePage_globalSettingsBrowseButton_text=Browse...
318+
MavenSettingsPreferencePage_error_userToolchainsMissing=User toolchains file doesn't exist
319+
MavenSettingsPreferencePage_error_userToolchainsParse=Unable to parse user toolchains file {0}
319320
MavenSettingsPreferencePage_job_indexing=Indexing Local Repository...
320321
MavenSettingsPreferencePage_job_updating=Updating Maven settings
321322
MavenSettingsPreferencePage_lblLocal=Local Repository (From merged user and global settings)\:
322323
MavenSettingsPreferencePage_userSettingslink1=User &Settings\:
323324
MavenSettingsPreferencePage_userSettingslink2=User &Settings (<a href\="\#">open file</a>)\:
324325
MavenSettingsPreferencePage_userSettingslink_tooltip=Open editor for user settings
326+
MavenSettingsPreferencePage_userToolchainslink1=User &Toolchains\:
327+
MavenSettingsPreferencePage_userToolchainslink2=User &Toolchains (<a href\="\#">open file</a>)\:
328+
MavenSettingsPreferencePage_userToolchainslink_tooltip=Open editor for user toolchains
325329
MavenSettingsPreferencePage_globalSettingslink1=Global &Settings\:
326330
MavenSettingsPreferencePage_globalSettingslink2=Global &Settings (<a href\="\#">open file</a>)\:
327331
MavenSettingsPreferencePage_globalSettingslink_tooltip=Open editor for global settings

org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/MavenProjectPreferencePage.java

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@
3636

3737
import org.eclipse.m2e.core.MavenPlugin;
3838
import org.eclipse.m2e.core.internal.IMavenConstants;
39-
import org.eclipse.m2e.core.project.IProjectConfiguration;
39+
import org.eclipse.m2e.core.internal.preferences.MavenPreferenceInitializer;
40+
import org.eclipse.m2e.core.internal.project.ResolverConfigurationIO;
4041
import org.eclipse.m2e.core.project.IProjectConfigurationManager;
4142
import org.eclipse.m2e.core.project.ResolverConfiguration;
4243
import org.eclipse.m2e.core.ui.internal.Messages;
44+
import org.eclipse.m2e.core.ui.internal.project.MavenUpdateConfigurationChangeListener;
4345

4446

4547
/**
@@ -52,6 +54,8 @@ public class MavenProjectPreferencePage extends PropertyPage {
5254

5355
private Button resolveWorspaceProjectsButton;
5456

57+
private Button autoUpdateConfigurationButton;
58+
5559
// private Button includeModulesButton;
5660

5761
private Text selectedProfilesText;
@@ -74,10 +78,18 @@ protected Control createContents(Composite parent) {
7478
selectedProfilesText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
7579

7680
resolveWorspaceProjectsButton = new Button(composite, SWT.CHECK);
77-
GridData resolveWorspaceProjectsButtonData = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
78-
resolveWorspaceProjectsButton.setLayoutData(resolveWorspaceProjectsButtonData);
81+
resolveWorspaceProjectsButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
7982
resolveWorspaceProjectsButton.setText(Messages.MavenProjectPreferencePage_btnResolve);
8083

84+
autoUpdateConfigurationButton = new Button(composite, SWT.CHECK);
85+
autoUpdateConfigurationButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
86+
autoUpdateConfigurationButton.setText(Messages.MavenPreferencePage_autoUpdateProjectConfiguration);
87+
if(MavenUpdateConfigurationChangeListener.isAutoConfigurationUpdateDisabled()) {
88+
autoUpdateConfigurationButton.setEnabled(false);
89+
String text = autoUpdateConfigurationButton.getText() + " (disabled in workspace preferences)";
90+
autoUpdateConfigurationButton.setText(text);
91+
}
92+
8193
// includeModulesButton = new Button(composite, SWT.CHECK);
8294
// GridData gd = new GridData(SWT.FILL, SWT.CENTER, false, false, 2, 1);
8395
// gd.verticalIndent = 15;
@@ -100,16 +112,19 @@ protected Control createContents(Composite parent) {
100112

101113
init(getResolverConfiguration());
102114

115+
boolean isAutoUpdate = ResolverConfigurationIO.isAutomaticallyUpdateConfiguration(getProject());
116+
autoUpdateConfigurationButton.setSelection(isAutoUpdate);
117+
103118
return composite;
104119
}
105120

106121
@Override
107122
protected void performDefaults() {
108123
init(new ResolverConfiguration());
124+
autoUpdateConfigurationButton.setSelection(MavenPreferenceInitializer.P_AUTO_UPDATE_CONFIGURATION_DEFAULT);
109125
}
110126

111-
private void init(IProjectConfiguration configuration) {
112-
127+
private void init(ResolverConfiguration configuration) {
113128
resolveWorspaceProjectsButton.setSelection(configuration.isResolveWorkspaceProjects());
114129
// includeModulesButton.setSelection(configuration.shouldIncludeModules());
115130
selectedProfilesText.setText(configuration.getSelectedProfiles());
@@ -130,11 +145,14 @@ public boolean performOk() {
130145
final ResolverConfiguration configuration = new ResolverConfiguration(getResolverConfiguration());
131146
if(configuration.getSelectedProfiles().equals(selectedProfilesText.getText()) &&
132147
// configuration.shouldIncludeModules()==includeModulesButton.getSelection() &&
133-
configuration.isResolveWorkspaceProjects() == resolveWorspaceProjectsButton.getSelection()) {
148+
configuration.isResolveWorkspaceProjects() == resolveWorspaceProjectsButton.getSelection()
149+
&& ResolverConfigurationIO.isAutomaticallyUpdateConfiguration(project) == autoUpdateConfigurationButton
150+
.getSelection()) {
134151
return true;
135152
}
136153

137154
configuration.setResolveWorkspaceProjects(resolveWorspaceProjectsButton.getSelection());
155+
ResolverConfigurationIO.setAutomaticallyUpdateConfiguration(project, autoUpdateConfigurationButton.getSelection());
138156
// configuration.setIncludeModules(includeModulesButton.getSelection());
139157
configuration.setSelectedProfiles(selectedProfilesText.getText());
140158

@@ -165,9 +183,9 @@ public IStatus runInWorkspace(IProgressMonitor monitor) {
165183
return isSet;
166184
}
167185

168-
private IProjectConfiguration getResolverConfiguration() {
186+
private ResolverConfiguration getResolverConfiguration() {
169187
IProjectConfigurationManager projectManager = MavenPlugin.getProjectConfigurationManager();
170-
return projectManager.getProjectConfiguration(getProject());
188+
return (ResolverConfiguration) projectManager.getProjectConfiguration(getProject());
171189
}
172190

173191
private IProject getProject() {

0 commit comments

Comments
 (0)