zeppelin icon indicating copy to clipboard operation
zeppelin copied to clipboard

[DRAFT] [ZEPPELIN-5722] Improve PluginManager

Open Reamer opened this issue 2 years ago • 6 comments

What is this PR for?

This pull request extends the existing PluginManager. The Java Plugin Framework PF4J is used for this purpose. My goal of this change is a better separation of Java libraries to avoid overlapping dependencies. The following change after this PullRequest makes sense to me:

  • Definition of plugin configurations in the plugin itself and not in the big ZeppelinConfiguration class
  • Further outsourcing of components from the zengine, e.g. hadoop, lucene, cron

What type of PR is it?

  • Improvement

Todos

  • [x] - Documentation
  • [x] - License file

What is the Jira issue?

  • https://issues.apache.org/jira/browse/ZEPPELIN-5722

How should this be tested?

  • via CI and manual

Screenshots (if appropriate)

Questions:

  • Does the licenses files need update? Yes
  • Is there breaking changes for older versions? Yes
  • Does this needs documentation? Yes

Reamer avatar Apr 14 '22 15:04 Reamer

I like this kind of improvement :-) BTW, did you have any experience with PF4J before? I heard it for the first time so I just wonder if you are already familiar with it or not.

jongyoul avatar Apr 15 '22 03:04 jongyoul

BTW, did you have any experience with PF4J before? I heard it for the first time so I just wonder if you are already familiar with it or not.

Not at all, I came across the project with with a quick Google query "Java Plugin Framework". The project is under the Apache 2 license and it seems to be actively maintained. There is also good documentation, so the integration into Zeppelin was quite easy.

Reamer avatar Apr 19 '22 08:04 Reamer

Thank you for the reply. I feel like it's fairly enough.

jongyoul avatar Apr 20 '22 09:04 jongyoul

@zjffdu For a first feedback I would be very grateful.

Reamer avatar Apr 21 '22 16:04 Reamer

@jongyoul I've been thinking about this approach for a while, and I think I wanted to use the pf4j library to compensate for the lack of hk2 in zeppelin-zengine. What do you think about including hk2 on in the zeppelin-zengine module?

Reamer avatar Sep 01 '22 15:09 Reamer

What do you think about including hk2 on in the zeppelin-zengine module?

I, totally, agree with you. It would be better to adopt it but to do it, we might need effort to do it. Do you have any idea to do it? Otherwise, we could add some code to ZeppelinServer to enable them.

jongyoul avatar Sep 08 '22 09:09 jongyoul