You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2017/10/26 14:05:33 UTC
[karaf] 01/05: [KARAF-5445] Completers should be followed by a
space when complete
This is an automated email from the ASF dual-hosted git repository.
gnodet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/karaf.git
commit 1c6a3371116c3f48a7f6405be1cc17fd7c06ef8c
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Oct 26 12:42:56 2017 +0200
[KARAF-5445] Completers should be followed by a space when complete
---
.../completers/BundleSymbolicNameCompleter.java | 17 ++++-----------
.../command/completers/ConfigurationCompleter.java | 6 +++---
.../ConnectionFactoriesNameCompleter.java | 2 +-
.../impl/action/command/ArgumentCompleter.java | 25 ++++++++++------------
.../shell/impl/console/CommandsCompleter.java | 2 +-
.../shell/support/completers/StringsCompleter.java | 4 ++--
6 files changed, 22 insertions(+), 34 deletions(-)
diff --git a/bundle/core/src/main/java/org/apache/karaf/bundle/command/completers/BundleSymbolicNameCompleter.java b/bundle/core/src/main/java/org/apache/karaf/bundle/command/completers/BundleSymbolicNameCompleter.java
index c0b56f7..0b2ec36 100644
--- a/bundle/core/src/main/java/org/apache/karaf/bundle/command/completers/BundleSymbolicNameCompleter.java
+++ b/bundle/core/src/main/java/org/apache/karaf/bundle/command/completers/BundleSymbolicNameCompleter.java
@@ -18,14 +18,13 @@ package org.apache.karaf.bundle.command.completers;
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.Candidate;
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.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
-import java.util.ArrayList;
import java.util.List;
@Service
@@ -36,19 +35,11 @@ public class BundleSymbolicNameCompleter implements Completer {
@Override
public int complete(Session session, CommandLine commandLine, List<String> candidates) {
- List<Candidate> cands = new ArrayList<>();
- completeCandidates(session, commandLine, cands);
- for (Candidate cand : cands) {
- candidates.add(cand.value());
- }
- return candidates.isEmpty() ? -1 : 0;
- }
-
- @Override
- public void completeCandidates(Session session, CommandLine commandLine, List<Candidate> candidates) {
+ StringsCompleter delegate = new StringsCompleter();
for (Bundle bundle : bundleContext.getBundles()) {
- candidates.add(new Candidate(bundle.getSymbolicName(), true));
+ delegate.getStrings().add(bundle.getSymbolicName());
}
+ return delegate.complete(session, commandLine, candidates);
}
}
diff --git a/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java b/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
index 19cc0df..b0cef13 100644
--- a/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
+++ b/config/src/main/java/org/apache/karaf/config/command/completers/ConfigurationCompleter.java
@@ -77,7 +77,7 @@ public class ConfigurationCompleter implements Completer, ConfigurationListener
Collection<String> pids = new ArrayList<>();
for (Configuration config : configs) {
- pids.add(config.getPid() + " ");
+ pids.add(config.getPid());
}
delegate.getStrings().addAll(pids);
@@ -95,9 +95,9 @@ public class ConfigurationCompleter implements Completer, ConfigurationListener
public void configurationEvent(ConfigurationEvent configurationEvent) {
String pid = configurationEvent.getPid();
if (configurationEvent.getType() == ConfigurationEvent.CM_DELETED) {
- delegate.getStrings().remove(pid + " ");
+ delegate.getStrings().remove(pid);
} else if (configurationEvent.getType() == ConfigurationEvent.CM_UPDATED) {
- delegate.getStrings().add(pid + " ");
+ delegate.getStrings().add(pid);
}
}
}
diff --git a/jms/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java b/jms/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
index 2fd8d2a..98f97b3 100644
--- a/jms/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
+++ b/jms/src/main/java/org/apache/karaf/jms/command/completers/ConnectionFactoriesNameCompleter.java
@@ -40,7 +40,7 @@ public class ConnectionFactoriesNameCompleter implements Completer {
StringsCompleter delegate = new StringsCompleter();
try {
for (String connectionFactory : jmsService.connectionFactories()) {
- delegate.getStrings().add(connectionFactory + " ");
+ delegate.getStrings().add(connectionFactory);
}
} catch (Exception e) {
// nothing to do
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
index 25e259e..0a4a5e1 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/action/command/ArgumentCompleter.java
@@ -22,6 +22,7 @@ import java.io.File;
import java.lang.reflect.Field;
import java.net.URI;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.EnumSet;
import java.util.HashMap;
@@ -119,12 +120,10 @@ public class ArgumentCompleter implements Completer {
if (ann != null) {
Class<?> clazz = ann.value();
String[] value = ann.values();
- if (clazz != null) {
- if (value.length > 0 && clazz == StringsCompleter.class) {
- completer = new StringsCompleter(value, ann.caseSensitive());
- } else {
- completer = command.getCompleter(clazz);
- }
+ if (value.length > 0) {
+ completer = new StringsCompleter(Arrays.asList(value), ann.caseSensitive());
+ } else {
+ completer = command.getCompleter(clazz);
}
} else {
completer = getDefaultCompleter(field, multi);
@@ -148,12 +147,10 @@ public class ArgumentCompleter implements Completer {
try {
Class clazz = ann.value();
String[] value = ann.values();
- if (clazz != null) {
- if (clazz == StringsCompleter.class) {
- completer = new StringsCompleter(value, ann.caseSensitive());
- } else {
- completer = command.getCompleter(clazz);
- }
+ if (value.length > 0) {
+ completer = new StringsCompleter(Arrays.asList(value), ann.caseSensitive());
+ } else {
+ completer = command.getCompleter(clazz);
}
} catch (Throwable t) {
// Ignore in case the completer class is not even available
@@ -189,13 +186,13 @@ public class ArgumentCompleter implements Completer {
} else if (type.isAssignableFrom(File.class)) {
completer = new FileCompleter();
} else if (type.isAssignableFrom(Boolean.class) || type.isAssignableFrom(boolean.class)) {
- completer = new StringsCompleter(new String[] {"false", "true"}, false);
+ completer = new StringsCompleter(Arrays.asList("false", "true"));
} else if (Enum.class.isAssignableFrom(type)) {
Set<String> values = new HashSet<>();
for (Object o : EnumSet.allOf((Class<Enum>) type)) {
values.add(o.toString());
}
- completer = new StringsCompleter(values, false);
+ completer = new StringsCompleter(values);
}
return completer;
}
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/CommandsCompleter.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/CommandsCompleter.java
index 84f87c6..b75489b 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/CommandsCompleter.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/CommandsCompleter.java
@@ -97,7 +97,7 @@ public class CommandsCompleter extends org.apache.karaf.shell.support.completers
}
}
if (!subShell.equals(Session.SCOPE_GLOBAL)) {
- completers.add(new StringsCompleter(new String[] { "exit" }));
+ completers.add(new StringsCompleter(Collections.singletonList("exit")));
}
completers.forEach(c -> c.completeCandidates(session, commandLine, candidates));
return;
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/support/completers/StringsCompleter.java b/shell/core/src/main/java/org/apache/karaf/shell/support/completers/StringsCompleter.java
index 7eff78d..4a57aef 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/support/completers/StringsCompleter.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/support/completers/StringsCompleter.java
@@ -39,7 +39,7 @@ public class StringsCompleter
private final boolean caseSensitive;
public StringsCompleter() {
- this(true);
+ this(false);
}
public StringsCompleter(final boolean caseSensitive) {
@@ -95,7 +95,7 @@ public class StringsCompleter
}
// noinspection unchecked
- candidates.add(match);
+ candidates.add(match + " ");
}
return candidates.isEmpty() ? -1 : commandLine.getBufferPosition() - commandLine.getArgumentPosition();
--
To stop receiving notification emails like this one, please contact
"commits@karaf.apache.org" <co...@karaf.apache.org>.