[ 
https://issues.apache.org/jira/browse/IGNITE-28667?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ilya Shishkov updated IGNITE-28667:
-----------------------------------
    Description: 
Currently, {{IgniteKernal#initMessageFactory}} misses to call {{#initProvider}} 
for message factory providers, obtained from extension registry. It leads to 
impossiblity to register {{MessageFactoryProvider}} in {{ExtensionRegistry}} 
from a plugin.




{code}
    private void initMessageFactory() throws IgniteCheckedException {
        >>>>>>>>> MessageFactoryProvider[] msgs = 
ctx.plugins().extensions(MessageFactoryProvider.class); <<<<<<<<<

        List<MessageFactoryProvider> compMsgs = new ArrayList<>();

        ClassLoader resolvedClsLdr = U.resolveClassLoader(ctx.config());

        compMsgs.add(new 
CoreMessagesProvider(ctx.marshallerContext().jdkMarshaller(), ctx.marshaller(), 
resolvedClsLdr));

        for (IgniteComponentType compType : IgniteComponentType.values()) {
            MessageFactoryProvider f = compType.messageFactory();

            if (f != null) {
                >>>>>>>>> initProvider(f, resolvedClsLdr); <<<<<<<<<

                compMsgs.add(f);
            }
        }

        DiscoverySpi discoSpi = ctx.config().getDiscoverySpi();

        if (discoSpi instanceof IgniteDiscoverySpi) {
            MessageFactoryProvider discoMsgs = 
((IgniteDiscoverySpi)discoSpi).messageFactoryProvider();

            if (discoMsgs != null) {
               >>>>>>>>> initProvider(discoMsgs, resolvedClsLdr); <<<<<<<<<

                compMsgs.add(discoMsgs);
            }
        }

        if (!compMsgs.isEmpty())
            msgs = F.concat(msgs, compMsgs.toArray(new 
MessageFactoryProvider[compMsgs.size()]));

        msgFactory = new IgniteMessageFactoryImpl(msgs);
    }
{code}

  was:
Currently, {{IgniteKernal#initMessageFactory}} misses to call {{#initProvider}} 
for message factory providers, obtained from extension registry. It leads to 
impossiblity to register {{MessageFactoryProvider}} in {{ExtensionRegistry}} 
from a plugin.


{code}
    private void initMessageFactory() throws IgniteCheckedException {
        >>>>>>>>> MessageFactoryProvider[] msgs = 
ctx.plugins().extensions(MessageFactoryProvider.class); <<<<<<<<<

        List<MessageFactoryProvider> compMsgs = new ArrayList<>();

        ClassLoader resolvedClsLdr = U.resolveClassLoader(ctx.config());

        compMsgs.add(new 
CoreMessagesProvider(ctx.marshallerContext().jdkMarshaller(), ctx.marshaller(), 
resolvedClsLdr));

        for (IgniteComponentType compType : IgniteComponentType.values()) {
            MessageFactoryProvider f = compType.messageFactory();

            if (f != null) {
                >>>>>>>>> initProvider(f, resolvedClsLdr); <<<<<<<<<

                compMsgs.add(f);
            }
        }

        DiscoverySpi discoSpi = ctx.config().getDiscoverySpi();

        if (discoSpi instanceof IgniteDiscoverySpi) {
            MessageFactoryProvider discoMsgs = 
((IgniteDiscoverySpi)discoSpi).messageFactoryProvider();

            if (discoMsgs != null) {
               >>>>>>>>> initProvider(discoMsgs, resolvedClsLdr); <<<<<<<<<

                compMsgs.add(discoMsgs);
            }
        }

        if (!compMsgs.isEmpty())
            msgs = F.concat(msgs, compMsgs.toArray(new 
MessageFactoryProvider[compMsgs.size()]));

        msgFactory = new IgniteMessageFactoryImpl(msgs);
    }
{code}


> Initialize message factory provider for extensions
> --------------------------------------------------
>
>                 Key: IGNITE-28667
>                 URL: https://issues.apache.org/jira/browse/IGNITE-28667
>             Project: Ignite
>          Issue Type: Task
>            Reporter: Ilya Shishkov
>            Assignee: Ilya Shishkov
>            Priority: Major
>              Labels: IEP-132, ise
>             Fix For: 2.19
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Currently, {{IgniteKernal#initMessageFactory}} misses to call 
> {{#initProvider}} for message factory providers, obtained from extension 
> registry. It leads to impossiblity to register {{MessageFactoryProvider}} in 
> {{ExtensionRegistry}} from a plugin.
> {code}
>     private void initMessageFactory() throws IgniteCheckedException {
>         >>>>>>>>> MessageFactoryProvider[] msgs = 
> ctx.plugins().extensions(MessageFactoryProvider.class); <<<<<<<<<
>         List<MessageFactoryProvider> compMsgs = new ArrayList<>();
>         ClassLoader resolvedClsLdr = U.resolveClassLoader(ctx.config());
>         compMsgs.add(new 
> CoreMessagesProvider(ctx.marshallerContext().jdkMarshaller(), 
> ctx.marshaller(), resolvedClsLdr));
>         for (IgniteComponentType compType : IgniteComponentType.values()) {
>             MessageFactoryProvider f = compType.messageFactory();
>             if (f != null) {
>                 >>>>>>>>> initProvider(f, resolvedClsLdr); <<<<<<<<<
>                 compMsgs.add(f);
>             }
>         }
>         DiscoverySpi discoSpi = ctx.config().getDiscoverySpi();
>         if (discoSpi instanceof IgniteDiscoverySpi) {
>             MessageFactoryProvider discoMsgs = 
> ((IgniteDiscoverySpi)discoSpi).messageFactoryProvider();
>             if (discoMsgs != null) {
>                >>>>>>>>> initProvider(discoMsgs, resolvedClsLdr); <<<<<<<<<
>                 compMsgs.add(discoMsgs);
>             }
>         }
>         if (!compMsgs.isEmpty())
>             msgs = F.concat(msgs, compMsgs.toArray(new 
> MessageFactoryProvider[compMsgs.size()]));
>         msgFactory = new IgniteMessageFactoryImpl(msgs);
>     }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to