Skip to content

Commit 81fe76b

Browse files
snjezafbricon
authored andcommitted
Changing disableTestClasspathFlag causes a maven project to rebuild
1 parent a970afb commit 81fe76b

2 files changed

Lines changed: 41 additions & 0 deletions

File tree

org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/StandardPreferenceManager.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,13 @@ public void update(Preferences preferences) {
170170
} catch (BackingStoreException e) {
171171
JavaLanguageServerPlugin.logException(e.getMessage(), e);
172172
}
173+
} else if (oldDisableTest != preferences.isMavenDisableTestClasspathFlag()) {
174+
prefs.putBoolean(M2E_DISABLE_TEST_CLASSPATH_FLAG, preferences.isMavenDisableTestClasspathFlag());
175+
try {
176+
prefs.flush();
177+
} catch (BackingStoreException e) {
178+
JavaLanguageServerPlugin.logException(e.getMessage(), e);
179+
}
173180
}
174181
} catch (CoreException e) {
175182
JavaLanguageServerPlugin.logException(e);

org.eclipse.jdt.ls.tests/src/org/eclipse/jdt/ls/core/internal/preferences/PreferencesTest.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
import java.util.HashMap;
2424
import java.util.Map;
2525

26+
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
27+
import org.eclipse.core.runtime.preferences.InstanceScope;
28+
import org.eclipse.jdt.ls.core.internal.IConstants;
2629
import org.eclipse.jdt.ls.core.internal.handlers.CompletionGuessMethodArgumentsMode;
2730
import org.junit.Test;
2831

@@ -304,4 +307,35 @@ public void testMavenLifecycleMappings() {
304307
assertNotNull(updated.getMavenLifecycleMappings());
305308
}
306309

310+
@Test
311+
public void testMavenDisableTestClasspathFlag() {
312+
PreferenceManager preferenceManager = new StandardPreferenceManager();
313+
IEclipsePreferences prefs = InstanceScope.INSTANCE.getNode(IConstants.PLUGIN_ID);
314+
boolean mavenDisableTestClasspathFlag = prefs.getBoolean(StandardPreferenceManager.M2E_DISABLE_TEST_CLASSPATH_FLAG, false);
315+
try {
316+
assertFalse(mavenDisableTestClasspathFlag);
317+
Map<String, Object> configMap = new HashMap<>();
318+
Map<String, Object> java = new HashMap<>();
319+
configMap.put("java", java);
320+
// java.import.maven.disableTestClasspathFlag
321+
java.put("import", Map.of("maven", Map.of("disableTestClasspathFlag", true)));
322+
Preferences preferences = Preferences.createFrom(configMap);
323+
preferenceManager.update(preferences);
324+
assertTrue(preferences.isMavenDisableTestClasspathFlag());
325+
mavenDisableTestClasspathFlag = prefs.getBoolean(StandardPreferenceManager.M2E_DISABLE_TEST_CLASSPATH_FLAG, false);
326+
assertTrue(mavenDisableTestClasspathFlag);
327+
java = new HashMap<>();
328+
configMap.put("java", java);
329+
// java.import.maven.disableTestClasspathFlag
330+
java.put("import", Map.of("maven", Map.of("disableTestClasspathFlag", false)));
331+
preferences = Preferences.createFrom(configMap);
332+
preferenceManager.update(preferences);
333+
assertFalse(preferences.isMavenDisableTestClasspathFlag());
334+
mavenDisableTestClasspathFlag = prefs.getBoolean(StandardPreferenceManager.M2E_DISABLE_TEST_CLASSPATH_FLAG, false);
335+
assertFalse(mavenDisableTestClasspathFlag);
336+
} finally {
337+
prefs.putBoolean(StandardPreferenceManager.M2E_DISABLE_TEST_CLASSPATH_FLAG, mavenDisableTestClasspathFlag);
338+
}
339+
}
340+
307341
}

0 commit comments

Comments
 (0)