我编写了一个自定义的ActiveMq插件,该插件可以按预期工作,但是我还需要动态配置,因此我配置了RuntimeConfigurationPlugin。它可以很好地重新加载队列/主题和用户凭证,但是,它无法将配置更改加载到我的bean插件中。在日志中我得到
2018-10-02 18:16:17,811 |信息|插件变更| org.apache.activemq.plugin.AbstractRuntimeConfigurationBroker | ActiveMQ Broker [localhost]调度程序 2018-10-02 18:16:17,813 |信息|没有[bean:null]的处理器| org.apache.activemq.plugin.AbstractRuntimeConfigurationBroker | ActiveMQ Broker [localhost]调度程序 2018-10-02 18:16:17,814 |信息|不支持删除以下内容的运行时:[bean:null] | org.apache.activemq.plugin.AbstractRuntimeConfigurationBroker | ActiveMQ Broker [localhost]调度程序 2018-10-02 18:16:17,815 |信息|没有对[bean:null]的添加的运行时支持。 org.apache.activemq.plugin.AbstractRuntimeConfigurationBroker | ActiveMQ Broker [localhost]调度程序
配置:
<bean xmlns="http://www.springframework.org/schema/beans" id="userQtr" class="activemq.plugins.brokerrestrict.brPlugin">
<property name="config">
<map>
<entry key="destLimit" value="5" />
</map>
</property>
</bean>
我研究了RuntimeConfigurationBroker的源代码,当基于DtoBroker.Plugins.class中的列表调用ProcessorFactory.createProcessor时,processChanges函数似乎返回DefaultConfigurationProcessor(而不是PluginsProcessor),显然我的插件是“列出。
我的想法是扩展RuntimeConfigurationBroker或以某种方式将我的插件添加到DtoBroker.Plugins列表中。我是Java的新手(现在是1周),所以我的想法可能是错误的,但是我已经尝试了2天,现在我正在考虑通过在插件的插件中加载制表符分隔的配置文件来进行不可思议的操作构造函数。
请有人帮忙!