I find that the cgen task does not regenerate the files unless the cayenne model has an updated datetime stamp. However, your point is taken that this will then cause ALL entities to get a new serial number, even if only one changed.
Ari On 4/10/11 10:53 AM, Mike Kienenberger wrote:
No, it should be more clever than that. Otherwise, every time you regenerate the template, the generated code will change even if nothing else had changed. That will also break serialization. Ideally, it should return the same number whenever the same fields and types are used for the generated class. Maybe build the number by iterating over the attributes and relationships and feeding it into org.apache.commons.lang.builder.HashCodeBuilder, basing it on the order and type On Mon, Oct 3, 2011 at 7:41 PM, Ari Maniatis (Commented) (JIRA) <[email protected]> wrote:[ https://issues.apache.org/jira/browse/CAY-1622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13119757#comment-13119757 ] Ari Maniatis commented on CAY-1622: ----------------------------------- Do we just want to add this to the velocity templates: private static final long serialVersionUID = ${random(1,9223372036854775807)};Generated classes shouldn't produce serialVersionUID compiler warning --------------------------------------------------------------------- Key: CAY-1622 URL: https://issues.apache.org/jira/browse/CAY-1622 Project: Cayenne Issue Type: Bug Components: Core Library Affects Versions: 3.0 Reporter: Bob Harner Priority: Minor It is probably a good idea for Cayenne not to produce any compiler warnings, but auto-generated entity classes always have the "The serializable class _Foo does not declare a static final serialVersionUID field of type long" compiler warning. The @SuppressWarnings("serial") annotation will get rid of the warnings, but of course it is not recommended to manually update the generated classes. Users could configure the IDE to ignore these warnings (yuk), but then other team members will still see them. Another option is to for users to set up a custom velocity template to include this annotation. But the best solution would be for Cayenne to either automatically generate either the serialVersionUID itself or the @SuppressWarnings("serial") annotation that suppresses the compiler warning.-- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
-- --------------------------> Aristedes Maniatis GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
