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): Decoupled Binding annotations #655

Merged

Conversation

ctasada
Copy link
Collaborator

@ctasada ctasada commented Mar 16, 2024

Decouple the binding annotations.

The annotations to document the bindings were only available via the different springwolf-plugins, and were forcing to import multiple extra dependencies.

Those annotations are now published in it's own module without extra dependencies, so they can be use for documentation goals. If you want to produce/consume events, you still need to use the adequate springwolf-plugin

  • springwolf-bindings:springwolf-sqs-binding
    • @SqsAsyncOperationBinding
    • @SqsAsyncQueueBinding
  • springwolf-bindings:springwolf-sns-binding
    • @SnsAsyncOperationBinding
    • @SnsAsyncOperationBindingIdentifier
  • Pending
    • @AmqpAsyncOperationBinding
    • @JmsAsyncOperationBinding
    • @KafkaAsyncOperationBinding

Copy link

netlify bot commented Mar 16, 2024

Deploy Preview for springwolf-ui ready!

Name Link
🔨 Latest commit 92d7718
🔍 Latest deploy log https://app.netlify.com/sites/springwolf-ui/deploys/65f7f145a49e5f0008816993
😎 Deploy Preview https://deploy-preview-655--springwolf-ui.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@ctasada
Copy link
Collaborator Author

ctasada commented Mar 16, 2024

@timonback @sam0r040 I created a new MR with only the new binding artifacts. This means that code is duplicated. I think it's something we can address in the future.

Basically I see the next options:

  • Do nothing (no binding artifacts): I don't like this option, since, at least in my case, is limiting to document some projects
  • Create the bindings: Implemented here. Introduces some code duplication
  • Create the bindings, but keeping the plugin package names: We get the decoupled bindings, and we keep backward compatibility, but we break the uniqueness of the namespaces.
  • Create the bindings with meta annotations: Its what I tried in the other MR, but didn't manage to find a way to make it work.

@ctasada ctasada marked this pull request as ready for review March 16, 2024 16:39
@timonback
Copy link
Member

Hi @ctasada,
I agree with your approach here. You found an issue in the usage of Springwolf, so lets fix it.

At this point, I am fine to go with the code duplication (as option 1 does not help you and option 4 didn't work with the technology we use).

To unblock you and get this in, I am fine with merging it now.
And we continue the discussion on migrating the original annotations over to the new bindings module.

@ctasada ctasada merged commit 21628c0 into springwolf:master Mar 18, 2024
18 checks passed
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.

2 participants