A modelling language for the effective design of Java annotations
This addresses the problem of effective annotation design for Java developers, but it is incremental as it builds on existing annotation concepts with a new modeling tool.
The paper tackles the limited native support for designing Java annotations with dependency and integrity constraints by proposing a domain-specific modeling language, implemented as an Eclipse plug-in that includes an editor and code generator, and tested on the Java Persistence API (JPA) to cover a greater scope than related work.
This paper describes a new modelling language for the effective design of Java annotations. Since their inclusion in the 5th edition of Java, annotations have grown from a useful tool for the addition of meta-data to play a central role in many popular software projects. Usually they are conceived as sets with dependency and integrity constraints within them; however, the native support provided by Java for expressing this design is very limited. To overcome its deficiencies and make explicit the rich conceptual model which lies behind a set of annotations, we propose a domain-specific modelling language. The proposal has been implemented as an Eclipse plug-in, including an editor and an integrated code generator that synthesises annotation processors. The language has been tested using a real set of annotations from the Java Persistence API (JPA). It has proven to cover a greater scope with respect to other related work in different shared areas of application.