code: public static Map<String,Object> mergeProperties(Map<String,Object> defaultProperties,
                                                Map<String,Object> overrides) {
          Map<String,Object> props = new HashMap<String,Object>(defaultProperties);
          if(overrides==null || overrides.size()==0) return props;
          for(String prop : overrides.keySet()) {
              props.put(prop,overrides.get(prop));
          }
          return props;
      }
docs: returns a new map that is a combination of the values from the first parameter {@see defaultProperties}
  with the values override by the one that are specified in {@see overrides}
  
  @param defaultProperties The map will contain all these keys.
  @param overrides the properties that are to replace those in the defaults.  This may be a sub set of the
  properties in the defaultProperties, or new values.
  @return map with replaced properties