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

Reply via email to