[email protected] wrote on 12/01/2005 05:20:32 PM:

> > Implemented (except for "constructor" and autodetect values).
> >
> > Does this mean that I can not turn it off for constructors and autodetect?
>
> No, it means we didn't implement those two "types" of autowiring. It's
> pretty much "byName" only (keep in mind that autowiring for
> constructor-args *is* supported, but only byName).
>
>
> >
> > for example
> >
> > <bean id="sqlDsn" class="com.amkor.global.dao.dsn" singleton="true"
> > lazy-init="false" autowire="no">
> >         <constructor-arg
> > name="dsn"><value>misc_billing_sql</value></constructor-arg>
> > </bean>
> >
> > But coldspring seem to still be attempting to autowire this thing.
> >
>
> I'm confused... do you mean that ColdSpring is calling other setters
> on com.amkor.global.dao.dsn that match the signatures of other
> <bean/>s in the factory? Or do you mean that you're trying to prevent
> it from passing in the dsn to the constructor?
>


I want it to pass the dsn I have in the <construtor-arg> to the constructor (and it does), but it is still inspecting the functions and attempting to determine if it can autowire anythingelse.  I dicsovered this as I had a quick dirty implemnation of the dsn where the type was not set on some methods
<cfcomponent output="false" >
       
        <cfscript>
            variables.dsn = "";
            variables.username = "";
            variables.password = "";
        </cfscript>
       
        <cffunction name="Init" access="public" output="false">
                <cfargument name="dsn" type="string" required="false" default="#variables.dsn#" hint="I am the cf dsn to use" />
                <cfargument name="username" type="string" required="false" default="#variables.username#" hint="I am the username to override the cf dsn" />
                <cfargument name="password" type="string" required="false" default="#variables.password#" hint="I am the password to override the cf dsn" />
            <cfset variables.dsn = arguments.dsn />
            <cfset variables.username = arguments.username />
            <cfset variables.password = arguments.password />
            <cfreturn this />
  </cffunction>
 
  <cffunction name="SetDSN" access="public" return="void" output="false" hint="Set property: DSN">
    <cfargument name="value" />
    <cfset variables.dsn = arguments.value />
  </cffunction>
 
  <cffunction name="GetDSN" access="public" return="string" output="false" hint="Get property: DSN">
    <cfreturn variables.dsn  />
  </cffunction>
 
  <cffunction name="SetUsername" access="public" return="void" output="false" hint="Set property: Username">
    <cfargument name="value"  />
    <cfset variables.Username=arguments.value />
  </cffunction>
 
  <cffunction name="GetUsername" access="public" return="string" output="false" hint="Get property: Username">
    <cfreturn variables.Username />
  </cffunction>
 
  <cffunction name="SetPassword" access="public" return="void" output="false" hint="Set property: Password">
    <cfargument name="value" />
    <cfset variables.Password=arguments.value />
  </cffunction>
 
  <cffunction name="GetPassword" access="public" return="string" output="false" hint="Get property: Password">
    <cfreturn variables.Password />
  </cffunction>
 
</cfcomponent>

Notice on the setPassword method the value arg does not have a type.  This caused coldSpring to error on line 213 of BeanDefinition.cfc.  No biggie, I got that figured out and followed best pratices, but I would think that if I told it to not autowire then it should not inspect my cfc at all?




> Let me know, but regardless, I wouldn't be surprised if there was some
> autowiring funkiness. It's been thru a few iterations, but it really
> needs to be cleaned up once more.
>
> -Dave
>
>



Best Regards,

Adam Crump
Sr. Analyst - Programmer
Web Services - ICS
Amkor Technology

Reply via email to