@Override public <T> Service<T> getServiceReference() { return new ServiceImpl<T>(contract, registry); }
@Override public T get() { populateServices(); return service; }
@Override public boolean isAmbiguous() { return (size() > 1); }
@Override public int size() { if (service == null) { try { populateServices(); } catch(Exception e) { e.printStackTrace(); return -1; } } return services.size(); }
@Override public <T> Service<T> getServiceReferences(Class<T> contract) { return new ServiceImpl<T>(contract, registry); }
@Override public boolean isUnsatisfied() { return (size() <= 0); }
@Override public Iterator<T> iterator() { try { populateServices(); } catch(Exception ex) { ex.printStackTrace(); services = Collections.emptyList(); } return services.iterator(); }
@Override public Service create(CreationalContext creationalContext) { logger.trace("Entering OSGiServiceProducerBean : create() with parameter {}", new Object[] {creationalContext}); BundleContext registry = ctx; if (registry == null) { registry = FrameworkUtil.getBundle( injectionPoint.getMember().getDeclaringClass()).getBundleContext(); } Service result = (Service) new ServiceImpl(((ParameterizedType) type).getActualTypeArguments()[0], registry, filter); logger.debug("New service for {} created {}", this, result); return result; }