I'm using iPOJO 1.8.6 in Karaf 2.3.1 on Felix.

I have an existing mechanism for notifications using iPOJO. Basically my
notification service (that uses iPOJO) uses all registered notifier
providers as follows:

*  @Requires(optional = false, nullable = false)*
*  private INotificationProvider[] mProviders;*

Whenever I need to create a notification, it will be handled by all
registered notifier. E g I have a notification provider that logs the
problem in a log file and another that publishes the notification in
Windows event log. So far I have published my notification providers using
iPOJO as well (the notification service also uses iPOJO).

I now have a notification provider that publishes its service using Aries
Blueprint, as follows:

*<?xml version="1.0" encoding="UTF-8"?>*
*<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"; xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"*
*  xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0";
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"*
*  default-activation="eager">*
*
*
*  <bean id="notifierService" class="myPackage1.MyNotifierService" />*
*
*
*  <service ref="notifierService"
interface="myPackage2.INotificationProvider"/>*
*</blueprint>*

I've replaced my true package names above but "myPackage2" is the package
where the INotificationProvider interface resides.

For some reason my notification service does not pick up the service
published via Blueprint which means that my new notification provider is
being skipped.

I thought for a while that it is the default "lazy" activation strategy
that plays tricks on me which is why I use "eager" instead but it doesn't
help.

I thought it shouldn't matter in what way I publish an OSGi service, iPOJO
should still pick it up. Does anyone know what I could be doing wrong?

/Bengt

Reply via email to