You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by Łukasz Dywicki <lu...@code-house.org> on 2022/12/07 22:03:59 UTC
Re: Ignite support for IoC beyond spring framework
Hello,
I would like to check again status on proposed changes as the pull
request went over first (and I think second) cycle of reviews.
Looking forward for your feedback and possibility to include these
changes in Ignite 2.15 release.
Kind regards,
Łukasz
On 17.10.2022 18:56, Łukasz Dywicki wrote:
> Going forward over evaluation - I think for naming consistency reasons
> we shall stay with @InjectResource cause other annotations which bring
> outside values are @SpringResource, @LoggerResource and
> @IgniteInstanceResource.
>
> Making it @IgniteInject is fine for me too, but it might not fit into
> existing package contents. WDYT?
>
> Best,
> Łukasz
>
> On 17.10.2022 16:48, Łukasz Dywicki wrote:
>> I created https://issues.apache.org/jira/browse/IGNITE-17915.
>> Going to try updating code and see how much impact it will have.
>>
>> Best,
>> Łukasz
>>
>> On 14.10.2022 20:21, Łukasz Dywicki wrote:
>>> Hello Semyon,
>>> I wasn't sure if deprecation of @SpringResource would be acceptable,
>>> if so It gives us more flexibility in bringing IoC adapter layer.
>>> Linked code is just fitted into existing boundaries, but I can update
>>> it to deal with @IgniteInject.
>>>
>>> I will register feature request/improvement in JIRA and start working
>>> on it next week.
>>>
>>> Kind regards,
>>> Łukasz
>>>
>>> On 14.10.2022 16:26, Данилов Семён wrote:
>>>> Hi!
>>>>
>>>> This sounds like a good enhancement. Feel free to create a pull
>>>> request!
>>>> As I see it, for now we should continue using SpringResource
>>>> annotation (even if it injects non-spring resources), but at the
>>>> same time create a new annotation (maybe something like
>>>> @IgniteInject, I am bad with naming) and deprecate SpringResource
>>>> annotation. Both annotations should work exactly the same.
>>>> Then we will have a spring version of injector interface and some
>>>> generic version that any user can extend and use without spring.
>>>> WDYT?
>>>>
>>>> P.S. You can create a JIRA ticket and mention me there, I'll be
>>>> happy to review and merge your PR
>>>>
>>>> Kind regards, Semyon.
>>>>
>>>>
>>>>> Hello,
>>>>> I would like to bring a proposal for Ignite to include support for
>>>>> @SpringResource without spring at all.
>>>>> We currently use ignite without Spring Framework and, to make things
>>>>> harder, under OSGi. As a part of exercise couple weeks ago I
>>>>> implemented
>>>>> support for IoC [1] in environment we run. I did it by simulating
>>>>> spring's ApplicationContext instance expected by IgnitionEx [2] and
>>>>> GridSpringResourceContext.
>>>>>
>>>>> Turns out that Ignite IoC is fine with below API:
>>>>> public interface BeanRegistry {
>>>>> <T> T lookup(Class<T> type);
>>>>> Object lookup(String name);
>>>>> }
>>>>>
>>>>> Given that we look forward to keep use of Ignite I was asked to
>>>>> contribute my work back to your project.
>>>>> Would you be up to discuss, and if agreed, guide me on a shape of ioc
>>>>> updates which would best fit Ignite itself? If you do not expect
>>>>> changes
>>>>> in Spring integration then, maybe we could get a working solution
>>>>> within
>>>>> ignite-osgi itself?
>>>>>
>>>>> Best,
>>>>> Łukasz
>>>>>
>>>>> [1]
>>>>> https://github.com/OpenNMS/horizon-stream/tree/develop/minion/minion-taskset/taskset-worker/src/main/java/org/opennms/horizon/minion/taskset/worker/ignite/resource
>>>>>
>>>>> [2]
>>>>> https://github.com/OpenNMS/horizon-stream/blob/develop/minion/minion-taskset/taskset-worker/src/main/java/org/opennms/horizon/minion/taskset/worker/ignite/IgnitionFactory.java#L15