protected void storeProperty(String propertyName, Object propertyValue) {
try {
getAccessorFactory().createPropertyAccessor(propertyName,
getComponentContract()).setValue(delegate, propertyValue);
} catch (IllegalAccessException ex) {
throw new ComponentException(ex);
} catch (InvocationTargetException ex) {
if (ex.getCause() instanceof RuntimeException) {
throw (RuntimeException) ex.getCause();
}
throw new ComponentException(ex.getCause());
} catch (NoSuchMethodException ex) {
throw new ComponentException(ex);
}
}