Blueprint: как проверить, удовлетворена ли необязательная зависимость?

В blueprint.xmlя объявляю необязательную зависимость следующим образом:

<reference id="RepositoryListener"
    interface="ru.focusmedia.odp.server.datastore.api.RepositoryListener"
    availability="optional" />

<bean id="Repository"
    class="ru.focusmedia.odp.server.datastore.jpa.repository.RepositoryImpl">
    <jpa:context property="entityManager" unitname="ODP_Server" />
    <tx:transaction method="*" value="Required" />
    <property name="repositoryListener" ref="RepositoryListener" />
</bean>

а в RepositoryImplу меня есть

public void setRepositoryListener(RepositoryListener repositoryListener) {
    logger.info("Repository listener set");
    this.repositoryListener = repositoryListener;
}

Этот метод вызывается Blueprint даже при отсутствии Служба RepositoryListenerдоступна, как и ожидалось. Проблема в том, как потом проверить, есть ли служба?

    if (repositoryListener != null) {
        repositoryListener.notifyDelete(node);
    } else {
        logger.warn("No repository listener set!");
    }

не работает, так как репозиторийListenerне null, а прокси-сервер Blueprint.

9
задан Alexey Romanov 29 May 2012 в 06:25
поделиться