Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Process message and schema annotations #44

Merged
merged 6 commits into from
Mar 20, 2023

Conversation

lorenz-scalable
Copy link
Contributor

What

This is the first step to process AsyncAPI annotations to support meta-documentation. We register an annotation provider bean that scans the classpath for message and schema annotations. Those annotations will be processed considering the context (annotated class) and they will be translated to AsyncAPI components.

Why

  • this will allow users to annotate their event-based microservices and generate AsyncAPI documentation automatically.

How

  • AnnotationProvider: uses the annotation scanner and processors to generate components
  • AnnotationScanner: scans the classpath for specified annotations
  • AnnotationProcessor: processes annotation with the specified context (e.g. annotated class)

Copy link

@drazengrabovac drazengrabovac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great ground work! I just a have a couple of small questions.

@mikiTesf mikiTesf requested a review from mohaqeq March 20, 2023 09:08
@mohaqeq
Copy link

mohaqeq commented Mar 20, 2023

I didn't run the tests locally and hope they all work ;)

@lorenz-scalable
Copy link
Contributor Author

I didn't run the tests locally and hope they all work ;)

Test run is part of the Maven build job https:/OpenFolder/kotlin-asyncapi/actions/runs/4466127855/jobs/7843924357?pr=44

@lorenz-scalable lorenz-scalable merged commit 5a42e58 into dev Mar 20, 2023
@lorenz-scalable lorenz-scalable deleted the feat/process-asyncapi-annotations branch March 20, 2023 13:03
lorenzsimon added a commit that referenced this pull request Apr 10, 2023
* feat: Implement message model annotations (#43)

* feat - Implement message model annotations

* chore - Remove unused dependencies

* feat: Process message and schema annotations (#44)

* feat - Implement Message annotation processing

* feat - Merge annotation components

* feat - Add schema annotation processor

* refactor - Make annotation processor context dynamic
test - Add annotation provider integration test

* chore - ktlint format

* refactor - Refactor dependency management

---------

Co-authored-by: lorenzsimon <[email protected]>

* feat: Channel annotation processing (#45)

* feat - Add Channel and Operation annotations

* feat - Add Channel processing

* refactor - Annotation keys to values

* chore - Fix confusing test values

* refactor: Annotation mapping (#47)

* refactor - Annotation mapping improvements

* refactor - Add option for inline messages and schemas

* refactor - Use classname for channel component keys if autogenerated

* fix - Typo

* test - Fix Schemas test

* feat: Add Kotlin module to model resolver (#48)

feat - Add Kotlin module to model resolver

* feat: Bind channels to annotation components (#49)

* refactor - Context providers

* feat - Bind channels to annotation components

* refactor - Annotation components binding

* chore - Format

---------

Co-authored-by: Lorenz Simon <[email protected]>
lorenzsimon added a commit that referenced this pull request Nov 23, 2023
* feat: Implement message model annotations (#43)

* feat - Implement message model annotations

* chore - Remove unused dependencies

* feat: Process message and schema annotations (#44)

* feat - Implement Message annotation processing

* feat - Merge annotation components

* feat - Add schema annotation processor

* refactor - Make annotation processor context dynamic
test - Add annotation provider integration test

* chore - ktlint format

* refactor - Refactor dependency management

---------

Co-authored-by: lorenzsimon <[email protected]>

* feat: Channel annotation processing (#45)

* feat - Add Channel and Operation annotations

* feat - Add Channel processing

* refactor - Annotation keys to values

* chore - Fix confusing test values

* refactor: Annotation mapping (#47)

* refactor - Annotation mapping improvements

* refactor - Add option for inline messages and schemas

* refactor - Use classname for channel component keys if autogenerated

* fix - Typo

* test - Fix Schemas test

* feat: Add Kotlin module to model resolver (#48)

feat - Add Kotlin module to model resolver

* feat: Bind channels to annotation components (#49)

* refactor - Context providers

* feat - Bind channels to annotation components

* refactor - Annotation components binding

* chore - Format

* chore: Add Spring Boot example application (#63)

* chore: Add Spring Boot example application

* fix: Java version

* fix: Test

* chore: Bump dependencies (#65)

* chore: Bump dependencies

* chore: Bump dependencies

* chore: Set Java version in GH actions

* fix: Autoconfig migration

* fix: Migrate Jakarta

---------

Co-authored-by: Lorenz Simon <[email protected]>
lorenzsimon added a commit that referenced this pull request Nov 25, 2023
* feat: Implement message model annotations (#43)

* feat - Implement message model annotations

* chore - Remove unused dependencies

* feat: Process message and schema annotations (#44)

* feat - Implement Message annotation processing

* feat - Merge annotation components

* feat - Add schema annotation processor

* refactor - Make annotation processor context dynamic
test - Add annotation provider integration test

* chore - ktlint format

* refactor - Refactor dependency management

---------

Co-authored-by: lorenzsimon <[email protected]>

* feat: Channel annotation processing (#45)

* feat - Add Channel and Operation annotations

* feat - Add Channel processing

* refactor - Annotation keys to values

* chore - Fix confusing test values

* refactor: Annotation mapping (#47)

* refactor - Annotation mapping improvements

* refactor - Add option for inline messages and schemas

* refactor - Use classname for channel component keys if autogenerated

* fix - Typo

* test - Fix Schemas test

* feat: Add Kotlin module to model resolver (#48)

feat - Add Kotlin module to model resolver

* feat: Bind channels to annotation components (#49)

* refactor - Context providers

* feat - Bind channels to annotation components

* refactor - Annotation components binding

* chore - Format

* chore: Add Spring Boot example application (#63)

* chore: Add Spring Boot example application

* fix: Java version

* fix: Test

* chore: Bump dependencies (#65)

* chore: Bump dependencies

* chore: Bump dependencies

* chore: Set Java version in GH actions

* fix: Autoconfig migration

* fix: Migrate Jakarta

* chore: Refactor data objects (#67)

* chore: Revert

---------

Co-authored-by: Lorenz Simon <[email protected]>
lorenzsimon added a commit that referenced this pull request Aug 27, 2024
* feat: Implement message model annotations (#43)

* feat - Implement message model annotations

* chore - Remove unused dependencies

* feat: Process message and schema annotations (#44)

* feat - Implement Message annotation processing

* feat - Merge annotation components

* feat - Add schema annotation processor

* refactor - Make annotation processor context dynamic
test - Add annotation provider integration test

* chore - ktlint format

* refactor - Refactor dependency management

---------

Co-authored-by: lorenzsimon <[email protected]>

* feat: Channel annotation processing (#45)

* feat - Add Channel and Operation annotations

* feat - Add Channel processing

* refactor - Annotation keys to values

* chore - Fix confusing test values

* refactor: Annotation mapping (#47)

* refactor - Annotation mapping improvements

* refactor - Add option for inline messages and schemas

* refactor - Use classname for channel component keys if autogenerated

* fix - Typo

* test - Fix Schemas test

* feat: Add Kotlin module to model resolver (#48)

feat - Add Kotlin module to model resolver

* feat: Bind channels to annotation components (#49)

* refactor - Context providers

* feat - Bind channels to annotation components

* refactor - Annotation components binding

* chore - Format

* chore: Add Spring Boot example application (#63)

* chore: Add Spring Boot example application

* fix: Java version

* fix: Test

* chore: Bump dependencies (#65)

* chore: Bump dependencies

* chore: Bump dependencies

* chore: Set Java version in GH actions

* fix: Autoconfig migration

* fix: Migrate Jakarta

* chore: Refactor data objects (#67)

* chore: Revert

* release: 3.0.3

* pre-release: 3.0.4

* feat: Add Ktor integration (#72)

* docs: Update Spring support

* pre-release: 3.0.4 (#70)

* docs: Link Spring Boot example

* Add Ktor integration

* Fix content type

* Fix test

* Fix test

* Add Script extension

* Add Script extension

* Refactor

* Add plugin integration test

* Add docs for ktor integration

---------

Co-authored-by: Lorenz Simon <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants