-
Notifications
You must be signed in to change notification settings - Fork 4.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
STORM-2217: Make DRPC pure java #1800
Conversation
Will rebase soon. |
Rebased the code |
ce24e7d
to
0782363
Compare
+1. Looks good. |
Rebased again |
@ptgoetz if this looks good as is I will look into shading Jersey. |
Shading Jersey is becoming rather difficult (lots of dependencies including aop and dependency injection. Splitting the DPRC server off into it's own location seems much simpler and less error prone, so I will spend some time on that instead. |
So shading is not really an option for jersey. I really dislike all of these options. I see a few cleaner options, but they will require a lot more work.
If someone has a cleaner solution I am happy to do it, but I think option 2 is the best so far, although I don't like it all that much. |
One more option, still ugly, but with a lot less impact. I can do something similar to Hadoop. They use several different invocations of the maven assembly plugin into directories (predates moduleSets) and then have a separate script that produces the final release. |
@ptgoetz I have updated the packaging to have a separate directory for the DRPC server dependencies. I have run manual tests and everything works. The big difference is that |
@revans2 Okay. Let me review the packaging changes. |
Okay, that last commit answered a lot of questions I had regarding packaging. ;) +1 I was able to build a distribution, unpack it, and run the drpc service. |
+1 from me. All manual tests are OK: build, dist packaging, unpacking, running drpc service. |
This sets up some things for using Jersey for the UI, logviewer, and DRPC. It is not perfect and will probably need some clean up over time as we try to pull in UI and logviewer changes.
It divides up some of the functionality in DRPC so we could pull DRPC server and the webapp pieces into a separate module to separate out the classpaths. I have not shaded Jersey because of this, but am happy to try if people want me to.
I rewrote a lot of the core DRPC functionality so that when we do go to a newer version of jetty that supports async we can make DRPC much more scaleable.
I would love feedback on what I have done