diff options
author | Igor Fedorenko | 2014-04-23 11:27:08 +0000 |
---|---|---|
committer | Igor Fedorenko | 2014-04-23 14:30:39 +0000 |
commit | 1ca0075f7feb451bc87c63d2b926955430a9056b (patch) | |
tree | 68b85e8d43eeb777dea3a2789246966136a93cd0 /org.eclipse.m2e.core | |
parent | 67fce5dbb00d72f2d951a4f61b0c73631b52f080 (diff) | |
download | m2e-core-1ca0075f7feb451bc87c63d2b926955430a9056b.tar.gz m2e-core-1ca0075f7feb451bc87c63d2b926955430a9056b.tar.xz m2e-core-1ca0075f7feb451bc87c63d2b926955430a9056b.zip |
433224 expose global settings.xml in m2e preferences
Change-Id: Id02badd679ca56f651ed374b49cf5c67881e6e55
Signed-off-by: Igor Fedorenko <igor@ifedorenko.com>
Diffstat (limited to 'org.eclipse.m2e.core')
2 files changed, 37 insertions, 29 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java index a07321ae..31998624 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java @@ -72,8 +72,7 @@ public class MavenConfigurationImpl implements IMavenConfiguration, IPreferenceC ((IEclipsePreferences) preferencesLookup[0].parent()).removeNodeChangeListener(this); preferencesLookup[0].removePreferenceChangeListener(this); } - //Don't use InstanceScope.INSTANCE to maintain compatibility with helios - preferencesLookup[0] = new InstanceScope().getNode(IMavenConstants.PLUGIN_ID); + preferencesLookup[0] = InstanceScope.INSTANCE.getNode(IMavenConstants.PLUGIN_ID); ((IEclipsePreferences) preferencesLookup[0].parent()).addNodeChangeListener(this); preferencesLookup[0].addPreferenceChangeListener(this); @@ -81,8 +80,7 @@ public class MavenConfigurationImpl implements IMavenConfiguration, IPreferenceC ((IEclipsePreferences) preferencesLookup[1].parent()).removeNodeChangeListener(this); preferencesLookup[1].removePreferenceChangeListener(this); } - //Don't use DefaultScope.INSTANCE to maintain compatibility with helios - preferencesLookup[1] = new DefaultScope().getNode(IMavenConstants.PLUGIN_ID); + preferencesLookup[1] = DefaultScope.INSTANCE.getNode(IMavenConstants.PLUGIN_ID); ((IEclipsePreferences) preferencesLookup[1].parent()).addNodeChangeListener(this); } @@ -126,17 +124,39 @@ public class MavenConfigurationImpl implements IMavenConfiguration, IPreferenceC } public void setUserSettingsFile(String settingsFile) throws CoreException { - preferencesLookup[0].put(MavenPreferenceConstants.P_USER_SETTINGS_FILE, nvl(settingsFile)); - preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()}); + settingsFile = trim(settingsFile); + if(!eq(settingsFile, preferencesLookup[0].get(MavenPreferenceConstants.P_USER_SETTINGS_FILE, null))) { + if(settingsFile != null) { + preferencesLookup[0].put(MavenPreferenceConstants.P_USER_SETTINGS_FILE, settingsFile); + } else { + preferencesLookup[0].remove(MavenPreferenceConstants.P_USER_SETTINGS_FILE); + } + preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()}); + } } public void setGlobalSettingsFile(String globalSettingsFile) throws CoreException { - preferencesLookup[0].put(MavenPreferenceConstants.P_GLOBAL_SETTINGS_FILE, nvl(globalSettingsFile)); - preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()}); + globalSettingsFile = trim(globalSettingsFile); + if(!eq(globalSettingsFile, preferencesLookup[0].get(MavenPreferenceConstants.P_GLOBAL_SETTINGS_FILE, null))) { + if(globalSettingsFile != null) { + preferencesLookup[0].put(MavenPreferenceConstants.P_GLOBAL_SETTINGS_FILE, globalSettingsFile); + } else { + preferencesLookup[0].remove(MavenPreferenceConstants.P_GLOBAL_SETTINGS_FILE); + } + preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()}); + } } - private static String nvl(String s) { - return s == null ? "" : s; //$NON-NLS-1$ + private boolean eq(String a, String b) { + return a != null ? a.equals(b) : b == null; + } + + private String trim(String str) { + if(str == null) { + return null; + } + str = str.trim(); + return !str.isEmpty() ? str : null; } public boolean isUpdateProjectsOnStartup() { @@ -211,7 +231,11 @@ public class MavenConfigurationImpl implements IMavenConfiguration, IPreferenceC } public void setWorkspaceLifecycleMappingMetadataFile(String location) throws CoreException { - preferencesLookup[0].put(MavenPreferenceConstants.P_WORKSPACE_MAPPINGS_LOCATION, nvl(location)); + if(location != null) { + preferencesLookup[0].put(MavenPreferenceConstants.P_WORKSPACE_MAPPINGS_LOCATION, location); + } else { + preferencesLookup[0].remove(MavenPreferenceConstants.P_WORKSPACE_MAPPINGS_LOCATION); + } preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()}); } } diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java index ffd7decd..44cb40d3 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java @@ -15,8 +15,6 @@ import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer; import org.eclipse.core.runtime.preferences.DefaultScope; import org.eclipse.core.runtime.preferences.IEclipsePreferences; -import org.apache.maven.cli.MavenCli; - import org.eclipse.m2e.core.internal.IMavenConstants; @@ -27,19 +25,9 @@ import org.eclipse.m2e.core.internal.IMavenConstants; */ public class MavenPreferenceInitializer extends AbstractPreferenceInitializer { - /* - * (non-Javadoc) - * - * @see org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer#initializeDefaultPreferences() - */ + @Override public void initializeDefaultPreferences() { - //Don't use DefaultScope.INSTANCE to maintain compatibility with helios - IEclipsePreferences store = new DefaultScope().getNode(IMavenConstants.PLUGIN_ID); - - store.put(MavenPreferenceConstants.P_USER_SETTINGS_FILE, // - MavenCli.DEFAULT_USER_SETTINGS_FILE.getAbsolutePath()); - - store.put(MavenPreferenceConstants.P_GLOBAL_SETTINGS_FILE, ""); //$NON-NLS-1$ + IEclipsePreferences store = DefaultScope.INSTANCE.getNode(IMavenConstants.PLUGIN_ID); store.putBoolean(MavenPreferenceConstants.P_DEBUG_OUTPUT, false); @@ -49,10 +37,6 @@ public class MavenPreferenceInitializer extends AbstractPreferenceInitializer { store.putBoolean(MavenPreferenceConstants.P_DOWNLOAD_SOURCES, false); store.putBoolean(MavenPreferenceConstants.P_DOWNLOAD_JAVADOC, false); - // store.setDefault( MavenPreferenceConstants.P_GLOBAL_CHECKSUM_POLICY, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN); - // store.setDefault( MavenPreferenceConstants.P_UPDATE_SNAPSHOTS, false); - // store.setDefault( MavenPreferenceConstants.P_CHECK_LATEST_PLUGIN_VERSION, false); - store.put(MavenPreferenceConstants.P_OUTPUT_FOLDER, "target-eclipse"); //$NON-NLS-1$ store.put(MavenPreferenceConstants.P_RUNTIMES, ""); //$NON-NLS-1$ |