org.osgi.framework.ServiceListener#org.osgi.framework.ServiceObjects源码实例Demo

下面列出了org.osgi.framework.ServiceListener#org.osgi.framework.ServiceObjects 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: concierge   文件: ServiceReferenceImpl.java
@SuppressWarnings("unchecked")
ServiceObjects<S> getServiceObjects(final Bundle bundle){
	if(service == null)
		return null;  // service already unregistered
	
	if(serviceObjects==null){
		serviceObjects = new HashMap<Bundle, ServiceObjectsImpl>(1);
	}
	
	ServiceObjectsImpl so = serviceObjects.get(bundle);
	if(so == null){
		so = new ServiceObjectsImpl(bundle);
		serviceObjects.put(bundle, so);
	}
	return so;
}
 
源代码2 项目: aries-jax-rs-whiteboard   文件: ServiceTuple.java
ServiceTuple(
    CachingServiceReference<T> cachingServiceReference,
    ServiceObjects<T> serviceObjects, T service) {

    _serviceReference = cachingServiceReference;
    _serviceObjects = serviceObjects;
    _service = new AtomicReference<>(service);
}
 
源代码3 项目: aries-jax-rs-whiteboard   文件: Utils.java
public static <T> OSGi<ServiceTuple<T>> onlyGettables(
    OSGi<CachingServiceReference<T>> program,
    Consumer<CachingServiceReference<T>> whenAddedNotGettable,
    Consumer<CachingServiceReference<T>> whenLeavingNotGettable,
    Logger log) {

    return bundleContext().flatMap(bundleContext ->
        program.recoverWith(
            (serviceReference, e) ->
                notGettableResult(
                    whenAddedNotGettable, whenLeavingNotGettable,
                    serviceReference, log)
        ).flatMap(serviceReference -> {
            ServiceObjects<T> serviceObjects =
                bundleContext.getServiceObjects(
                    serviceReference.getServiceReference());
            T service = serviceObjects.getService();

            if (service == null) {
                return notGettableResult(
                    whenAddedNotGettable, whenLeavingNotGettable,
                    serviceReference, log);
            }

            return
                just(new ServiceTuple<>(
                        serviceReference, serviceObjects, service)).
                effects(__ -> {}, ServiceTuple::dispose).
                effects(
                    ifDebugEnabled(
                        log,
                        () -> "Obtained instance from " + serviceReference),
                    ifDebugEnabled(
                        log,
                        () -> "Released instance from " + serviceReference)
                );
        }));
}
 
public PrototypeServiceReferenceResourceProvider(
    CachingServiceReference<?> serviceReference,
    Class<?> serviceClass, ServiceObjects<?> serviceObjects) {

    _serviceReference = serviceReference;
    _serviceClass = serviceClass;
    _serviceObjects = serviceObjects;

    _messageKey = _MESSAGE_INSTANCE_KEY_PREFIX + _serviceClass;
}
 
@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public void releaseInstance(Message m, Object o) {
    ((ServiceObjects)_serviceObjects).ungetService(o);

    m.remove(_messageKey);
}
 
源代码6 项目: knopflerfish.org   文件: BundleContextImpl.java
/**
 * Returns the {@link ServiceObjects} object for the service referenced by
 * the specified {@code ServiceReference} object.
 *
 * @see  org.osgi.framework.BundleContext#getServiceObjects
 */
public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> reference) {
  checkValid();
  bundle.fwCtx.perm.checkGetServicePerms(reference);
  ServiceReferenceImpl<S> sr = (ServiceReferenceImpl<S>)reference;
  if (sr.isAvailable()) {
    return new ServiceObjectsImpl(this, sr);
  }
  return null;
}
 
源代码7 项目: netbeans   文件: Netbinox.java
@Override
public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> sr) {
    return delegate.getServiceObjects(sr);
}
 
源代码8 项目: vespa   文件: ClassLoaderOsgiFramework.java
@Override
public <S> ServiceObjects<S> getServiceObjects(ServiceReference<S> serviceReference) {
    throw new UnsupportedOperationException();
}
 
源代码9 项目: aries-jax-rs-whiteboard   文件: ServiceTuple.java
public ServiceObjects<T> getServiceObjects() {
    return _serviceObjects;
}
 
源代码10 项目: concierge   文件: Concierge.java
public <S> ServiceObjects<S> getServiceObjects(
		final ServiceReference<S> reference) {
	checkValid();

	return ((ServiceReferenceImpl) reference).getServiceObjects(bundle);
}