GitHub user HeartSaVioR opened a pull request:
https://github.com/apache/storm/pull/2034
STORM-2441 Break down 'storm-core' to extract client (worker) artifacts
* Issue link: http://issues.apache.org/jira/browse/STORM-2441
Sorry for the huge diff. I've `generated` classes from storm.thrift from
new module, and git doesn't recognize (or IDEA doesn't support) moving files.
(I'll try to rework via `git mv` if we really want to minimize the
changeset.)
Please read issue link and following discussion to see rationale of this
issue before reviewing.
This PR breaks down 'storm-core' into multiple artifacts.
* `storm-client`: topology and worker, play as client SDK
* `storm-client-misc`: client SDK misc which is not added due to dependency
addition
* depends on `storm-client`
* `storm-server`: LocalCluster and related daemons (most of them, without
webapp)
* depends on `storm-client`
* `storm-core`: Clojure things and unported daemons (webapp) and tests, and
commands for storm.py
* depends on `storm-server` (hence `storm-client`, too)
* we could get rid of this after porting work is done, or at least rename
to other name so that end users can notice that they should use `storm-client`
instead of `storm-core`
* `storm-webapp`: DRPC HTTP server, Logviewer and UI will be placed here
* depends on `storm-core` (hence `storm-client` and `storm-server`, too)
After applying this patch, binary dist. will have three library
directories, `lib` for `storm-core` (daemons), `lib-worker` for `storm-client`,
`lib-webapp` for `storm-webapp`.
We could change lib to refer `storm-server` after porting is done, or even
`storm-webapp` and remove `lib-webapp`.
Please note that there is a precondition to finish this work.
[ ] - Decide how to get over dependency issue (need discussion)
This patch doesn't relocate what we have been relocating. Relocation
doesn't work when we have multiple modules, and we already have multiple
modules for storm-core and storm-drpc-server which shows build failure from
IntelliJ IDEA.
Unit tests and manual tests passed.
commit log
----
* break down 'storm-core' into multiple artifacts
* 'storm-client': topology and worker, play as client SDK
* 'storm-client-misc': client SDK misc which is not added due to
dependency addition
* 'storm-server': LocalCluster and related daemons
* 'storm-core': Clojure things and unported daemons (webapp) and tests
* 'storm-webapp': DRPC HTTP server, Logviewer and UI will be placed here
* Supervisor will set classpath for worker to just ensure 'storm-client',
not 'storm-core'
* address documentation
* apply the change to all modules's pom.xml
* add new modules into Travis build
* NOTE: we don't shade and relocate what we have been relocated
* we should discuss how to overcome dependency issue
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/HeartSaVioR/storm STORM-2441
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/storm/pull/2034.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 #2034
----
commit a6337ebfa6ed775a36e82cee47d71d57eca9b74b
Author: Jungtaek Lim <[email protected]>
Date: 2017-03-28T23:08:54Z
STORM-2441 Break down 'storm-core' to extract client (worker) artifacts
* break down 'storm-core' into multiple artifacts
* 'storm-client': topology and worker, play as client SDK
* 'storm-client-misc': client SDK misc which is not added due to
dependency addition
* 'storm-server': LocalCluster and related daemons
* 'storm-core': Clojure things and unported daemons (webapp) and tests
* 'storm-webapp': DRPC HTTP server, Logviewer and UI will be placed here
* Supervisor will set classpath for worker to just ensure 'storm-client',
not 'storm-core'
* addresse documentation
* apply the change to all modules's pom.xml
* add new modules into Travis build
* NOTE: we don't shade and relocate what we have been relocated
* we should discuss how to overcome dependency issue
----
---
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 [email protected] or file a JIRA ticket
with INFRA.
---