Since `XmlEnumValue` is a JAXB annotation, it is used if (and only if) JAXB module is included.
`@JsonProperty` is applied through standard `jackson-databind`. Precedence of annotations depends on how `AnnotationIntrospector`s are registered (which has precedence). I assume that you have JAXB module and introspector specified as the primary one, with highest precedence.
As to change: I can not think of explicit change, but it is possible that changes made to resolve enum values more efficiently lead to the change. I think 2.7 behavior is correct one, assuming you have JAXB module registered; 2.6 appears to have ignored annotation. Exactly why this is the case is unclear as I do not see resolved issue for 2.7.x, and since 2.6 did have handling for `@XmlEnumValue`.
But I think it has come about due to cleanup of enum resolution code which did occur for 2.7.0.
Use of `@JsonProperty` is appropriate, if you do not like serialization defined by `@XmlEnumValue`. However, wouldn't it be easiest to just remove `@XmlEnumValue` annotation? In absence of annotations (and with default settings), enum's `name` is used as the serialization.
I hope this helps,
-+ Tatu +-