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;

Reply via email to