@Override public <T, U extends T> Registration<T> registerService(Class<T> contract, U implementation) { ServiceRegistration reg = registry.registerService(contract.getName(), implementation, null); holder.addRegistration(reg); return new RegistrationImpl<T>(contract, registry, bundle, holder); }
private void populate() { registrations.clear(); try { List<ServiceRegistration> regs = holder.getRegistrations(); for (ServiceRegistration reg : regs) { registrations.add(new RegistrationImpl<T>(contract, registry, bundle, holder)); } } catch(Exception ex) { ex.printStackTrace(); } }
@Override public <T> Registration<T> registerService(Class<T> contract, Class<? extends T> implementation) { ServiceRegistration reg = registry.registerService(contract.getName(), instances.select(implementation).get(), null); holder.addRegistration(reg); return new RegistrationImpl<T>(contract, registry, bundle, holder); }
@Produces public <T> Registration<T> getRegistrations(BundleHolder bundleHolder, RegistrationHolder holder, InjectionPoint p) { logger.trace("Entering OSGiUtilitiesProducer : getRegistrations() " + "with parameters {} | {} | {}", new Object[] {bundleHolder,holder,p}); Class<T> contract = ((Class<T>) ((ParameterizedType) p.getType()).getActualTypeArguments()[0]); Registration<T> result = new RegistrationImpl<T>(contract, bundleHolder.getContext(), bundleHolder.getBundle(), holder); logger.debug("Returning the registrations {}", result); return result; }
@Override public Registration<T> select(String filter) { Filter osgiFilter = null; try { osgiFilter = FrameworkUtil.createFilter(filter); } catch(InvalidSyntaxException e) { throw new IllegalArgumentException("Invalid LDAP filter : " + e.getMessage()); } RegistrationHolder holder = new RegistrationsHolderImpl(); for (ServiceRegistration registration : holder.getRegistrations()) { if (osgiFilter.match(registration.getReference())) { holder.addRegistration(registration); } } return new RegistrationImpl<T>(contract, registry, bundle, holder); }