lhotari opened a new issue, #3511: URL: https://github.com/apache/bookkeeper/issues/3511
**BUG REPORT** ***Describe the bug*** circe-checksum, cpu-affinity and native-io contain invalid maven metadata in pom.xml for packaging. This has an impact on Gradle builds. For example when using the Shadow plugin in Gradle, it won't properly locate the dependencies. ***To Reproduce*** Steps to reproduce the behavior: 1. Go to https://repo1.maven.org/maven2/org/apache/bookkeeper/circe-checksum/4.15.1/circe-checksum-4.15.1.pom 2. You can see that `<packaging>nar</packaging>` is present. ***Expected behavior*** jar should be the default type for public libraries. nar is an exceptional case. ***Workaround for Gradle builds*** Placing this in `build.gradle` resolves the issue ``` // Workaround for invalid metadata for Bookkeeper dependencies which contain <packaging>nar</packaging> in pom.xml configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> if (details.requested.group == 'org.apache.bookkeeper' && details.requested.name in ['circe-checksum', 'cpu-affinity', 'native-io']) { details.artifactSelection { ArtifactSelectionDetails asDetails -> asDetails.selectArtifact('jar', null, null) } } } } ``` (in a [sample build](https://github.com/lhotari/sample-pulsar-gradle/blob/c176d211aafb0d4118d3bf6e53e2b77fcbd16721/build.gradle#L27-L37)) ***Additional context*** Here's a sample error message that results of the invalid pom.xml metadata for an application that uses pulsar-client-original dependency and uses Shadow plugin to build a fat jar file: ``` [2022-09-30 10:31:57,947] [pulsar-client-io-1-1] [org.apache.pulsar.client.impl.ProducerImpl] WARN [test] [standalone-0-11] error while create opSendMsg by batch message container java.lang.NoClassDefFoundError: com/scurrilous/circe/checksum/Crc32cIntChecksum at org.apache.pulsar.common.protocol.Commands.serializeCommandSendWithSize(Commands.java:1519) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.common.protocol.Commands.newSend(Commands.java:540) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.common.protocol.Commands.newSend(Commands.java:507) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.client.impl.ProducerImpl.sendMessage(ProducerImpl.java:771) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.client.impl.BatchMessageContainerImpl.createOpSendMsg(BatchMessageContainerImpl.java:200) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.client.impl.ProducerImpl.batchMessageAndSend(ProducerImpl.java:2002) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.client.impl.ProducerImpl.lambda$connectionOpened$14(ProducerImpl.java:1631) ~[sample-pulsar-gradle-all.jar:?] at org.apache.pulsar.common.util.Runnables$CatchingAndLoggingRunnable.run(Runnables.java:54) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.PromiseTask.runTask(PromiseTask.java:98) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:176) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[sample-pulsar-gradle-all.jar:?] at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:394) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:995) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[sample-pulsar-gradle-all.jar:?] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[sample-pulsar-gradle-all.jar:?] at java.lang.Thread.run(Thread.java:833) ~[?:?] Caused by: java.lang.ClassNotFoundException: com.scurrilous.circe.checksum.Crc32cIntChecksum ... 18 more ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
