Allow version field/property to be visible to application
---------------------------------------------------------

                 Key: JDO-683
                 URL: https://issues.apache.org/jira/browse/JDO-683
             Project: JDO
          Issue Type: Improvement
          Components: api
    Affects Versions: JDO 3 maintenance release 1
            Reporter: Matthew T. Adams


Currently, it requires a vendor extension to make the version attribute (field 
or property) of a PC visible to the application.  Some knowledgeable 
applications may need not only read access to the version field, but also write 
access to it.

I propose that we allow version metadata to specify that a version attribute be 
application-visible.  For annotation-based metadata, I recommend that it be 
allowed to be placed on fields & methods.  For XML metadata, add XML attributes 
"attribute-name" to the "version" element that allows the user to specify which 
field or property is to hold the application-visible version value.

Along with this change would be verbiage in the spec noting that applications 
really shouldn't change this value, but a knowledgeable application may change 
it, based on a new PMF & PM property called something like 
"javax.jdo.option.OnVersionChangeByApplication" with the following specified 
values.

THROW:  (default) the implementation will throw JDOUserVersionChangeException 
(extends JDOUserException) as early as the time the value is set, at the next 
flush, or at commit.
IGNORE:  the implementation ignores the value the user set for the object's 
version
ALLOW:  the implementation allows and uses the value the user set for the 
object's version

This allows users to who know how their implementation behaves on user-modified 
version values to take advantage of such behavior.

All names proposed are up for discussion.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to