Replies: 1 comment
-
Thanks, @mbroz2! This is amazing! We wanted to extend our spring compatibility support, but it was hard to determine which parts needed to be prioritized. Your tables will help us greatly. If you have any opinion, please raise it! @aureamunoz - That's exactly the kind of data we need! |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi,
I've been looking at the extent of Spring annotation support in Quarkus and wanted to share my results to spur a discussion whether Quarkus could benefit from expanding the support further, and if so, to which annotations (i.e. are there some high-value, low-hanging-fruit annotations that are not yet supported and should be considered). The hope being that such action would make it easier for more developers to adopt Quarkus.
My first step was to identify which Spring annotations Quarkus already supports. However, this proved to be more challenging than expected, as there doesn't seem to exist a single place where this information is documented. If nothing else comes from this exercise, I hope it helps others that are seeking this information.
For Quarkus, the annotation information comes from various docs, guides, but also from looking through the source as the former two didn't always seem complete. For example, Spring Web support is documented quite well at the Red Hat docs, as well as in the Quarkus Spring Web guide. Same is true for Spring Cache and Spring Security. However, some of the other guides are harder to follow with regards to what is supported and some seem incomplete (from looking at the code,
@RepositoryDefinition
seems supported, but I did not see any reference to that in the documentation nor guides).For Spring, I compiled the list of annotations from the Spring javadocs. Also, note that this is not the full list of Spring annotations. The focus was on any places that Quarkus has already invested in providing some Spring annotation support, along with a couple other projects. If there's a need/interest in Spring annotations from other projects (e.g. Spring AI) and their popularity, that can be added relatively easily. The current dataset covers: Spring Framework, Spring Boot, WebServices, Security, Batch, Data - Core, Data - REST, Data - JPA, Data - JDBC, and Spring Test.
Similarly to expanding which Spring projects are included, more sources of usage could be added as well if deemed necessary (e.g. GitHub issue/PR mentions and instances in code).
The data is stored in csv format and presented as 3 files: Spring Framework Annotations, Spring Boot Annotations, and Spring Annotations. The last of the three is an aggregate of all the projects listed above. If separate files/tables for the other projects would be of help, that can be provided as well. The data also includes normalization columns to make it easier to sort by the perceived overall popularity/usage of each annotation.
Data (csv format):
All Spring Framework Annotations.csv
All Spring Boot Annotations.csv
Spring Annotations.csv
For convenience, I've also embedded the content in table format below:
Spring Framework Annotations Table
Spring Framework Annotations
Spring Boot Annotations Table
Spring Boot Annotations
Spring (Combined) Annotations Table
Spring (Combined) Annotations
Beta Was this translation helpful? Give feedback.
All reactions