/** * Locate all implementors of the given service contract in the given OSGi buindle context. Utilizes * {@link ServiceTracker} (best practice, automatically handles a lot of boilerplate and error conditions). * * @param contract The service contract for which to locate implementors * @param context The OSGi bundle context * @param T[] The Java type of the service to locate * @return All know implementors */ public <T> T[] getServiceImpls(Class<T> contract) { T[] services = (T[]) Array.newInstance( contract, 0 ); final ServiceTracker serviceTracker = getServiceTracker( contract.getName() ); try { // Yep, this is stupid. But, it's the only way to prevent #getServices from handing us back Object[]. services = (T[]) serviceTracker.getServices( services ); if ( services != null ) { return services; } } catch (Exception e) { LOG.unableToDiscoverOsgiService( contract.getName(), e ); } return services; }
public IBundleGroupProvider[] getBundleGroupProviders() { return groupProviderTracker.getServices(new IBundleGroupProvider[0]); }
/** * @return IDeployableAnalyser services */ public Object[] getServices() { return this.serviceTracker.getServices(); }
/** * @return IDeployableAnalyser services */ public Object[] getServices() { return this.serviceTracker.getServices(); }
void logError(String message, Throwable e) { for(LogService log : logServiceTracker.getServices(new LogService[0])) { if(reference == null) { log.log(LogService.LOG_ERROR, message, e); } else { log.log(reference, LogService.LOG_ERROR, message, e); } } } }
private List<? extends NodeListener> getNodeListeners() { List<NodeListener> listeners = new LinkedList<NodeListener>(); try { listeners.addAll(Arrays.asList((NodeListener[]) listenerTracker.getServices())); } catch (Exception ex) { LOGGER.warn("Could not lookup node listeners. Listeners will not receive the last event."); } return listeners; }
private List<? extends NodeListener> getNodeListeners() { List<NodeListener> listeners = new LinkedList<NodeListener>(); try { listeners.addAll(Arrays.asList((NodeListener[]) listenerTracker.getServices())); } catch (Exception ex) { LOGGER.warn("Could not lookup node listeners. Listeners will not receive the last event."); } return listeners; }
public String[] getCommands() { Object[] commands = m_tracker.getServices(); String[] names = (commands == null) ? new String[0] : new String[commands.length]; for (int i = 0; i < names.length; i++) { names[i] = ((Command) commands[i]).getName(); } return names; }
public void start() { virtualConnectorProviderTracker.open(); domainProviderTracker.open(); Object[] services = domainProviderTracker.getServices(); if (services != null) { for (Object service : services) { createNewFactoryForDomainProvider((DomainProvider) service); } } }
private LogReaderService[] getAllReaders(BundleContext context) { ServiceTracker<LogReaderService, LogReaderService> tracker = getTracker(context); List<LogReaderService> list = new ArrayList<>(); final Object[] currentReaders = tracker.getServices(); if (currentReaders != null) { for (int index = 0; index < currentReaders.length; index++) { final LogReaderService reader = (LogReaderService) currentReaders[index]; list.add(reader); } } return list.toArray(new LogReaderService[list.size()]); }
protected static <T> Collection<T> getServicesFromTracker(ServiceTracker tracker, Class<T> serviceClass) { Collection<T> result = new ArrayList<T>(); if (tracker == null) { return result; } Object[] services = tracker.getServices(); if (services != null) { CollectionUtils.addAll(result, services); } return result; }
private <T> List<T> getListFromTracker(ServiceTracker tracker) { tracker.open(); Object[] services = tracker.getServices(); List<T> result = new ArrayList<T>(); if (services != null) { CollectionUtils.addAll(result, services); } tracker.close(); return result; }
public String[] getCommands() { Object[] commands = m_tracker.getServices(); String[] names = (commands == null) ? new String[0] : new String[commands.length]; for (int i = 0; i < names.length; i++) { names[i] = ((Command) commands[i]).getName(); } return names; }
private void executeRepositoryInitializers(final SlingRepository repo) throws Exception { final SlingRepositoryInitializerInfo [] infos = repoInitializerTracker.getServices(new SlingRepositoryInitializerInfo[0]); if (infos == null || infos.length == 0) { log.debug("No SlingRepositoryInitializer services found"); return; } Arrays.sort(infos); for(final SlingRepositoryInitializerInfo info : infos) { log.debug("Executing {}", info.initializer); info.initializer.processRepository(repo); } }
private <T> List<T> getListFromTracker(ServiceTracker tracker) { tracker.open(); Object[] services = tracker.getServices(); List<T> result = new ArrayList<T>(); if (services != null) { CollectionUtils.addAll(result, services); } tracker.close(); return result; }
private void callListeners(BlueprintEvent event) { Object[] listeners = containerListenerTracker.getServices(); if (listeners != null) { for (Object listener : listeners) { ((BlueprintListener) listener).blueprintEvent(event); } } }
public String getCommandDescription(String name) { Object[] commands = m_tracker.getServices(); for (int i = 0; (commands != null) && (i < commands.length); i++) { Command command = (Command) commands[i]; if (command.getName().equals(name)) { return command.getShortDescription(); } } return null; }
public String getCommandDescription(String name) { Object[] commands = m_tracker.getServices(); for (int i = 0; (commands != null) && (i < commands.length); i++) { Command command = (Command) commands[i]; if (command.getName().equals(name)) { return command.getShortDescription(); } } return null; }
public String getCommandUsage(String name) { Object[] commands = m_tracker.getServices(); for (int i = 0; (commands != null) && (i < commands.length); i++) { Command command = (Command) commands[i]; if (command.getName().equals(name)) { return command.getUsage(); } } return null; }
public String getCommandUsage(String name) { Object[] commands = m_tracker.getServices(); for (int i = 0; (commands != null) && (i < commands.length); i++) { Command command = (Command) commands[i]; if (command.getName().equals(name)) { return command.getUsage(); } } return null; }