code: @Reference(service = FileMonitor.class, policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.MULTIPLE, target = "(|(monitor.files=*)(monitor.directories=*))")
      protected void setMonitor(ServiceReference<FileMonitor> monitorRef) {
  
          // This is a "simple"/safe constructor that does not reference our required services (locate/executor).
          // Monitors can be registered/bound before the other services are (no guaranteed order for optional dynamic
          // services)
          MonitorHolder holder = createMonitorHolder(monitorRef);
          MonitorHolder existing = fileMonitors.put(monitorRef, holder);
  
          // Clean up existing/previous entry, if present
          if (existing != null) {
              // destroy is synchronized
              existing.destroy();
          }
  
          // Only initialize and start the monitor if the component has been activated
          if (cContext != null) {
              try {
                  holder.init();
              } catch (RuntimeException re) {
                  // Generated FFDC, rethrow to fail the bind
                  fileMonitors.remove(monitorRef);
                  throw re;
              }
          }
  
      }
docs: Inject an instance of a <code>FileMonitor</code> service (provider of
  that interface). Called whenever an instance of this service is available:
  is dynamic, optional, and multiple.
  
  ==> synchronized against unsetMonitor
  
  @param monitorRef
  a reference to the FileMonitor instance to update