mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
18 lines
866 B
Markdown
18 lines
866 B
Markdown
|
|
# Overview
|
||
|
|
Java interpreter for Apache Zeppelin
|
||
|
|
|
||
|
|
# Architecture
|
||
|
|
Current interpreter implementation supports the static REPL. It compiles the code in memory, execute it and redirect the output to Zeppelin.
|
||
|
|
|
||
|
|
### Technical overview
|
||
|
|
|
||
|
|
* Upon starting an interpreter, an instance of `JavaCompiler` is created.
|
||
|
|
|
||
|
|
* When the user runs commands with java, the `JavaParser` go through the code to get a class that contains the main method.
|
||
|
|
|
||
|
|
* Then it replaces the class name with random class name to avoid overriding while compilation. It creates new out & err stream to get the data in new stream instead of the console, to redirect output to Zeppelin.
|
||
|
|
|
||
|
|
* If there is any error during compilation, it can catch and redirect to Zeppelin.
|
||
|
|
|
||
|
|
* `JavaInterpreterUtils` contains useful methods to print out Java collections and leverage Zeppelin's built in visualization.
|