Repository: karaf Updated Branches: refs/heads/master f8d9022f8 -> 668db818b
Make sure profile:edit command does not loose configuration formatting Project: http://git-wip-us.apache.org/repos/asf/karaf/repo Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/d141bdfc Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/d141bdfc Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/d141bdfc Branch: refs/heads/master Commit: d141bdfcf4e7cce57eeecf837d6415d1bb3e15f5 Parents: f8d9022 Author: Guillaume Nodet <[email protected]> Authored: Mon Mar 9 21:42:43 2015 +0100 Committer: Guillaume Nodet <[email protected]> Committed: Mon Mar 9 21:42:43 2015 +0100 ---------------------------------------------------------------------- .../main/java/org/apache/karaf/profile/ProfileBuilder.java | 9 ++++++++- .../java/org/apache/karaf/profile/command/ProfileEdit.java | 3 +-- .../org/apache/karaf/profile/impl/ProfileBuilderImpl.java | 3 +-- .../src/main/java/org/apache/karaf/profile/impl/Utils.java | 3 +++ 4 files changed, 13 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/karaf/blob/d141bdfc/profile/src/main/java/org/apache/karaf/profile/ProfileBuilder.java ---------------------------------------------------------------------- diff --git a/profile/src/main/java/org/apache/karaf/profile/ProfileBuilder.java b/profile/src/main/java/org/apache/karaf/profile/ProfileBuilder.java index 4638d5e..d14cc84 100644 --- a/profile/src/main/java/org/apache/karaf/profile/ProfileBuilder.java +++ b/profile/src/main/java/org/apache/karaf/profile/ProfileBuilder.java @@ -47,7 +47,14 @@ public interface ProfileBuilder { ProfileBuilder removeParent(String parentId); Set<String> getConfigurationKeys(); - + + /** + * Returns a copy of the configuration with the specified pid + * or an empty map if it does not exist yet. + * The copy should be used for updates and then used with + * {@link #addConfiguration(String, java.util.Map)} to keep + * the layout and comments. + */ Map<String, String> getConfiguration(String pid); ProfileBuilder addConfiguration(String pid, Map<String, String> config); http://git-wip-us.apache.org/repos/asf/karaf/blob/d141bdfc/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java ---------------------------------------------------------------------- diff --git a/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java b/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java index d76eb57..525ef38 100644 --- a/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java +++ b/profile/src/main/java/org/apache/karaf/profile/command/ProfileEdit.java @@ -536,8 +536,7 @@ public class ProfileEdit implements Action { } private Map<String, String> getConfigurationFromBuilder(ProfileBuilder builder, String pid) { - Map<String, String> config = builder.getConfiguration(pid); - return config != null ? new HashMap<>(config) : new HashMap<String, String>(); + return builder.getConfiguration(pid); } static class DatastoreContentManager implements ContentManager { http://git-wip-us.apache.org/repos/asf/karaf/blob/d141bdfc/profile/src/main/java/org/apache/karaf/profile/impl/ProfileBuilderImpl.java ---------------------------------------------------------------------- diff --git a/profile/src/main/java/org/apache/karaf/profile/impl/ProfileBuilderImpl.java b/profile/src/main/java/org/apache/karaf/profile/impl/ProfileBuilderImpl.java index 34d4d0d..e067564 100644 --- a/profile/src/main/java/org/apache/karaf/profile/impl/ProfileBuilderImpl.java +++ b/profile/src/main/java/org/apache/karaf/profile/impl/ProfileBuilderImpl.java @@ -186,8 +186,7 @@ public final class ProfileBuilderImpl implements ProfileBuilder { @Override public Map<String, String> getConfiguration(String pid) { - Map<String, String> config = getConfigurationInternal(pid); - return Collections.unmodifiableMap(config); + return getConfigurationInternal(pid); } private Map<String, String> getConfigurationInternal(String pid) { http://git-wip-us.apache.org/repos/asf/karaf/blob/d141bdfc/profile/src/main/java/org/apache/karaf/profile/impl/Utils.java ---------------------------------------------------------------------- diff --git a/profile/src/main/java/org/apache/karaf/profile/impl/Utils.java b/profile/src/main/java/org/apache/karaf/profile/impl/Utils.java index 0765718..7bc016a 100644 --- a/profile/src/main/java/org/apache/karaf/profile/impl/Utils.java +++ b/profile/src/main/java/org/apache/karaf/profile/impl/Utils.java @@ -85,6 +85,9 @@ public final class Utils { public static Properties toProperties(Map<String, String> source) { try { + if (source instanceof Properties) { + return (Properties) source; + } Properties rc = new Properties(false); rc.putAll(source); return rc;
