Coder Social home page Coder Social logo

gunnarmorling / awesome-annotation-processing Goto Github PK

View Code? Open in Web Editor NEW
447.0 25.0 46.0 12 KB

A curated list of resources related to the Java annotation processing API (JSR 269)

License: Other

awesome-list java annotation-processing annotation-processor

awesome-annotation-processing's Introduction

Hello Stranger ๐Ÿ‘‹!

My name is Gunnar. I am an open-source software engineer, currently working at Decodable, involved with data streaming based on Apache Flink. Before joining Decodable, I spent ten years at Red Hat, where I led the Debezium project, a platform for change data capture.

I have been a long-time committer to multiple open-source projects, including Debezium, Hibernate, kcctl ๐Ÿงธ, JfrUnit, MapStruct and Deptective; I also serve as the spec lead for Bean Validation 2.0 (first at the JCP, now under the Jakarta EE umbrella at the Eclipse Foundation).

Named a Java Champion, I enjoy presenting at conferences. I have spoken at events such as QCon, JavaOne, Red Hat Summit, JavaZone, JavaLand, Kafka Summit, Current, Flink Forward, and Data Council. Here are some recordings from talks over the last few years:

Occasionally, I blog about topics related to software engineering. Here are some popular posts:

awesome-annotation-processing's People

Contributors

agentgt avatar almogtavor avatar bowbahdoe avatar cleopatra27 avatar ebramirez avatar fbiville avatar filippobuletto avatar gunnarmorling avatar h908714124 avatar hohserg1 avatar iocanel avatar jameskleeh avatar lukaseder avatar mdeinum avatar mincong-h avatar pante avatar randgalt avatar raphaelbrugier avatar rbygrave avatar sentryman avatar thomasdarimont avatar tobiasstamann avatar vegegoku avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

awesome-annotation-processing's Issues

Maybe add JStachio?

Hi folks. I have new annotation processing project. https://github.com/jstachio/jstachio

I posted it on reddit (I know gunnar and @rbygrave are sometimes on reddit so maybe you guys saw it). I plan on early releasing today or Monday to Maven Central. Feel free to wait till then and I will add a comment once that happens.

I wanted to post early to see if there were any other requirements. EDIT the other reason is I am not sure if I should also add this the tools section.

JStachio is kind of a double APT project in that it uses the annotation processing framework to generate typesafe Mustache templates for web development BUT it can also be used for code generation which is usually useful for other APT projects. (perhaps MapStruct will use it instead of freemarker someday... I'm kidding freemarker is pretty awesome :) ).

I plan on some point making a JStachio option that will require zero runtime and thus no need to maven shade for annotation processors.

Potential new compiler testing tool for Java 11+

Hello!

I am currently working on a project that aims to implement compiler testing facilities for Java 11 and newer. Was wondering if this would be useful to add to the list eventually if you are interested.

Don't want to come across as making unwanted advertising, as that is definitely not my aim, but feedback from anyone who is interested in the mean time would always be welcome and useful to me, which is why I decided to ask.

The primary aim is to provide an interface that is compatible with the most bleeding edge of JDK releases to enable writing forwards-compatible and future proof annotation processors and plugins. It can also be used to integration test generated source code from codegen libraries. Additionally, you can make use of classloaders directly for generated code -- allowing you to immediately load classes generated from code under test into memory and use them with the reflection API or via dynamic typing in languages like Apache Groovy.

The project itself is still under development, but it has a few additional aims that I found the Google compiler testing module I used to work with didn't seem to support. Specifically this includes providing full JPMS support, allowing support for alternative compiler implementations other than javac, JUnit5 integration, etc. It also makes use of actual file systems that can be accessed from outside the filer API since many annotation processor libraries tend to do this. This is implemented using JIMFS by default which is effectively a pure Java RAM disk. However, a java.io.File-compatible API is also supported.

I am also looking for candidates for compiler plugins and annotation processors that will make for good acceptance tests on my side. The JSR-199 compiler plugin can be a little ambiguous in places and some annotation processor libraries can use compiler internals in surprising ways, so one of my aims is to have a large number of acceptance tests for various libraries in the repo that are run on every build to ensure no surprising behaviour has been missed. At the time of writing, I am currently testing against google autofactory, google autoservice, google autovalue, checkerframework, google dagger, spring indexer, spring boot autoconfiguration processor, spring boot configuration processor, mapstruct, lombok, manifold, and immutables.

Project is over at https://github.com/ascopes/java-compiler-testing. I aim to have a stable release by March if not sooner.

If you are interested then that would be fantastic, but if you are not, then no worries at all. Thought I would ask though! Thanks in advance!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.