Coder Social home page Coder Social logo

Comments (5)

magnusdurr avatar magnusdurr commented on June 15, 2024 1

Hi @smcvb,

It would be nice if excluding the axon-server module would do the trick, but if it is not an easy fix we will adapt and add the axon.axonserver.enabled property to our services. I get it that it is hard to keep track of all side-effects when making changes, especially in a complex spring autowiring scenario.

Thanks

from axonframework.

smcvb avatar smcvb commented on June 15, 2024

Hi @magnusdurr, thanks for filing your concern with us.

Although the property is not new at all (we introduced it in Axon Framework 4.3, as you can see in this pull request, released in February 2020), I do agree we should've marked this shift within the release notes.
I assume your application excluded the axon-server-connector module, right?

The predicament that excluding the dependency wouldn't work did cross my mind when working on this pull request, which ensures JPA and JDBC are not wired whenever Axon Server is used.
Especially the automagical construction of the Event Store-specific JPA entities caused issues in user's pipelines.

I, however, wrongfully assumed (1) that people using Spring Boot would be aware of the property and (2) I forgot to mark this switch in the release of 4.8.3.
So, my sincere apologies for the issues this caused in your builds, @magnusdurr.
This wasn't intentional at all.

This brings us to a tough position, though.
Although excluding the dependency was the suggested approach to disable Axon Server pre AF4.3, this was never documented anywhere other than on our forum (as far as I am aware).
Furthermore, Spring Boot's auto wiring annotations are (again, as far as I know) incapable of validating in one fell swoop whether a dependency is present, a property is present, and if the property is there, whether it is set.

We have worked on making custom @Conditional annotations in the past, so perhaps there's a mix to be built.
But, I do believe the workaround, which is setting a property (FYI, documented here), is pretty straightforward.

I hope my decision-making with PR #2871 makes sense, @magnusdurr.
Still, you definitely have a point that we should've made this clear.
As such, I have adjusted the 4.8.3 release notes to explain this potential breaking change, as you can see here.

Lastly, if you feel strongly Axon Framework should support a mix of module exclusion and Spring Boot property usage, do let us know.

from axonframework.

smcvb avatar smcvb commented on June 15, 2024

Thanks for the understanding, @magnusdurr.
And, as started off, we are very happy with this kind of communication.
It helps us improve the things we lost sight off, which should improve the experience for everybody!

from axonframework.

smcvb avatar smcvb commented on June 15, 2024

@magnusdurr, @abuijze did some additional digging while working on the AF's auto-configuration and found some ordering issues.
It's this issue that led me to believe the property was the only way.

Pull request #2909 actually reverts the behavioral change you noticed by adjusting that ordering again.
So...I am going to extend my apologies again! Apparently my assumptions where wrong and we can keep both the property-based disabling of Axon Server and through exclusion of the axon-server-connector module.

The fix is slated for 4.9.1, by the way. Again, sorry for any inconvenience caused to you and the team (and to others who may encounter this issue and read it).

from axonframework.

smcvb avatar smcvb commented on June 15, 2024

I've marked this issue as resolved by #2909 and adjusted the milestone to point to 4.9.1.

from axonframework.

Related Issues (20)

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.