code: public synchronized void applyProperties(PropertyMap properties) {
          if (properties.containsKey("max.size")) {
              setMaximumSize(properties.getInt("max.size"));
          }
  
          if (properties.containsKey("max.threads")) {
              setMaximumThreads(properties.getInt("max.threads"));
          }
  
          if (properties.containsKey("timeout.idle")) {
              setIdleTimeout(properties.getNumber("timeout.idle").longValue());
          }
  
          if (properties.containsKey("timeout.transaction")) {
              setTransactionTimeout
                  (properties.getNumber("timeout.transaction").longValue());
          }
  
          if ("true".equalsIgnoreCase(properties.getString("tune.size"))) {
              addTransactionQueueListener(new TransactionQueueSizeTuner());
          }
  
          if ("true".equalsIgnoreCase(properties.getString("tune.threads"))) {
              addTransactionQueueListener(new TransactionQueueThreadTuner());
          }
      }
docs: Understands and applies the following integer properties.
  
  <ul>
  <li>max.size - setMaximumSize
  <li>max.threads - setMaximumThreads
  <li>timeout.idle - setIdleTimeout
  <li>timeout.transaction - setTransactionTimeout
  <li>tune.size - Automatically tunes queue size when "true" and
  transaction timeout set.
  <li>tune.threads - Automatically tunes maximum thread count.
  </ul>