如何将 IEventBroker 注入到 e4 OSGI 服务组件中

问题描述

我正在尝试将 IEventbroker 注入我的代码以发送通知

其他一切正常,但 eventbroker 永远不会被注入。我没有收到任何编译时错误

代码执行时它只是出现 null。

我已经修剪了代码,因为它不允许我提交它。

提前感谢您的帮助!

package com.test.services.internal;

imports ...

@Component
public class EnvironmentServiceImpl implements IEnvironmentService {

    @Inject
    private IEventbroker eventbroker;

    private EntityManagerFactory entityManagerFactory;
    private EntityManager entityManager;

    @Activate
    @SuppressWarnings("unchecked")
    protected void activateComponent() {

        getAll(environments -> {
            if (environments.isEmpty()) {
                List<Environment> initialModel = getMockEnvironments();
                initialModel.forEach(this::save);
            }
        });
    }

    @Deactivate
    protected void deactivateComponent() {

    }

    @Override
    public void getAll(Consumer<List<Environment>> taskConsumer) {

        eventbroker.post(EnvironmentEventConstants.TOPIC_ENVIRONMENT_LOADED,createEventData(EnvironmentEventConstants.TOPIC_ENVIRONMENT_LOADED,updateEnvironment.getId()));
    }

    private Map<String,String> createEventData(String topic,String environmentId) {

    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)