code: protected static Map<String,String> getConfiguration(Properties configuration)
      {
          //get system configuration
          Map<String,String> systemConfig=LibraryConfigurationLoader.getSystemConfiguration();
          
          //create new map
          Map<String,String> layeredConfiguration=new HashMap<String,String>(systemConfig);
          if(configuration!=null)
          {
              //convert to map
              SpiUtil.copyPropertiesToMap(configuration,layeredConfiguration);
          }
          
          return layeredConfiguration;
      }
docs: Returns the configuration to be used by the new SPI instance.<br>
  The configuration of the fax client SPI is made up of 3 layers.
  The lowest layer is the internal fax4j.properties file located in the fax4j jar.
  This configuration file contains the initial default configuration.
  The next layer is the external fax4j.properties file that is located on the classpath.
  This file is optional and provides the ability to override the internal configuration.
  The top most layer is the optional properties object provided by the external classes.
  These properties enable to override the configuration of the lower 2 layers.
  
  @param   configuration
  The fax client configuration (may be null)
  @return  The fax client layered configuration