Я только что попытался добавить регистрацию моего пользовательского ORMObjectListener с экземплярами и реализациями, но это не сработало. Я вижу, что все системные ORMObjectListener-ы зарегистрированы в методе картриджа onReadyHook(), но мне нравится пытаться зарегистрировать их с компонентным фреймворком.
Я добавил следующее в файл functions.component:
<implementation name="ProductPODeleteListener" class="hr.a1.orm.product.internal.ProductPODeleteListener" start="start" stop="stop" factory="JavaBeanFactory"/>
И после instance.component:
<instance name="ProductPODeleteListener" with="ProductPODeleteListener" scope="global"/>
Это метод запуска ProductPODeleteListener:
public synchronized void start() {
productFactory.addObjectListener(this);
}
Но мой пользовательский слушатель не зарегистрирован (метод запуска никогда не вызывается). Я вижу в файле журнала, что реализация загружается при запуске:
"Adding implementation ProductPODeleteListener to configuration bc_a1_orm."
Я сделал что-то неправильно?
Может быть, не хватает вызова componentMgr.getGlobalComponentInstance("ProductPODeleteListener")? Как указано здесь: https://support.intershop.com/kb/index.php/Display/25G731#Concept-ComponentFramework-InGeneral -> «ComponentFW создаст экземпляры всех определенных экземпляров при первом доступе». Я не думаю, что возможно зарегистрировать слушателей с компонентной структурой, так как их необходимо зарегистрировать при запуске сервера. Это правильно?
Спасибо за помощь!