ecs-object-client-java
ecs-object-client-java copied to clipboard
Add a bundle module to bundle our client.
I'm using this SDK for the Iceberg catalog.
But the Iceberg excludes Jersey 1 used in our SDK.
And I think bundle HTTP client and Jackson libraries is a good way to make our client portable.
So:
- I add a new module to publish a new component named object-client-bundle.
- I add the test task to test all UTs in the root module.
- I add the maven-publish plugin to publish this module which is the replacement of the deprecated maven plugin.
I mentioned this to @xiaoxin-ren, but I'll post it here for posterity - I strongly recommend against publishing any kind of shaded jar. IMO, that time is better spent writing a new smart-client
implementation (perhaps based on Jersey 2), and refactoring object-client
to use that.
I mentioned this to @xiaoxin-ren, but I'll post it here for posterity - I strongly recommend against publishing any kind of shaded jar. IMO, that time is better spent writing a new
smart-client
implementation (perhaps based on Jersey 2), and refactoringobject-client
to use that.
@twincitiesguy The reason to publish a shaded jar is because of a business requirement between ECS and the opensource community. Considering the time to refactor smart-client with Jersey 2 would be quite long, we decided to use this short-term workaround in recent releases. Once moving to Jersey 2, we can follow the normal procedure and the shaded jar will be no longer needed.
I mentioned this to @xiaoxin-ren, but I'll post it here for posterity - I strongly recommend against publishing any kind of shaded jar. IMO, that time is better spent writing a new
smart-client
implementation (perhaps based on Jersey 2), and refactoringobject-client
to use that.
@twincitiesguy , @dongyeh
In my opinion, the shaded jar can simplify the dependency management for client libraries in the big data platforms.
Such as https://mvnrepository.com/artifact/com.amazonaws/aws-java-sdk-bundle.
The packaged HTTP client and JSON libraries shouldn't open to users.