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/09/11 21:28:47 UTC
[1/6] karaf git commit: [KARAF-5360] Upgrade to Felix Gogo Runtime /
JLine 1.0.8
Repository: karaf
Updated Branches:
refs/heads/master 7f43c83b5 -> b4642cb65
[KARAF-5360] Upgrade to Felix Gogo Runtime / JLine 1.0.8
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/fc6f1611
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/fc6f1611
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/fc6f1611
Branch: refs/heads/master
Commit: fc6f1611c40b8d327adba92a8a36fee6b1ce1fc3
Parents: c5d3a88
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Sep 11 09:04:11 2017 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Sep 11 09:04:11 2017 +0200
----------------------------------------------------------------------
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/fc6f1611/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 8fa9035..c364d56 100644
--- a/pom.xml
+++ b/pom.xml
@@ -193,8 +193,8 @@
<felix.fileinstall.version>3.6.0</felix.fileinstall.version>
<felix.framework.version>5.6.6</felix.framework.version>
<felix.framework.security.version>2.6.0</felix.framework.security.version>
- <felix.gogo.runtime.version>1.0.6</felix.gogo.runtime.version>
- <felix.gogo.jline.version>1.0.6</felix.gogo.jline.version>
+ <felix.gogo.runtime.version>1.0.8</felix.gogo.runtime.version>
+ <felix.gogo.jline.version>1.0.8</felix.gogo.jline.version>
<felix.httplite.version>0.1.6</felix.httplite.version>
<felix.inventory.version>1.0.4</felix.inventory.version>
<felix.plugin.version>3.3.0</felix.plugin.version>
[4/6] karaf git commit: Merge branch 'KARAF-5355', fixes #354
Posted by gn...@apache.org.
Merge branch 'KARAF-5355', fixes #354
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/78d28256
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/78d28256
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/78d28256
Branch: refs/heads/master
Commit: 78d28256d98f015b8b524f39b5e1a30302c826d5
Parents: 7f43c83 af16cb3
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Sep 11 23:25:03 2017 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Sep 11 23:25:03 2017 +0200
----------------------------------------------------------------------
.../java/org/apache/karaf/scheduler/command/Schedule.java | 6 +++++-
.../apache/karaf/scheduler/command/support/ScriptJob.java | 10 +++++++---
2 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
[2/6] karaf git commit: [KARAF-5355] The scripts triggered with
{{scheduler::schedule}} command fail to execute
Posted by gn...@apache.org.
[KARAF-5355] The scripts triggered with {{scheduler::schedule}} command fail to execute
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/af16cb35
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/af16cb35
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/af16cb35
Branch: refs/heads/master
Commit: af16cb353be58d8c417b8037e30e344e88182a76
Parents: c5d3a88
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Sep 11 11:15:22 2017 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Sep 11 11:15:22 2017 +0200
----------------------------------------------------------------------
.../java/org/apache/karaf/scheduler/command/Schedule.java | 6 +++++-
.../apache/karaf/scheduler/command/support/ScriptJob.java | 10 +++++++---
2 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/af16cb35/scheduler/src/main/java/org/apache/karaf/scheduler/command/Schedule.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/karaf/scheduler/command/Schedule.java b/scheduler/src/main/java/org/apache/karaf/scheduler/command/Schedule.java
index c17055f..b4c2d2e 100644
--- a/scheduler/src/main/java/org/apache/karaf/scheduler/command/Schedule.java
+++ b/scheduler/src/main/java/org/apache/karaf/scheduler/command/Schedule.java
@@ -31,6 +31,7 @@ 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.Function;
import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.api.console.SessionFactory;
@Command(scope = "scheduler", name = "schedule", description = "Schedule a script execution")
@Service
@@ -63,6 +64,9 @@ public class Schedule implements Action {
@Reference
Session session;
+ @Reference
+ SessionFactory sessionFactory;
+
@Override
public Object execute() throws Exception {
if (cron != null && (at != null || times != -1 || period != 0)) {
@@ -90,7 +94,7 @@ public class Schedule implements Action {
if (concurrent) {
options.canRunConcurrently(concurrent);
}
- scheduler.schedule(new ScriptJob(session, script), options);
+ scheduler.schedule(new ScriptJob(sessionFactory, session, script), options);
return null;
}
}
http://git-wip-us.apache.org/repos/asf/karaf/blob/af16cb35/scheduler/src/main/java/org/apache/karaf/scheduler/command/support/ScriptJob.java
----------------------------------------------------------------------
diff --git a/scheduler/src/main/java/org/apache/karaf/scheduler/command/support/ScriptJob.java b/scheduler/src/main/java/org/apache/karaf/scheduler/command/support/ScriptJob.java
index b0f3341..c62a638 100644
--- a/scheduler/src/main/java/org/apache/karaf/scheduler/command/support/ScriptJob.java
+++ b/scheduler/src/main/java/org/apache/karaf/scheduler/command/support/ScriptJob.java
@@ -16,12 +16,14 @@
*/
package org.apache.karaf.scheduler.command.support;
+import java.io.ByteArrayInputStream;
import java.util.Collections;
import org.apache.karaf.scheduler.Job;
import org.apache.karaf.scheduler.JobContext;
import org.apache.karaf.shell.api.console.Function;
import org.apache.karaf.shell.api.console.Session;
+import org.apache.karaf.shell.api.console.SessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -29,18 +31,20 @@ public class ScriptJob implements Job {
private static final Logger LOGGER = LoggerFactory.getLogger(ScriptJob.class);
+ private final SessionFactory sessionFactory;
private final Session session;
private final Function script;
- public ScriptJob(Session session, Function script) {
+ public ScriptJob(SessionFactory sessionFactory, Session session, Function script) {
+ this.sessionFactory = sessionFactory;
this.session = session;
this.script = script;
}
@Override
public void execute(JobContext context) {
- try {
- script.execute(session, Collections.singletonList(context));
+ try (Session s = sessionFactory.create(new ByteArrayInputStream(new byte[0]), session.getConsole(), session.getConsole(), session)) {
+ script.execute(s, Collections.singletonList(context));
} catch (Exception e) {
LOGGER.warn("Error executing script", e);
}
[5/6] karaf git commit: Merge branch 'KARAF-5361', fixes #355
Posted by gn...@apache.org.
Merge branch 'KARAF-5361', fixes #355
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/bf8d2206
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/bf8d2206
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/bf8d2206
Branch: refs/heads/master
Commit: bf8d2206add332086710b7901175181272616d4c
Parents: 78d2825 24ca7ee
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Sep 11 23:27:41 2017 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Sep 11 23:27:41 2017 +0200
----------------------------------------------------------------------
.../karaf/shell/commands/impl/WatchAction.java | 87 +++++++++++---------
.../shell/impl/console/ConsoleSessionImpl.java | 1 +
.../shell/impl/console/HeadlessSessionImpl.java | 1 +
.../shell/impl/console/SessionFactoryImpl.java | 2 +-
4 files changed, 50 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/bf8d2206/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
----------------------------------------------------------------------
diff --cc shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
index e6c5a20,1640d86..d351753
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
@@@ -72,7 -72,7 +72,7 @@@ public class SessionFactoryImpl extend
}
Posix posix = new Posix(commandProcessor);
- for (String name : new String[]{"cat", "echo", "grep", "sort", "sleep", "cd", "pwd", "ls", "less", "watch", "nano", "head", "tail", "clear", "wc", "date", "tmux", "ttop"}) {
- for (String name : new String[]{"cat", "echo", "grep", "sort", "sleep", "cd", "pwd", "ls", "less", "nano", "head", "tail", "clear", "wc", "date"}) {
++ for (String name : new String[]{"cat", "echo", "grep", "sort", "sleep", "cd", "pwd", "ls", "less", "nano", "head", "tail", "clear", "wc", "date", "tmux", "ttop"}) {
register(new ShellCommand(name, null, posix, name));
}
}
[3/6] karaf git commit: [KARAF-5361] shell:watch is broken
Posted by gn...@apache.org.
[KARAF-5361] shell:watch is broken
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/24ca7ee7
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/24ca7ee7
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/24ca7ee7
Branch: refs/heads/master
Commit: 24ca7ee7de7c267f56ea08db2a36ccc0b04b9418
Parents: c5d3a88
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Sep 11 15:02:35 2017 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Sep 11 15:02:35 2017 +0200
----------------------------------------------------------------------
.../karaf/shell/commands/impl/WatchAction.java | 87 +++++++++++---------
.../shell/impl/console/ConsoleSessionImpl.java | 1 +
.../shell/impl/console/HeadlessSessionImpl.java | 1 +
.../shell/impl/console/SessionFactoryImpl.java | 2 +-
4 files changed, 50 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/24ca7ee7/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
----------------------------------------------------------------------
diff --git a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
index 7f46282..ddfc127 100644
--- a/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
+++ b/shell/commands/src/main/java/org/apache/karaf/shell/commands/impl/WatchAction.java
@@ -18,8 +18,10 @@
*/
package org.apache.karaf.shell.commands.impl;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.InterruptedIOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.List;
@@ -40,11 +42,15 @@ import org.apache.karaf.shell.api.console.Completer;
import org.apache.karaf.shell.api.console.Parser;
import org.apache.karaf.shell.api.console.Session;
import org.apache.karaf.shell.api.console.SessionFactory;
+import org.apache.karaf.shell.api.console.Signal;
import org.apache.karaf.shell.commands.impl.WatchAction.WatchParser;
import org.apache.karaf.shell.support.ShellUtil;
import org.apache.karaf.shell.support.completers.CommandsCompleter;
import org.apache.karaf.shell.support.parsing.CommandLineImpl;
import org.apache.karaf.shell.support.parsing.DefaultParser;
+import org.jline.terminal.Attributes;
+import org.jline.terminal.Terminal;
+import org.jline.utils.NonBlockingReader;
@Command(scope = "shell", name = "watch", description = "Watches & refreshes the output of a command")
@Parsing(WatchParser.class)
@@ -69,78 +75,79 @@ public class WatchAction implements Action {
private ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
+ private boolean abort;
+ private Thread reading;
+ private Thread executing;
+
@Override
public Object execute() throws Exception {
if (arguments == null || arguments.length() == 0) {
System.err.println("Argument expected");
} else {
- WatchTask watchTask = new WatchTask(arguments.trim());
+ WatchTask watchTask = new WatchTask();
executorService.scheduleAtFixedRate(watchTask, 0, interval, TimeUnit.SECONDS);
try {
- session.getKeyboard().read();
- watchTask.abort();
+ Terminal terminal = (Terminal) session.get(".jline.terminal");
+ Terminal.SignalHandler prev = terminal.handle(Terminal.Signal.INT, this::abort);
+ Attributes attr = terminal.enterRawMode();
+ try {
+ reading = Thread.currentThread();
+ while (terminal.reader().read(1) == NonBlockingReader.READ_EXPIRED);
+ } finally {
+ reading = null;
+ terminal.setAttributes(attr);
+ terminal.handle(Terminal.Signal.INT, prev);
+ }
+ } catch (InterruptedIOException e) {
+ // Ignore
} finally {
+ abort = true;
executorService.shutdownNow();
- watchTask.close();
}
}
return null;
}
- public class WatchTask implements Runnable {
-
- private final String command;
-
- Session session;
- ByteArrayOutputStream byteArrayOutputStream = null;
- PrintStream printStream = null;
- boolean doDisplay = true;
-
- public WatchTask(String command) {
- this.command = command;
+ private void abort(Terminal.Signal signal) {
+ abort = true;
+ if (reading != null) {
+ reading.interrupt();
}
+ if (executing != null) {
+ executing.interrupt();
+ }
+ }
+
+ public class WatchTask implements Runnable {
public void run() {
try {
- byteArrayOutputStream = new ByteArrayOutputStream();
- printStream = new PrintStream(byteArrayOutputStream);
- session = sessionFactory.create(null, printStream, printStream, WatchAction.this.session);
- String output = "";
- try {
- session.execute(command);
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ PrintStream printStream = new PrintStream(byteArrayOutputStream);
+ try (Session session = sessionFactory.create(new ByteArrayInputStream(new byte[0]), printStream, printStream, WatchAction.this.session)) {
+ executing = Thread.currentThread();
+ session.execute(arguments.trim());
+ } catch (InterruptedException e) {
+ abort(null);
} catch (Exception e) {
ShellUtil.logException(session, e);
+ } finally {
+ executing = null;
}
- output = byteArrayOutputStream.toString();
- if (doDisplay) {
+ printStream.flush();
+ if (!abort) {
if (!append) {
System.out.print("\33[2J");
System.out.print("\33[1;1H");
}
- System.out.print(output);
+ System.out.print(byteArrayOutputStream.toString());
System.out.flush();
}
- byteArrayOutputStream.close();
- session.close();
} catch (Exception e) {
//Ingore
}
}
- public void abort() {
- doDisplay = false;
- }
- public void close() throws IOException {
- if (this.session != null) {
- this.session.close();
- }
- if (this.byteArrayOutputStream != null) {
- this.byteArrayOutputStream.close();
- }
- if (this.printStream != null) {
- printStream.close();
- }
- }
}
@Service
http://git-wip-us.apache.org/repos/asf/karaf/blob/24ca7ee7/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
index 01986e2..84bc764 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/ConsoleSessionImpl.java
@@ -197,6 +197,7 @@ public class ConsoleSessionImpl implements Session {
session.put(key.toString(), sysProps.get(key));
}
session.put(".session", this);
+ session.put(".processor", processor);
session.put(".commandSession", session);
session.put(".jline.reader", reader);
session.put(".jline.terminal", reader.getTerminal());
http://git-wip-us.apache.org/repos/asf/karaf/blob/24ca7ee7/shell/core/src/main/java/org/apache/karaf/shell/impl/console/HeadlessSessionImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/HeadlessSessionImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/HeadlessSessionImpl.java
index cc2f6a7..28d9121 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/HeadlessSessionImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/HeadlessSessionImpl.java
@@ -72,6 +72,7 @@ public class HeadlessSessionImpl implements Session {
session.put(key.toString(), sysProps.get(key));
}
}
+ session.put(".processor", processor);
session.put(".session", this);
session.put(".commandSession", session);
if (parent == null) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/24ca7ee7/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
----------------------------------------------------------------------
diff --git a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
index 840e23a..1640d86 100644
--- a/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
+++ b/shell/core/src/main/java/org/apache/karaf/shell/impl/console/SessionFactoryImpl.java
@@ -72,7 +72,7 @@ public class SessionFactoryImpl extends RegistryImpl implements SessionFactory,
}
Posix posix = new Posix(commandProcessor);
- for (String name : new String[]{"cat", "echo", "grep", "sort", "sleep", "cd", "pwd", "ls", "less", "watch", "nano", "head", "tail", "clear", "wc", "date"}) {
+ for (String name : new String[]{"cat", "echo", "grep", "sort", "sleep", "cd", "pwd", "ls", "less", "nano", "head", "tail", "clear", "wc", "date"}) {
register(new ShellCommand(name, null, posix, name));
}
}
[6/6] karaf git commit: Merge branch 'KARAF-5360', fixes #349
Posted by gn...@apache.org.
Merge branch 'KARAF-5360', fixes #349
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/b4642cb6
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/b4642cb6
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/b4642cb6
Branch: refs/heads/master
Commit: b4642cb65b71535bc4b13fa5410fd18f910c6d8e
Parents: bf8d220 fc6f161
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Sep 11 23:28:19 2017 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Sep 11 23:28:19 2017 +0200
----------------------------------------------------------------------
pom.xml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------