The original impetus for the uber jar was ARTEMIS-1129. The issue there was
that it wasn't clear what jars were needed on the client. If we remove the
uber jars then we need to update the documentation to make crystal clear
what jars are needed on the client, including details about what jars may
be optional depending on which functionality the client uses.

I'm not necessarily against it, but removing the uber jar is probably going
to sting for a handful of users. Anything we can do to alleviate that will
help. Maybe we could generate a text file in lib/client instead of the uber
jars to help users who expect them to be there. The text could list the
jars required for the client's classpath.


Justin

[1] https://issues.apache.org/jira/browse/ARTEMIS-1129

On Tue, Jul 26, 2022 at 8:40 AM Clebert Suconic <clebert.suco...@gmail.com>
wrote:

> We currently deploy these following shaded uber jars with ActiveMQ Artemis.
>
> artemis-jms-client-all
> artemis-core-client-all
> artemis-jakarta-client-all
>
> We are in the process of removing jboss-logging, and replacing it by
> SLF4j /LOG4J on a separate branch, and we will probably make a switch
> on the branch as 3.0.
>
> I never really liked these shaded jars as part of the distribution. I
> would be inclined to remove them on a switch for 3.0 anyways, and now
> we are having a build issue,
> as they will fail (on a second build) shading apache-commons-logging:
>
> ERROR] Failed to execute goal
> org.apache.maven.plugins:maven-shade-plugin:3.3.0:shade (default) on
> project artemis-core-client-all: Error creating shaded jar: duplicate
> entry: META-INF/services/org.apache.activemq.artemis.shaded.org
> .apache.commons.logging.LogFactory
> -> [Help 1] [ERROR]  [ERROR] To see the full stack trace of the
> errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using
> the -X switch to enable full debug logging. [ERROR]  [ERROR] For more
> information about the errors and possible solutions, please read the
> following articles: [ERROR] [Help 1]
> http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
> [ERROR]  [ERROR] After correcting the problems, you can resume the
> build with the command [ERROR]   mvn <args> -rf
> :artemis-core-client-all
>
>
>
>
> Also, they add about 20MB to our distribution, and more 10MB for the
> core-client-all that's not on the distro but it is on maven repo.
>
> This is a common trend with other projects. Netty stopped producing a
> netty-all and is offering a pom. Jetty did the same thing.. and There
> are a lot of issues introduced by an "all client".
>
>
> So, even though we could fix the build, these JARs are never tested as
> part of the testsuite or anything.... It's like playing with the
> odds...  and they are huge on the distribution as they will all
> include copies of Netty.
>
>
> I would really like to remove these JARs and I think it would be a
> great improvement to do so.
>
> These POMS are already defining all the dependencies anyway. Any user
> who wants to have a shaded jar would just be able to shade it
> themselves as part of their project.
>
>
> If anyone  have a strong feeling about keeping them we would need:
>
> - your opinion (why we keep them on 3.0)
> - Help fixing the build on new-logging
> - Help with adding smoke tests for these jars.
>
>
> anyone?
>
>

Reply via email to