AFAIK, you do not need the StructKeyExists because ColdSpring will take care
of creating only one reference.

HTH


On 12/31/06, Brian Kotek <[EMAIL PROTECTED]> wrote:

No. By wrapping it in a StructKeyExists check, you only create a reference
once. After that the reference in the variables scope is returned.

On 12/31/06, Bryan S <[EMAIL PROTECTED]> wrote:
>
>  But if you do that you are reassigning the value of variables.utilityeach 
time you call the function. Is there a way to just set
> variables.utility once and then reference it inside the function I am
> calling? Normally you'd do that in the init but that doesn't seem to be an
> option in the extended gateway for some reason.
>
> Bryan
>
>
>
>  ------------------------------
> *From:* [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Brian Kotek
> *Sent:* Sunday, December 31, 2006 1:04 AM
> *To:* [email protected]
> *Subject:* Re: [Reactor for CF] Accessing another cfc inside an extended
> gateway
>
>
>  Nice, Qasim. I didn't even know Reactor had such a method. I tested it
> and it works just fine. In the Gateway you can do something like:
>
>
>     <cffunction name="getUtility" returntype="any" access="private"
> output="false">
>         <cfif not StructKeyExists(variables, 'utility')>
>             <cfset variables.utility = _getBean('utility') />
>         </cfif>
>         <cfreturn variables.utility />
>     </cffunction>
>
>
>
> On 12/29/06, Qasim Rasheed <[EMAIL PROTECTED]> wrote:
> >
> > Bryan,
> >
> > AFAIK, every Reactor object has a method called _getBean() which gives
> > you an access to the ColdSpring bean objects. That might solve your issue.
> >
> > Thanks
> >
> > Qasim
> >
> > On 12/29/06, Brian Kotek <[EMAIL PROTECTED] > wrote:
> > >
> > > I don't believe that the generated Reactor components have an init()
> > > method. So writing your own won't matter because nothing will 
automatically
> > > call it.
> > >
> > > I'm not sure why ColdSpring doesn't attempt to use setter injection
> > > to autowire the gateway if you have a setter method that matches up with
> > > another bean. I speculate it has something to do with the fact that this 
is
> > > done with a factory method call and not a direct instantiation by
> > > ColdSpring.
> > >
> > > I think what you'll need to do is write a custom setter for your
> > > ModelUtilities in your custom gateway, then use ColdSpring in the typical
> > > way to get the Gateway from the Reactor factory and inject it into your
> > > Manager component (or Service, ORMAdapter, etc.). You'd also use 
ColdSpring
> > > to create an instance of your ModelUtilities and inject that into the same
> > > component. Finally, you'd have to manually have some code in your Manager
> > > (or whichever) component to call the setter on your custom gateway and 
pass
> > > the ModelUtilities into it. Something like this maybe in your Manager:
> > >
> > >     <cffunction name="setModelUtilities" returntype="void"
> > > access="public" output="false">
> > >         <cfargument name="modelUtilities" type="any" required="true"
> > > />
> > >         <cfset getMyTableGateway().setUtility(
> > > arguments.modelUtilities) />
> > >     </cffunction>
> > >
> > > The only thing that worries me there is that this seems to depend on
> > > ColdSpring injecting the gateway before it injects the utility. It worked
> > > when I tested it locally but I'd double check to make sure. Anyway, hope
> > > that helps.
> > >
> > >
> > > On 12/29/06, Bryan S < [EMAIL PROTECTED]> wrote:
> > > >
> > > > O.K. I have more information on this now that I'm hoping this will
> > > > turn a light bulb on for someone.
> > > >
> > > > I'm trying to call
> > > > variables.instance.ModelUtilities.myFunctionName() from within my
> > > > extended gateway
> > > > extends="reactor.project.AppManager.Gateway.MyTableGateway"
> > > >
> > > >
> > > > If I put the code below at the top of my extended Gateway I am
> > > > able to access the function in my object, however, it won't work
> > > > automatically out of ColdSpring the way the rest of my objects do. I 
tried
> > > > putting this same code in an init in my extended gateway but the init 
never
> > > > gets called. I am wondering why the init doesn't get called and if it's
> > > > supposed to be that way how do I accomplish this correctly.
> > > >
> > > > <cfset variables.instance.ColdSpringBeanFactory =
> > > > 
createObject("component","coldspring.beans.DefaultXmlBeanFactory").init()
> > > > />
> > > >
> > > > <cfset
> > > > 
variables.instance.ColdSpringBeanFactory.loadBeansFromXmlFile("D:\Inetpub\wwwroot\AppManager\config\ColdSpring.xml",true)
 />
> > > >
> > > > <cfset variables.instance.ModelUtilities =
> > > > variables.instance.ColdSpringBeanFactory.getBean("ModelUtilities")
> > > > />
> > > >
> > > >
> > > > On 12/28/06, Bryan S <[EMAIL PROTECTED] > wrote:
> > > > >
> > > > > If I call my function getModelUtilities().setQuerySortCriteria()
> > > > > from my model glue controller there is no problem.
> > > > >
> > > > > However, if I call it from my extended Gateway I get the error
> > > > > message below. I went into my autowire.cfm and if I call a
> > > > > different getter in there variables.instance has a
> > > > > modelutilities in it. However, when I dump variables.instanceinside 
of getModelUtilities it doesn't exist. What am I missing?
> > > > >
> > > > >   *Message* Element INSTANCE.MODELUTILITIES is undefined in
> > > > > VARIABLES. *Detail*
> > > > >  *Extended Info*
> > > > >  *Tag Context* D:\Inetpub\wwwroot\AppManager\includes\autowire.cfm
> > > > > (47)
> > > > > D:\Inetpub\wwwroot\AppManager\model\data\Gateway\GROUP_USERGateway.cfc
> > > > > (57)
> > > > >
> > > > > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > > > -- -- -- -- -- --
> > > > > Reactor for ColdFusion Mailing List
> > > > > [email protected]
> > > > > Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> > > > >
> > > > > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > > > -- -- -- -- -- --
> > > >
> > > >
> > > >
> > > > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > > -- -- -- -- --
> > > > Reactor for ColdFusion Mailing List
> > > > [email protected]
> > > > Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> > > >
> > > > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > > -- -- -- -- --
> > > >
> > >
> > >
> > > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > -- -- -- --
> > > Reactor for ColdFusion Mailing List
> > > [email protected]
> > > Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> > > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > > -- -- -- --
> > >
> >
> >
> >
> > --
> > Qasim Rasheed
> > Certified Advance ColdFusion MX Developer
> > (IM qasimrasheed AT yahoo, msn or GTalk)
> > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > -- -- -- --
> > Reactor for ColdFusion Mailing List
> > [email protected]
> > Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> > -- -- -- --
> >
>
>
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> -- -- --
> Reactor for ColdFusion Mailing List
> [email protected]
> Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> -- -- --
>
>
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> -- -- --
> Reactor for ColdFusion Mailing List
> [email protected]
> Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> -- -- --
>


-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
-- --




--
Qasim Rasheed
Certified Advance ColdFusion MX Developer
(IM qasimrasheed AT yahoo, msn or GTalk)


-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Reactor for ColdFusion Mailing List
[email protected]
Archives at: http://www.mail-archive.com/reactor%40doughughes.net/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Reply via email to