You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tamaya.apache.org by an...@apache.org on 2017/09/28 20:12:47 UTC

[33/45] incubator-tamaya-sandbox git commit: TAMAYA-297: Fixed Karaf imports, aligned command names.

TAMAYA-297: Fixed Karaf imports, aligned command names.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/commit/c2becbfd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/tree/c2becbfd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/diff/c2becbfd

Branch: refs/heads/master
Commit: c2becbfd43e7a0566ec2623a6f4064a0d15363e4
Parents: c83611c
Author: anatole <an...@apache.org>
Authored: Fri Sep 22 22:36:24 2017 +0200
Committer: anatole <an...@apache.org>
Committed: Fri Sep 22 22:36:24 2017 +0200

----------------------------------------------------------------------
 .../tamaya/osgi/commands/HistoryCommands.java   | 95 ++++++++++++++++++++
 .../apache/tamaya/osgi/commands/StringUtil.java | 46 ++++++++++
 .../felix/shell/PropertySourceCommand.java      | 42 ---------
 osgi/karaf-shell/bnd.bnd                        |  1 +
 osgi/karaf-shell/pom.xml                        |  2 +-
 .../tamaya/karaf/shell/BackupCreateCommand.java | 19 +---
 .../tamaya/karaf/shell/BackupDeleteCommand.java | 11 +--
 .../tamaya/karaf/shell/BackupListCommand.java   | 35 +-------
 .../tamaya/karaf/shell/ConfigCommand.java       | 23 +++--
 .../karaf/shell/DefaultDisableCommand.java      |  5 +-
 .../tamaya/karaf/shell/GetPolicyCommand.java    |  5 +-
 .../tamaya/karaf/shell/HistoryClearCommand.java | 69 --------------
 .../karaf/shell/HistoryDeleteCommand.java       | 41 +++++++++
 .../tamaya/karaf/shell/HistoryGetCommand.java   | 52 +----------
 .../karaf/shell/HistoryMaxsizeCommand.java      | 38 ++++++++
 .../karaf/shell/HistorySizeGetCommand.java      | 47 ----------
 .../karaf/shell/HistorySizeSetCommand.java      | 14 +--
 .../apache/tamaya/karaf/shell/InfoCommand.java  |  9 +-
 .../tamaya/karaf/shell/PolicyGetCommand.java    | 12 +--
 .../tamaya/karaf/shell/PolicySetCommand.java    |  9 +-
 .../tamaya/karaf/shell/PropertyGetCommand.java  | 38 +-------
 .../karaf/shell/PropertySourceCommand.java      | 27 +-----
 .../karaf/shell/PropertySourcesCommand.java     | 19 +---
 .../apache/tamaya/karaf/shell/StringUtil.java   | 46 ----------
 24 files changed, 279 insertions(+), 426 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/HistoryCommands.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/HistoryCommands.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/HistoryCommands.java
new file mode 100644
index 0000000..ce73423
--- /dev/null
+++ b/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/HistoryCommands.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.osgi.commands;
+
+import org.apache.tamaya.osgi.ConfigHistory;
+import org.apache.tamaya.osgi.TamayaConfigPlugin;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+
+/**
+ * Utility class implementing the available change history related commands.
+ */
+public final class HistoryCommands{
+
+    /** Singleton constructor. */
+    private HistoryCommands(){}
+
+    public static String clearHistory(String pid) throws IOException {
+        int size = ConfigHistory.history(pid).size();
+        ConfigHistory.clearHistory(pid);
+        return "Deleted entries: " + size;
+    }
+
+    public static String getHistory(String pid, String... events) throws IOException {
+        StringWriter sw = new StringWriter();
+        PrintWriter pw = new PrintWriter(sw);
+        List<ConfigHistory> history = ConfigHistory.history(pid);
+        history = filterTypes(history, events);
+        pw.print(StringUtil.format("Typ", 10));
+        pw.print(StringUtil.format("PID", 30));
+        pw.print(StringUtil.format("Key", 30));
+        pw.print(StringUtil.format("Value", 40));
+        pw.println(StringUtil.format("Previous Value", 40));
+        pw.println(StringUtil.printRepeat("-", 140));
+        for(ConfigHistory h:history){
+            pw.print(StringUtil.format(h.getType().toString(), 10));
+            pw.print(StringUtil.format(h.getPid(), 30));
+            pw.print(StringUtil.format(h.getKey(), 30));
+            pw.print(StringUtil.format(String.valueOf(h.getValue()), 40));
+            pw.println(String.valueOf(h.getPreviousValue()));
+        }
+        return pw.toString();
+    }
+
+    public static int getMaxHistorySize(){
+        return ConfigHistory.getMaxHistory();
+    }
+
+    public static String setMaxHistorySize(int maxSize){
+        ConfigHistory.setMaxHistory(maxSize);
+        return "history.maxSize="+maxSize;
+    }
+
+    private static List<ConfigHistory> filterTypes(List<ConfigHistory> history, String... eventTypes) {
+        if(eventTypes==null || eventTypes.length==0){
+            return history;
+        }
+        List<ConfigHistory> result = new ArrayList<>();
+        Set<ConfigHistory.TaskType> types = new HashSet<>();
+        for(String tt:eventTypes) {
+            types.add(ConfigHistory.TaskType.valueOf(tt));
+        }
+        for(ConfigHistory h:history){
+            if(types.contains(h.getType())){
+                result.add(h);
+            }
+        }
+        return result;
+    }
+
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/StringUtil.java
----------------------------------------------------------------------
diff --git a/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/StringUtil.java b/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/StringUtil.java
new file mode 100644
index 0000000..b6819e8
--- /dev/null
+++ b/osgi/common/src/main/java/org/apache/tamaya/osgi/commands/StringUtil.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.osgi.commands;
+
+/**
+ * Some String related helper methods.
+ */
+final class StringUtil {
+
+    private StringUtil(){}
+
+    public static String format(String in, int length){
+        if(in==null){
+            in = "";
+        }
+        int count = length - in.length();
+        if(count<0){
+            return in.substring(0,length-3) + "...";
+        }
+        return in + printRepeat(" ", count);
+    }
+
+    public static String printRepeat(String s, int times) {
+        StringBuilder b = new StringBuilder();
+        for(int i=0;i<times;i++){
+            b.append(s);
+        }
+        return b.toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/felix-shell/src/main/java/org/apache/tamaya/felix/shell/PropertySourceCommand.java
----------------------------------------------------------------------
diff --git a/osgi/felix-shell/src/main/java/org/apache/tamaya/felix/shell/PropertySourceCommand.java b/osgi/felix-shell/src/main/java/org/apache/tamaya/felix/shell/PropertySourceCommand.java
deleted file mode 100644
index 0b48850..0000000
--- a/osgi/felix-shell/src/main/java/org/apache/tamaya/felix/shell/PropertySourceCommand.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tamaya.felix.shell;
-
-import org.apache.felix.scr.annotations.Service;
-import org.apache.tamaya.osgi.commands.ConfigCommands;
-import org.osgi.service.component.annotations.Component;
-
-import java.io.IOException;
-
-@Component(
-        immediate = true,
-        property = {
-                "osgi.command.scope=tamaya:propertysource",
-                "osgi.command.function=propertysource"
-        },
-        service=PropertySourceCommand.class
-)
-@Service
-public class PropertySourceCommand{
-
-    public String propertysource(String propertysource) throws IOException {
-        return ConfigCommands.getPropertySource(propertysource);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/bnd.bnd
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/bnd.bnd b/osgi/karaf-shell/bnd.bnd
index a7c8013..3bed7ca 100644
--- a/osgi/karaf-shell/bnd.bnd
+++ b/osgi/karaf-shell/bnd.bnd
@@ -29,6 +29,7 @@ Import-Package: \
     org.apache.tamaya.functions,\
     org.apache.tamaya.spisupport,\
     org.apache.tamaya.osgi,\
+    org.apache.tamaya.osgi.commands,\
     org.apache.felix.service.command,\
     org.apache.karaf.shell.api.console,\
     org.apache.karaf.shell.api.action,\

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/pom.xml
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/pom.xml b/osgi/karaf-shell/pom.xml
index e7c1558..a11a1a5 100644
--- a/osgi/karaf-shell/pom.xml
+++ b/osgi/karaf-shell/pom.xml
@@ -27,7 +27,7 @@
         <version>0.4-incubating-SNAPSHOT</version>
     </parent>
 
-    <artifactId>tamaya-karaf-shell_alpha</artifactId>
+    <artifactId>tamaya-osgi-karaf-shell_alpha</artifactId>
     <packaging>jar</packaging>
     <name>Apache Tamaya :: OSGI :: Karaf :: Shell</name>
     <description>Tamaya Karaf Shell Commands</description>

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupCreateCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupCreateCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupCreateCommand.java
index 3346e80..e2c6ca7 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupCreateCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupCreateCommand.java
@@ -24,15 +24,14 @@ import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.Option;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.osgi.InitialState;
-import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.BackupCommands;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
-import org.osgi.service.component.annotations.Reference;
 
 import java.io.IOException;
 import java.util.Dictionary;
 
-@Command(scope = "tamaya", name = "backup-create", description="Creates a backup of a current OSGI configuration.")
+@Command(scope = "tamaya", name = "tm_backup_create", description="Creates a backup of a current OSGI configuration.")
 @Service
 public class BackupCreateCommand implements Action{
 
@@ -49,19 +48,7 @@ public class BackupCreateCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        Configuration cfg = cm.getConfiguration(pid);
-        if(cfg!=null){
-            Dictionary<String,?> props = cfg.getProperties();
-            if(props!=null){
-                if(replace || !InitialState.contains(pid)){
-                    InitialState.set(pid, props);
-                    System.out.println("Backup created, PID = " + pid);
-                    BackupListCommand.printProps(props);
-                    return null;
-                }
-            }
-        }
-        System.out.println("No Config found, PID = " + pid);
+        System.out.println(BackupCommands.createBackup(cm, pid, replace));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupDeleteCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupDeleteCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupDeleteCommand.java
index 2c3f4be..58dd826 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupDeleteCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupDeleteCommand.java
@@ -23,10 +23,11 @@ import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.osgi.InitialState;
+import org.apache.tamaya.osgi.commands.BackupCommands;
 
 import java.io.IOException;
 
-@Command(scope = "tamaya", name = "backup-delete", description="Deletes the OSGI configuration backup  of Tamya.")
+@Command(scope = "tamaya", name = "tm_backup_delete", description="Deletes the OSGI configuration backup  of Tamya.")
 @Service
 public class BackupDeleteCommand implements Action{
 
@@ -36,13 +37,7 @@ public class BackupDeleteCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        if("*".equals(pid)){
-            InitialState.removeAll();
-            System.out.println("All Backups deleted.");
-        }else {
-            InitialState.remove(pid);
-            System.out.println("Backup deleted: " + pid);
-        }
+        System.out.println(BackupCommands.deleteBackup(pid));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupListCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupListCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupListCommand.java
index d252586..781f2b9 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupListCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/BackupListCommand.java
@@ -22,14 +22,11 @@ import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.tamaya.osgi.InitialState;
+import org.apache.tamaya.osgi.commands.BackupCommands;
 
 import java.io.IOException;
-import java.util.Dictionary;
-import java.util.Enumeration;
-import java.util.Map;
 
-@Command(scope = "tamaya", name = "backup-list", description="Gets the OSGI configuration before Tamya applied changes.")
+@Command(scope = "tamaya", name = "tm_backup_list", description="List the backed-up OSGI configuration before Tamya applied changes.")
 @Service
 public class BackupListCommand implements Action{
 
@@ -39,34 +36,8 @@ public class BackupListCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        if(pid!=null){
-            Dictionary<String, ?> props = InitialState.get(pid);
-            if(props==null){
-                System.out.println("No backup found: " + pid);
-            }else{
-                System.out.println("PID: " + pid);
-                printProps(props);
-            }
-        }else {
-            for(Map.Entry<String, Dictionary<String,?>> en: InitialState.get().entrySet()){
-                System.out.println("PID: " + en.getKey());
-                printProps(en.getValue());
-            }
-        }
+        System.out.println(BackupCommands.listBackup(pid));
         return null;
     }
 
-    public static void printProps(Dictionary<String, ?> props) {
-        System.out.print(StringUtil.format("  Key", 50));
-        System.out.println(StringUtil.format("  Value", 50));
-        System.out.println("  " + StringUtil.printRepeat("-", 100));
-        Enumeration<String> keys = props.keys();
-        while(keys.hasMoreElements()){
-            String key = keys.nextElement();
-            System.out.print("  " + StringUtil.format(key, 50));
-            System.out.println("  " + StringUtil.format(String.valueOf(props.get(key)), 50));
-        }
-        System.out.println();
-    }
-
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ConfigCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ConfigCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ConfigCommand.java
index 84a862c..3732f0a 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ConfigCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/ConfigCommand.java
@@ -21,14 +21,17 @@ package org.apache.tamaya.karaf.shell;
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Option;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.functions.ConfigurationFunctions;
+import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 
 import java.io.IOException;
 
-@Command(scope = "tamaya", name = "config", description="Show the current Tamaya configuration.")
+@Command(scope = "tamaya", name = "tm_config", description="Show the current Tamaya configuration.")
 @Service
 public class ConfigCommand implements Action{
 
@@ -36,14 +39,20 @@ public class ConfigCommand implements Action{
             required = false, multiValued = false)
     String section = null;
 
+    @Option(name = "pid", aliases={"-p.--pid"}, description = "Apply filtering for the given OSGI component PID.",
+            required = false, multiValued = false)
+    String pid = null;
+
+    @org.apache.karaf.shell.api.action.lifecycle.Reference
+    TamayaConfigPlugin configPlugin;
+
+
     public Object execute() throws IOException {
-        Configuration config = ConfigurationProvider.getConfiguration();
-        if(section!=null){
-            return config
-                    .with(ConfigurationFunctions.section(section))
-                    .query(ConfigurationFunctions.textInfo());
+        if(pid!=null){
+            System.out.println(ConfigCommands.readConfig(configPlugin, pid, section));
+        }else {
+            System.out.println(ConfigCommands.readConfig(section));
         }
-        System.out.println(config.query(ConfigurationFunctions.textInfo()));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/DefaultDisableCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/DefaultDisableCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/DefaultDisableCommand.java
index 99461dc..8d455a7 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/DefaultDisableCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/DefaultDisableCommand.java
@@ -30,11 +30,12 @@ import org.apache.karaf.shell.api.console.Session;
 import org.apache.karaf.shell.support.completers.StringsCompleter;
 import org.apache.tamaya.osgi.OperationMode;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 
 import java.io.IOException;
 import java.util.List;
 
-@Command(scope = "tamaya", name = "disable-by-default", description="Disables Tamaya by default for all bundles/services (default=false)." +
+@Command(scope = "tamaya", name = "tm_disable", description="Disables Tamaya by default for all bundles/services (default=false)." +
         " Disabling it allows to explicitly enable bundles using 'Tamaya-Enable^manifest entries.")
 @Service
 public class DefaultDisableCommand implements Action{
@@ -49,7 +50,7 @@ public class DefaultDisableCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        this.configPlugin.setDefaultDisabled(disabled);
+        System.out.println(ConfigCommands.setDefaultDisabled(configPlugin, disabled));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/GetPolicyCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/GetPolicyCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/GetPolicyCommand.java
index 42ebbd1..8ccb5a4 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/GetPolicyCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/GetPolicyCommand.java
@@ -23,10 +23,11 @@ import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 
 import java.io.IOException;
 
-@Command(scope = "tamaya", name = "get-policy", description="Get the current Tamaya overriding policy.")
+@Command(scope = "tamaya", name = "tm_policy", description="Get the current Tamaya overriding policy.")
 @Service
 public class GetPolicyCommand implements Action{
 
@@ -35,7 +36,7 @@ public class GetPolicyCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        System.out.println(this.configPlugin.getDefaultOperationMode());
+        System.out.println(ConfigCommands.getDefaultOpPolicy(configPlugin));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryClearCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryClearCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryClearCommand.java
deleted file mode 100644
index 93f0dc2..0000000
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryClearCommand.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tamaya.karaf.shell;
-
-import org.apache.karaf.shell.api.action.*;
-import org.apache.karaf.shell.api.action.lifecycle.Reference;
-import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.shell.api.console.CommandLine;
-import org.apache.karaf.shell.api.console.Completer;
-import org.apache.karaf.shell.api.console.Session;
-import org.apache.karaf.shell.support.completers.StringsCompleter;
-import org.apache.tamaya.osgi.ConfigHistory;
-import org.apache.tamaya.osgi.TamayaConfigPlugin;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-@Command(scope = "tamaya", name = "history-delete", description="Deletes the history of changes Tamaya applied to the OSGI configuration.")
-@Service
-public class HistoryClearCommand implements Action{
-
-    @Reference
-    private TamayaConfigPlugin configPlugin;
-
-    @Argument(index = 0, name = "pid", description = "Allows to filter on the given PID.",
-            required = false, multiValued = false)
-    String pid;
-
-    @Override
-    public Object execute() throws IOException {
-        int size = ConfigHistory.history(pid).size();
-        ConfigHistory.clearHistory(pid);
-        System.out.println("Deleted entries: " + size);
-        return null;
-    }
-
-    @Service
-    public static final class FilterCompleter implements Completer {
-
-        @Override
-        public int complete(Session session, CommandLine commandLine, List<String> candidates) {
-            StringsCompleter delegate = new StringsCompleter();
-            for(ConfigHistory.TaskType taskType:ConfigHistory.TaskType.values()) {
-                delegate.getStrings().add(taskType.toString());
-            }
-            return delegate.complete(session, commandLine, candidates);
-        }
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteCommand.java
new file mode 100644
index 0000000..4930e2f
--- /dev/null
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryDeleteCommand.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.karaf.shell;
+
+import org.apache.karaf.shell.api.action.*;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.tamaya.osgi.commands.HistoryCommands;
+
+import java.io.IOException;
+
+@Command(scope = "tamaya", name = "tm_history_delete", description="Deletes the history of changes Tamaya applied to the OSGI configuration.")
+@Service
+public class HistoryDeleteCommand implements Action{
+
+    @Argument(index = 0, name = "pid", description = "Allows to filter on the given PID.",
+            required = false, multiValued = false)
+    String pid;
+
+    @Override
+    public Object execute() throws IOException {
+        System.out.println(HistoryCommands.clearHistory(pid));
+        return null;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryGetCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryGetCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryGetCommand.java
index fd60c48..7f99031 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryGetCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryGetCommand.java
@@ -27,14 +27,12 @@ import org.apache.karaf.shell.api.console.Session;
 import org.apache.karaf.shell.support.completers.StringsCompleter;
 import org.apache.tamaya.osgi.ConfigHistory;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.HistoryCommands;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
-@Command(scope = "tamaya", name = "history-get", description="Gets the history of changes Tamaya applied to the OSGI configuration.")
+@Command(scope = "tamaya", name = "tm_history", description="Gets the history of changes Tamaya applied to the OSGI configuration.")
 @Service
 public class HistoryGetCommand implements Action{
 
@@ -52,54 +50,10 @@ public class HistoryGetCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        List<ConfigHistory> history = ConfigHistory.history(pid);
-        history = filterTypes(history);
-        System.out.print(StringUtil.format("Typ", 10));
-        System.out.print(StringUtil.format("PID", 30));
-        System.out.print(StringUtil.format("Key", 30));
-        System.out.print(StringUtil.format("Value", 40));
-        System.out.println(StringUtil.format("Previous Value", 40));
-        System.out.println(StringUtil.printRepeat("-", 140));
-        for(ConfigHistory h:history){
-            System.out.print(StringUtil.format(h.getType().toString(), 10));
-            System.out.print(StringUtil.format(h.getPid(), 30));
-            System.out.print(StringUtil.format(h.getKey(), 30));
-            System.out.print(StringUtil.format(String.valueOf(h.getValue()), 40));
-            System.out.println(String.valueOf(h.getPreviousValue()));
-        }
+        System.out.println(HistoryCommands.getHistory(pid, eventTypes));
         return null;
     }
 
-    private List<ConfigHistory> filterPid(List<ConfigHistory> history) {
-        if(pid==null){
-            return history;
-        }
-        List<ConfigHistory> result = new ArrayList<>();
-        for(ConfigHistory h:history){
-            if(h.getPid().equals(pid)){
-                result.add(h);
-            }
-        }
-        return result;
-    }
-
-    private List<ConfigHistory> filterTypes(List<ConfigHistory> history) {
-        if(eventTypes==null){
-            return history;
-        }
-        List<ConfigHistory> result = new ArrayList<>();
-        Set<ConfigHistory.TaskType> types = new HashSet<>();
-        for(String tVal:eventTypes) {
-            types.add(ConfigHistory.TaskType.valueOf(tVal));
-        }
-        for(ConfigHistory h:history){
-            if(types.contains(h.getType())){
-                result.add(h);
-            }
-        }
-        return result;
-    }
-
     @Service
     public static final class FilterCompleter implements Completer {
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryMaxsizeCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryMaxsizeCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryMaxsizeCommand.java
new file mode 100644
index 0000000..92424d1
--- /dev/null
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistoryMaxsizeCommand.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.tamaya.karaf.shell;
+
+import org.apache.karaf.shell.api.action.*;
+import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.tamaya.osgi.ConfigHistory;
+import org.apache.tamaya.osgi.commands.HistoryCommands;
+
+import java.io.IOException;
+
+@Command(scope = "tamaya", name = "tm_history_maxsize", description="Gets the maximal size of stored history entries.")
+@Service
+public class HistoryMaxsizeCommand implements Action{
+
+    @Override
+    public Object execute() throws IOException {
+        System.out.println(HistoryCommands.getMaxHistorySize());
+        return null;
+    }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeGetCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeGetCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeGetCommand.java
deleted file mode 100644
index 3658191..0000000
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeGetCommand.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tamaya.karaf.shell;
-
-import org.apache.karaf.shell.api.action.*;
-import org.apache.karaf.shell.api.action.lifecycle.Reference;
-import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.shell.api.console.CommandLine;
-import org.apache.karaf.shell.api.console.Completer;
-import org.apache.karaf.shell.api.console.Session;
-import org.apache.karaf.shell.support.completers.StringsCompleter;
-import org.apache.tamaya.osgi.ConfigHistory;
-import org.apache.tamaya.osgi.TamayaConfigPlugin;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-@Command(scope = "tamaya", name = "history-size-get", description="Gets the maximal size of stored history entries.")
-@Service
-public class HistorySizeGetCommand implements Action{
-
-    @Override
-    public Object execute() throws IOException {
-        System.out.println(ConfigHistory.getMaxHistory());
-        return null;
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeSetCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeSetCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeSetCommand.java
index ed6ff5a..5d7ffb7 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeSetCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/HistorySizeSetCommand.java
@@ -21,21 +21,14 @@ package org.apache.tamaya.karaf.shell;
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
-import org.apache.karaf.shell.api.action.Completion;
 import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.shell.api.console.CommandLine;
-import org.apache.karaf.shell.api.console.Completer;
-import org.apache.karaf.shell.api.console.Session;
-import org.apache.karaf.shell.support.completers.StringsCompleter;
-import org.apache.tamaya.osgi.ConfigHistory;
-import org.apache.tamaya.osgi.OperationMode;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.HistoryCommands;
 
 import java.io.IOException;
-import java.util.List;
 
-@Command(scope = "tamaya", name = "history-size-set", description="Sets the maximal size of Tamaya history entries.")
+@Command(scope = "tamaya", name = "history_maxsize_set", description="Sets the maximal size of Tamaya history entries.")
 @Service
 public class HistorySizeSetCommand implements Action{
 
@@ -48,8 +41,7 @@ public class HistorySizeSetCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        ConfigHistory.setMaxHistory(maxSize);
-        System.out.println("ConfigHistory.maxSize="+maxSize);
+        System.out.println(HistoryCommands.setMaxHistorySize(maxSize));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/InfoCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/InfoCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/InfoCommand.java
index d50e97b..e954957 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/InfoCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/InfoCommand.java
@@ -27,8 +27,10 @@ import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
+import org.apache.tamaya.osgi.commands.HistoryCommands;
 
-@Command(scope = "tamaya", name = "info", description="Show he current Tamaya status.")
+@Command(scope = "tamaya", name = "tm_info", description="Show he current Tamaya status.")
 @Service
 public class InfoCommand  implements Action {
 
@@ -36,10 +38,7 @@ public class InfoCommand  implements Action {
     private TamayaConfigPlugin configPlugin;
 
     public Object execute() throws IOException {
-        Configuration config = ConfigurationProvider.getConfiguration();
-        System.out.println(config.toString() + "\n\n"
-        + StringUtil.format("Default OperationMode:", 30) + configPlugin.getDefaultOperationMode() + '\n'
-        + StringUtil.format("Default Disabled: ", 30) + configPlugin.isDefaultDisabled());
+        System.out.println(ConfigCommands.getInfo(configPlugin));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicyGetCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicyGetCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicyGetCommand.java
index 350c802..72e4ccc 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicyGetCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicyGetCommand.java
@@ -19,21 +19,15 @@
 package org.apache.tamaya.karaf.shell;
 
 import org.apache.karaf.shell.api.action.Action;
-import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
-import org.apache.karaf.shell.api.action.Completion;
 import org.apache.karaf.shell.api.action.lifecycle.Reference;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.shell.api.console.CommandLine;
-import org.apache.karaf.shell.api.console.Completer;
-import org.apache.karaf.shell.api.console.Session;
-import org.apache.karaf.shell.support.completers.StringsCompleter;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 
 import java.io.IOException;
-import java.util.List;
 
-@Command(scope = "tamaya", name = "policy-get", description="Gets the current Tamaya operation policy.")
+@Command(scope = "tamaya", name = "tm_policy", description="Gets the current Tamaya operation policy.")
 @Service
 public class PolicyGetCommand implements Action{
 
@@ -42,7 +36,7 @@ public class PolicyGetCommand implements Action{
 
     @Override
     public Object execute() throws IOException {
-        System.out.println(this.configPlugin.getDefaultOperationMode());
+        System.out.println(ConfigCommands.getDefaultOpPolicy(configPlugin));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicySetCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicySetCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicySetCommand.java
index 7e2af6a..2d2b478 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicySetCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PolicySetCommand.java
@@ -30,27 +30,26 @@ import org.apache.karaf.shell.api.console.Session;
 import org.apache.karaf.shell.support.completers.StringsCompleter;
 import org.apache.tamaya.osgi.OperationMode;
 import org.apache.tamaya.osgi.TamayaConfigPlugin;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 
 import java.io.IOException;
 import java.util.List;
 
-@Command(scope = "tamaya", name = "policy-set", description="Sets the current Tamaya operation policy.")
+@Command(scope = "tamaya", name = "tamaya_policy_set", description="Sets the current Tamaya operation policy.")
 @Service
 public class PolicySetCommand implements Action{
 
     @Reference
     private TamayaConfigPlugin configPlugin;
 
-    @Argument(index = 0, name = "operationPolicy", description = "The operation policy how Tamaya intercepts OSGI configuration.",
+    @Argument(index = 0, name = "tm_policy_set", description = "The operation policy how Tamaya intercepts OSGI configuration.",
             required = true, multiValued = false)
     @Completion(OperationModeCompleter.class)
     String policy = null;
 
     @Override
     public Object execute() throws IOException {
-        OperationMode opMode = OperationMode.valueOf(policy);
-        this.configPlugin.setDefaultOperationMode(opMode);
-        System.out.println("OperationMode="+opMode.toString());
+        System.out.println(ConfigCommands.setDefaultOpPolicy(configPlugin, policy));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertyGetCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertyGetCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertyGetCommand.java
index 061bcfe..cda1a2b 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertyGetCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertyGetCommand.java
@@ -18,22 +18,20 @@
  */
 package org.apache.tamaya.karaf.shell;
 
-import org.apache.commons.codec.binary.StringUtils;
 import org.apache.karaf.shell.api.action.Action;
 import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.Option;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
-import org.apache.karaf.util.StringEscapeUtils;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
-import org.apache.tamaya.functions.ConfigurationFunctions;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
 
 import java.io.IOException;
 
-@Command(scope = "tamaya", name = "property-get", description="Get a Tamaya property.")
+@Command(scope = "tamaya", name = "tm_property", description="Get a Tamaya property.")
 @Service
 public class PropertyGetCommand implements Action{
 
@@ -49,37 +47,7 @@ public class PropertyGetCommand implements Action{
     String propertysource = null;
 
     public Object execute() throws IOException {
-        Configuration config = ConfigurationProvider.getConfiguration();
-        if(propertysource!=null){
-            PropertySource ps = config.getContext().getPropertySource(propertysource);
-            if(ps==null){
-                System.out.println("ERR: No such propertysource: " + propertysource);
-            }else {
-                PropertyValue val = ps.get(key);
-                if(val==null){
-                    System.out.println("ERR: PropertySource: " + propertysource + " - undefined key: " + key);
-                }else {
-                    if(extended) {
-                        System.out.println(StringUtil.format("PropertySource", 25) + StringUtil.format("Value", 25));
-                        System.out.println(StringUtil.format(propertysource, 25) + StringUtil.format(val.getValue(), 55));
-                    }else{
-                        System.out.println(val.getValue());
-                    }
-                }
-            }
-        }else{
-            System.out.println(StringUtil.format("PropertySource", 25) + StringUtil.format("Value", 25));
-            for(PropertySource ps:config.getContext().getPropertySources()){
-                PropertyValue val = ps.get(key);
-                if(val!=null){
-                    if(extended) {
-                        System.out.println(StringUtil.format(propertysource, 25) + StringUtil.format(val.toString(), 55));
-                    }else{
-                        System.out.println(StringUtil.format(propertysource, 25) + StringUtil.format(val.getValue(), 55));
-                    }
-                }
-            }
-        }
+        System.out.println(ConfigCommands.getProperty(propertysource, key, extended));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourceCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourceCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourceCommand.java
index c3e1c57..3a2f695 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourceCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourceCommand.java
@@ -24,12 +24,13 @@ import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 import org.apache.tamaya.spi.PropertySource;
 import org.apache.tamaya.spi.PropertyValue;
 
 import java.io.IOException;
 
-@Command(scope = "tamaya", name = "propertysource", description="Show the current Tamaya entries of a propertysource.")
+@Command(scope = "tamaya", name = "tm_propertysource", description="Show the current Tamaya entries of a propertysource.")
 @Service
 public class PropertySourceCommand implements Action{
 
@@ -38,29 +39,7 @@ public class PropertySourceCommand implements Action{
     String propertysource = null;
 
     public Object execute() throws IOException {
-        Configuration config = ConfigurationProvider.getConfiguration();
-        if(propertysource!=null){
-            PropertySource ps = config.getContext().getPropertySource(propertysource);
-            if(ps==null){
-                System.out.println("No such propertysource: " + propertysource);
-            }else {
-                System.out.println(StringUtil.format("ID:", 20) + ps.getName());
-                System.out.println(StringUtil.format("Ordinal:", 20) + ps.getOrdinal());
-                System.out.println(StringUtil.format("Class:", 20) + ps.getClass().getName());
-                System.out.println("Properties:");
-                System.out.print(StringUtil.format("  Key", 20));
-                System.out.print(StringUtil.format("Value", 20));
-                System.out.print(StringUtil.format("Source", 20));
-                System.out.println(StringUtil.format("Meta-Entries", 20));
-                System.out.println(StringUtil.printRepeat("-", 80));
-                for(PropertyValue pv:ps.getProperties().values()) {
-                    System.out.print("  " + StringUtil.format(pv.getKey(), 20));
-                    System.out.print(StringUtil.format(pv.getValue(), 20));
-                    System.out.print(StringUtil.format(pv.getSource(), 20));
-                    System.out.println(StringUtil.format(pv.getMetaEntries().toString(), 80));
-                }
-            }
-        }
+        System.out.println(ConfigCommands.getPropertySource(propertysource));
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
index 60289b9..315e9a9 100644
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
+++ b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/PropertySourcesCommand.java
@@ -19,34 +19,21 @@
 package org.apache.tamaya.karaf.shell;
 
 import org.apache.karaf.shell.api.action.Action;
-import org.apache.karaf.shell.api.action.Argument;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.apache.tamaya.Configuration;
 import org.apache.tamaya.ConfigurationProvider;
+import org.apache.tamaya.osgi.commands.ConfigCommands;
 import org.apache.tamaya.spi.PropertySource;
-import org.apache.tamaya.spi.PropertyValue;
 
 import java.io.IOException;
 
-@Command(scope = "tamaya", name = "propertysources", description="Get a list of currently registered propertysources.")
+@Command(scope = "tamaya", name = "tm_propertysources", description="Get a list of currently registered propertysources.")
 @Service
 public class PropertySourcesCommand implements Action{
 
     public Object execute() throws IOException {
-        Configuration config = ConfigurationProvider.getConfiguration();
-        System.out.print(StringUtil.format("ID", 20));
-        System.out.print(StringUtil.format("Ordinal", 20));
-        System.out.print(StringUtil.format("Class", 40));
-        System.out.println(StringUtil.format("Property Count", 5));
-        System.out.println(StringUtil.printRepeat("-", 80));
-        for(PropertySource ps:config.getContext().getPropertySources()){
-            System.out.print(StringUtil.format(ps.getName(), 20));
-            System.out.print(StringUtil.format(String.valueOf(ps.getOrdinal()), 20));
-            System.out.print(StringUtil.format(ps.getClass().getName(), 40));
-            System.out.println(StringUtil.format(String.valueOf(ps.getProperties().size()), 5));
-            System.out.println("---");
-        }
+        System.out.println(ConfigCommands.getPropertySourceOverview());
         return null;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-tamaya-sandbox/blob/c2becbfd/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/StringUtil.java
----------------------------------------------------------------------
diff --git a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/StringUtil.java b/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/StringUtil.java
deleted file mode 100644
index f32144b..0000000
--- a/osgi/karaf-shell/src/main/java/org/apache/tamaya/karaf/shell/StringUtil.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.tamaya.karaf.shell;
-
-/**
- * Some String related helper methods.
- */
-final class StringUtil {
-
-    private StringUtil(){}
-
-    public static String format(String in, int length){
-        if(in==null){
-            in = "";
-        }
-        int count = length - in.length();
-        if(count<0){
-            return in.substring(0,length-3) + "...";
-        }
-        return in + printRepeat(" ", count);
-    }
-
-    public static String printRepeat(String s, int times) {
-        StringBuilder b = new StringBuilder();
-        for(int i=0;i<times;i++){
-            b.append(s);
-        }
-        return b.toString();
-    }
-}