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.instance inside 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/
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Reply via email to