You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need to seriously explore whether Spring is usable as a replacement for the current application container / dependency injection / plugin mechanisms. As part of that, we'd like to know whether there is a dependency-free way (e.g. XML?) to declare implementations of interfaces, without depending on the artifact containing those interfaces. This would be useful for imglib2-algorithm to declare ops without depending on a theoretical lightweight scijava-ops-api module.
We need to seriously explore whether Spring is usable as a replacement for the current application container / dependency injection / plugin mechanisms.
How are we defining "usable"? Are there any particular use-cases of the SciJava Context that go beyond IoC/DI that need to verify have an analog in Spring? Otherwise the only showstoppers to adoption that come to my mind:
Application size (a bare-bones spring boot app has 29MB of deps so I think no problem there)
License (Apache 2.0, no problem)
Application startup time impact (this does need to be tested to know scan time of a Fiji classpath)
Otherwise I think this issue is mostly about:
Determining a migration path
Estimating the time to apply that migration path to all our projects (if necessary - it may be possible to just tell Spring how to suck in the SciJava @Plugin interface)
Decide if we have enough bandwidth for the migration
Activity
hinerm commentedon Jul 19, 2021
You can definitely declare interface implementations via XML. See creating beans, for example.
hinerm commentedon Jul 19, 2021
How are we defining "usable"? Are there any particular use-cases of the SciJava Context that go beyond IoC/DI that need to verify have an analog in Spring? Otherwise the only showstoppers to adoption that come to my mind:
Otherwise I think this issue is mostly about:
@Plugininterface)hinerm commentedon Jul 19, 2021
For more info, see IoC mechanisms in spring.
Basically you get:
@ConfigurationI believe these can all safely co-exist with each other.
Merge pull request #55 from scijava/scijava/scijava-ops-api/op-utils-…