Peter, it did work when I created an entry for each gateway (TimedCacheForLocationGateway). This might be the best approach temporarily as it will be easy to change back (just the xml) if a fix is implemented.
Thanks,
Andrew
From: "Peter J. Farrell" <[EMAIL PROTECTED]>
Sent: Saturday, October 07, 2006 5:14 PM
To: [email protected]
Subject: [coldspring-dev] non-singleton doesn't seem to be working as i expected
[EMAIL PROTECTED] said the following on 10/7/2006 12:33 AM:
Hey guys, i'm having a little trouble with a singleton I'm trying to use. I may not understand how this is intended to work, so I wanted to see if anyone had any input.haven't tried this or many I'm not understanding how the bug works exactly...
Here is what I'm trying to do:
ColdspringConfig.xml
<beans>
<bean id="ArticleService" class="model.services.ArticleService">
<property name="ArticleGateway"><ref bean="ArticleGateway" /></property>
<property name="LocationGateway"><ref bean="LocationGateway" /></property>
</beans>
<bean id="LocationService" class="model.services.LocationService">
<property name="LocationGateway"><ref bean="LocationGateway" /></property>
</beans>
<bean id="LocationGateway" class="model.gateways.LocationGateway">
<property name="TimedCache"><ref bean="TimedCache" /></property>
</beans>
<bean id="ArticleGateway" class="model.gateways.ArticleGateway">
<property name="TimedCache"><ref bean="TimedCache" /></property>
</beans>
<!-- this is based on the mg:u timed cache -->
<bean id="TimedCache" class="model.utils.TimedCache" singleton="false" />
</beans>
So this is what I'm trying to accomplish. I would like to inject an instance of the TimedCache cfc into each of these gateways. When I do this, it seems as though there is only one instance of the TimedCache, which they both seem to be sharing. The TimedCache is stored in the variables scope of each gateway. Originally I intended for each gateway to get its own instance, but I can't seem to get this to work. This only seems to happen if I include both gateways in a single service. Again, each is stored in the variables scope. If I remove the references to say the locationgateway from the article service, each TimedCache seems to work as intended. Am I misunderstand how this should work? Or do I have a programming error?
Thanks for your input!
Andrew
<beans>
<bean id="ArticleService" class="model.services.ArticleService">
<property name="ArticleGateway"><ref bean="ArticleGateway" /></property>
<property name="LocationGateway"><ref bean="LocationGateway" /></property>
</beans>
<bean id="LocationService" class="model.services.LocationService">
<property name="LocationGateway"><ref bean="LocationGateway" /></property>
</beans>
<bean id="LocationGateway" class="model.gateways.LocationGateway">
<property name="TimedCache"><bean id="TimedCacheForLocationGateway" class="model.utils.TimedCache" /></property>
</beans>
<bean id="ArticleGateway" class="model.gateways.ArticleGateway">
<property name="TimedCache"><bean id="TimedCacheForArticleGateway" class="model.utils.TimedCache" /></property>
</beans>
</beans>
-- Peter J. Farrell - Maestro Publishing http://blog.maestropublishing.com -- Co-Host of the ColdFusion Weekly Podcast http://www.coldfusionweekly.com
