本文整理匯總了Java中org.osgi.framework.BundleContext.addServiceListener方法的典型用法代碼示例。如果您正苦於以下問題:Java BundleContext.addServiceListener方法的具體用法?Java BundleContext.addServiceListener怎麽用?Java BundleContext.addServiceListener使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類org.osgi.framework.BundleContext
的用法示例。
在下文中一共展示了BundleContext.addServiceListener方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: start
import org.osgi.framework.BundleContext; //導入方法依賴的package包/類
@Override
public void start ( final BundleContext context ) throws Exception
{
this.context = context;
addService ( context.getServiceReference ( HttpService.class ) );
context.addServiceListener ( this, String.format ( "(%s=%s)", Constants.OBJECTCLASS, HttpService.class.getName () ) );
}
示例2: registerListener
import org.osgi.framework.BundleContext; //導入方法依賴的package包/類
private static void registerListener(BundleContext context, ServiceListener listener, String filter) {
Assert.notNull(context);
Assert.notNull(listener);
try {
// add listener
context.addServiceListener(listener, filter);
}
catch (InvalidSyntaxException isex) {
throw (RuntimeException) new IllegalArgumentException("Invalid filter").initCause(isex);
}
}
示例3: start
import org.osgi.framework.BundleContext; //導入方法依賴的package包/類
@Override
public void start ( final BundleContext context ) throws Exception
{
this.executor = new ExportedExecutorService ( "org.eclipse.scada.da.server.osgi", 1, 1, 1, TimeUnit.MINUTES );
this.service = new HiveImpl ( context, this.executor );
this.service.start ();
final Dictionary<String, Object> properties = new Hashtable<String, Object> ();
properties.put ( Constants.SERVICE_VENDOR, "Eclipse SCADA Project" );
properties.put ( Constants.SERVICE_DESCRIPTION, "A common generic OSGi DA Hive" );
properties.put ( "hive.id", this.service.getHiveId () );
this.handle = context.registerService ( Hive.class, this.service, properties );
context.addServiceListener ( this.listener = new ServiceListener () {
@Override
public void serviceChanged ( final ServiceEvent event )
{
switch ( event.getType () )
{
case ServiceEvent.REGISTERED:
Activator.this.addItem ( event.getServiceReference () );
break;
case ServiceEvent.UNREGISTERING:
Activator.this.removeItem ( event.getServiceReference () );
break;
}
}
}, "(" + Constants.OBJECTCLASS + "=" + DataItem.class.getName () + ")" );
final Collection<ServiceReference<DataItem>> refs = context.getServiceReferences ( DataItem.class, null );
if ( refs != null )
{
for ( final ServiceReference<DataItem> ref : refs )
{
addItem ( ref );
}
}
this.poolTracker = new ObjectPoolTracker<DataItem> ( context, DataItem.class );
this.poolTracker.open ();
this.itemTracker = new AllObjectPoolServiceTracker<DataItem> ( this.poolTracker, new ObjectPoolListener<DataItem> () {
@Override
public void serviceRemoved ( final DataItem service, final Dictionary<?, ?> properties )
{
Activator.this.service.removeItem ( service );
}
@Override
public void serviceModified ( final DataItem service, final Dictionary<?, ?> properties )
{
}
@Override
public void serviceAdded ( final DataItem service, final Dictionary<?, ?> properties )
{
Activator.this.service.addItem ( service, properties );
}
} );
this.itemTracker.open ();
}