code: public final void initialize(Map<String,String> configuration,Logger logger,FaxJobMonitor faxJobMonitor)
      {
          if(this.initialized)
          {
              throw new FaxException("Fax client SPI already initialized.");
          }
          
          //set flag
          this.initialized=true;
  
          //get property part
          String propertyPart=this.getPropertyPart();
  
          //get configuration
          this.spiConfiguration=new ConfigurationHolderImpl(configuration,propertyPart);
  
          //get logger
          this.spiLogger=logger;
  
          //log fax client SPI information
          this.spiLogger.logDebug(new Object[]{"Initializing fax client SPI of type: ",this.getClass().getName(),"\nProvider Information:\n",this.getProvider(),"\nSPI Configuration:\n",configuration},null);
  
          //get fax job monitor
          this.spiFaxJobMonitor=faxJobMonitor;
          
          //init listeners data structures
          this.faxClientActionEventListeners=new HashSet<FaxClientActionEventListener>();
          this.faxMonitorEventListeners=new HashSet<FaxMonitorEventListener>();
          
          //initialize
          this.initializeImpl();
      }
docs: This function initializes the fax client SPI.<br>
  This method is called by the FaxClientSpiFactory.
  
  @param   configuration
  The fax client configuration
  @param   logger
  The internal logger
  @param   faxJobMonitor
  The fax job monitor