-
Notifications
You must be signed in to change notification settings - Fork 491
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
HDDS-3546. use shade plugin to build legacy jar #989
Conversation
Thanks to open this issue @simon0806 I agree, that it's a problem that the defaults are not merged currently and we should fix it.
The work to remove legacy and replace with something simpler started weeks ago (See related issue and mailing list thred), and fortunatelly it closes to the end. The final patch is uploaded under #992. If you are looking for a working, Hadoop 2.7 compatible client, give it a try. I would appreciate any help with the testing. This patch remove the Isolated/Filtered class loader from the picture and creates hadoop2.x compatible jar files. If you really need this patch, I am fine to merge it somehow, but it requires more testing as the acceptance test of hadoop27-ozone is turned off. For me, it seems to be less effort to test and use #992, but I am open to any suggestion. |
Hi elek, thanks for your reply, Actually I think this is not a high priority fix because we can still put the necessary configurations in ozone-site.xml, I can test your patch in my cases to see if it works well. on the other hand, I have another question, currently we use java annotation to generate the default configuration, so for some cases it will load the default value, I think it's a little complex because it depends on the maven compile. my suggestion is to make a unify configuration class and put default value on it, this way we don't need to generate configuration value during compile, just like what HiveConf.java in hive project does , what do you think ? @elek |
I am not sure if I understand the fully (I sorry if I misunderstood).
One possible usage: With this approach we can print out easily all the default configuration (or all the configuration which have no default) for each of the projects (om/scm/common/client...) If we would like to avoid the compilation phase, we can try to override the initialization of |
/pending |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Marking this issue as un-mergeable as requested.
Please use /ready
comment when it's resolved.
/pending
Closing this issue. I checked and the original problem is not present on master:
I can see config entries from There were some other proposals here, how the current process can be improved, I am open to continue the discussion but I suggest to open a separated issue (just to not block 0.6.0 with this issue) |
What changes were proposed in this pull request?
Currently, when using o3fs, it will throw exception like above pic shows, it's because the dependency hadoop-ozone-filesystem-lib-legacy-$version.jar using maven dependency plugin to build, it picks all the dependencies , unpack then into a jar. However, this will make some configuration file be overlap because of the same file name, eg. ozone-default-generated.xml. When we use o3fs, it will read default configuration value of SCMClientConfig in ozone-default-generated.xml if we don't config in ozone-site.xml, however, ozone-default-generated.xml is not completed in legacy jar.
So I use maven shaded plugin to replace maven dependency plugin, just like what hadoop-ozone-filesystem-lib-current does. The only difference is 'current' module will exclude some dependencies.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-3546
How was this patch tested?