I don't do much remote proxies work these days and my test case was just
-- well a laugh... If somebody else independently says it works and
doesn't break anything else, then I'll be sure to commit it.
I've logged this as CSP-96:
http://code.coldspringframework.org/browse/CSP-96
.Peter
Brian Kotek said the following on 4/15/2008 7:36 PM:
Peter, if you're pretty sure this works correctly, I'd say just commit
it since this issue comes up fairly regularly. What do you think?
On Tue, Apr 15, 2008 at 7:27 PM, Peter J. Farrell
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
Christopher Bradford said the following on 4/15/2008 5:15 PM:
We are trying to work through an issue with ColdSpring
generating duplicate method names on RemoteProxyBeans when the
target inherits methods. Is the code in CVS in HEAD/coldspring
the latest and greatest (I also see a coldspring-ber module)?
Christopher,
See if this patch fixes the problem for you. Apply on the
/aop/framework/RemoteFactoryBean.cfc on rev 1.7. This is the last
revision in the CS BER.
.Peter
Patch below dotted line:
---------------------------------------
### Eclipse Workspace Patch 1.0
#P org-coldspring
Index: aop/framework/RemoteFactoryBean.cfc
===================================================================
RCS file: /coldspring/coldspring/aop/framework/RemoteFactoryBean.cfc,v
retrieving revision 1.7
diff -u -r1.7 RemoteFactoryBean.cfc
--- aop/framework/RemoteFactoryBean.cfc 17 Mar 2008 23:53:33
-0000 1.7
+++ aop/framework/RemoteFactoryBean.cfc 15 Apr 2008 23:26:19 -0000
@@ -149,10 +149,12 @@
<cfset var functionIx = 0 />
<cfset var functionName = '' />
<cfset var functionString = '' />
+ <cfset var usedFunctions = StructNew() />
<cfset var advisorIx = 0 />
<cfset var advice = 0 />
<cfset var bfUtils =
createObject("component","coldspring.beans.util.BeanFactoryUtils").init()/>
<cfset var bfScope = "application"/>
+ <!--- ok, very first thing, make sure this factory
is going to be accessable to the generated proxies --->
<cfif len(variables.beanFactoryScope)>
<cfset bfScope = variables.beanFactoryScope/>
@@ -190,7 +192,9 @@
<!--- now we'll loop through the target's methods
and write remote methods for any matched ones --->
<cfloop from="1" to="#arraylen(md.functions)#"
index="functionIx">
<cfset functionName =
md.functions[functionIx].name />
- <cfif not ListFindNoCase('init', functionName)>
+ <cfif not ListFindNoCase('init',
functionName) and not StructKeyExists(usedFunctions, functionName)>
+ + <cfset
usedFunctions[functionName] = "" />
<cfif
methodPointcutAdvisor.matches(functionName)>
<!--- this type
of proxy will be limited to remote methods, so