private void autoExportDefaultServices(BundleContext bundleContext) { final long bundleId = bundleContext.getBundle().getBundleId(); Log.info("Auto export of default Services for bundle (id: {}) enabled", bundleId); final OnmsServiceManager serviceManager = new OnmsServiceManagerImpl(bundleContext); Dictionary<String,Object> props = new Hashtable<String,Object>(); props.put("bundleId", bundleContext.getBundle().getBundleId()); Log.info("Registering OnmsServiceManager and SessionListener for bundle (id: {})", bundleId); bundleContext.registerService( new String[]{OnmsServiceManager.class.getName(), SessionListener.class.getName()}, serviceManager, props); Log.info("Registering EventRegistry for bundle (id: {})", bundleId); bundleContext.registerService(EventRegistry.class.getName(), new EventRegistry(bundleContext), props); }
private boolean isPossibleEventConsumer(Object possibleEventConsumer) { if (possibleEventConsumer == null) return false; return !getEventConsumerMethods(possibleEventConsumer.getClass()).isEmpty(); }
@Override public EventProxy getEventProxy(OnmsServiceManager serviceManager) { if (serviceManager == null) throw new IllegalArgumentException("OnmsServiceManager must not be null"); EventRegistry eventRegistry = serviceManager.getEventRegistry(); if (eventRegistry == null) throw new IllegalArgumentException("EventRegistry must not be null"); return eventRegistry.getScope(this); }
if (isPossibleEventConsumer(possibleEventConsumer)) { List<Method> eventConsumerMethods = getEventConsumerMethods(possibleEventConsumer.getClass()); for (Method eachEventConsumerMethod : eventConsumerMethods) { boolean hasType = eachEventConsumerMethod.getParameterTypes() != null && eachEventConsumerMethod.getParameterTypes().length > 0; getOnmsServiceManager().registerAsService(EventListener.class, listener, applicationContext, EventListener.getProperties(eachEventConsumerMethod.getParameterTypes()[0]));
@Override public <T> void addPossibleEventConsumer(T possibleEventConsumer) { getServiceManager().getEventRegistry().addPossibleEventConsumer(possibleEventConsumer, applicationContext); }
m_serviceManager.getEventRegistry().addPossibleEventConsumer(this, m_applicationContext);
m_serviceManager.getEventRegistry().addPossibleEventConsumer(this, m_applicationContext);