JSR-308 Checkers Plugin for Maven 2

JSR-308 jest to specyfikacja znana także jako Type Annotations Specification. Specyfikacja definiuje nowy typ adnotacji, tzw type annotations. Dzięki temu rozszerzeniu możemy używać adnotacji nie tylko do dekorowania metod, pól, konstruktorów, klas ale także dowolnego użytego w kodzie typu tak jak na przykładzie poniżej:

1
2
3
4
5
private List<@NonNull Object> list;

public @NonNull String getName() {
    return name;
}

Drugą częścią specyfikacji jest tzw checkers framework, framework rozszerzający możliwości kompilatora o mechanizmy statycznej analizy kodu. Analizą kodu zajmują się tzw checkery, realizujące pewne strategie analizy. JSR308 proponuje tutaj pewien zbiór standardowych checker’ów dołączanych jako pluginy do kompilatora. Specyfikacja wymienia i opisuje nastepujące checkery - nulness checker, interning checker, immutability checker, units checker, lock checker itp. Zadaniem każdego checker’a jest analiza kodu pod kątem występowania innych błędów. Po szczegóły odsyłam do specyfikacji - checkers-manual.html.

W chwili obecnej specyfikacja została przeniesiona z Java 7 do Java 8 jednak już dzisiaj można korzystać z jej możliwości w Java 6. Całkiem niedawno, przy okazji studiowania specyfikacji napisałem plugin do Maven 2 upraszczający cały proces podłączania checker’ów do kompilatora. Plugin, w zdefiniowanej w pom.xml fazie budowy, uruchamia wybrane checkery podane w jego konfiguracji. Po więcej informacji zapraszam na stronę domową pluginu gdzie opisałem m.in sposób jego użycia.

Go to JSR-308 checkers plugin site

Comments