@Override
        public void run() {
            // Scanner to read the user input line by line
            Scanner scanner = new Scanner(input);
            Gson gson = new Gson();
            while (scanner.hasNext()) {
                if (!running.get()) {
                    break;
                }
                String line = scanner.nextLine().trim();
                if (line.startsWith(DELAY)) {
                    // The delay(<time in milliseconds>) is used to delay the input
                    line = line.substring(6, line.length() - 1);
                    try {
                        Thread.sleep(Integer.parseInt(line));
                    } catch (InterruptedException e) {
                        error("Error in waiting for " + line + " milliseconds");
                    }
                } else {
                    // The inout format is: <stream name>=<data in json object[] format>
                    String[] components = line.split(INPUT_DELIMITER);
                    String streamName = components[0];
                    String event = components[1];
                    Object[] data = gson.fromJson(event, Object[].class);
                    info("@Send: Stream: " + streamName + ", Event: " + event);
                    try {
                        siddhiAppRuntime.getInputHandler(streamName).send(data);
                    } catch (InterruptedException e) {
                        error("Error in sending event " + event + " to Siddhi");
                    }
                }
            }
            scanner.close();
        }
A runnable class to feed the input to the Siddhi runtime.
modules/siddhi-core/src/main/java/io/siddhi/core/debugger/SiddhiDebuggerClient.java