EventSubscriber error when constructor has channelUID parameters


We are finalizing some changes to finally merge the Broadlink binding into OpenHAB.
One nifty feature that we would like to add is to have descriptions for all channels of the remote IR/RF devices (Things) updated when one device learns a new code.

We are trying to make the class implement the EventSubscriber interface, but we run into compiling errors when doing so, Specifically, the constructor receives a couple of channelUID arguments, and we get the following osgi compile errors when compiling:

Unable to resolve root: missing requirement [root] osgi.identity; osgi.identity=openhab-binding-broadlink; type=karaf.feature; version=4.2.0.SNAPSHOT; filter:="(&(osgi.identity=openhab-binding-broadlink)(type=karaf.feature)(version>=4.2.0.SNAPSHOT))" 
[caused by: Unable to resolve openhab-binding-broadlink/4.2.0.SNAPSHOT: missing requirement [openhab-binding-broadlink/4.2.0.SNAPSHOT] osgi.identity; osgi.identity=org.openhab.binding.broadlink; type=osgi.bundle; version="[,]"; resolution:=mandatory 
[caused by: Unable to resolve org.openhab.binding.broadlink/ missing requirement [org.openhab.binding.broadlink/] osgi.service; filter:="(objectClass=org.openhab.core.thing.ChannelUID)"; effective:=active]]

I am quite new to the osgi architecture, so i wanted to see first if someone has any advice on how this kind of feature is usually implemented. Is there any examples I can look at that implement the same time of functionality? Is there any way to overcome the osgi issues above? It appears that the constructor cannot have arguments that are not osgi components themselves.