Skip to content

Commit 407e90a

Browse files
committed
add Update add setScheduleExecutorService to use your own ExecutorService
1 parent dabec3a commit 407e90a

File tree

5 files changed

+15
-7
lines changed

5 files changed

+15
-7
lines changed

.idea/gradle.xml

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
}
66

77
group 'de.mint.consoleline'
8-
version '1.0.6'
8+
version '1.0.7'
99

1010
java {
1111
toolchain {

src/main/java/de/mint/consoleline/service/JlineBuilder.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.jline.reader.History;
77

88
import java.nio.charset.Charset;
9+
import java.util.concurrent.ScheduledExecutorService;
910

1011
public class JlineBuilder {
1112

@@ -106,6 +107,11 @@ public JlineBuilder setThreadSize(final int setThreadSize) {
106107
return this;
107108
}
108109

110+
public JlineBuilder setScheduleExecutorService(final ScheduledExecutorService scheduledExecutorService){
111+
this.jlineConfiguration.setScheduledExecutorService(scheduledExecutorService);
112+
return this;
113+
}
114+
109115
public JlineBuilder setPeriod(final long period) {
110116
this.jlineConfiguration.setPeriod(period);
111117
return this;

src/main/java/de/mint/consoleline/service/JlineExecutor.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,8 @@ void setPeriod(final long period) {
341341
this.period = period;
342342
}
343343

344+
void setScheduledExecutorService(final ScheduledExecutorService scheduledExecutorService) { this.scheduledExecutorService = scheduledExecutorService; }
345+
344346
/**
345347
* It creates a terminal, a line reader, a log, a command handler, output streams, and an input
346348
* stream
@@ -458,9 +460,11 @@ private void createInputStream() {
458460

459461
/** Create a new input runnable and schedule it to run every millisecond. */
460462
private void createInputRunnable() {
461-
this.scheduledExecutorService = Executors.newScheduledThreadPool(this.threadSize);
463+
if (this.scheduledExecutorService == null) {
464+
this.scheduledExecutorService = Executors.newScheduledThreadPool(this.threadSize);
465+
}
462466
this.scheduledExecutorService.scheduleAtFixedRate(
463-
this.inputRunnable, 0, this.period, TimeUnit.MILLISECONDS);
467+
this.inputRunnable, 0, this.period, TimeUnit.MILLISECONDS);
464468
}
465469

466470
/**

0 commit comments

Comments
 (0)