I may be wrong but Epoll is only a Linux thing probably. You don't have it on Mac or Windows
Enrico Il Gio 15 Giu 2023, 19:49 Andor Molnar <an...@apache.org> ha scritto: > Interesting that with only the BOM included and the dependencies > without the classifier, Netty doesn't load the native epoll selector, > but loads the native SSL library. > > I'm confused. > > In the Pulsar example the sub-project dependency has a hardcoded > classifier: > > <dependency> > <groupId>io.netty</groupId> > <artifactId>netty-transport-native-epoll</artifactId> > <classifier>linux-x86_64</classifier> > </dependency> > > Andor > > > > On Thu, 2023-06-15 at 14:31 +0200, Enrico Olivelli wrote: > > I think that the best way currently is to add these dependencies: > > > > Import the Netty BOM in the main pom.xml > > <dependency> > > <groupId>io.netty</groupId> > > <artifactId>netty-bom</artifactId> > > <version>${netty.version}</version> > > <type>pom</type> > > <scope>import</scope> > > </dependency> > > > > > > declare netty dependencies without setting the version and the > > classifier > > <dependency> > > <groupId>io.netty</groupId> > > <artifactId>netty-tcnative-boringssl-static</artifactId> > > </dependency> > > > > This is the way we are doing it in Pulsar > > > https://github.com/apache/pulsar/blob/d7f355881b2b1eebf2be6ea262c202660d684fb7/pom.xml#L647 > > > https://github.com/apache/pulsar/blob/d7f355881b2b1eebf2be6ea262c202660d684fb7/pulsar-common/pom.xml#L146 > > > > This way Maven should bundle all the native libraries for all the > > supported platforms > > > > > > > > Enrico > > > > Il giorno gio 15 giu 2023 alle ore 12:50 Andor Molnar > > <an...@apache.org> ha scritto: > > > Hi, > > > > > > I've come across the following when working on the support of > > > native > > > SSL libraries. Currently ZooKeeper supports loading the native > > > epoll- > > > based event loop of Netty, but a build profile which would download > > > the > > > required dependencies is not shipped with our product. > > > > > > This is perfectly okay since the feature of using native libraries > > > is > > > not a build-time requirement, but in this case the user has to > > > download > > > the required and appropriate versions of Netty jars and put them on > > > the > > > classpath. > > > > > > Shall we add a Maven build profile to ease this process? > > > > > > <profile> > > > <id>netty-native</id> > > > <properties> > > > <os.detection.classifierWithLikes>fedora</os.detection.classifi > > > erWi > > > thLikes> > > > </properties> > > > <dependencyManagement> > > > <dependencies> > > > <dependency> > > > <groupId>io.netty</groupId> > > > <artifactId>netty-tcnative-boringssl-static</artifactId> > > > <version>${netty-tcnative.version}</version> > > > <classifier>${os.detected.classifier}</classifier> > > > </dependency> > > > <dependency> > > > <groupId>io.netty</groupId> > > > <artifactId>netty-transport-native-epoll</artifactId> > > > <version>${netty.version}</version> > > > <classifier>${os.detected.classifier}</classifier> > > > </dependency> > > > </dependencies> > > > </dependencyManagement> > > > </profile> > > > > > > What do you think? > > > > > > Andor > > > > > > > > > > >