MR-JARs busts that restriction; in the main part of your jar, you have
@Target(A, B)
@interface Foo { }
and in the 13 section you have
@Target(A, B, RECORD)
@interface Foo { }
(that's not the whole thing, but it means you only need wait until you
_accept_ 13 rather than _require_ 13.)
On 4/10/2018 4:42 PM, Kevin Bourrillion wrote:
If we create a new ElementType.RECORD, the annotation in question
won't even be /able /to add that target type until it is ready to
/require/ JDK 13 (or whatever) as its new minimum version.
On Tue, Apr 10, 2018 at 1:38 PM, Brian Goetz <brian.go...@oracle.com
<mailto:brian.go...@oracle.com>> wrote:
[ moving to amber-spec-experts]
I tend to agree. It will take longer to adopt, but it _is_ a new
kind of target in a source file, and then frameworks can decide
what it should mean, and then there's no confusion.
It's possible, too, as a migration move, to split the difference,
though I'm not sure its worth it -- add a new target, _and_, if
the target includes param/field/method, but does _not_ include
record, then lower the anno onto all applicable members.
On 4/10/2018 1:34 PM, Remi Forax wrote:
No, not right for me,
a new Annotation target is better so each framework can decide
what it means for its annotation.
It will slow the adoption but it's better in the long term.
Rémi
----- Mail original -----
De: "Kevin Bourrillion" <kev...@google.com
<mailto:kev...@google.com>>
À: "Gunnar Morling" <gun...@hibernate.org
<mailto:gun...@hibernate.org>>
Cc: "amber-dev" <amber-...@openjdk.java.net
<mailto:amber-...@openjdk.java.net>>
Envoyé: Mardi 10 Avril 2018 19:25:57
Objet: Re: Records -- Using them as JPA entities and
validating them with Bean Validation
On Mon, Apr 9, 2018 at 1:39 PM, Gunnar Morling
<gun...@hibernate.org <mailto:gun...@hibernate.org>> wrote:
* Annotation semantics: I couldn't find any example
of records with
annotations, but IIUC, something like
@Entity record Book(@Id long id, String isbn)
{ ... }
would desugar into
class @Entity public class Book { private @Id
long id, private
String isbn; ... };
For the JPA entity use case it'd be helpful to
have an option to lift
annotations to the corresponding getters instead of
the fields (as the
location of the @Id annotation controls the default
strategy -- field vs.
property -- for reading/writing entity state).
Similarly, Bean Validation
would benefit from such option.
My assumption has been that we would allow an annotation
on a record
parameter as long as it has *any of
*{FIELD,METHOD,PARAMETER} as target,
and that the annotation would be automatically propagated
to each
synthesized element it applies to. Does this sound about
right to everyone?
--
Kevin Bourrillion | Java Librarian | Google, Inc. |
kev...@google.com <mailto:kev...@google.com>
--
Kevin Bourrillion | Java Librarian | Google, Inc. |kev...@google.com
<mailto:kev...@google.com>