I'm not sure if this is a bug or not, it's certainly strange behaviour.
We had a singleton bean that was operating normally, but when we make
it implement ApplicationListener - we get _two_ instances of it
created. (Tested by simply putting a debug point in the constructor -
two separate beans are created)
Here's the config snippet:
<bean id="macroManager"
class="com.atlassian.renderer.macro.DefaultMacroManager">
<constructor-arg>
<ref local="macroStateStore"/>
</constructor-arg>
<constructor-arg>
<list>
<ref local="beanMacroLoader"/>
<ref local="classpathMacroLoader"/>
</list>
</constructor-arg>
</bean>
Is this a known bug, a feature or am I not meant to use
ApplicationListener this way? (if it's a bug it's quite serious I'd
say)
I want to do it this way because another part of Confluence fires an
event to say that all setup has finished - and I want this bean to
listen for that event and further initialize itself.
I just guessed that in Spring I would just need to implement the
ApplicationListener interface and listen for events - if I need to do
anything else, let me know :)
Cheers,
Mike
|