IDEA plugin - whats the plan

Hi, since the last update in this forum was in 2014 and the last release early 2017 (plus I tried with 2018.1.2 and could not see any axon specific helpers): what is the state of this plugin https://plugins.jetbrains.com/plugin/7506-axon-framework-plugin?
Is it supposed to work with latest IDEA release, is it a good idea to use?
How do you make sure that you can easily navigate between event declarations, producers and consumers?

Thanks
Jan

Hi Jan,

The Idea plugin is, as you’ve noticed, part of our repositories, but as it was a side-project of another user, we have not been actively developing or maintaining it.

I haven’t been using the plugin since Axon 3.x myself, as since then the links which are created in the editor gutter by Intellij didn’t work any more.

That thus means the plugin works for Axon version below 3.x.

As this was around spring/summer 2016 and I prefer to always use the latest Intellij version, that means I can guarantee you it works with IntelliJ IDEA 2016.1.2, as that was release May 2016.

So in short: the IDEA plugin works for Axon version below 3.x and definitely on the IDEA version of 2016.1.2.

Hope this helps you Jan!

Cheers,

Steven

Thanks Steven, that was my intepretation as well.

But maybe you’ve got a hint for my second question? What do you do to track which events are handled where?
I think it’s always hard to introduce event-driven programming to colleagues when you have no support for tracking of flows.

Are there any best practices you use besides checking “usage of” event/command classes?

Jan

Hi Jan,

I do not have many concrete examples what the best approach is other then checking the usages, sorry :confused:

What I typically do to find the start point of any command and event, is to search for where it is instantiated.

Intellij gives you a list of were an object is instantiated by searching for usages when your cursor is on the constructor.
From there, I typically track down the usage path further on.

So from a command perspective that’s typically good enough, as those usually aren’t created at many different locations, and there is always just one command handler/usage point for a command.

For events the story is obviously different. What I have typically noticed in Axon Framework using applications, is that there are always obvious candidates for where your events are used due to the Projections you create.
The ‘unintuitive’ locations are however Event Handling Components which accumulate events from different locations/aggregates or those which serve as triggers to certain (third-party) services.

Sorry for not providing a silver bullet here. Nonetheless I hope this helps a little.

Cheers,
Steven

Thanks for the hints, Steven. I guess you are right, if you have a clean architecture, finding the command/event relations shouldn’t be that big issue. But if you want ton convince a team that is not used to the event-driven style, it might get hard anyway …

Fully agree with you there Jan :-/

Think we should revisit the plugin sometime soon to get it to support Axon 3.x as well.

Would be highly beneficial for unexperienced teams members in the message-driven world of it all.

Any how, I should thank as well for igniting this idea!

I’ll keep people posted in this thread, or another channel, once we’ve finalized supporting more Axon versions with the plugin.

Cheers,
Steven