GitHub user jongyoul reopened a pull request: https://github.com/apache/incubator-zeppelin/pull/835
ZEPPELIN-804 Refactoring registration mechanism on Interpreters ### What is this PR for? This PR enable Zeppelin server register Interpreters without any dependencies of their own. For instance, we should build `spark` with `spark-dependencies` even we use our own Spark cluster because current initialisation mechanism needs to all of its dependencies. ### What type of PR is it? [Improvement] ### Todos * [x] - Add RegisteredInterpreter from interpreter-setting.json in a jar or interpreter/{interpreter}/interpreter-setting.json * [x] - Adjust it to Spark*Interpreter ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-804 ### How should this be tested? 1. Prepare your own spark cluster - e.g. standalone, Yarn, Mesos - 1. rm -rf interpreter 1. mvn clean package -DskipTests -pl 'zeppelin-display,zeppelin-interpreter,zeppelin-server,zeppelin-web,zeppelin-zengine,angular,jdbc,spark' 1. bin/zeppelin-daemon.sh start 1. Check error in log 1. apply patch 1. mvn clean package -DskipTests -pl 'zeppelin-display,zeppelin-interpreter,zeppelin-server,zeppelin-web,zeppelin-zengine,angular,jdbc,spark' 1. bin/zeppelin-daemon.sh start 1. run some paragraph with simple command like `sc.version` ### Screenshots (if appropriate) ### Questions: * Does the licenses files need update? No * Is there breaking changes for older versions? No * Does this needs documentation? No ### Description #### This PR introduce three initialisation mechanism including current one. * {interpreter_dir}/{interpreter_group}/interpreter-setting.json * interpreter-settings.json in your interpreter jar * Current static initialization #### Initialization step 1. Get {interpreter_dir} from Configuration 1. Get the list of {interpreter_dir}/[{interpreter_group1},{interpreter_group2}...] 1. Find {interpreter_dir}/{interpreter_group1}/interpreter-setting.json 1. Find interpreter-setting.json in the resources of {interpreter_dir}/{interpreter_group1}/**/*.jar 1. Adopt static init 1. Repeat them from the second step with {interpreter_group2} You can merge this pull request into a Git repository by running: $ git pull https://github.com/jongyoul/incubator-zeppelin ZEPPELIN-804 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-zeppelin/pull/835.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #835 ---- commit 247243191a14c9ef70deead64ada038a13ac97a3 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T03:03:26Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Added a new initialization mechanism to use interpreter-setting.json - Adjusted new mechanism to SparkInterpreter for verification commit 595bcb7a5f76f2dd79eb32a80d2ae4368466c9c3 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T03:27:07Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Fixed the style commit 23d357fcb975bf7a1cb799e083ec79025f94bd2c Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T04:04:50Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Changed Spark*Interpreter to use interpreter-setting.json commit 0cb16d249bf8ee49436fc7b0c1cff177bfcb7b08 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T06:11:46Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Fixed test environments commit 264a3be126356e31d6ea3ec149c23983503c6f21 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T06:43:59Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Fixed test environments commit 61044b39c8c471becc73555c74833f2caf2dce9d Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T07:07:48Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Excluded interpreter-setting.json from rat check commit 6d893680522d1581234812afed897faf63ed6fc7 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T07:29:28Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Excluded interpreter-setting.json from rat check commit bcffe231407434d5240858ffddbd4c05ee4f0af3 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-14T13:48:56Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Excluded SparkRInterpreter from interpreter-setting.json commit 15dcbf384923b0516bc172fc6d521d1ee1ad4913 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-15T01:13:51Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Removed a interpreter which fails to initialize commit 7bb5bdcc05a9052fb38d1f24a3f5a77b6708c3fe Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-15T06:12:44Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Removed static initialisation of Spark*Interpreter commit 36a64fae1664fcf8b6f9cc44ad0dc02357e70490 Author: Jongyoul Lee <jongy...@gmail.com> Date: 2016-04-22T07:44:27Z ZEPPELIN-804 Refactoring registration mechanism on Interpreters - Extracted new initialization logic into another methods ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---