ecs-object-client-java icon indicating copy to clipboard operation
ecs-object-client-java copied to clipboard

Add a bundle module to bundle our client.

Open wang-x-xia opened this issue 3 years ago • 3 comments

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:

  1. I add a new module to publish a new component named object-client-bundle.
  2. I add the test task to test all UTs in the root module.
  3. I add the maven-publish plugin to publish this module which is the replacement of the deprecated maven plugin.

wang-x-xia avatar Oct 14 '21 08:10 wang-x-xia

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.

twincitiesguy avatar Oct 19 '21 19:10 twincitiesguy

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.

@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.

dongyeh avatar Oct 20 '21 09:10 dongyeh

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.

@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.

wang-x-xia avatar Oct 21 '21 02:10 wang-x-xia