Conversation
The data binding plugin was no longer registered as a plugin since it became a Spring AutoConfiguration.
This comment has been minimized.
This comment has been minimized.
✅ All tests passed ✅🏷️ Commit: 0ee0a7e Learn more about TestLens at testlens.app. |
| */ | ||
| class DataBindingGrailsPlugin extends Plugin { | ||
|
|
||
| def version = GrailsUtil.getGrailsVersion() |
There was a problem hiding this comment.
Did you have a dependency on this plugin? I had intentionally removed it in 2b46cdb because it didn't configure anything anymore. I'm trying to understand why we would care that this is a plugin?
|
The PR refactors the databinding plugin by removing the abstract class with configuration logic and replacing it with a minimal Plugin subclass. This keeps it as a Grails plugin for framework loading and modularity, while moving constants to DataBindingConfigurationProperties. No direct dependency remains, as tests now inline the values. |
jamesfredley
left a comment
There was a problem hiding this comment.
My only question is why the empty plugin shell needs to exist.
|
I think we should be consistent in how we deal with modules that have plugin "traits" vs other modules. In this case, the module is registering beans in the application context (as it always has). Also, being a plugin will make it available in the plugin manager. |
|
The issue with the plugin is you can't load "before" that plugin since its beans, etc will be loaded prior, so we're only adding a plugin to show in the modules. |
Yes, but I still think its valuable to have all "plugin" modules listed in the plugin manager. |
My only worry is now you have a plugin that people think they can load before, evict, etc and yet they cannot. We have other libraries that do not have plugins in them but add significant functionality (look at grails-web-common). It would be nice as part of any re-architecture of the plugins if we could address this. |
Plugin "traits" as I see them (one or more of):
* This is not a plugin trait in and of itself, but can be part of a plugin |
@matrei The existing architecture supports loading the beans in the order defined by the plugin load order. So yes.
Does that matter? The issue is defining a plugin implies that one can load before/after it. This isn't supported currently.
Isn't this debating the architecture of the plugins (I agree they need reworked). I'm just going for a consistent behavior.
That library defines a
Unfortunately, we moved bean wiring to |
This is kind of muddled waters with modern Spring conventions.
We have multiple other plugins in
It was an open question. I don't have the answer, maybe someone else does.
I wouldn't consider this a plugin "trait" in an of itself.
In my mind:
|
The data binding plugin was no longer registered
as a plugin since it became a Spring AutoConfiguration.