if (o instanceof Persistent) {
PropertyDescriptor property = getProperty((Persistent) o, propertyName);
if (property != null) {
return property.readProperty(o);
}
}
// handling non-persistent property
return PropertyUtils.getProperty(o, propertyName);