TTC’15 Live Contest Case Study: Transformation of Java Annotations
Abstract
Java 5 introduced annotations as a systematic mean to attach syntactic meta-data to various elements of Java source code. Since then, annotations have been extensively used by a number of libraries, frameworks and tools to conveniently extend behaviour of Java programs that would otherwise have to be done manually or synthesised from external resources. The annotations are usually processed through reflection and the extended behaviour is injected into Java classes using aspect-oriented techniques or a direct byte code modification. However, in some cases, class-level instrumentation might not always be available neither desirable and therefore the transformation is done at the source code level.
In this case study we focus on such source-level transformation. Concretely, the task is to inject behaviour specified by an annotation library that encapsulates common programming concerns such as logging, caching and a failure retry. The objective is to explore how are the contemporary transformation tools suitable for programming language transformations.
Domains
Software Engineering [cs.SE]Origin | Files produced by the author(s) |
---|