[jboss-jira] [JBoss JIRA] (DROOLS-3328) PhreakAsyncSendNode triggers service discovery even when it's not used

Edoardo Vacchi (Jira) issues at jboss.org
Fri Nov 16 11:03:00 EST 2018


Edoardo Vacchi created DROOLS-3328:
--------------------------------------

             Summary: PhreakAsyncSendNode triggers service discovery even when it's not used
                 Key: DROOLS-3328
                 URL: https://issues.jboss.org/browse/DROOLS-3328
             Project: Drools
          Issue Type: Enhancement
            Reporter: Edoardo Vacchi
            Assignee: Edoardo Vacchi


I am investigating ways to startup a stripped down version of the rule engine.

in 7.8.0 the following snippet did _not_ trigger service discovery : 

{code}
        CanonicalKiePackages packages = new MyKiePackagesBuilder(model, ProjectClassLoader.createProjectClassLoader()).build();
        InternalKnowledgeBase kBase = new KnowledgeBaseImpl("defaultname", null);
        kBase.addPackages(packages.getKiePackages());
kieSession = kBase.newKieSession();
{code}

this is because no call to {{ExecutorProviderFactory.getExecutorProvider()}} occurs anywhere. However in a recent release, {{PhreakAsyncSendNode}} invokes this method, while initializing a static field

{code}
    private static final Executor executor = ExecutorProviderFactory.getExecutorProvider().getExecutor();
{code}

This triggers a *full service discovery* which loads a bunch of other unrelated services.

Solution: avoid service discovery in that class, or delegate to a method (the service utility caches that field anyway, so it's not necessary to set a static field there)






--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list