2. A Task must identify the name of all modifiable properties.
As you point out, this is already possible via "all methods following
our naming convention represent attributes/nested elements" - and
there even are support methods in IntrospectionHelper to aid external
But sometimes one might pick up false positives (setUserProperty in
Property being something that shouldn't lead to an attribute for
example). So in principle I agree.
One option to consider here is the way that JavaBeans deal with the "false
positives" issue. If you also include a BeanInfo class, you can customize the
set of properties that is made visible (and even adapt to different method
names). The introspector knows how to deal with this for you, so it might be
pretty cheap to implement.