本文整理汇总了Java中org.osgi.framework.BundleContext.getServiceReferences方法的典型用法代码示例。如果您正苦于以下问题:Java BundleContext.getServiceReferences方法的具体用法?Java BundleContext.getServiceReferences怎么用?Java BundleContext.getServiceReferences使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.osgi.framework.BundleContext
的用法示例。
在下文中一共展示了BundleContext.getServiceReferences方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getServices
import org.osgi.framework.BundleContext; //导入方法依赖的package包/类
public static <E> List<E> getServices(BundleContext bundleContext, Class<E> serviceType, String filter)
throws InvalidSyntaxException {
List<E> services = null;
final ServiceReference[] refs = bundleContext.getServiceReferences(serviceType.getName(), filter);
if (refs != null) {
services = new ArrayList<>(refs.length);
if (refs != null && refs.length > 0) {
for (ServiceReference ref : refs) {
E service = (E) bundleContext.getService(ref);
services.add(service);
}
}
} else
services = Collections.unmodifiableList(new ArrayList<E>());
return services;
}
示例2: getGlobalInstances
import org.osgi.framework.BundleContext; //导入方法依赖的package包/类
/**
* Retrieves Global instances of Specific Service in the Bundle. This is
* adapted from org.opendaylight.controller.sal.utils.ServiceHelper
*
* @param clazz - Class associated with the Class loader.
* @param bundle - Bundle
* @return an array of objects that implement the services specified by the clazz
*/
public static Object[] getGlobalInstances(Class<?> clazz, Object bundle) {
Object instances[] = null;
try {
BundleContext bCtx = FrameworkUtil.getBundle(bundle.getClass())
.getBundleContext();
ServiceReference[] services = bCtx.getServiceReferences(clazz
.getName(), null);
if (services != null) {
instances = new Object[services.length];
for (int i = 0; i < services.length; i++) {
instances[i] = bCtx.getService(services[i]);
}
}
} catch (Exception e) {
LOG.error("Instance reference is NULL");
}
return instances;
}
示例3: getServiceReferences
import org.osgi.framework.BundleContext; //导入方法依赖的package包/类
/**
* Returns references to <em>all</em> services matching the given class name and OSGi filter.
*
* @param bundleContext OSGi bundle context
* @param clazz fully qualified class name (can be <code>null</code>)
* @param filter valid OSGi filter (can be <code>null</code>)
* @return non-<code>null</code> array of references to matching services
*/
public static ServiceReference[] getServiceReferences(BundleContext bundleContext, String clazz, String filter) {
Assert.notNull(bundleContext, "bundleContext should be not null");
try {
ServiceReference[] refs = bundleContext.getServiceReferences(clazz, filter);
return (refs == null ? new ServiceReference[0] : refs);
} catch (InvalidSyntaxException ise) {
throw (RuntimeException) new IllegalArgumentException("invalid filter: " + ise.getFilter()).initCause(ise);
}
}
示例4: 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 ();
}