code: private void _mergeNotifierConfiguration() {
          Method[] methods = _notifierFactory.getClass().getDeclaredMethods();
  
          for (Method method : methods) {
              if (Notifier.class.isAssignableFrom(method.getReturnType())) {
                  try {
                      boolean accessible = method.isAccessible();
                      method.setAccessible(true);
                      Notifier notifier = Notifier.class.cast(method.invoke(_notifierFactory, new Object[]{}));
                      method.setAccessible(accessible);
                      _mergeProperties(notifier.getNotifierProperties());
                  } catch (Exception e) {
                      requireState(false, "Failed to load notifier properties for notifier factory method " + method.getName());
                  }
              }
          }
  
      }
docs: Merges the implementation specific notifier configuration properties with the system level configuration properties. This method examines the
  implementation specific notifier configuration property keys as obtained by the <tt>getNotifierProperties()</tt> method and determines if the
  system configuration contains the property. If the system configuration does not contain the property, the method inserts the default value
  specified in the result of <tt>getNotifierProperties()</tt> method into the system configuration.