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: Bind channels to annotation components #49

Merged
merged 3 commits into from
Apr 10, 2023

Conversation

lorenzsimon
Copy link
Member

What

This PR adds a AsyncApiExtension that binds the provided components to the top-level channels property.

Why

  • add the components provided by annotations to the extended model

How

  • use providers to provide whole AsyncApi models and transform them to extensions
  • map channel names to their component keys

@lorenzsimon lorenzsimon merged commit 031560a into dev Apr 10, 2023
@lorenzsimon lorenzsimon deleted the feat/bind-channels-to-annotation-components branch April 10, 2023 15:25
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]>
lorenzsimon added a commit that referenced this pull request Dec 15, 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

* Move to new domain namespace

* Fix kts example usage

* Move domain

* Bump dependencies

---------

Co-authored-by: Lorenz Simon <[email protected]>
lorenzsimon added a commit that referenced this pull request Jan 6, 2025
…ple channels within (#76)

* allow annotation to target function also.

* add support for channel on functions instead of just classes.

* split into a separate processor with new annotation to handle finding the correct classes.

* match previous white space

* name updates per PR comments.

* fix annotation location

* add AsyncApiComponent population of channel map behavior to match Channel behavior. added value attribute to AsyncApiComponent for parity.

* chore: move domain (#77)

* 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

* Move to new domain namespace

* Fix kts example usage

* Move domain

* Bump dependencies

---------

Co-authored-by: Lorenz Simon <[email protected]>

* chore: Update repositories

* change how the map is populated for channels found via AsyncApiComponent and for Channel annotations to handle the fact that not all of them will be named based on their class and that will only happen if they target a class instead of a function.

* Update CODEOWNERS

* chore: Update pom.xml

* Update CODEOWNERS

* changes per PR requests.

* updates to handle merge conflicts.

---------

Co-authored-by: Charles Bazeley <[email protected]>
Co-authored-by: Lorenz Simon <[email protected]>
Co-authored-by: Lorenz Simon <[email protected]>
lorenzsimon added a commit that referenced this pull request Jan 6, 2025
* 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

* Move to new domain namespace

* Fix kts example usage

* Move domain

* Bump dependencies

* feat: create new annotation for classes that allows you to have multiple channels within (#76)

* allow annotation to target function also.

* add support for channel on functions instead of just classes.

* split into a separate processor with new annotation to handle finding the correct classes.

* match previous white space

* name updates per PR comments.

* fix annotation location

* add AsyncApiComponent population of channel map behavior to match Channel behavior. added value attribute to AsyncApiComponent for parity.

* chore: move domain (#77)

* 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

* Move to new domain namespace

* Fix kts example usage

* Move domain

* Bump dependencies

---------

Co-authored-by: Lorenz Simon <[email protected]>

* chore: Update repositories

* change how the map is populated for channels found via AsyncApiComponent and for Channel annotations to handle the fact that not all of them will be named based on their class and that will only happen if they target a class instead of a function.

* Update CODEOWNERS

* chore: Update pom.xml

* Update CODEOWNERS

* changes per PR requests.

* updates to handle merge conflicts.

---------

Co-authored-by: Charles Bazeley <[email protected]>
Co-authored-by: Lorenz Simon <[email protected]>
Co-authored-by: Lorenz Simon <[email protected]>

* Revert version constraint

---------

Co-authored-by: Lorenz Simon <[email protected]>
Co-authored-by: CharlesB <[email protected]>
Co-authored-by: Charles Bazeley <[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.

1 participant