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]

Reply via email to