Author: gnodet
Date: Fri Sep 3 14:13:28 2010
New Revision: 992306
URL: http://svn.apache.org/viewvc?rev=992306&view=rev
Log:
KARAF-171: provides a help command
Added:
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/HelpAction.java
Removed:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/commands/Help.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/SimpleCommandsCompleter.java
Modified:
karaf/trunk/shell/commands/src/main/resources/META-INF/services/org/apache/karaf/shell/commands
karaf/trunk/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/SimpleCommand.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/ConsoleFactory.java
karaf/trunk/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
karaf/trunk/shell/console/src/test/java/org/apache/karaf/shell/console/ExampleSubclassMain.java
karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
karaf/trunk/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
karaf/trunk/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
Added:
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/HelpAction.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/HelpAction.java?rev=992306&view=auto
==============================================================================
---
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/HelpAction.java
(added)
+++
karaf/trunk/shell/commands/src/main/java/org/apache/karaf/shell/commands/HelpAction.java
Fri Sep 3 14:13:28 2010
@@ -0,0 +1,119 @@
+/**
+ *
+ * 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.karaf.shell.commands;
+
+import java.io.PrintStream;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+import jline.Terminal;
+import org.apache.felix.gogo.commands.Action;
+import org.apache.felix.gogo.commands.Argument;
+import org.apache.felix.gogo.commands.Command;
+import org.apache.felix.gogo.commands.basic.AbstractCommand;
+import org.apache.felix.gogo.commands.basic.DefaultActionPreparator;
+import org.apache.felix.gogo.runtime.shell.CommandProxy;
+import org.apache.felix.gogo.runtime.shell.CommandSessionImpl;
+import org.apache.karaf.shell.console.AbstractAction;
+import org.fusesource.jansi.Ansi;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.command.Function;
+
+/**
+ * Displays help on the available commands
+ */
+...@command(scope = "*", name = "help", description = "Displays this help or
help about a command")
+public class HelpAction extends AbstractAction {
+
+ @Argument(name = "command", required = false, description = "The command
to get help for")
+ private String command;
+
+ public Object doExecute() throws Exception {
+ if (command == null) {
+ Set<String> names = (Set<String>) session.get(".commands");
+ if (!names.isEmpty()) {
+ Terminal term = (Terminal) session.get(".jline.terminal");
+ PrintStream out = System.out;
+ SortedMap<String,String> commands = new
TreeMap<String,String>();
+ for (String name : names) {
+ String description = null;
+ Function function = (Function) session.get(name);
+ function = unProxy(function);
+ if (function instanceof AbstractCommand) {
+ try {
+ Method mth =
AbstractCommand.class.getDeclaredMethod("createNewAction");
+ mth.setAccessible(true);
+ Action action = (Action) mth.invoke(function);
+ Class<? extends Action> clazz = action.getClass();
+ Command ann = clazz.getAnnotation(Command.class);
+ description = ann.description();
+ } catch (Throwable e) {
+ }
+ if (name.startsWith("*:")) {
+ name = name.substring(2);
+ }
+ commands.put(name, description);
+ }
+ }
+ // Post process the commands list
+
+
out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a("COMMANDS").a(Ansi.Attribute.RESET));
+ for (Map.Entry<String,String> entry : commands.entrySet()) {
+ out.print(" ");
+
out.println(Ansi.ansi().a(Ansi.Attribute.INTENSITY_BOLD).a(entry.getKey()).a(Ansi.Attribute.RESET));
+ if (entry.getValue() != null) {
+ DefaultActionPreparator.printFormatted("
", entry.getValue(), term != null ? term.getTerminalWidth() : 80, out);
+ }
+ }
+ out.println();
+ }
+ return null;
+ } else {
+ return session.execute(command + " --help");
+ }
+ }
+
+ protected Function unProxy(Function function) {
+ try {
+ if (function.getClass().getName().contains("CommandProxy")) {
+ Field contextField =
function.getClass().getDeclaredField("context");
+ Field referenceField =
function.getClass().getDeclaredField("reference");
+ contextField.setAccessible(true);
+ referenceField.setAccessible(true);
+ BundleContext context = (BundleContext)
contextField.get(function);
+ ServiceReference reference = (ServiceReference)
referenceField.get(function);
+ Object target = context.getService(reference);
+ try {
+ if (target instanceof Function) {
+ function = (Function) target;
+ }
+ } finally {
+ context.ungetService(reference);
+ }
+ }
+ } catch (Throwable t) {
+ }
+ return function;
+ }
+
+}
Modified:
karaf/trunk/shell/commands/src/main/resources/META-INF/services/org/apache/karaf/shell/commands
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/commands/src/main/resources/META-INF/services/org/apache/karaf/shell/commands?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/commands/src/main/resources/META-INF/services/org/apache/karaf/shell/commands
(original)
+++
karaf/trunk/shell/commands/src/main/resources/META-INF/services/org/apache/karaf/shell/commands
Fri Sep 3 14:13:28 2010
@@ -4,6 +4,7 @@ org.apache.karaf.shell.commands.EachActi
org.apache.karaf.shell.commands.EchoAction
org.apache.karaf.shell.commands.ExecuteAction
org.apache.karaf.shell.commands.GrepAction
+org.apache.karaf.shell.commands.HelpAction
org.apache.karaf.shell.commands.HistoryAction
org.apache.karaf.shell.commands.IfAction
org.apache.karaf.shell.commands.JavaAction
Modified:
karaf/trunk/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
(original)
+++
karaf/trunk/shell/commands/src/main/resources/OSGI-INF/blueprint/shell-commands.xml
Fri Sep 3 14:13:28 2010
@@ -20,9 +20,16 @@
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
<command-bundle xmlns="http://karaf.apache.org/xmlns/shell/v1.0.0">
+ <command name="*/help">
+ <action class="org.apache.karaf.shell.commands.HelpAction"/>
+ </command>
+
<command name="shell/cat">
<action class="org.apache.karaf.shell.commands.CatAction"/>
</command>
+ <command name="shell/clear">
+ <action class="org.apache.karaf.shell.commands.ClearAction"/>
+ </command>
<command name="shell/each">
<action class="org.apache.karaf.shell.commands.EachAction"/>
</command>
@@ -44,9 +51,6 @@
<command name="shell/info">
<action class="org.apache.karaf.shell.commands.InfoAction"/>
</command>
- <command name="shell/clear">
- <action class="org.apache.karaf.shell.commands.ClearAction"/>
- </command>
<command name="shell/java">
<action class="org.apache.karaf.shell.commands.JavaAction"/>
</command>
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/SimpleCommand.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/SimpleCommand.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/SimpleCommand.java
(original)
+++
karaf/trunk/shell/console/src/main/java/org/apache/felix/gogo/commands/basic/SimpleCommand.java
Fri Sep 3 14:13:28 2010
@@ -26,6 +26,9 @@ import org.osgi.service.command.Function
import org.apache.felix.gogo.commands.Action;
import org.apache.felix.gogo.commands.Command;
+/**
+ * A very simple {...@link Function} which creates {...@link Action} based on
a class name.
+ */
public class SimpleCommand extends AbstractCommand {
private Class<? extends Action> actionClass;
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
(original)
+++
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/Main.java
Fri Sep 3 14:13:28 2010
@@ -18,7 +18,13 @@
*/
package org.apache.karaf.shell.console;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.PrintStream;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
@@ -34,8 +40,6 @@ import org.apache.felix.gogo.commands.ba
import org.apache.felix.gogo.runtime.lang.Support;
import org.apache.felix.gogo.runtime.shell.CommandShellImpl;
import org.apache.felix.gogo.runtime.threadio.ThreadIOImpl;
-import org.apache.karaf.shell.console.commands.Help;
-import org.apache.karaf.shell.console.completer.SimpleCommandsCompleter;
import org.apache.karaf.shell.console.jline.Console;
import org.apache.karaf.shell.console.jline.TerminalFactory;
import org.fusesource.jansi.AnsiConsole;
@@ -77,24 +81,12 @@ public class Main {
args = a;
}
- final SimpleCommandsCompleter completer = new
SimpleCommandsCompleter(this);
-
- // add top level help
- Command helpCommand = Help.class.getAnnotation(Command.class);
- Function helpFunction = new AbstractCommand() {
- @Override
- protected Action createNewAction() throws Exception {
- return new Help(completer);
- }
- };
- addCommand(helpCommand, helpFunction, commandProcessor, completer);
-
- discoverCommands(commandProcessor, cl, completer);
+ discoverCommands(commandProcessor, cl);
InputStream in = unwrap(System.in);
PrintStream out = wrap(unwrap(System.out));
PrintStream err = wrap(unwrap(System.err));
- run(commandProcessor, args, in, out, err, completer);
+ run(commandProcessor, args, in, out, err);
// TODO: do we need to stop the threadio that was started?
// threadio.stop();
@@ -130,19 +122,18 @@ public class Main {
args = a;
}
- SimpleCommandsCompleter completer = new SimpleCommandsCompleter(this);
- discoverCommands(commandProcessor, cl, completer);
+ discoverCommands(commandProcessor, cl);
InputStream in = parent.getKeyboard();
PrintStream out = parent.getConsole();
PrintStream err = parent.getConsole();
- run(commandProcessor, args, in, out, err, completer);
+ run(commandProcessor, args, in, out, err);
}
- private void run(final CommandShellImpl commandProcessor, String[] args,
final InputStream in, final PrintStream out, final PrintStream err, final
Completer completer) throws Exception {
+ private void run(final CommandShellImpl commandProcessor, String[] args,
final InputStream in, final PrintStream out, final PrintStream err) throws
Exception {
TerminalFactory terminalFactory = new TerminalFactory();
Terminal terminal = terminalFactory.getTerminal();
- Console console = createConsole(commandProcessor, in, out, err,
terminal, completer);
+ Console console = createConsole(commandProcessor, in, out, err,
terminal);
CommandSession session = console.getSession();
session.put("USER", user);
session.put("APPLICATION", application);
@@ -177,8 +168,8 @@ public class Main {
* @return
* @throws Exception
*/
- protected Console createConsole(CommandShellImpl commandProcessor,
InputStream in, PrintStream out, PrintStream err, Terminal terminal, Completer
completer) throws Exception {
- return new Console(commandProcessor, in, out, err, terminal,
completer, null);
+ protected Console createConsole(CommandShellImpl commandProcessor,
InputStream in, PrintStream out, PrintStream err, Terminal terminal) throws
Exception {
+ return new Console(commandProcessor, in, out, err, terminal, null);
}
/**
@@ -191,7 +182,7 @@ public class Main {
return "META-INF/services/org/apache/karaf/shell/commands";
}
- private void discoverCommands(CommandShellImpl commandProcessor,
ClassLoader cl, SimpleCommandsCompleter completer) throws IOException,
ClassNotFoundException {
+ private void discoverCommands(CommandShellImpl commandProcessor,
ClassLoader cl) throws IOException, ClassNotFoundException {
Enumeration<URL> urls = cl.getResources(getDiscoveryResource());
while (urls.hasMoreElements()) {
URL url = urls.nextElement();
@@ -208,7 +199,7 @@ public class Main {
return ((Class<? extends Action>)
actionClass).newInstance();
}
};
- addCommand(cmd, function, commandProcessor, completer);
+ addCommand(cmd, function, commandProcessor);
}
line = r.readLine();
}
@@ -216,10 +207,9 @@ public class Main {
}
}
- protected void addCommand(Command cmd, Function function, CommandShellImpl
commandProcessor, SimpleCommandsCompleter completer) {
+ protected void addCommand(Command cmd, Function function, CommandShellImpl
commandProcessor) {
try {
commandProcessor.addCommand(cmd.scope(), function, cmd.name());
- completer.addCommand(cmd, function);
} catch (Exception e) {
}
}
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
(original)
+++
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/completer/CommandsCompleter.java
Fri Sep 3 14:13:28 2010
@@ -18,89 +18,97 @@
*/
package org.apache.karaf.shell.console.completer;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.HashSet;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.concurrent.ConcurrentHashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
-import org.apache.karaf.shell.console.Completer;
+import org.apache.felix.gogo.commands.basic.AbstractCommand;
+import org.apache.felix.gogo.runtime.shell.CommandProxy;
+import org.apache.felix.gogo.runtime.shell.CommandSessionImpl;
import org.apache.karaf.shell.console.CompletableFunction;
-import org.osgi.framework.ServiceReference;
+import org.apache.karaf.shell.console.Completer;
import org.osgi.framework.BundleContext;
-import org.osgi.service.command.CommandProcessor;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.command.CommandSession;
+import org.osgi.service.command.Function;
+/**
+ * Like the {...@link
org.apache.karaf.shell.console.completer.CommandsCompleter} but does not use
OSGi but is
+ * instead used from the non-OSGi {...@link
org.apache.karaf.shell.console.Main}
+ */
public class CommandsCompleter implements Completer {
- private final Map<ServiceReference, Completer> completers = new
ConcurrentHashMap<ServiceReference, Completer>();
+ private CommandSession session;
+ private final List<Completer> completers = new ArrayList<Completer>();
+ private final Set<String> commands = new HashSet<String>();
+
+ public CommandsCompleter(CommandSession session) {
+ this.session = session;
+ }
- private BundleContext bundleContext;
- public void setBundleContext(BundleContext bundleContext) {
- this.bundleContext = bundleContext;
+ public int complete(String buffer, int cursor, List<String> candidates) {
+ checkData();
+ int res = new AggregateCompleter(completers).complete(buffer, cursor,
candidates);
+ Collections.sort(candidates);
+ return res;
}
- public void register(ServiceReference reference) {
- Set<String> functions = getNames(reference);
- if (functions != null) {
- List<Completer> cl = new ArrayList<Completer>();
- cl.add(new StringsCompleter(functions));
- try {
- Object function = bundleContext.getService(reference);
- if (function instanceof CompletableFunction) {
- List<Completer> fcl = ((CompletableFunction)
function).getCompleters();
- if (fcl != null) {
- for (Completer c : fcl) {
- cl.add(c == null ? NullCompleter.INSTANCE : c);
+ protected synchronized void checkData() {
+ Set<String> names = (Set<String>)
session.get(CommandSessionImpl.COMMANDS);
+ if (!names.equals(commands)) {
+ commands.clear();
+ completers.clear();
+ for (String command : names) {
+ Function function = (Function) session.get(command);
+ function = unProxy(function);
+ if (function instanceof AbstractCommand) {
+ List<Completer> cl = new ArrayList<Completer>();
+ cl.add(new StringsCompleter(new String[] { command }));
+ if (function instanceof CompletableFunction) {
+ List<Completer> fcl = ((CompletableFunction)
function).getCompleters();
+ if (fcl != null) {
+ for (Completer c : fcl) {
+ cl.add(c == null ? NullCompleter.INSTANCE : c);
+ }
+ } else {
+ cl.add(NullCompleter.INSTANCE);
}
} else {
cl.add(NullCompleter.INSTANCE);
}
- } else {
- cl.add(NullCompleter.INSTANCE);
+ completers.add(new ArgumentCompleter(cl));
}
- } finally {
- bundleContext.ungetService(reference);
+ commands.add(command);
}
- ArgumentCompleter c = new ArgumentCompleter(cl);
- completers.put(reference, c);
- }
- }
-
- public void unregister(ServiceReference reference) {
- if (reference != null) {
- completers.remove(reference);
}
}
- private Set<String> getNames(ServiceReference reference) {
- Set<String> names = new HashSet<String>();
- Object scope = reference.getProperty(CommandProcessor.COMMAND_SCOPE);
- Object function =
reference.getProperty(CommandProcessor.COMMAND_FUNCTION);
- if(scope != null && function != null)
- {
- if (function.getClass().isArray())
- {
- for (Object f : ((Object[]) function))
- {
- names.add(scope + ":" + f.toString());
+ protected Function unProxy(Function function) {
+ try {
+ if (function instanceof CommandProxy) {
+ Field contextField =
function.getClass().getDeclaredField("context");
+ Field referenceField =
function.getClass().getDeclaredField("reference");
+ contextField.setAccessible(true);
+ referenceField.setAccessible(true);
+ BundleContext context = (BundleContext)
contextField.get(function);
+ ServiceReference reference = (ServiceReference)
referenceField.get(function);
+ Object target = context.getService(reference);
+ try {
+ if (target instanceof Function) {
+ function = (Function) target;
+ }
+ } finally {
+ context.ungetService(reference);
}
}
- else
- {
- names.add(scope + ":" + function.toString());
- }
- return names;
+ } catch (Throwable t) {
}
- return null;
+ return function;
}
- public int complete(String buffer, int cursor, List<String> candidates) {
- int res = new
AggregateCompleter(completers.values()).complete(buffer, cursor, candidates);
- Collections.sort(candidates);
- return res;
- }
}
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
(original)
+++
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/Console.java
Fri Sep 3 14:13:28 2010
@@ -43,6 +43,7 @@ import jline.UnsupportedTerminal;
import org.apache.karaf.shell.console.CloseShellException;
import org.apache.karaf.shell.console.Completer;
import org.apache.karaf.shell.console.completer.AggregateCompleter;
+import org.apache.karaf.shell.console.completer.CommandsCompleter;
import org.apache.karaf.shell.console.completer.SessionScopeCompleter;
import org.fusesource.jansi.Ansi;
import org.osgi.service.command.CommandProcessor;
@@ -81,7 +82,6 @@ public class Console implements Runnable
PrintStream out,
PrintStream err,
Terminal term,
- Completer completer,
Runnable closeCallback) throws Exception
{
this.in = in;
@@ -103,17 +103,9 @@ public class Console implements Runnable
file.getParentFile().mkdirs();
reader.getHistory().setHistoryFile(file);
session.put(".jline.history", reader.getHistory());
+ Completer completer = createCompleter();
if (completer != null) {
- reader.addCompletor(
- new CompleterAsCompletor(
- new AggregateCompleter(
- Arrays.asList(
- completer,
- new SessionScopeCompleter( session, completer )
- )
- )
- )
- );
+ reader.addCompletor(new CompleterAsCompletor(completer));
}
if (Boolean.getBoolean("jline.nobell")) {
reader.setBellEnabled(false);
@@ -249,6 +241,16 @@ public class Console implements Runnable
}
}
+ protected Completer createCompleter() {
+ Completer completer = new CommandsCompleter(session);
+ return new AggregateCompleter(
+ Arrays.asList(
+ completer,
+ new SessionScopeCompleter( session, completer )
+ )
+ );
+ }
+
protected Properties loadBrandingProperties() {
Properties props = new Properties();
loadProps(props, "org/apache/karaf/shell/console/branding.properties");
Modified:
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/ConsoleFactory.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/ConsoleFactory.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/ConsoleFactory.java
(original)
+++
karaf/trunk/shell/console/src/main/java/org/apache/karaf/shell/console/jline/ConsoleFactory.java
Fri Sep 3 14:13:28 2010
@@ -37,7 +37,6 @@ public class ConsoleFactory {
private BundleContext bundleContext;
private CommandProcessor commandProcessor;
- private List<Completer> completers;
private TerminalFactory terminalFactory;
private Console console;
private boolean start;
@@ -56,10 +55,6 @@ public class ConsoleFactory {
stop();
}
- public void setCompleters(List<Completer> completers) {
- this.completers = completers;
- }
-
public void setTerminalFactory(TerminalFactory terminalFactory) {
this.terminalFactory = terminalFactory;
}
@@ -88,7 +83,6 @@ public class ConsoleFactory {
wrap(out),
wrap(err),
terminal,
- new AggregateCompleter(completers),
callback);
CommandSession session = console.getSession();
session.put("USER", "karaf");
Modified:
karaf/trunk/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
(original)
+++
karaf/trunk/shell/console/src/main/resources/OSGI-INF/blueprint/karaf-console.xml
Fri Sep 3 14:13:28 2010
@@ -32,25 +32,9 @@
unbind-method="unregisterCommandProcessor"/>
</reference>
- <reference-list id="functions"
filter="(&(osgi.command.scope=*)(osgi.command.function=*))"
- availability="optional">
- <reference-listener ref="commandCompleter"
- bind-method="register"
- unbind-method="unregister"/>
- </reference-list>
-
- <bean id="commandCompleter"
class="org.apache.karaf.shell.console.completer.CommandsCompleter">
- <property name="bundleContext" ref="blueprintBundleContext"/>
- </bean>
-
<bean id="consoleFactory"
class="org.apache.karaf.shell.console.jline.ConsoleFactory">
<property name="start" value="$[karaf.startLocalConsole]"/>
<property name="bundleContext" ref="blueprintBundleContext"/>
- <property name="completers">
- <list>
- <ref component-id="commandCompleter"/>
- </list>
- </property>
<property name="terminalFactory" ref="terminalFactory"/>
</bean>
Modified:
karaf/trunk/shell/console/src/test/java/org/apache/karaf/shell/console/ExampleSubclassMain.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/console/src/test/java/org/apache/karaf/shell/console/ExampleSubclassMain.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/console/src/test/java/org/apache/karaf/shell/console/ExampleSubclassMain.java
(original)
+++
karaf/trunk/shell/console/src/test/java/org/apache/karaf/shell/console/ExampleSubclassMain.java
Fri Sep 3 14:13:28 2010
@@ -46,8 +46,8 @@ public class ExampleSubclassMain extends
}
@Override
- protected Console createConsole(CommandShellImpl commandProcessor,
InputStream in, PrintStream out, PrintStream err, Terminal terminal, Completer
completer) throws Exception {
- return new Console(commandProcessor, in, out, err, terminal,
completer, null) {
+ protected Console createConsole(CommandShellImpl commandProcessor,
InputStream in, PrintStream out, PrintStream err, Terminal terminal) throws
Exception {
+ return new Console(commandProcessor, in, out, err, terminal, null) {
/**
* If you don't overwrite, then karaf will use the welcome message
found in the
Modified:
karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
(original)
+++
karaf/trunk/shell/ssh/src/main/java/org/apache/karaf/shell/ssh/ShellFactoryImpl.java
Fri Sep 3 14:13:28 2010
@@ -52,16 +52,11 @@ import org.osgi.service.command.CommandS
public class ShellFactoryImpl implements Factory<Command>
{
private CommandProcessor commandProcessor;
- private List<Completer> completers;
public void setCommandProcessor(CommandProcessor commandProcessor) {
this.commandProcessor = commandProcessor;
}
- public void setCompleters(List<Completer> completers) {
- this.completers = completers;
- }
-
public Command create() {
return new ShellImpl();
}
@@ -102,7 +97,6 @@ public class ShellFactoryImpl implements
new PrintStream(new
LfToCrLfFilterOutputStream(out), true),
new PrintStream(new
LfToCrLfFilterOutputStream(err), true),
terminal,
- new
AggregateCompleter(completers),
new Runnable() {
public void run() {
destroy();
Modified:
karaf/trunk/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
--- karaf/trunk/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
(original)
+++ karaf/trunk/shell/ssh/src/main/resources/OSGI-INF/blueprint/shell-ssh.xml
Fri Sep 3 14:13:28 2010
@@ -67,11 +67,6 @@
<property name="host" value="${sshHost}"/>
<property name="shellFactory">
<bean class="org.apache.karaf.shell.ssh.ShellFactoryImpl">
- <property name="completers">
- <list>
- <ref component-id="commandCompleter"/>
- </list>
- </property>
<property name="commandProcessor" ref="commandProcessor"/>
</bean>
</property>
@@ -107,8 +102,4 @@
unbind-method="unregister"/>
</reference-list>
- <bean id="commandCompleter"
class="org.apache.karaf.shell.console.completer.CommandsCompleter">
- <property name="bundleContext" ref="blueprintBundleContext" />
- </bean>
-
</blueprint>
Modified:
karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
(original)
+++
karaf/trunk/webconsole/gogo/src/main/java/org/apache/karaf/webconsole/gogo/GogoPlugin.java
Fri Sep 3 14:13:28 2010
@@ -71,8 +71,6 @@ public class GogoPlugin extends Abstract
private CommandProcessor commandProcessor;
- private List<Completer> completers;
-
public void setBundleContext(BundleContext bundleContext)
{
this.bundleContext = bundleContext;
@@ -83,11 +81,6 @@ public class GogoPlugin extends Abstract
this.commandProcessor = commandProcessor;
}
- public void setCompleters(List<Completer> completers)
- {
- this.completers = completers;
- }
-
/*
* Blueprint lifecycle callback methods
*/
@@ -213,7 +206,6 @@ public class GogoPlugin extends Abstract
pipedOut,
pipedOut,
new WebTerminal(TERM_WIDTH, TERM_HEIGHT),
- new AggregateCompleter(completers),
null);
CommandSession session = console.getSession();
session.put("APPLICATION", System.getProperty("karaf.name",
"root"));
Modified:
karaf/trunk/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml?rev=992306&r1=992305&r2=992306&view=diff
==============================================================================
---
karaf/trunk/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
(original)
+++
karaf/trunk/webconsole/gogo/src/main/resources/OSGI-INF/blueprint/webconsole-gogo.xml
Fri Sep 3 14:13:28 2010
@@ -38,10 +38,6 @@
unbind-method="unregister"/>
</reference-list>
- <bean id="commandCompleter"
class="org.apache.karaf.shell.console.completer.CommandsCompleter">
- <property name="bundleContext" ref="blueprintBundleContext" />
- </bean>
-
<service ref="gogoPlugin" interface="javax.servlet.Servlet" >
<service-properties>
<entry key="felix.webconsole.label" value="gogo"/>