private static ServiceDetector createDetector(ServiceDetectorFactory<? extends ServiceDetector> factory, Map<String, String> properties) { if (factory == null) { return null; } final ServiceDetector detector = factory.createDetector(properties); return detector; }
@SuppressWarnings({ "rawtypes", "unchecked" }) public synchronized void onUnbind(ServiceDetectorFactory factory, Map properties) { LOG.debug("unbind called with {}: {}", factory, properties); if (factory != null) { final String serviceName = getServiceName(factory); final String className = factory.getDetectorClass().getCanonicalName(); m_factoriesByServiceName.remove(serviceName, factory); m_factoriesByClassName.remove(className, factory); m_classNameByServiceName.remove(serviceName, className); } }
final DetectRequest request = factory.buildRequest(location, address, port, attributes); detectorRequestDTO.addRuntimeAttributes(request.getRuntimeAttributes()); factory.afterDetect(request, response, nodeId); } catch (Throwable t) { LOG.error("Error while processing detect callback.", t);
private static String getServiceName(ServiceDetectorFactory<? extends ServiceDetector> factory) { return factory.createDetector(new HashMap<>()).getServiceName(); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public synchronized void onBind(ServiceDetectorFactory factory, Map properties) { LOG.debug("bind called with {}: {}", factory, properties); if (factory != null) { final String serviceName = getServiceName(factory); final String className = factory.getDetectorClass().getCanonicalName(); m_factoriesByServiceName.put(serviceName, factory); m_factoriesByClassName.put(className, factory); m_classNameByServiceName.put(serviceName, className); } }
private static String getServiceName(ServiceDetectorFactory<? extends ServiceDetector> factory) { return factory.createDetector().getServiceName(); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public synchronized void onBind(ServiceDetectorFactory factory, Map properties) { LOG.debug("bind called with {}: {}", factory, properties); if (factory != null) { final String serviceName = getServiceName(factory); final String className = factory.getDetectorClass().getCanonicalName(); m_factoriesByServiceName.put(serviceName, factory); m_factoriesByClassName.put(className, factory); m_classNameByServiceName.put(serviceName, className); } }
@Override public void afterPropertiesSet() throws Exception { // Register all of the @Autowired ServiceDetectorFactory implementations if (m_detectorFactories != null) { for (ServiceDetectorFactory<?> factory : m_detectorFactories) { // Determine the implementation type Map<String, String> props = new HashMap<>(); ServiceDetector detector = factory.createDetector(props); // Register the factory onBind(factory, props); // Add the detector to the service registry addAllExtensions(Collections.singleton(detector), ServiceDetector.class); } } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public synchronized void onUnbind(ServiceDetectorFactory factory, Map properties) { LOG.debug("unbind called with {}: {}", factory, properties); if (factory != null) { final String serviceName = getServiceName(factory); final String className = factory.getDetectorClass().getCanonicalName(); m_factoriesByServiceName.remove(serviceName, factory); m_factoriesByClassName.remove(className, factory); m_classNameByServiceName.remove(serviceName, className); } }
@Override public void afterPropertiesSet() throws Exception { // Register all of the @Autowired ServiceDetectorFactory implementations if (m_detectorFactories != null) { for (ServiceDetectorFactory<?> factory : m_detectorFactories) { // Determine the implementation type Map<String, String> props = new HashMap<>(); ServiceDetector detector = factory.createDetector(); // Register the factory onBind(factory, props); // Add the detector to the service registry addAllExtensions(Collections.singleton(detector), ServiceDetector.class); } } }
private static ServiceDetector createDetector(ServiceDetectorFactory<? extends ServiceDetector> factory, Map<String, String> properties) { if (factory == null) { return null; } final ServiceDetector detector = factory.createDetector(); BeanWrapper wrapper = PropertyAccessorFactory.forBeanPropertyAccess(detector); wrapper.setPropertyValues(properties); return detector; }