To allow ColdSpring to autowire correctly when a function matches by
name but has an untyped argument, the following two patches are
required (note that modelglue/AutoWire.cfc is obsolete now that
Model-Glue supports this sort of autowiring as a core function - I
already provided the necessary patch for that on the Model-Glue list):
Index: AutoWire.cfc
===================================================================
RCS file: /coldspring/coldspring/modelglue/AutoWire.cfc,v
retrieving revision 1.3
diff -u -r1.3 AutoWire.cfc
--- AutoWire.cfc 16 Nov 2005 16:16:11 -0000 1.3
+++ AutoWire.cfc 5 Mar 2006 22:30:33 -0000
@@ -38,7 +38,6 @@
<cfset var funcIdx = 0 />
<cfset var method = 0 />
<cfset var setterName = "" />
- <cfset var setterType = "" />
<cfset var beanFactory =
variables.getBeanFactory().getBeanFactory() />
<cfset var beanName = "" />
@@ -55,12 +54,11 @@
left(method.name,3) is "set" and
arrayLen(method.parameters) eq
1>
<cfset setterName =
right(method.name,len(method.name)-3) />
- <cfset setterType =
method.parameters[1].type />
<cfif
beanFactory.containsBean(setterName)>
<cfset beanName = setterName />
<cfelse>
- <cfset beanName =
beanFactory.findBeanNameByType(setterType) />
+ <cfset beanName =
beanFactory.findBeanNameByType(method.parameters[1].type) />
</cfif>
<!--- if we found a bean, call the
target object's setter --->
Index: coldspringPlugin.cfc
===================================================================
RCS file: /coldspring/coldspring/machii/coldspringPlugin.cfc,v
retrieving revision 1.5
diff -u -r1.5 coldspringPlugin.cfc
--- coldspringPlugin.cfc 28 Jan 2006 21:33:42 -0000 1.5
+++ coldspringPlugin.cfc 5 Mar 2006 22:32:33 -0000
@@ -136,7 +136,6 @@
<cfset var functionIndex = 0 />
<cfset var setterName = '' />
- <cfset var setterType = '' />
<cfset var beanName = '' />
@@ -156,12 +155,11 @@
and
arraylen(md.functions[functionIndex].parameters) eq 1>
<!--- look for a bean in the factory of
the params's type --->
<cfset setterName =
mid(md.functions[functionIndex].name,4,len(md.functions[functionIndex].name)-3)
/>
- <cfset setterType =
md.functions[functionIndex].parameters[1].type />
<cfif
beanFactory.containsBean(setterName)>
<cfset beanName = setterName />
<cfelse>
- <cfset beanName =
beanFactory.findBeanNameByType(setterType) />
+ <cfset beanName =
beanFactory.findBeanNameByType(md.functions[functionIndex].parameters[1].type)
/>
</cfif>
<!--- if we found a bean, call the
target object's setter --->
<cfif len(beanName)>
--
Sean A Corfield -- http://corfield.org/
Got frameworks?
"If you're not annoying somebody, you're not really alive."
-- Margaret Atwood