diff options
author | Eike Stepper | 2013-10-22 17:32:49 +0000 |
---|---|---|
committer | Eike Stepper | 2013-10-22 17:32:49 +0000 |
commit | 0acea3f41f00fe78cd2fe974e9c203e8ebbbaadb (patch) | |
tree | 8de56914b5114b65618a9e200649e22e2739e97b | |
parent | 7a74ca646b78f03a3fc266b95c0f8351dcbcffc2 (diff) | |
download | cdo-0acea3f41f00fe78cd2fe974e9c203e8ebbbaadb.tar.gz cdo-0acea3f41f00fe78cd2fe974e9c203e8ebbbaadb.tar.xz cdo-0acea3f41f00fe78cd2fe974e9c203e8ebbbaadb.zip |
Add PreferencesRecorderAction
2 files changed, 23 insertions, 2 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java index af04607453..f754780968 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/internal/setup/SetupTaskPerformer.java @@ -192,6 +192,11 @@ public class SetupTaskPerformer extends HashMap<Object, Object> implements Setup public String expandString(String string) { + if (string == null) + { + return null; + } + StringBuilder result = new StringBuilder(); int previous = 0; for (Matcher matcher = STRING_EXPANSION_PATTERN.matcher(string); matcher.find();) diff --git a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java index 4aadebc04d..090424fef9 100644 --- a/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java +++ b/plugins/org.eclipse.emf.cdo.releng.setup/src/org/eclipse/emf/cdo/releng/setup/impl/EclipsePreferenceTaskImpl.java @@ -15,6 +15,8 @@ import org.eclipse.emf.cdo.releng.setup.SetupPackage; import org.eclipse.emf.cdo.releng.setup.SetupTaskContext; import org.eclipse.emf.cdo.releng.setup.Trigger; +import org.eclipse.net4j.util.ObjectUtil; + import org.eclipse.emf.common.notify.Notification; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.impl.ENotificationImpl; @@ -127,7 +129,9 @@ public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipseP String oldKey = key; key = newKey; if (eNotificationRequired()) + { eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__KEY, oldKey, key)); + } } /** @@ -150,8 +154,10 @@ public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipseP String oldValue = value; value = newValue; if (eNotificationRequired()) + { eNotify(new ENotificationImpl(this, Notification.SET, SetupPackage.ECLIPSE_PREFERENCE_TASK__VALUE, oldValue, value)); + } } /** @@ -239,7 +245,9 @@ public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipseP public String toString() { if (eIsProxy()) + { return super.toString(); + } StringBuffer result = new StringBuffer(super.toString()); result.append(" (key: "); @@ -277,7 +285,7 @@ public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipseP expandedValue = context.expandString(getValue()); String oldValue = node.get(property, null); - if (expandedValue.equals(oldValue)) + if (ObjectUtil.equals(expandedValue, oldValue)) { return false; } @@ -298,7 +306,15 @@ public class EclipsePreferenceTaskImpl extends SetupTaskImpl implements EclipseP try { org.osgi.service.prefs.Preferences node = (org.osgi.service.prefs.Preferences)cachedNode; - node.put(property, expandedValue); + if (expandedValue != null) + { + node.put(property, expandedValue); + } + else + { + node.remove(property); + } + node.flush(); } catch (Exception ex) |