code: public
    void setProperty(String name, String value) {
      if (value == null) return;
  
      name = Introspector.decapitalize(name);
      PropertyDescriptor prop = getPropertyDescriptor(name);
  
      //LogLog.debug("---------Key: "+name+", type="+prop.getPropertyType());
  
      if (prop == null) {
        LogLog.warn("No such property [" + name + "] in "+
  		  obj.getClass().getName()+"." );
      } else {
        try {
          setProperty(prop, name, value);
        } catch (PropertySetterException ex) {
          LogLog.warn("Failed to set property [" + name +
                      "] to value \"" + value + "\". ", ex.rootCause);
        }
      }
    }
docs: Set a property on this PaxPropertySetter's Object. If successful, this
  method will invoke a setter method on the underlying Object. The
  setter is the one for the specified property name and the value is
  determined partly from the setter argument type and partly from the
  value specified in the call to this method.
  
  <p>If the setter expects a String no conversion is necessary.
  If it expects an int, then an attempt is made to convert 'value'
  to an int using new Integer(value). If the setter expects a boolean,
  the conversion is by new Boolean(value).
  
  @param name    name of the property
  @param value   String value of the property