KQueue ClassNotFound during starting opennms-mqtt-plugin including pgjdbc-ng lib

Problem:
I’m facing an error during activation of my OpenNMS plugin created using this 2 projects:

opennms-mqtt-plugin (GitHub - opennms-forge/opennms-mqtt-plugin: OpenNMS Plugin which can receive mqtt messages from IoT devices such as Eclipse Kura)|
alarm-change-notifier (GitHub - gallenc/alarm-change-notifier: Stand Alone OpenNMS OSGi plugin to generate alarm change events from changes to alarms in database)|

First project is compliant to OpenNMS 27 but unfortunately second one, alarm-change-notifier has not been update to openNMS 27 (PostgreSQL13).
Anyway I included lib pgjdbc-ng 0.8.9 that includes Postgres 13 support.
Now compilation is fine but during plugin installation in openNMS 27, plugin is declared as “Started” but i’m facing this several runtime error during java beans instancing for bluePrint xml

Expected outcome:
my OpenNMS plugin based on mqtt-plugin including support to postgres 13 should be able to start correctly instancing beans.

OpenNMS version:
27.1.1

Other relevant data:
2021-09-21T09:19:54,559 | ERROR | features-3-thread-1 | BlueprintContainerImpl | 18 - org.apache.aries.blueprint.core - 1.10.2 | Unable to start container for blueprint bundle MqttClient.main-module/0.0.7.SNAPSHOT
org.osgi.service.blueprint.container.ComponentDefinitionException: Error when instantiating bean databaseChangeNotifier of class org.opennms.mqttplugin.dbnotifier.DatabaseChangeNotifier
at org.apache.aries.blueprint.container.BeanRecipe.wrapAsCompDefEx(BeanRecipe.java:362) ~[?:?]

Caused by: java.lang.NoClassDefFoundError: io/netty/channel/kqueue/KQueue

logs

MQTT-PLUGIN has got a manual manifest manually created for openNMS 27.
I modified it to include pgjdbc-ng 0.8.9 lib support: e.g. including com.impossibl.postgres.jdbc in import packages list.
For runtime error I included netty-transport-native-kqueue artifact dependency in POM and io.netty.channel.kqueue in MANIFEST import packages list but I got the same runtime error

This is plugin MANIFEST.MF

Manifest-Version: 1.0
Bnd-LastModified: 1616872673706
Build-Jdk-Spec: 1.8
Bundle-Blueprint: OSGI-INF/blueprint/mainModuleBlueprint.xml
Bundle-Description: Main Module for MqttClient
Bundle-ManifestVersion: 2
Bundle-Name: MqttClient.main-module
Bundle-SymbolicName: MqttClient.main-module
Bundle-Version: 0.0.7.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: org.opennms.plugins.messagehandler;uses:=“org.apache.c
ommons.jxpath,org.json.simple,org.opennms.netmgt.collection.api,org.o
pennms.plugins.messagenotifier,org.opennms.plugins.mqtt.config,org.op
ennms.plugins.persistor.datanotifier,org.opennms.plugins.persistor.ev
entnotifier,org.opennms.protocols.xml.config,org.w3c.dom”;version=“0.
0.7.SNAPSHOT”,org.opennms.plugins.messagenotifier.rest;uses:=“javax.w
s.rs,javax.ws.rs.core,org.opennms.plugins.messagenotifier,org.opennms
.plugins.mqtt.config”;version=“0.0.7.SNAPSHOT”,org.opennms.plugins.mq
tt;uses:=“org.opennms.plugins.messagehandler,org.opennms.plugins.mess
agenotifier,org.opennms.plugins.messagenotifier.rest,org.opennms.plug
ins.mqtt.config,org.opennms.plugins.persistor”;version=“0.0.7.SNAPSHO
T”,org.opennms.plugins.mqtt.config;uses:=“javax.xml.bind.annotation,o
rg.opennms.plugins.messagenotifier.mqttclient,org.opennms.protocols.x
ml.config”;version=“0.0.7.SNAPSHOT”,org.opennms.plugins.persistor;use
s:=“org.opennms.netmgt.dao.api,org.opennms.netmgt.events.api,org.open
nms.netmgt.events.api.model,org.opennms.netmgt.model,org.springframew
ork.transaction.support”;version=“0.0.7.SNAPSHOT”,org.opennms.plugins
.persistor.datanotifier;uses:=“org.opennms.netmgt.collection.api,org.
opennms.plugins.messagehandler,org.opennms.plugins.persistor”;version
=“0.0.7.SNAPSHOT”,org.opennms.plugins.persistor.eventnotifier;uses:="
org.opennms.netmgt.events.api,org.opennms.plugins.messagehandler,org.
opennms.plugins.persistor";version=“0.0.7.SNAPSHOT”
Export-Service: javax.servlet.http.HttpServlet;alias=/plugin/mqtt/v1-0
Import-Package: javax.sql,com.sun.je
rsey.spi.container.servlet;version="[1.19,2)",javax.servlet.http;vers
ion="[3.1,4)",com.impossibl.postgres.api.jdbc,javax.ws.rs.core;version=
“[1.1,2)”,javax.xml.bind;version="[2.3,3)",javax.xml.bind.annotation;
version="[2.3,3)",javax.xml.parsers,org.apache.commons.jxpath;version
="[1.3,2)",org.apache.commons.lang;version="[2.6,3)",org.eclipse.paho
.client.mqttv3;version="[1.1,2)",org.joda.time;version="[2.1,3)",org.
joda.time.format;version="[2.1,3)",org.json.simple;version="[1.1,2)",
org.json.simple.parser;version="[1.1,2)",org.opennms.netmgt.collectio
n.api;version="[27.1,28)",org.opennms.netmgt.collection.dto;version="
[27.1,28)",org.opennms.netmgt.collection.support.builder;version="[27
.1,28)",org.opennms.netmgt.dao.api;version="[27.1,28)",org.opennms.ne
tmgt.events.api;version="[27.1,28)",org.opennms.netmgt.events.api.mod
el;version="[27.1,28)",org.opennms.netmgt.model;version="[27.1,28)",o
rg.opennms.netmgt.model.events;version="[27.1,28)",org.opennms.netmgt
.model.monitoringLocations;version="[27.1,28)",org.opennms.netmgt.rrd
;version="[27.1,28)",org.opennms.netmgt.xml.event;version="[27.1,28)"
,org.opennms.plugins.messagehandler,org.opennms.plugins.messagenotifi
er;version="[0.0,1)",org.opennms.plugins.messagenotifier.mqttclient;v
ersion="[0.0,1)",org.opennms.plugins.messagenotifier.rest,org.opennms
.plugins.mqtt.config,org.opennms.plugins.persistor,org.opennms.plugin
s.persistor.datanotifier,org.opennms.plugins.persistor.eventnotifier,
org.opennms.protocols.xml.config,org.osgi.service.blueprint;version="
[1.0.0,2.0.0)",org.slf4j;version="[1.7,2)",org.springframework.transa
ction;version="[4.2,5)",org.springframework.transaction.support;versi
on="[4.2,5)",org.w3c.dom,com.impossibl.postgres.jdbc
Include-Resource: OSGI-INF/blueprint/mainModuleBlueprint.xml=src/main/
resources/OSGI-INF/blueprint/mainModuleBlueprint.xml
Private-Package: org.opennms.plugins.messagehandler,org.opennms.plugin
s.messagenotifier.rest,org.opennms.plugins.mqtt,org.opennms.plugins.m
qtt.config,org.opennms.plugins.persistor,org.opennms.plugins.persisto
r.datanotifier,org.opennms.plugins.persistor.eventnotifier
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Tool: Bnd-5.1.1.202006162103

This is Main-Module POM (WICA is my placeholder to indicate added parts):



org.opennms.plugins
MqttClient.parent
0.0.7-SNAPSHOT

4.0.0
MqttClient.main-module
MqttClient.main-module
Main Module for MqttClient

jar

     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
     </plugin>


     <!-- the bundle plugin is generating incorrect manifests with opennms 27 -->

     <!-- <plugin> -->
     <!-- <groupId>org.apache.felix</groupId> -->
     <!-- <artifactId>maven-bundle-plugin</artifactId> -->
     <!-- <extensions>true</extensions> -->
     <!-- <configuration> -->
     <!-- <instructions> -->
     <!-- <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> -->
     <!-- <Bundle-Version>${project.version}</Bundle-Version> -->
     <!-- <Import-Package> -->
     <!-- org.apache.felix.service.command, -->
     <!-- * -->
     <!-- </Import-Package> -->
     <!-- </instructions> -->
     <!-- </configuration> -->
     <!-- </plugin> -->

     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>

        <configuration>
           <excludes>
              <!-- prevent tests running in this package. These are manual one off development tests -->
              <exclude>**/manual/*.java</exclude>
           </excludes>
        </configuration>
     </plugin>

     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
           <execution>
              <id>default-jar</id>
              <phase>package</phase>
              <goals>
                 <goal>jar</goal>
              </goals>
              <configuration>
                 <archive>
                    <manifestFile>${project.basedir}/src/main/manual-manifest/MANIFEST.MF</manifestFile>
                 </archive>
              </configuration>
           </execution>
           <execution>
              <id>create-test-jar</id>
              <phase>package</phase>
              <goals>
                 <goal>test-jar</goal>
              </goals>
           </execution>
        </executions>
     </plugin>

  </plugins>

  <pluginManagement>
     <plugins>

        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
        <plugin>
           <groupId>org.eclipse.m2e</groupId>
           <artifactId>lifecycle-mapping</artifactId>
           <version>1.0.0</version>
           <configuration>
              <lifecycleMappingMetadata>
                 <pluginExecutions>
                    <pluginExecution>
                       <pluginExecutionFilter>
                          <groupId>
                             com.github.alexcojocaru
                          </groupId>
                          <artifactId>
                             elasticsearch-maven-plugin
                          </artifactId>
                          <versionRange>[2.2,)</versionRange>
                          <goals>
                             <goal>start</goal>
                             <goal>load</goal>
                          </goals>
                       </pluginExecutionFilter>
                       <action>
                          <ignore></ignore>
                       </action>
                    </pluginExecution>
                 </pluginExecutions>
              </lifecycleMappingMetadata>
           </configuration>
        </plugin>
     </plugins>
  </pluginManagement>
<!--  WICA add this dependency  -->
 <dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-transport-native-kqueue</artifactId>
  <version>${nettyVersion}</version>
  <!-- WICA secondo me non è provided ma runtime --> <scope>runtime</scope>
</dependency>

  <dependency>
     <groupId>org.apache.karaf.shell</groupId>
     <artifactId>org.apache.karaf.shell.console</artifactId>
     <scope>provided</scope>
  </dependency>
  <dependency>
     <groupId>org.osgi</groupId>
     <artifactId>org.osgi.core</artifactId>
     <scope>provided</scope>
  </dependency>
  <dependency>
     <groupId>org.osgi</groupId>
     <artifactId>org.osgi.compendium</artifactId>
     <scope>provided</scope>
  </dependency>
  <dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-api</artifactId>
     <scope>provided</scope>
  </dependency>
  <dependency>
     <groupId>org.slf4j</groupId>
     <artifactId>jcl-over-slf4j</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-api</artifactId>
     <scope>test</scope>
  </dependency>
  <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-core</artifactId>
     <scope>test</scope>
  </dependency>
  <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-1.2-api</artifactId>
     <scope>test</scope>
  </dependency>
  <dependency>
     <groupId>org.apache.logging.log4j</groupId>
     <artifactId>log4j-slf4j-impl</artifactId>
     <scope>test</scope>
  </dependency>

  <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <scope>test</scope>
  </dependency>

  <!-- opennms dependencies -->
  <dependency>
     <groupId>org.opennms.osgi</groupId>
     <artifactId>opennms-osgi-core</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.opennms</groupId>
     <artifactId>opennms-dao</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.opennms.core</groupId>
     <artifactId>org.opennms.core.api</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.opennms.core.ipc.sink</groupId>
     <artifactId>org.opennms.core.ipc.sink.common</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.opennms.protocols</groupId>
     <artifactId>org.opennms.protocols.xml</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.opennms</groupId>
     <artifactId>opennms-model</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>com.googlecode.json-simple</groupId>
     <artifactId>json-simple</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>org.eclipse.paho</groupId>
     <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
     <!-- WICA not provided <scope>provided</scope> -->
  </dependency>


  <!-- <dependency> -->
  <!-- <groupId>org.apache.httpcomponents</groupId> -->
  <!-- <artifactId>httpcore-osgi</artifactId> -->
  <!-- <version>4.4.4</version>jest version -->
  <!-- <scope>provided</scope> -->
  <!-- </dependency> -->

  <!-- <dependency> -->
  <!-- <groupId>org.apache.httpcomponents</groupId> -->
  <!-- <artifactId>httpclient-osgi</artifactId> -->
  <!-- <version>4.5.2</version>jest version 4.3.6 best match -->
  <!-- <scope>provided</scope> -->
  <!-- </dependency> -->

  <!-- best match derived from httpasyncclient 4.0.2 compiled against httpclient 4.3.5 httpcore 4.3.2 -->
  <!-- <dependency> -->
  <!-- <groupId>org.apache.httpcomponents</groupId> -->
  <!-- <artifactId>httpasyncclient-osgi</artifactId> -->
  <!-- <version>4.1.1</version>jest version -->
  <!-- <scope>provided</scope> -->
  <!-- </dependency> -->

  <!-- Jersey Dependencies -->
  <dependency>
     <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-server</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-servlet</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-core</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>com.sun.jersey</groupId>
     <artifactId>jersey-json</artifactId>
     <scope>provided</scope>
  </dependency>

  <dependency>
     <groupId>commons-jxpath</groupId>
     <artifactId>commons-jxpath</artifactId>
     <scope>provided</scope>
  </dependency>
  
  <!-- Because jdk 11 no longer includes jaxb javax.xml.bind -->
  <!-- <dependency> <groupId>org.opennms.dependencies</groupId> <artifactId>jaxb-dependencies</artifactId> <version>${org.opennms.version}</version> <type>pom</type> 
  </dependency> -->
  <dependency>
     <groupId>javax.xml.bind</groupId>
     <artifactId>jaxb-api</artifactId>
     <version>2.3.0</version>
  </dependency>
  <dependency>
     <groupId>com.sun.xml.bind</groupId>
     <artifactId>jaxb-core</artifactId>
     <version>2.3.0</version>
  </dependency>
  <dependency>
     <groupId>com.sun.xml.bind</groupId>
     <artifactId>jaxb-impl</artifactId>
     <version>2.3.0</version>
  </dependency>

  <!-- PostgreSQL Asychronous Notification JDBC driver -->
<dependency>
  <groupId>com.impossibl.pgjdbc-ng</groupId>
  <artifactId>pgjdbc-ng</artifactId>
  <version>${pgjdbc-ng-version}</version>
  <!--  WICA added test provo a rimuovere provided <scope>provided</scope> --> 
  <exclusions>
    <exclusion>
      <groupId>io.netty</groupId>
      <artifactId>netty-all</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-common</artifactId>
  <version>${nettyVersion}</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-transport</artifactId>
  <version>${nettyVersion}</version>
  <scope>provided</scope>
</dependency>

<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-buffer</artifactId>
  <version>${nettyVersion}</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-handler</artifactId>
  <version>${nettyVersion}</version>
  <scope>provided</scope>
</dependency>

<!--  WICA added -->
<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-resolver</artifactId>
  <version>${nettyVersion}</version>
  <scope>provided</scope>
</dependency>
 
 <!--  WICA non lo trova
 <dependency>
  <groupId>org.opennms.plugins</groupId>
  <artifactId>${productName}.pg-jdbc-utils</artifactId>
  <version>${project.version}</version>
</dependency> -->

<dependency>
  <groupId>io.netty</groupId>
  <artifactId>netty-codec</artifactId>
  <version>${nettyVersion}</version>
  <scope>provided</scope>
</dependency>
  <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>${servletApiVersion}</version>
     <scope>provided</scope>
  </dependency>

Parent POM includes:
pgjdbc-ng-version => 0.8.9
nettyVersion =>4.1.63.Final

Someone can help me to resolve this runtime issue?
Thanks a lot!
William