Thread: [morph-user] Adapting legacy request parameters into new POJO?
Brought to you by:
orangeherbert,
sgarlatm
From: Mick K. <mkn...@ba...> - 2010-04-19 14:08:51
|
I have an interesting issue I am trying to solve in a manageable way. I have a few dozen legacy JSP's that I am phasing out. But I have to do them 1by1. Each page create a POST of ~12 named request parameters that are ALL named different. VERY frustrating as there is no good convention. So, My thought is trying to create a Map for mapping the old names to the new names for each POST: Map reqParam = {"newName", "oldName"} Where I have a new POJO that has set/getNewName(..) Then, somehow copying from these old request properties from my request properties Map to the new one's in my new POJO. Once Mapped, I have no further use for the old names. *Next Post:* Morph seems to have what I think I want, but I have spent the past few hours trying to get a simple example working, and the docs are wrong. It referes to many classes that doe not exist in the jar. I also can not seem to find any other good examples. Can you point any out for me? Specifically, this is missing: <!-- the overall transformer we'll use to do the graph copy --> <bean id="graphTransformer" class="net.sf.morph.transform.DelegatingCopier"> <property name="components"> <list> <ref bean="personCopier"/> <ref bean="vehicleCopier"/> <ref bean="childrenCopier"/> <ref bean="addressConverter"/> </list> </property> </bean> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://www.baselogic.com Blog: http://www.baselogic.com/blog/ Linked IN: http://linkedin.com/in/mickknutson Twitter: http://twitter.com/mickknutson Vacation Rental: http://tahoe.baselogic.com --- |
From: Matt B. <gud...@gm...> - 2010-04-19 14:26:49
|
Hi, Mick. Now that we're in the proper forum, let me apologize for the state of Morph's documentation, but you can certainly appreciate the universal axiom that documentation is always the lowest priority for an OSS project, being the least fun of the necessary tasks. DelegatingCopier has most likely become SimpleDelegatingTransformer (SDT) in the net.sf.morph.transform.transformers package. Also, SDT's default constructor initializes it with a best-guess at an all-purpose set of delegate Transformers for a simple object graph. I would try one of those out of the box unless you already know you have very complex types to work with here. If these are all strings, you should pretty much be set. HTH, Matt On 4/19/10, Mick Knutson <mkn...@ba...> wrote: > I have an interesting issue I am trying to solve in a manageable way. > > I have a few dozen legacy JSP's that I am phasing out. But I have to do them > 1by1. Each page create a POST of ~12 named request parameters that are ALL > named different. VERY frustrating as there is no good convention. > > So, My thought is trying to create a Map for mapping the old names to the > new names for each POST: > Map reqParam = {"newName", "oldName"} > > Where I have a new POJO that has set/getNewName(..) > > > Then, somehow copying from these old request properties from my request > properties Map to the new one's in my new POJO. > > Once Mapped, I have no further use for the old names. > > > *Next Post:* > > Morph seems to have what I think I want, but I have spent the past few hours > trying to get a simple example working, and the docs are wrong. It referes > to many classes that doe not exist in the jar. > > I also can not seem to find any other good examples. Can you point any out > for me? > > > Specifically, this is missing: > > > <!-- the overall transformer we'll use to do the graph copy --> > <bean > id="graphTransformer" > class="net.sf.morph.transform.DelegatingCopier"> > <property name="components"> > <list> > <ref bean="personCopier"/> > <ref bean="vehicleCopier"/> > <ref bean="childrenCopier"/> > <ref bean="addressConverter"/> > </list> > </property> > </bean> > > *MISSING from the code: net.sf.morph.transform.DelegatingCopier* > > > > --- > Thank You… > > Mick Knutson, President > > BASE Logic, Inc. > Enterprise Architecture, Design, Mentoring & Agile Consulting > p. (866) BLiNC-411: (254-6241-1) > f. (415) 685-4233 > > Website: http://www.baselogic.com > Blog: http://www.baselogic.com/blog/ > Linked IN: http://linkedin.com/in/mickknutson > Twitter: http://twitter.com/mickknutson > Vacation Rental: http://tahoe.baselogic.com > --- > |
From: Matt S. <mat...@sp...> - 2010-04-19 14:38:10
|
Hi Mick, Sorry about that! The new name is SimpleDelegatingTransformer. Matt On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba...>wrote: > I have an interesting issue I am trying to solve in a manageable way. > > I have a few dozen legacy JSP's that I am phasing out. But I have to do > them 1by1. Each page create a POST of ~12 named request parameters that are > ALL named different. VERY frustrating as there is no good convention. > > So, My thought is trying to create a Map for mapping the old names to the > new names for each POST: > Map reqParam = {"newName", "oldName"} > > Where I have a new POJO that has set/getNewName(..) > > > Then, somehow copying from these old request properties from my request > properties Map to the new one's in my new POJO. > > Once Mapped, I have no further use for the old names. > > > *Next Post:* > > Morph seems to have what I think I want, but I have spent the past few > hours trying to get a simple example working, and the docs are wrong. It > referes to many classes that doe not exist in the jar. > > I also can not seem to find any other good examples. Can you point any out > for me? > > > Specifically, this is missing: > > <!-- the overall transformer we'll use to do the graph copy --> > <bean > id="graphTransformer" > class="net.sf.morph.transform.DelegatingCopier"> > <property name="components"> > <list> > <ref bean="personCopier"/> > <ref bean="vehicleCopier"/> > <ref bean="childrenCopier"/> > <ref bean="addressConverter"/> > </list> > </property> > </bean> > > *MISSING from the code: net.sf.morph.transform.DelegatingCopier* > > > > --- > Thank You… > > Mick Knutson, President > > BASE Logic, Inc. > Enterprise Architecture, Design, Mentoring & Agile Consulting > p. (866) BLiNC-411: (254-6241-1) > f. (415) 685-4233 > > Website: http://www.baselogic.com > Blog: http://www.baselogic.com/blog/ > Linked IN: http://linkedin.com/in/mickknutson > Twitter: http://twitter.com/mickknutson > Vacation Rental: http://tahoe.baselogic.com > --- > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > -- Matthew Sgarlata Executive Vice President, Software Development Vicepresidente Ejecutivo de Desarrollo de Software 202-210-7102 (phone/teléfono) 651-286-2806 (fax) This message is intended only for the named recipient. If you are not the intended recipient, you are notified that disclosing, copying, distributing, or taking any action in reliance on the contents of this information is strictly prohibited. |
From: Mick K. <mkn...@ba...> - 2010-04-22 18:23:57
|
So looking through this again, I think I can create a copier in Groovy Spring DSL: caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ mapping = [ "sDummySessionID": "sessionID" , "ivrportnum": "ivrPortNumber" , "ivrsystem": "ivrSystem" , "appname": "applicationName" , "dispatchcode": "dispatchCode" , "application_sANIID": "aniId" , "dnis": "dnis" ] } But What I really need to understand, is this mapping issue: Servlet.Request (Object) --> CallSession (Object) so basically what I am looking at is: *callSession.setAni( request.getParameter("application_sANIID") );* Is this mapping possible? --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://www.baselogic.com Blog: http://www.baselogic.com/blog/ Linked IN: http://linkedin.com/in/mickknutson Twitter: http://twitter.com/mickknutson Vacation Rental: http://tahoe.baselogic.com --- On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < mat...@sp...> wrote: > Hi Mick, > > Sorry about that! The new name is SimpleDelegatingTransformer. > > Matt > > On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba...>wrote: > >> I have an interesting issue I am trying to solve in a manageable way. >> >> I have a few dozen legacy JSP's that I am phasing out. But I have to do >> them 1by1. Each page create a POST of ~12 named request parameters that are >> ALL named different. VERY frustrating as there is no good convention. >> >> So, My thought is trying to create a Map for mapping the old names to the >> new names for each POST: >> Map reqParam = {"newName", "oldName"} >> >> Where I have a new POJO that has set/getNewName(..) >> >> >> Then, somehow copying from these old request properties from my request >> properties Map to the new one's in my new POJO. >> >> Once Mapped, I have no further use for the old names. >> >> >> *Next Post:* >> >> Morph seems to have what I think I want, but I have spent the past few >> hours trying to get a simple example working, and the docs are wrong. It >> referes to many classes that doe not exist in the jar. >> >> I also can not seem to find any other good examples. Can you point any out >> for me? >> >> >> Specifically, this is missing: >> >> >> <!-- the overall transformer we'll use to do the graph copy --> >> <bean >> id="graphTransformer" >> class="net.sf.morph.transform.DelegatingCopier"> >> <property name="components"> >> <list> >> <ref bean="personCopier"/> >> <ref bean="vehicleCopier"/> >> <ref bean="childrenCopier"/> >> <ref bean="addressConverter"/> >> </list> >> </property> >> </bean> >> >> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >> >> >> >> --- >> Thank You… >> >> Mick Knutson, President >> >> BASE Logic, Inc. >> Enterprise Architecture, Design, Mentoring & Agile Consulting >> p. (866) BLiNC-411: (254-6241-1) >> f. (415) 685-4233 >> >> Website: http://www.baselogic.com >> Blog: http://www.baselogic.com/blog/ >> Linked IN: http://linkedin.com/in/mickknutson >> Twitter: http://twitter.com/mickknutson >> Vacation Rental: http://tahoe.baselogic.com >> --- >> >> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > -- > Matthew Sgarlata > Executive Vice President, Software Development > Vicepresidente Ejecutivo de Desarrollo de Software > 202-210-7102 (phone/teléfono) > 651-286-2806 (fax) > > This message is intended only for the named recipient. If you are not the > intended recipient, you are notified that disclosing, copying, distributing, > or taking any action in reliance on the contents of this information is > strictly prohibited. > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |
From: Matt S. <mat...@sp...> - 2010-04-22 20:20:14
|
Hi Mick, I can't speak to how Groovy and Spring work, but you are on the right track using a PropertyNameMappingCopier. I would suggest you first try out using it in a programmatic way to make sure it does what you are looking for, then see if you are able to wire it up how you would like with Groovy and Spring. Matt On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: > So looking through this again, I think I can create a copier in Groovy > Spring DSL: > > caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ > mapping = [ > "sDummySessionID": "sessionID" > , "ivrportnum": "ivrPortNumber" > , "ivrsystem": "ivrSystem" > , "appname": "applicationName" > , "dispatchcode": "dispatchCode" > , "application_sANIID": "aniId" > , "dnis": "dnis" > > ] > } > > > But What I really need to understand, is this mapping issue: > > Servlet.Request (Object) --> CallSession (Object) > > so basically what I am looking at is: > > *callSession.setAni( request.getParameter("application_sANIID") );* > > > Is this mapping possible? > > --- > Thank You… > > Mick Knutson, President > > BASE Logic, Inc. > Enterprise Architecture, Design, Mentoring & Agile Consulting > p. (866) BLiNC-411: (254-6241-1) > f. (415) 685-4233 > > Website: http://www.baselogic.com > Blog: http://www.baselogic.com/blog/ > Linked IN: http://linkedin.com/in/mickknutson > Twitter: http://twitter.com/mickknutson > Vacation Rental: http://tahoe.baselogic.com > --- > > > > On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < > mat...@sp...> wrote: > >> Hi Mick, >> >> Sorry about that! The new name is SimpleDelegatingTransformer. >> >> Matt >> >> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba...>wrote: >> >>> I have an interesting issue I am trying to solve in a manageable way. >>> >>> I have a few dozen legacy JSP's that I am phasing out. But I have to do >>> them 1by1. Each page create a POST of ~12 named request parameters that are >>> ALL named different. VERY frustrating as there is no good convention. >>> >>> So, My thought is trying to create a Map for mapping the old names to the >>> new names for each POST: >>> Map reqParam = {"newName", "oldName"} >>> >>> Where I have a new POJO that has set/getNewName(..) >>> >>> >>> Then, somehow copying from these old request properties from my request >>> properties Map to the new one's in my new POJO. >>> >>> Once Mapped, I have no further use for the old names. >>> >>> >>> *Next Post:* >>> >>> Morph seems to have what I think I want, but I have spent the past few >>> hours trying to get a simple example working, and the docs are wrong. It >>> referes to many classes that doe not exist in the jar. >>> >>> I also can not seem to find any other good examples. Can you point any >>> out for me? >>> >>> >>> Specifically, this is missing: >>> >>> <!-- the overall transformer we'll use to do the graph copy --> >>> <bean >>> id="graphTransformer" >>> class="net.sf.morph.transform.DelegatingCopier"> >>> <property name="components"> >>> <list> >>> <ref bean="personCopier"/> >>> <ref bean="vehicleCopier"/> >>> <ref bean="childrenCopier"/> >>> <ref bean="addressConverter"/> >>> </list> >>> </property> >>> </bean> >>> >>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>> >>> >>> >>> --- >>> Thank You… >>> >>> Mick Knutson, President >>> >>> BASE Logic, Inc. >>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>> p. (866) BLiNC-411: (254-6241-1) >>> f. (415) 685-4233 >>> >>> Website: http://www.baselogic.com >>> Blog: http://www.baselogic.com/blog/ >>> Linked IN: http://linkedin.com/in/mickknutson >>> Twitter: http://twitter.com/mickknutson >>> Vacation Rental: http://tahoe.baselogic.com >>> --- >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> -- >> Matthew Sgarlata >> Executive Vice President, Software Development >> Vicepresidente Ejecutivo de Desarrollo de Software >> 202-210-7102 (phone/teléfono) >> 651-286-2806 (fax) >> >> This message is intended only for the named recipient. If you are not the >> intended recipient, you are notified that disclosing, copying, distributing, >> or taking any action in reliance on the contents of this information is >> strictly prohibited. >> >> >> ------------------------------------------------------------------------------ >> Download Intel® Parallel Studio Eval >> Try the new software tools for yourself. Speed compiling, find bugs >> proactively, and fine-tune applications for parallel performance. >> See why Intel Parallel Studio got high marks during beta. >> http://p.sf.net/sfu/intel-sw-dev >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > -- Matthew Sgarlata Executive Vice President, Software Development Vicepresidente Ejecutivo de Desarrollo de Software 202-210-7102 (phone/teléfono) 651-286-2806 (fax) This message is intended only for the named recipient. If you are not the intended recipient, you are notified that disclosing, copying, distributing, or taking any action in reliance on the contents of this information is strictly prohibited. |
From: Mick K. <mkn...@ba...> - 2010-04-22 20:51:42
|
But that is what I am wondering about. My assumtion is the framework will do this newBean.setNewName( oldBean.getOldName() ) not: newBean.setNewName( map.get("oldName") ) is that correct, because I think I am in need of #2 --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://www.baselogic.com Blog: http://www.baselogic.com/blog/ Linked IN: http://linkedin.com/in/mickknutson Twitter: http://twitter.com/mickknutson Vacation Rental: http://tahoe.baselogic.com --- On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < mat...@sp...> wrote: > Hi Mick, > > I can't speak to how Groovy and Spring work, but you are on the right track > using a PropertyNameMappingCopier. I would suggest you first try out using > it in a programmatic way to make sure it does what you are looking for, then > see if you are able to wire it up how you would like with Groovy and Spring. > > Matt > > On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: > >> So looking through this again, I think I can create a copier in Groovy >> Spring DSL: >> >> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >> mapping = [ >> "sDummySessionID": "sessionID" >> , "ivrportnum": "ivrPortNumber" >> , "ivrsystem": "ivrSystem" >> , "appname": "applicationName" >> , "dispatchcode": "dispatchCode" >> , "application_sANIID": "aniId" >> , "dnis": "dnis" >> >> ] >> } >> >> >> But What I really need to understand, is this mapping issue: >> >> Servlet.Request (Object) --> CallSession (Object) >> >> so basically what I am looking at is: >> >> *callSession.setAni( request.getParameter("application_sANIID") );* >> >> >> Is this mapping possible? >> >> --- >> Thank You… >> >> Mick Knutson, President >> >> BASE Logic, Inc. >> Enterprise Architecture, Design, Mentoring & Agile Consulting >> p. (866) BLiNC-411: (254-6241-1) >> f. (415) 685-4233 >> >> Website: http://www.baselogic.com >> Blog: http://www.baselogic.com/blog/ >> Linked IN: http://linkedin.com/in/mickknutson >> Twitter: http://twitter.com/mickknutson >> Vacation Rental: http://tahoe.baselogic.com >> --- >> >> >> >> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >> mat...@sp...> wrote: >> >>> Hi Mick, >>> >>> Sorry about that! The new name is SimpleDelegatingTransformer. >>> >>> Matt >>> >>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba...>wrote: >>> >>>> I have an interesting issue I am trying to solve in a manageable way. >>>> >>>> I have a few dozen legacy JSP's that I am phasing out. But I have to do >>>> them 1by1. Each page create a POST of ~12 named request parameters that are >>>> ALL named different. VERY frustrating as there is no good convention. >>>> >>>> So, My thought is trying to create a Map for mapping the old names to >>>> the new names for each POST: >>>> Map reqParam = {"newName", "oldName"} >>>> >>>> Where I have a new POJO that has set/getNewName(..) >>>> >>>> >>>> Then, somehow copying from these old request properties from my request >>>> properties Map to the new one's in my new POJO. >>>> >>>> Once Mapped, I have no further use for the old names. >>>> >>>> >>>> *Next Post:* >>>> >>>> Morph seems to have what I think I want, but I have spent the past few >>>> hours trying to get a simple example working, and the docs are wrong. It >>>> referes to many classes that doe not exist in the jar. >>>> >>>> I also can not seem to find any other good examples. Can you point any >>>> out for me? >>>> >>>> >>>> Specifically, this is missing: >>>> >>>> >>>> <!-- the overall transformer we'll use to do the graph copy --> >>>> <bean >>>> id="graphTransformer" >>>> class="net.sf.morph.transform.DelegatingCopier"> >>>> <property name="components"> >>>> <list> >>>> <ref bean="personCopier"/> >>>> <ref bean="vehicleCopier"/> >>>> <ref bean="childrenCopier"/> >>>> <ref bean="addressConverter"/> >>>> </list> >>>> </property> >>>> </bean> >>>> >>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>> >>>> >>>> >>>> --- >>>> Thank You… >>>> >>>> Mick Knutson, President >>>> >>>> BASE Logic, Inc. >>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>> p. (866) BLiNC-411: (254-6241-1) >>>> f. (415) 685-4233 >>>> >>>> Website: http://www.baselogic.com >>>> Blog: http://www.baselogic.com/blog/ >>>> Linked IN: http://linkedin.com/in/mickknutson >>>> Twitter: http://twitter.com/mickknutson >>>> Vacation Rental: http://tahoe.baselogic.com >>>> --- >>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Download Intel® Parallel Studio Eval >>>> Try the new software tools for yourself. Speed compiling, find bugs >>>> proactively, and fine-tune applications for parallel performance. >>>> See why Intel Parallel Studio got high marks during beta. >>>> http://p.sf.net/sfu/intel-sw-dev >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> -- >>> Matthew Sgarlata >>> Executive Vice President, Software Development >>> Vicepresidente Ejecutivo de Desarrollo de Software >>> 202-210-7102 (phone/teléfono) >>> 651-286-2806 (fax) >>> >>> This message is intended only for the named recipient. If you are not the >>> intended recipient, you are notified that disclosing, copying, distributing, >>> or taking any action in reliance on the contents of this information is >>> strictly prohibited. >>> >>> >>> ------------------------------------------------------------------------------ >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> http://p.sf.net/sfu/intel-sw-dev >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > -- > Matthew Sgarlata > Executive Vice President, Software Development > Vicepresidente Ejecutivo de Desarrollo de Software > 202-210-7102 (phone/teléfono) > 651-286-2806 (fax) > > This message is intended only for the named recipient. If you are not the > intended recipient, you are notified that disclosing, copying, distributing, > or taking any action in reliance on the contents of this information is > strictly prohibited. > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |
From: Matt S. <mat...@sp...> - 2010-04-22 20:56:17
|
Hello again Mick, If there is a Reflector for the bean you are trying to read from, the properties will be read as expected. HttpServletRequests have a standard reflector that is included by Morph by default. Maps also have reflectors so their contents are read rather than looking at the Map's bean properties using Java reflection. I'm not clear if your request and session are Servlet requests and sessions or some other type of requests and sessions. If they are from the Servlet spec you are in good shape. If they are from some other API, you may need to write a custom reflector. You can look at SimpleDelegatingReflector.createDefaultComponents() to see what special type of reflectors are included with Morph, beyond simple Java reflection. Does that answer your question? Matt On Thu, Apr 22, 2010 at 4:51 PM, Mick Knutson <mkn...@ba...>wrote: > But that is what I am wondering about. My assumtion is the framework will > do this > > newBean.setNewName( oldBean.getOldName() ) > > not: > > newBean.setNewName( map.get("oldName") ) > > is that correct, because I think I am in need of #2 > > --- > Thank You… > > Mick Knutson, President > > BASE Logic, Inc. > Enterprise Architecture, Design, Mentoring & Agile Consulting > p. (866) BLiNC-411: (254-6241-1) > f. (415) 685-4233 > > Website: http://www.baselogic.com > Blog: http://www.baselogic.com/blog/ > Linked IN: http://linkedin.com/in/mickknutson > Twitter: http://twitter.com/mickknutson > Vacation Rental: http://tahoe.baselogic.com > --- > > > > On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < > mat...@sp...> wrote: > >> Hi Mick, >> >> I can't speak to how Groovy and Spring work, but you are on the right >> track using a PropertyNameMappingCopier. I would suggest you first try out >> using it in a programmatic way to make sure it does what you are looking >> for, then see if you are able to wire it up how you would like with Groovy >> and Spring. >> >> Matt >> >> On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: >> >>> So looking through this again, I think I can create a copier in Groovy >>> Spring DSL: >>> >>> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >>> mapping = [ >>> "sDummySessionID": "sessionID" >>> , "ivrportnum": "ivrPortNumber" >>> , "ivrsystem": "ivrSystem" >>> , "appname": "applicationName" >>> , "dispatchcode": "dispatchCode" >>> , "application_sANIID": "aniId" >>> , "dnis": "dnis" >>> >>> ] >>> } >>> >>> >>> But What I really need to understand, is this mapping issue: >>> >>> Servlet.Request (Object) --> CallSession (Object) >>> >>> so basically what I am looking at is: >>> >>> *callSession.setAni( request.getParameter("application_sANIID") );* >>> >>> >>> Is this mapping possible? >>> >>> --- >>> Thank You… >>> >>> Mick Knutson, President >>> >>> BASE Logic, Inc. >>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>> p. (866) BLiNC-411: (254-6241-1) >>> f. (415) 685-4233 >>> >>> Website: http://www.baselogic.com >>> Blog: http://www.baselogic.com/blog/ >>> Linked IN: http://linkedin.com/in/mickknutson >>> Twitter: http://twitter.com/mickknutson >>> Vacation Rental: http://tahoe.baselogic.com >>> --- >>> >>> >>> >>> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >>> mat...@sp...> wrote: >>> >>>> Hi Mick, >>>> >>>> Sorry about that! The new name is SimpleDelegatingTransformer. >>>> >>>> Matt >>>> >>>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba...>wrote: >>>> >>>>> I have an interesting issue I am trying to solve in a manageable way. >>>>> >>>>> I have a few dozen legacy JSP's that I am phasing out. But I have to do >>>>> them 1by1. Each page create a POST of ~12 named request parameters that are >>>>> ALL named different. VERY frustrating as there is no good convention. >>>>> >>>>> So, My thought is trying to create a Map for mapping the old names to >>>>> the new names for each POST: >>>>> Map reqParam = {"newName", "oldName"} >>>>> >>>>> Where I have a new POJO that has set/getNewName(..) >>>>> >>>>> >>>>> Then, somehow copying from these old request properties from my request >>>>> properties Map to the new one's in my new POJO. >>>>> >>>>> Once Mapped, I have no further use for the old names. >>>>> >>>>> >>>>> *Next Post:* >>>>> >>>>> Morph seems to have what I think I want, but I have spent the past few >>>>> hours trying to get a simple example working, and the docs are wrong. It >>>>> referes to many classes that doe not exist in the jar. >>>>> >>>>> I also can not seem to find any other good examples. Can you point any >>>>> out for me? >>>>> >>>>> >>>>> Specifically, this is missing: >>>>> >>>>> <!-- the overall transformer we'll use to do the graph copy --> >>>>> <bean >>>>> id="graphTransformer" >>>>> class="net.sf.morph.transform.DelegatingCopier"> >>>>> <property name="components"> >>>>> <list> >>>>> <ref bean="personCopier"/> >>>>> <ref bean="vehicleCopier"/> >>>>> <ref bean="childrenCopier"/> >>>>> <ref bean="addressConverter"/> >>>>> </list> >>>>> </property> >>>>> </bean> >>>>> >>>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>>> >>>>> >>>>> >>>>> --- >>>>> Thank You… >>>>> >>>>> Mick Knutson, President >>>>> >>>>> BASE Logic, Inc. >>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>> p. (866) BLiNC-411: (254-6241-1) >>>>> f. (415) 685-4233 >>>>> >>>>> Website: http://www.baselogic.com >>>>> Blog: http://www.baselogic.com/blog/ >>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>> Twitter: http://twitter.com/mickknutson >>>>> Vacation Rental: http://tahoe.baselogic.com >>>>> --- >>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Download Intel® Parallel Studio Eval >>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>> proactively, and fine-tune applications for parallel performance. >>>>> See why Intel Parallel Studio got high marks during beta. >>>>> http://p.sf.net/sfu/intel-sw-dev >>>>> _______________________________________________ >>>>> morph-user mailing list >>>>> mor...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>> >>>>> >>>> >>>> >>>> -- >>>> Matthew Sgarlata >>>> Executive Vice President, Software Development >>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>> 202-210-7102 (phone/teléfono) >>>> 651-286-2806 (fax) >>>> >>>> This message is intended only for the named recipient. If you are not >>>> the intended recipient, you are notified that disclosing, copying, >>>> distributing, or taking any action in reliance on the contents of this >>>> information is strictly prohibited. >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Download Intel® Parallel Studio Eval >>>> Try the new software tools for yourself. Speed compiling, find bugs >>>> proactively, and fine-tune applications for parallel performance. >>>> See why Intel Parallel Studio got high marks during beta. >>>> http://p.sf.net/sfu/intel-sw-dev >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> -- >> Matthew Sgarlata >> Executive Vice President, Software Development >> Vicepresidente Ejecutivo de Desarrollo de Software >> 202-210-7102 (phone/teléfono) >> 651-286-2806 (fax) >> >> This message is intended only for the named recipient. If you are not the >> intended recipient, you are notified that disclosing, copying, distributing, >> or taking any action in reliance on the contents of this information is >> strictly prohibited. >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |
From: Mick K. <mkn...@ba...> - 2010-04-25 16:42:14
|
I am close, but I have an issue: I created this Spring Bean in Groovy DSL: simpleDelegatingTransformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer){ components = [ propertyNameMappingCopier(net.sf.morph.transform.copiers.PropertyNameMappingCopier){ propertyTransformers = [ "sDummySessionID": "sessionID" , "ivrportnum": "ivrPortNumber" , "ivrsystem": "ivrSystem" , "appname": "applicationName" , "dispatchcode": "dispatchCode" *, "ani": "ani"* , "application_sANIID": "aniId" ,* "dnis": "dnis"* *, "division": "division"* ,* "region": "region"* , "callid": "callID" , "globalzero": "globalZero" , "bContinueFromAuto": "continueFromAuto" , "CAE_Att_Soft_Disco": "isSoftDisco" //, "g_bIsSoftDisco": "isSoftDisco" , "CAE_Att_Delinquent": "isDelinquent" //, "g_bIsDelinquent": "isDelinquent" //, "CAELanguage": language , "application.Language": "language" , "np": "nextPage" , "fform": "firstForm" , "sAccountNumber": "accountNumber" //, "application.AccountNumber": accountNumber , "application.sPhoneID": "phoneID" , "sDefaultRoutingString": "defaultRoutingString" , "CAEFunction": "transferFunction" , "CAETransferReason": "transferReason" , "callType": "callType" , "CAELOB": "lob" , "CAE_Att_VIP": "vip" , "CAE_Att_SameDayAppointment": "isSameDayAppointment" , "ucid": "ucid" ] } ] } This will convert my Servlet Request Parameters into my Custom POJO ONLY if the names match. This does not copy correctly: "*sDummySessionID*": "sessionID" Do you have any suggestions as to why the mapping is not happening? --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://www.baselogic.com Blog: http://www.baselogic.com/blog/ Linked IN: http://linkedin.com/in/mickknutson Twitter: http://twitter.com/mickknutson Vacation Rental: http://tahoe.baselogic.com --- On Thu, Apr 22, 2010 at 4:56 PM, Matt Sgarlata < mat...@sp...> wrote: > Hello again Mick, > > If there is a Reflector for the bean you are trying to read from, the > properties will be read as expected. HttpServletRequests have a standard > reflector that is included by Morph by default. Maps also have reflectors > so their contents are read rather than looking at the Map's bean properties > using Java reflection. I'm not clear if your request and session are > Servlet requests and sessions or some other type of requests and sessions. > If they are from the Servlet spec you are in good shape. If they are from > some other API, you may need to write a custom reflector. > > You can look at SimpleDelegatingReflector.createDefaultComponents() to see > what special type of reflectors are included with Morph, beyond simple Java > reflection. > > Does that answer your question? > > Matt > > On Thu, Apr 22, 2010 at 4:51 PM, Mick Knutson <mkn...@ba...>wrote: > >> But that is what I am wondering about. My assumtion is the framework will >> do this >> >> newBean.setNewName( oldBean.getOldName() ) >> >> not: >> >> newBean.setNewName( map.get("oldName") ) >> >> is that correct, because I think I am in need of #2 >> >> --- >> Thank You… >> >> Mick Knutson, President >> >> BASE Logic, Inc. >> Enterprise Architecture, Design, Mentoring & Agile Consulting >> p. (866) BLiNC-411: (254-6241-1) >> f. (415) 685-4233 >> >> Website: http://www.baselogic.com >> Blog: http://www.baselogic.com/blog/ >> Linked IN: http://linkedin.com/in/mickknutson >> Twitter: http://twitter.com/mickknutson >> Vacation Rental: http://tahoe.baselogic.com >> --- >> >> >> >> On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < >> mat...@sp...> wrote: >> >>> Hi Mick, >>> >>> I can't speak to how Groovy and Spring work, but you are on the right >>> track using a PropertyNameMappingCopier. I would suggest you first try out >>> using it in a programmatic way to make sure it does what you are looking >>> for, then see if you are able to wire it up how you would like with Groovy >>> and Spring. >>> >>> Matt >>> >>> On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: >>> >>>> So looking through this again, I think I can create a copier in Groovy >>>> Spring DSL: >>>> >>>> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >>>> mapping = [ >>>> "sDummySessionID": "sessionID" >>>> , "ivrportnum": "ivrPortNumber" >>>> , "ivrsystem": "ivrSystem" >>>> , "appname": "applicationName" >>>> , "dispatchcode": "dispatchCode" >>>> , "application_sANIID": "aniId" >>>> , "dnis": "dnis" >>>> >>>> ] >>>> } >>>> >>>> >>>> But What I really need to understand, is this mapping issue: >>>> >>>> Servlet.Request (Object) --> CallSession (Object) >>>> >>>> so basically what I am looking at is: >>>> >>>> *callSession.setAni( request.getParameter("application_sANIID") );* >>>> >>>> >>>> Is this mapping possible? >>>> >>>> --- >>>> Thank You… >>>> >>>> Mick Knutson, President >>>> >>>> BASE Logic, Inc. >>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>> p. (866) BLiNC-411: (254-6241-1) >>>> f. (415) 685-4233 >>>> >>>> Website: http://www.baselogic.com >>>> Blog: http://www.baselogic.com/blog/ >>>> Linked IN: http://linkedin.com/in/mickknutson >>>> Twitter: http://twitter.com/mickknutson >>>> Vacation Rental: http://tahoe.baselogic.com >>>> --- >>>> >>>> >>>> >>>> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >>>> mat...@sp...> wrote: >>>> >>>>> Hi Mick, >>>>> >>>>> Sorry about that! The new name is SimpleDelegatingTransformer. >>>>> >>>>> Matt >>>>> >>>>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba... >>>>> > wrote: >>>>> >>>>>> I have an interesting issue I am trying to solve in a manageable way. >>>>>> >>>>>> I have a few dozen legacy JSP's that I am phasing out. But I have to >>>>>> do them 1by1. Each page create a POST of ~12 named request parameters that >>>>>> are ALL named different. VERY frustrating as there is no good convention. >>>>>> >>>>>> So, My thought is trying to create a Map for mapping the old names to >>>>>> the new names for each POST: >>>>>> Map reqParam = {"newName", "oldName"} >>>>>> >>>>>> Where I have a new POJO that has set/getNewName(..) >>>>>> >>>>>> >>>>>> Then, somehow copying from these old request properties from my >>>>>> request properties Map to the new one's in my new POJO. >>>>>> >>>>>> Once Mapped, I have no further use for the old names. >>>>>> >>>>>> >>>>>> *Next Post:* >>>>>> >>>>>> Morph seems to have what I think I want, but I have spent the past few >>>>>> hours trying to get a simple example working, and the docs are wrong. It >>>>>> referes to many classes that doe not exist in the jar. >>>>>> >>>>>> I also can not seem to find any other good examples. Can you point any >>>>>> out for me? >>>>>> >>>>>> >>>>>> Specifically, this is missing: >>>>>> >>>>>> >>>>>> <!-- the overall transformer we'll use to do the graph copy --> >>>>>> <bean >>>>>> id="graphTransformer" >>>>>> class="net.sf.morph.transform.DelegatingCopier"> >>>>>> <property name="components"> >>>>>> <list> >>>>>> <ref bean="personCopier"/> >>>>>> <ref bean="vehicleCopier"/> >>>>>> <ref bean="childrenCopier"/> >>>>>> <ref bean="addressConverter"/> >>>>>> </list> >>>>>> </property> >>>>>> </bean> >>>>>> >>>>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>>>> >>>>>> >>>>>> >>>>>> --- >>>>>> Thank You… >>>>>> >>>>>> Mick Knutson, President >>>>>> >>>>>> BASE Logic, Inc. >>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>> f. (415) 685-4233 >>>>>> >>>>>> Website: http://www.baselogic.com >>>>>> Blog: http://www.baselogic.com/blog/ >>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>> Twitter: http://twitter.com/mickknutson >>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>> --- >>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> Download Intel® Parallel Studio Eval >>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>> proactively, and fine-tune applications for parallel performance. >>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>> _______________________________________________ >>>>>> morph-user mailing list >>>>>> mor...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Matthew Sgarlata >>>>> Executive Vice President, Software Development >>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>> 202-210-7102 (phone/teléfono) >>>>> 651-286-2806 (fax) >>>>> >>>>> This message is intended only for the named recipient. If you are not >>>>> the intended recipient, you are notified that disclosing, copying, >>>>> distributing, or taking any action in reliance on the contents of this >>>>> information is strictly prohibited. >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Download Intel® Parallel Studio Eval >>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>> proactively, and fine-tune applications for parallel performance. >>>>> See why Intel Parallel Studio got high marks during beta. >>>>> http://p.sf.net/sfu/intel-sw-dev >>>>> _______________________________________________ >>>>> morph-user mailing list >>>>> mor...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>> >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> -- >>> Matthew Sgarlata >>> Executive Vice President, Software Development >>> Vicepresidente Ejecutivo de Desarrollo de Software >>> 202-210-7102 (phone/teléfono) >>> 651-286-2806 (fax) >>> >>> This message is intended only for the named recipient. If you are not the >>> intended recipient, you are notified that disclosing, copying, distributing, >>> or taking any action in reliance on the contents of this information is >>> strictly prohibited. >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |
From: Mick K. <mkn...@ba...> - 2010-04-25 16:56:33
|
I am closer. I have only one error: Could not find a transformer that can transform objects of null to objects of (class java.lang.String) net.sf.morph.transform.TransformationException: Could not find a transformer that can transform objects of null to objects of (class java.lang.String) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:523) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:435) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:472) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.convertImpl(SimpleDelegatingTransformer.java:293) at net.sf.morph.transform.transformers.BaseTransformer.convert(BaseTransformer.java:368) at net.sf.morph.util.TransformerUtils.transform(TransformerUtils.java:168) at net.sf.morph.transform.copiers.BasePropertyNameCopier.copyProperty(BasePropertyNameCopier.java:160) at net.sf.morph.transform.copiers.PropertyNameMappingCopier.copyImpl(PropertyNameMappingCopier.java:138) at net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.copyImpl(SimpleDelegatingTransformer.java:276) at net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) at net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:470) at com.comcast.uivr.divr.routing.CallTransferController.convertCallSession(CallTransferController.groovy:617) at com.comcast.uivr.divr.routing.CallTransferController$convertCallSession.call(Unknown Source) at com.comcast.uivr.divr.routing.CallTransferControllerTests.testSmokeTestCallSessionValueAssignment(CallTransferControllerTests.groovy:22) at junit.framework.Test$run.call(Unknown Source) at junit.framework.Test$run.call(Unknown Source) *Here is what is working thus:* /** * These are the Morph Beans for the JSP Adapters */ caeCopier(net.sf.morph.transform.copiers.PropertyNameMappingCopier, false){ mapping = [ "sDummySessionID": "sessionID" , "ivrportnum": "ivrPortNumber" , "ivrsystem": "ivrSystem" , "appname": "applicationName" , "dispatchcode": "dispatchCode" , "ani": "ani" , "application_sANIID": "aniId" , "dnis": "dnis" , "division": "division" , "region": "region" , "callid": "callID" , "globalzero": "globalZero" , "bContinueFromAuto": "continueFromAuto" , "CAE_Att_Soft_Disco": "isSoftDisco" //, "g_bIsSoftDisco": "isSoftDisco" , "CAE_Att_Delinquent": "isDelinquent" //, "g_bIsDelinquent": "isDelinquent" //, "CAELanguage": language , "application.Language": "language" , "np": "nextPage" , "fform": "firstForm" , "sAccountNumber": "accountNumber" //, "application.AccountNumber": accountNumber , "application.sPhoneID": "phoneID" , "sDefaultRoutingString": "defaultRoutingString" , "CAEFunction": "transferFunction" , "CAETransferReason": "transferReason" , "callType": "callType" , "CAELOB": "lob" , "CAE_Att_VIP": "vip" , "CAE_Att_SameDayAppointment": "isSameDayAppointment" , "ucid": "ucid" ] nestedTransformer = ref("transformer") } transformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer){ components = [ref("caeCopier")] } --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://www.baselogic.com Blog: http://www.baselogic.com/blog/ Linked IN: http://linkedin.com/in/mickknutson Twitter: http://twitter.com/mickknutson Vacation Rental: http://tahoe.baselogic.com --- On Thu, Apr 22, 2010 at 4:56 PM, Matt Sgarlata < mat...@sp...> wrote: > Hello again Mick, > > If there is a Reflector for the bean you are trying to read from, the > properties will be read as expected. HttpServletRequests have a standard > reflector that is included by Morph by default. Maps also have reflectors > so their contents are read rather than looking at the Map's bean properties > using Java reflection. I'm not clear if your request and session are > Servlet requests and sessions or some other type of requests and sessions. > If they are from the Servlet spec you are in good shape. If they are from > some other API, you may need to write a custom reflector. > > You can look at SimpleDelegatingReflector.createDefaultComponents() to see > what special type of reflectors are included with Morph, beyond simple Java > reflection. > > Does that answer your question? > > Matt > > On Thu, Apr 22, 2010 at 4:51 PM, Mick Knutson <mkn...@ba...>wrote: > >> But that is what I am wondering about. My assumtion is the framework will >> do this >> >> newBean.setNewName( oldBean.getOldName() ) >> >> not: >> >> newBean.setNewName( map.get("oldName") ) >> >> is that correct, because I think I am in need of #2 >> >> --- >> Thank You… >> >> Mick Knutson, President >> >> BASE Logic, Inc. >> Enterprise Architecture, Design, Mentoring & Agile Consulting >> p. (866) BLiNC-411: (254-6241-1) >> f. (415) 685-4233 >> >> Website: http://www.baselogic.com >> Blog: http://www.baselogic.com/blog/ >> Linked IN: http://linkedin.com/in/mickknutson >> Twitter: http://twitter.com/mickknutson >> Vacation Rental: http://tahoe.baselogic.com >> --- >> >> >> >> On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < >> mat...@sp...> wrote: >> >>> Hi Mick, >>> >>> I can't speak to how Groovy and Spring work, but you are on the right >>> track using a PropertyNameMappingCopier. I would suggest you first try out >>> using it in a programmatic way to make sure it does what you are looking >>> for, then see if you are able to wire it up how you would like with Groovy >>> and Spring. >>> >>> Matt >>> >>> On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: >>> >>>> So looking through this again, I think I can create a copier in Groovy >>>> Spring DSL: >>>> >>>> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >>>> mapping = [ >>>> "sDummySessionID": "sessionID" >>>> , "ivrportnum": "ivrPortNumber" >>>> , "ivrsystem": "ivrSystem" >>>> , "appname": "applicationName" >>>> , "dispatchcode": "dispatchCode" >>>> , "application_sANIID": "aniId" >>>> , "dnis": "dnis" >>>> >>>> ] >>>> } >>>> >>>> >>>> But What I really need to understand, is this mapping issue: >>>> >>>> Servlet.Request (Object) --> CallSession (Object) >>>> >>>> so basically what I am looking at is: >>>> >>>> *callSession.setAni( request.getParameter("application_sANIID") );* >>>> >>>> >>>> Is this mapping possible? >>>> >>>> --- >>>> Thank You… >>>> >>>> Mick Knutson, President >>>> >>>> BASE Logic, Inc. >>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>> p. (866) BLiNC-411: (254-6241-1) >>>> f. (415) 685-4233 >>>> >>>> Website: http://www.baselogic.com >>>> Blog: http://www.baselogic.com/blog/ >>>> Linked IN: http://linkedin.com/in/mickknutson >>>> Twitter: http://twitter.com/mickknutson >>>> Vacation Rental: http://tahoe.baselogic.com >>>> --- >>>> >>>> >>>> >>>> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >>>> mat...@sp...> wrote: >>>> >>>>> Hi Mick, >>>>> >>>>> Sorry about that! The new name is SimpleDelegatingTransformer. >>>>> >>>>> Matt >>>>> >>>>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson <mkn...@ba... >>>>> > wrote: >>>>> >>>>>> I have an interesting issue I am trying to solve in a manageable way. >>>>>> >>>>>> I have a few dozen legacy JSP's that I am phasing out. But I have to >>>>>> do them 1by1. Each page create a POST of ~12 named request parameters that >>>>>> are ALL named different. VERY frustrating as there is no good convention. >>>>>> >>>>>> So, My thought is trying to create a Map for mapping the old names to >>>>>> the new names for each POST: >>>>>> Map reqParam = {"newName", "oldName"} >>>>>> >>>>>> Where I have a new POJO that has set/getNewName(..) >>>>>> >>>>>> >>>>>> Then, somehow copying from these old request properties from my >>>>>> request properties Map to the new one's in my new POJO. >>>>>> >>>>>> Once Mapped, I have no further use for the old names. >>>>>> >>>>>> >>>>>> *Next Post:* >>>>>> >>>>>> Morph seems to have what I think I want, but I have spent the past few >>>>>> hours trying to get a simple example working, and the docs are wrong. It >>>>>> referes to many classes that doe not exist in the jar. >>>>>> >>>>>> I also can not seem to find any other good examples. Can you point any >>>>>> out for me? >>>>>> >>>>>> >>>>>> Specifically, this is missing: >>>>>> >>>>>> >>>>>> <!-- the overall transformer we'll use to do the graph copy --> >>>>>> <bean >>>>>> id="graphTransformer" >>>>>> class="net.sf.morph.transform.DelegatingCopier"> >>>>>> <property name="components"> >>>>>> <list> >>>>>> <ref bean="personCopier"/> >>>>>> <ref bean="vehicleCopier"/> >>>>>> <ref bean="childrenCopier"/> >>>>>> <ref bean="addressConverter"/> >>>>>> </list> >>>>>> </property> >>>>>> </bean> >>>>>> >>>>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>>>> >>>>>> >>>>>> >>>>>> --- >>>>>> Thank You… >>>>>> >>>>>> Mick Knutson, President >>>>>> >>>>>> BASE Logic, Inc. >>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>> f. (415) 685-4233 >>>>>> >>>>>> Website: http://www.baselogic.com >>>>>> Blog: http://www.baselogic.com/blog/ >>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>> Twitter: http://twitter.com/mickknutson >>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>> --- >>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> Download Intel® Parallel Studio Eval >>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>> proactively, and fine-tune applications for parallel performance. >>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>> _______________________________________________ >>>>>> morph-user mailing list >>>>>> mor...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Matthew Sgarlata >>>>> Executive Vice President, Software Development >>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>> 202-210-7102 (phone/teléfono) >>>>> 651-286-2806 (fax) >>>>> >>>>> This message is intended only for the named recipient. If you are not >>>>> the intended recipient, you are notified that disclosing, copying, >>>>> distributing, or taking any action in reliance on the contents of this >>>>> information is strictly prohibited. >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> Download Intel® Parallel Studio Eval >>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>> proactively, and fine-tune applications for parallel performance. >>>>> See why Intel Parallel Studio got high marks during beta. >>>>> http://p.sf.net/sfu/intel-sw-dev >>>>> _______________________________________________ >>>>> morph-user mailing list >>>>> mor...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>> >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> -- >>> Matthew Sgarlata >>> Executive Vice President, Software Development >>> Vicepresidente Ejecutivo de Desarrollo de Software >>> 202-210-7102 (phone/teléfono) >>> 651-286-2806 (fax) >>> >>> This message is intended only for the named recipient. If you are not the >>> intended recipient, you are notified that disclosing, copying, distributing, >>> or taking any action in reliance on the contents of this information is >>> strictly prohibited. >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |
From: Matt S. <mat...@sp...> - 2010-04-26 12:49:16
|
Hi Mick, The SimpleDelegatingTransformer is used to group several transformers together so that any type of transformation can be accomplished. In your case, it looks like you are just trying to map the properties of one object to another object, so you could probably use the PropertyNameMappingCopier directly with no SimpleDelegatingTransformer. If for some reason that does not work for you (e.g. you need to also change property types, not just property names), then the SimpleDelegatingTransformer is the way to go. However, you need to include all the default transformations along with the transformation you specified. So take a look at SimpleDelegatingTransformer's default components, and add those to your definition of the transformer. Put all the standard transformers after your custom transformer. Matt On Sun, Apr 25, 2010 at 12:56 PM, Mick Knutson <mkn...@ba...>wrote: > I am closer. > > I have only one error: > > Could not find a transformer that can transform objects of null to objects > of (class java.lang.String) > > net.sf.morph.transform.TransformationException: Could not find a > transformer that can transform objects of null to objects of (class > java.lang.String) > at > net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:523) > at > net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:435) > at > net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:472) > at > net.sf.morph.transform.transformers.SimpleDelegatingTransformer.convertImpl(SimpleDelegatingTransformer.java:293) > at > net.sf.morph.transform.transformers.BaseTransformer.convert(BaseTransformer.java:368) > at net.sf.morph.util.TransformerUtils.transform(TransformerUtils.java:168) > at > net.sf.morph.transform.copiers.BasePropertyNameCopier.copyProperty(BasePropertyNameCopier.java:160) > at > net.sf.morph.transform.copiers.PropertyNameMappingCopier.copyImpl(PropertyNameMappingCopier.java:138) > at > net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) > at > net.sf.morph.transform.transformers.SimpleDelegatingTransformer.copyImpl(SimpleDelegatingTransformer.java:276) > at > net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) > at > net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:470) > at > com.comcast.uivr.divr.routing.CallTransferController.convertCallSession(CallTransferController.groovy:617) > at > com.comcast.uivr.divr.routing.CallTransferController$convertCallSession.call(Unknown > Source) > at > com.comcast.uivr.divr.routing.CallTransferControllerTests.testSmokeTestCallSessionValueAssignment(CallTransferControllerTests.groovy:22) > at junit.framework.Test$run.call(Unknown Source) > at junit.framework.Test$run.call(Unknown Source) > > > *Here is what is working thus:* > > /** > * These are the Morph Beans for the JSP Adapters > */ > caeCopier(net.sf.morph.transform.copiers.PropertyNameMappingCopier, > false){ > mapping = [ > "sDummySessionID": "sessionID" > , "ivrportnum": "ivrPortNumber" > , "ivrsystem": "ivrSystem" > , "appname": "applicationName" > , "dispatchcode": "dispatchCode" > , "ani": "ani" > , "application_sANIID": "aniId" > , "dnis": "dnis" > , "division": "division" > , "region": "region" > , "callid": "callID" > , "globalzero": "globalZero" > , "bContinueFromAuto": "continueFromAuto" > , "CAE_Att_Soft_Disco": "isSoftDisco" > //, "g_bIsSoftDisco": "isSoftDisco" > , "CAE_Att_Delinquent": "isDelinquent" > //, "g_bIsDelinquent": "isDelinquent" > //, "CAELanguage": language > , "application.Language": "language" > , "np": "nextPage" > , "fform": "firstForm" > , "sAccountNumber": "accountNumber" > //, "application.AccountNumber": accountNumber > , "application.sPhoneID": "phoneID" > , "sDefaultRoutingString": "defaultRoutingString" > , "CAEFunction": "transferFunction" > , "CAETransferReason": "transferReason" > , "callType": "callType" > , "CAELOB": "lob" > , "CAE_Att_VIP": "vip" > , "CAE_Att_SameDayAppointment": "isSameDayAppointment" > , "ucid": "ucid" > ] > > nestedTransformer = ref("transformer") > } > > transformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer){ > components = [ref("caeCopier")] > } > > > --- > Thank You… > > Mick Knutson, President > > BASE Logic, Inc. > Enterprise Architecture, Design, Mentoring & Agile Consulting > p. (866) BLiNC-411: (254-6241-1) > f. (415) 685-4233 > > Website: http://www.baselogic.com > Blog: http://www.baselogic.com/blog/ > Linked IN: http://linkedin.com/in/mickknutson > Twitter: http://twitter.com/mickknutson > Vacation Rental: http://tahoe.baselogic.com > --- > > > > On Thu, Apr 22, 2010 at 4:56 PM, Matt Sgarlata < > mat...@sp...> wrote: > >> Hello again Mick, >> >> If there is a Reflector for the bean you are trying to read from, the >> properties will be read as expected. HttpServletRequests have a standard >> reflector that is included by Morph by default. Maps also have reflectors >> so their contents are read rather than looking at the Map's bean properties >> using Java reflection. I'm not clear if your request and session are >> Servlet requests and sessions or some other type of requests and sessions. >> If they are from the Servlet spec you are in good shape. If they are from >> some other API, you may need to write a custom reflector. >> >> You can look at SimpleDelegatingReflector.createDefaultComponents() to see >> what special type of reflectors are included with Morph, beyond simple Java >> reflection. >> >> Does that answer your question? >> >> Matt >> >> On Thu, Apr 22, 2010 at 4:51 PM, Mick Knutson <mkn...@ba...>wrote: >> >>> But that is what I am wondering about. My assumtion is the framework will >>> do this >>> >>> newBean.setNewName( oldBean.getOldName() ) >>> >>> not: >>> >>> newBean.setNewName( map.get("oldName") ) >>> >>> is that correct, because I think I am in need of #2 >>> >>> --- >>> Thank You… >>> >>> Mick Knutson, President >>> >>> BASE Logic, Inc. >>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>> p. (866) BLiNC-411: (254-6241-1) >>> f. (415) 685-4233 >>> >>> Website: http://www.baselogic.com >>> Blog: http://www.baselogic.com/blog/ >>> Linked IN: http://linkedin.com/in/mickknutson >>> Twitter: http://twitter.com/mickknutson >>> Vacation Rental: http://tahoe.baselogic.com >>> --- >>> >>> >>> >>> On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < >>> mat...@sp...> wrote: >>> >>>> Hi Mick, >>>> >>>> I can't speak to how Groovy and Spring work, but you are on the right >>>> track using a PropertyNameMappingCopier. I would suggest you first try out >>>> using it in a programmatic way to make sure it does what you are looking >>>> for, then see if you are able to wire it up how you would like with Groovy >>>> and Spring. >>>> >>>> Matt >>>> >>>> On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: >>>> >>>>> So looking through this again, I think I can create a copier in Groovy >>>>> Spring DSL: >>>>> >>>>> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >>>>> mapping = [ >>>>> "sDummySessionID": "sessionID" >>>>> , "ivrportnum": "ivrPortNumber" >>>>> , "ivrsystem": "ivrSystem" >>>>> , "appname": "applicationName" >>>>> , "dispatchcode": "dispatchCode" >>>>> , "application_sANIID": "aniId" >>>>> , "dnis": "dnis" >>>>> >>>>> ] >>>>> } >>>>> >>>>> >>>>> But What I really need to understand, is this mapping issue: >>>>> >>>>> Servlet.Request (Object) --> CallSession (Object) >>>>> >>>>> so basically what I am looking at is: >>>>> >>>>> *callSession.setAni( request.getParameter("application_sANIID") );* >>>>> >>>>> >>>>> Is this mapping possible? >>>>> >>>>> --- >>>>> Thank You… >>>>> >>>>> Mick Knutson, President >>>>> >>>>> BASE Logic, Inc. >>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>> p. (866) BLiNC-411: (254-6241-1) >>>>> f. (415) 685-4233 >>>>> >>>>> Website: http://www.baselogic.com >>>>> Blog: http://www.baselogic.com/blog/ >>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>> Twitter: http://twitter.com/mickknutson >>>>> Vacation Rental: http://tahoe.baselogic.com >>>>> --- >>>>> >>>>> >>>>> >>>>> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >>>>> mat...@sp...> wrote: >>>>> >>>>>> Hi Mick, >>>>>> >>>>>> Sorry about that! The new name is SimpleDelegatingTransformer. >>>>>> >>>>>> Matt >>>>>> >>>>>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson < >>>>>> mkn...@ba...> wrote: >>>>>> >>>>>>> I have an interesting issue I am trying to solve in a manageable way. >>>>>>> >>>>>>> I have a few dozen legacy JSP's that I am phasing out. But I have to >>>>>>> do them 1by1. Each page create a POST of ~12 named request parameters that >>>>>>> are ALL named different. VERY frustrating as there is no good convention. >>>>>>> >>>>>>> So, My thought is trying to create a Map for mapping the old names to >>>>>>> the new names for each POST: >>>>>>> Map reqParam = {"newName", "oldName"} >>>>>>> >>>>>>> Where I have a new POJO that has set/getNewName(..) >>>>>>> >>>>>>> >>>>>>> Then, somehow copying from these old request properties from my >>>>>>> request properties Map to the new one's in my new POJO. >>>>>>> >>>>>>> Once Mapped, I have no further use for the old names. >>>>>>> >>>>>>> >>>>>>> *Next Post:* >>>>>>> >>>>>>> Morph seems to have what I think I want, but I have spent the past >>>>>>> few hours trying to get a simple example working, and the docs are wrong. It >>>>>>> referes to many classes that doe not exist in the jar. >>>>>>> >>>>>>> I also can not seem to find any other good examples. Can you point >>>>>>> any out for me? >>>>>>> >>>>>>> >>>>>>> Specifically, this is missing: >>>>>>> >>>>>>> <!-- the overall transformer we'll use to do the graph copy --> >>>>>>> <bean >>>>>>> id="graphTransformer" >>>>>>> class="net.sf.morph.transform.DelegatingCopier"> >>>>>>> <property name="components"> >>>>>>> <list> >>>>>>> <ref bean="personCopier"/> >>>>>>> <ref bean="vehicleCopier"/> >>>>>>> <ref bean="childrenCopier"/> >>>>>>> <ref bean="addressConverter"/> >>>>>>> </list> >>>>>>> </property> >>>>>>> </bean> >>>>>>> >>>>>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>>>>> >>>>>>> >>>>>>> >>>>>>> --- >>>>>>> Thank You… >>>>>>> >>>>>>> Mick Knutson, President >>>>>>> >>>>>>> BASE Logic, Inc. >>>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>>> f. (415) 685-4233 >>>>>>> >>>>>>> Website: http://www.baselogic.com >>>>>>> Blog: http://www.baselogic.com/blog/ >>>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>>> Twitter: http://twitter.com/mickknutson >>>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>>> --- >>>>>>> >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> Download Intel® Parallel Studio Eval >>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>> _______________________________________________ >>>>>>> morph-user mailing list >>>>>>> mor...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Matthew Sgarlata >>>>>> Executive Vice President, Software Development >>>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>>> 202-210-7102 (phone/teléfono) >>>>>> 651-286-2806 (fax) >>>>>> >>>>>> This message is intended only for the named recipient. If you are not >>>>>> the intended recipient, you are notified that disclosing, copying, >>>>>> distributing, or taking any action in reliance on the contents of this >>>>>> information is strictly prohibited. >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> Download Intel® Parallel Studio Eval >>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>> proactively, and fine-tune applications for parallel performance. >>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>> _______________________________________________ >>>>>> morph-user mailing list >>>>>> mor...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>> >>>>>> >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> >>>>> _______________________________________________ >>>>> morph-user mailing list >>>>> mor...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>> >>>>> >>>> >>>> >>>> -- >>>> Matthew Sgarlata >>>> Executive Vice President, Software Development >>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>> 202-210-7102 (phone/teléfono) >>>> 651-286-2806 (fax) >>>> >>>> This message is intended only for the named recipient. If you are not >>>> the intended recipient, you are notified that disclosing, copying, >>>> distributing, or taking any action in reliance on the contents of this >>>> information is strictly prohibited. >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > -- Matthew Sgarlata Executive Vice President, Software Development Vicepresidente Ejecutivo de Desarrollo de Software 202-210-7102 (phone/teléfono) 651-286-2806 (fax) This message is intended only for the named recipient. If you are not the intended recipient, you are notified that disclosing, copying, distributing, or taking any action in reliance on the contents of this information is strictly prohibited. |
From: Matt B. <gud...@gm...> - 2010-04-26 13:14:36
|
Don't forget that in newer iterations of Morph, SimpleDelegatingTransformer has a constructor that takes a second boolean argument which, when true, will append the default transformers after the specified custom transformers. On 4/26/10, Matt Sgarlata <mat...@sp...> wrote: > Hi Mick, > > The SimpleDelegatingTransformer is used to group several transformers > together so that any type of transformation can be accomplished. In your > case, it looks like you are just trying to map the properties of one object > to another object, so you could probably use the PropertyNameMappingCopier > directly with no SimpleDelegatingTransformer. > > If for some reason that does not work for you (e.g. you need to also change > property types, not just property names), then the > SimpleDelegatingTransformer is the way to go. However, you need to include > all the default transformations along with the transformation you > specified. So take a look at SimpleDelegatingTransformer's default > components, and add those to your definition of the transformer. Put all > the standard transformers after your custom transformer. > > Matt > > On Sun, Apr 25, 2010 at 12:56 PM, Mick Knutson > <mkn...@ba...>wrote: > >> I am closer. >> >> I have only one error: >> >> Could not find a transformer that can transform objects of null to objects >> of (class java.lang.String) >> >> net.sf.morph.transform.TransformationException: Could not find a >> transformer that can transform objects of null to objects of (class >> java.lang.String) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:523) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:435) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:472) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.convertImpl(SimpleDelegatingTransformer.java:293) >> at >> net.sf.morph.transform.transformers.BaseTransformer.convert(BaseTransformer.java:368) >> at net.sf.morph.util.TransformerUtils.transform(TransformerUtils.java:168) >> at >> net.sf.morph.transform.copiers.BasePropertyNameCopier.copyProperty(BasePropertyNameCopier.java:160) >> at >> net.sf.morph.transform.copiers.PropertyNameMappingCopier.copyImpl(PropertyNameMappingCopier.java:138) >> at >> net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.copyImpl(SimpleDelegatingTransformer.java:276) >> at >> net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) >> at >> net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:470) >> at >> com.comcast.uivr.divr.routing.CallTransferController.convertCallSession(CallTransferController.groovy:617) >> at >> com.comcast.uivr.divr.routing.CallTransferController$convertCallSession.call(Unknown >> Source) >> at >> com.comcast.uivr.divr.routing.CallTransferControllerTests.testSmokeTestCallSessionValueAssignment(CallTransferControllerTests.groovy:22) >> at junit.framework.Test$run.call(Unknown Source) >> at junit.framework.Test$run.call(Unknown Source) >> >> >> *Here is what is working thus:* >> >> /** >> * These are the Morph Beans for the JSP Adapters >> */ >> caeCopier(net.sf.morph.transform.copiers.PropertyNameMappingCopier, >> false){ >> mapping = [ >> "sDummySessionID": "sessionID" >> , "ivrportnum": "ivrPortNumber" >> , "ivrsystem": "ivrSystem" >> , "appname": "applicationName" >> , "dispatchcode": "dispatchCode" >> , "ani": "ani" >> , "application_sANIID": "aniId" >> , "dnis": "dnis" >> , "division": "division" >> , "region": "region" >> , "callid": "callID" >> , "globalzero": "globalZero" >> , "bContinueFromAuto": "continueFromAuto" >> , "CAE_Att_Soft_Disco": "isSoftDisco" >> //, "g_bIsSoftDisco": "isSoftDisco" >> , "CAE_Att_Delinquent": "isDelinquent" >> //, "g_bIsDelinquent": "isDelinquent" >> //, "CAELanguage": language >> , "application.Language": "language" >> , "np": "nextPage" >> , "fform": "firstForm" >> , "sAccountNumber": "accountNumber" >> //, "application.AccountNumber": accountNumber >> , "application.sPhoneID": "phoneID" >> , "sDefaultRoutingString": "defaultRoutingString" >> , "CAEFunction": "transferFunction" >> , "CAETransferReason": "transferReason" >> , "callType": "callType" >> , "CAELOB": "lob" >> , "CAE_Att_VIP": "vip" >> , "CAE_Att_SameDayAppointment": "isSameDayAppointment" >> , "ucid": "ucid" >> ] >> >> nestedTransformer = ref("transformer") >> } >> >> >> transformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer){ >> components = [ref("caeCopier")] >> } >> >> >> --- >> Thank You… >> >> Mick Knutson, President >> >> BASE Logic, Inc. >> Enterprise Architecture, Design, Mentoring & Agile Consulting >> p. (866) BLiNC-411: (254-6241-1) >> f. (415) 685-4233 >> >> Website: http://www.baselogic.com >> Blog: http://www.baselogic.com/blog/ >> Linked IN: http://linkedin.com/in/mickknutson >> Twitter: http://twitter.com/mickknutson >> Vacation Rental: http://tahoe.baselogic.com >> --- >> >> >> >> On Thu, Apr 22, 2010 at 4:56 PM, Matt Sgarlata < >> mat...@sp...> wrote: >> >>> Hello again Mick, >>> >>> If there is a Reflector for the bean you are trying to read from, the >>> properties will be read as expected. HttpServletRequests have a standard >>> reflector that is included by Morph by default. Maps also have >>> reflectors >>> so their contents are read rather than looking at the Map's bean >>> properties >>> using Java reflection. I'm not clear if your request and session are >>> Servlet requests and sessions or some other type of requests and >>> sessions. >>> If they are from the Servlet spec you are in good shape. If they are >>> from >>> some other API, you may need to write a custom reflector. >>> >>> You can look at SimpleDelegatingReflector.createDefaultComponents() to >>> see >>> what special type of reflectors are included with Morph, beyond simple >>> Java >>> reflection. >>> >>> Does that answer your question? >>> >>> Matt >>> >>> On Thu, Apr 22, 2010 at 4:51 PM, Mick Knutson >>> <mkn...@ba...>wrote: >>> >>>> But that is what I am wondering about. My assumtion is the framework >>>> will >>>> do this >>>> >>>> newBean.setNewName( oldBean.getOldName() ) >>>> >>>> not: >>>> >>>> newBean.setNewName( map.get("oldName") ) >>>> >>>> is that correct, because I think I am in need of #2 >>>> >>>> --- >>>> Thank You… >>>> >>>> Mick Knutson, President >>>> >>>> BASE Logic, Inc. >>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>> p. (866) BLiNC-411: (254-6241-1) >>>> f. (415) 685-4233 >>>> >>>> Website: http://www.baselogic.com >>>> Blog: http://www.baselogic.com/blog/ >>>> Linked IN: http://linkedin.com/in/mickknutson >>>> Twitter: http://twitter.com/mickknutson >>>> Vacation Rental: http://tahoe.baselogic.com >>>> --- >>>> >>>> >>>> >>>> On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < >>>> mat...@sp...> wrote: >>>> >>>>> Hi Mick, >>>>> >>>>> I can't speak to how Groovy and Spring work, but you are on the right >>>>> track using a PropertyNameMappingCopier. I would suggest you first try >>>>> out >>>>> using it in a programmatic way to make sure it does what you are >>>>> looking >>>>> for, then see if you are able to wire it up how you would like with >>>>> Groovy >>>>> and Spring. >>>>> >>>>> Matt >>>>> >>>>> On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson >>>>> <mkn...@ba...>wrote: >>>>> >>>>>> So looking through this again, I think I can create a copier in Groovy >>>>>> Spring DSL: >>>>>> >>>>>> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >>>>>> mapping = [ >>>>>> "sDummySessionID": "sessionID" >>>>>> , "ivrportnum": "ivrPortNumber" >>>>>> , "ivrsystem": "ivrSystem" >>>>>> , "appname": "applicationName" >>>>>> , "dispatchcode": "dispatchCode" >>>>>> , "application_sANIID": "aniId" >>>>>> , "dnis": "dnis" >>>>>> >>>>>> ] >>>>>> } >>>>>> >>>>>> >>>>>> But What I really need to understand, is this mapping issue: >>>>>> >>>>>> Servlet.Request (Object) --> CallSession (Object) >>>>>> >>>>>> so basically what I am looking at is: >>>>>> >>>>>> *callSession.setAni( request.getParameter("application_sANIID") );* >>>>>> >>>>>> >>>>>> Is this mapping possible? >>>>>> >>>>>> --- >>>>>> Thank You… >>>>>> >>>>>> Mick Knutson, President >>>>>> >>>>>> BASE Logic, Inc. >>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>> f. (415) 685-4233 >>>>>> >>>>>> Website: http://www.baselogic.com >>>>>> Blog: http://www.baselogic.com/blog/ >>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>> Twitter: http://twitter.com/mickknutson >>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>> --- >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >>>>>> mat...@sp...> wrote: >>>>>> >>>>>>> Hi Mick, >>>>>>> >>>>>>> Sorry about that! The new name is SimpleDelegatingTransformer. >>>>>>> >>>>>>> Matt >>>>>>> >>>>>>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson < >>>>>>> mkn...@ba...> wrote: >>>>>>> >>>>>>>> I have an interesting issue I am trying to solve in a manageable >>>>>>>> way. >>>>>>>> >>>>>>>> I have a few dozen legacy JSP's that I am phasing out. But I have to >>>>>>>> do them 1by1. Each page create a POST of ~12 named request >>>>>>>> parameters that >>>>>>>> are ALL named different. VERY frustrating as there is no good >>>>>>>> convention. >>>>>>>> >>>>>>>> So, My thought is trying to create a Map for mapping the old names >>>>>>>> to >>>>>>>> the new names for each POST: >>>>>>>> Map reqParam = {"newName", "oldName"} >>>>>>>> >>>>>>>> Where I have a new POJO that has set/getNewName(..) >>>>>>>> >>>>>>>> >>>>>>>> Then, somehow copying from these old request properties from my >>>>>>>> request properties Map to the new one's in my new POJO. >>>>>>>> >>>>>>>> Once Mapped, I have no further use for the old names. >>>>>>>> >>>>>>>> >>>>>>>> *Next Post:* >>>>>>>> >>>>>>>> Morph seems to have what I think I want, but I have spent the past >>>>>>>> few hours trying to get a simple example working, and the docs are >>>>>>>> wrong. It >>>>>>>> referes to many classes that doe not exist in the jar. >>>>>>>> >>>>>>>> I also can not seem to find any other good examples. Can you point >>>>>>>> any out for me? >>>>>>>> >>>>>>>> >>>>>>>> Specifically, this is missing: >>>>>>>> >>>>>>>> <!-- the overall transformer we'll use to do the graph copy --> >>>>>>>> <bean >>>>>>>> id="graphTransformer" >>>>>>>> class="net.sf.morph.transform.DelegatingCopier"> >>>>>>>> <property name="components"> >>>>>>>> <list> >>>>>>>> <ref bean="personCopier"/> >>>>>>>> <ref bean="vehicleCopier"/> >>>>>>>> <ref bean="childrenCopier"/> >>>>>>>> <ref bean="addressConverter"/> >>>>>>>> </list> >>>>>>>> </property> >>>>>>>> </bean> >>>>>>>> >>>>>>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> --- >>>>>>>> Thank You… >>>>>>>> >>>>>>>> Mick Knutson, President >>>>>>>> >>>>>>>> BASE Logic, Inc. >>>>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>>>> f. (415) 685-4233 >>>>>>>> >>>>>>>> Website: http://www.baselogic.com >>>>>>>> Blog: http://www.baselogic.com/blog/ >>>>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>>>> Twitter: http://twitter.com/mickknutson >>>>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>>>> --- >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------------ >>>>>>>> Download Intel® Parallel Studio Eval >>>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>>> _______________________________________________ >>>>>>>> morph-user mailing list >>>>>>>> mor...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Matthew Sgarlata >>>>>>> Executive Vice President, Software Development >>>>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>>>> 202-210-7102 (phone/teléfono) >>>>>>> 651-286-2806 (fax) >>>>>>> >>>>>>> This message is intended only for the named recipient. If you are not >>>>>>> the intended recipient, you are notified that disclosing, copying, >>>>>>> distributing, or taking any action in reliance on the contents of >>>>>>> this >>>>>>> information is strictly prohibited. >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> Download Intel® Parallel Studio Eval >>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>> _______________________________________________ >>>>>>> morph-user mailing list >>>>>>> mor...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> morph-user mailing list >>>>>> mor...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Matthew Sgarlata >>>>> Executive Vice President, Software Development >>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>> 202-210-7102 (phone/teléfono) >>>>> 651-286-2806 (fax) >>>>> >>>>> This message is intended only for the named recipient. If you are not >>>>> the intended recipient, you are notified that disclosing, copying, >>>>> distributing, or taking any action in reliance on the contents of this >>>>> information is strictly prohibited. >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> >>>>> _______________________________________________ >>>>> morph-user mailing list >>>>> mor...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>> >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > -- > Matthew Sgarlata > Executive Vice President, Software Development > Vicepresidente Ejecutivo de Desarrollo de Software > 202-210-7102 (phone/teléfono) > 651-286-2806 (fax) > > This message is intended only for the named recipient. If you are not the > intended recipient, you are notified that disclosing, copying, distributing, > or taking any action in reliance on the contents of this information is > strictly prohibited. > |
From: Mick K. <mkn...@ba...> - 2010-04-26 17:48:12
|
I tried just my Copier but still get: Could not find a transformer that can transform objects of null to objects of (class java.lang.String) net.sf.morph.transform.TransformationException: Could not find a transformer that can transform objects of null to objects of (class java.lang.String) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:523) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:435) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:472) at net.sf.morph.transform.transformers.SimpleDelegatingTransformer.convertImpl(SimpleDelegatingTransformer.java:293) at net.sf.morph.transform.transformers.BaseTransformer.convert(BaseTransformer.java:368) at net.sf.morph.util.TransformerUtils.transform(TransformerUtils.java:168) at net.sf.morph.transform.copiers.BasePropertyNameCopier.copyProperty(BasePropertyNameCopier.java:160) at net.sf.morph.transform.copiers.PropertyNameMappingCopier.copyImpl(PropertyNameMappingCopier.java:138) at net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) at net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:470) at com.comcast.uivr.divr.routing.CallTransferController.convertCallSession(CallTransferController.groovy:603) at com.comcast.uivr.divr.routing.CallTransferController$convertCallSession.call(Unknown Source) at com.comcast.uivr.divr.routing.CallTransferControllerTests.testSmokeTestCallSessionValueAssignment(CallTransferControllerTests.groovy:21) at junit.framework.Test$run.call(Unknown Source) at junit.framework.Test$run.call(Unknown Source) * * * * --- Thank You… Mick Knutson, President BASE Logic, Inc. Enterprise Architecture, Design, Mentoring & Agile Consulting p. (866) BLiNC-411: (254-6241-1) f. (415) 685-4233 Website: http://www.baselogic.com Blog: http://www.baselogic.com/blog/ Linked IN: http://linkedin.com/in/mickknutson Twitter: http://twitter.com/mickknutson Vacation Rental: http://tahoe.baselogic.com --- On Mon, Apr 26, 2010 at 8:49 AM, Matt Sgarlata < mat...@sp...> wrote: > Hi Mick, > > The SimpleDelegatingTransformer is used to group several transformers > together so that any type of transformation can be accomplished. In your > case, it looks like you are just trying to map the properties of one object > to another object, so you could probably use the PropertyNameMappingCopier > directly with no SimpleDelegatingTransformer. > > If for some reason that does not work for you (e.g. you need to also change > property types, not just property names), then the > SimpleDelegatingTransformer is the way to go. However, you need to include > all the default transformations along with the transformation you > specified. So take a look at SimpleDelegatingTransformer's default > components, and add those to your definition of the transformer. Put all > the standard transformers after your custom transformer. > > Matt > > On Sun, Apr 25, 2010 at 12:56 PM, Mick Knutson <mkn...@ba...>wrote: > >> I am closer. >> >> I have only one error: >> >> Could not find a transformer that can transform objects of null to objects >> of (class java.lang.String) >> >> net.sf.morph.transform.TransformationException: Could not find a >> transformer that can transform objects of null to objects of (class >> java.lang.String) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:523) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:435) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.getTransformer(SimpleDelegatingTransformer.java:472) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.convertImpl(SimpleDelegatingTransformer.java:293) >> at >> net.sf.morph.transform.transformers.BaseTransformer.convert(BaseTransformer.java:368) >> at net.sf.morph.util.TransformerUtils.transform(TransformerUtils.java:168) >> at >> net.sf.morph.transform.copiers.BasePropertyNameCopier.copyProperty(BasePropertyNameCopier.java:160) >> at >> net.sf.morph.transform.copiers.PropertyNameMappingCopier.copyImpl(PropertyNameMappingCopier.java:138) >> at >> net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) >> at >> net.sf.morph.transform.transformers.SimpleDelegatingTransformer.copyImpl(SimpleDelegatingTransformer.java:276) >> at >> net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:504) >> at >> net.sf.morph.transform.transformers.BaseTransformer.copy(BaseTransformer.java:470) >> at >> com.comcast.uivr.divr.routing.CallTransferController.convertCallSession(CallTransferController.groovy:617) >> at >> com.comcast.uivr.divr.routing.CallTransferController$convertCallSession.call(Unknown >> Source) >> at >> com.comcast.uivr.divr.routing.CallTransferControllerTests.testSmokeTestCallSessionValueAssignment(CallTransferControllerTests.groovy:22) >> at junit.framework.Test$run.call(Unknown Source) >> at junit.framework.Test$run.call(Unknown Source) >> >> >> *Here is what is working thus:* >> >> /** >> * These are the Morph Beans for the JSP Adapters >> */ >> caeCopier(net.sf.morph.transform.copiers.PropertyNameMappingCopier, >> false){ >> mapping = [ >> "sDummySessionID": "sessionID" >> , "ivrportnum": "ivrPortNumber" >> , "ivrsystem": "ivrSystem" >> , "appname": "applicationName" >> , "dispatchcode": "dispatchCode" >> , "ani": "ani" >> , "application_sANIID": "aniId" >> , "dnis": "dnis" >> , "division": "division" >> , "region": "region" >> , "callid": "callID" >> , "globalzero": "globalZero" >> , "bContinueFromAuto": "continueFromAuto" >> , "CAE_Att_Soft_Disco": "isSoftDisco" >> //, "g_bIsSoftDisco": "isSoftDisco" >> , "CAE_Att_Delinquent": "isDelinquent" >> //, "g_bIsDelinquent": "isDelinquent" >> //, "CAELanguage": language >> , "application.Language": "language" >> , "np": "nextPage" >> , "fform": "firstForm" >> , "sAccountNumber": "accountNumber" >> //, "application.AccountNumber": accountNumber >> , "application.sPhoneID": "phoneID" >> , "sDefaultRoutingString": "defaultRoutingString" >> , "CAEFunction": "transferFunction" >> , "CAETransferReason": "transferReason" >> , "callType": "callType" >> , "CAELOB": "lob" >> , "CAE_Att_VIP": "vip" >> , "CAE_Att_SameDayAppointment": "isSameDayAppointment" >> , "ucid": "ucid" >> ] >> >> nestedTransformer = ref("transformer") >> } >> >> transformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer){ >> components = [ref("caeCopier")] >> } >> >> >> --- >> Thank You… >> >> Mick Knutson, President >> >> BASE Logic, Inc. >> Enterprise Architecture, Design, Mentoring & Agile Consulting >> p. (866) BLiNC-411: (254-6241-1) >> f. (415) 685-4233 >> >> Website: http://www.baselogic.com >> Blog: http://www.baselogic.com/blog/ >> Linked IN: http://linkedin.com/in/mickknutson >> Twitter: http://twitter.com/mickknutson >> Vacation Rental: http://tahoe.baselogic.com >> --- >> >> >> >> On Thu, Apr 22, 2010 at 4:56 PM, Matt Sgarlata < >> mat...@sp...> wrote: >> >>> Hello again Mick, >>> >>> If there is a Reflector for the bean you are trying to read from, the >>> properties will be read as expected. HttpServletRequests have a standard >>> reflector that is included by Morph by default. Maps also have reflectors >>> so their contents are read rather than looking at the Map's bean properties >>> using Java reflection. I'm not clear if your request and session are >>> Servlet requests and sessions or some other type of requests and sessions. >>> If they are from the Servlet spec you are in good shape. If they are from >>> some other API, you may need to write a custom reflector. >>> >>> You can look at SimpleDelegatingReflector.createDefaultComponents() to >>> see what special type of reflectors are included with Morph, beyond simple >>> Java reflection. >>> >>> Does that answer your question? >>> >>> Matt >>> >>> On Thu, Apr 22, 2010 at 4:51 PM, Mick Knutson <mkn...@ba...>wrote: >>> >>>> But that is what I am wondering about. My assumtion is the framework >>>> will do this >>>> >>>> newBean.setNewName( oldBean.getOldName() ) >>>> >>>> not: >>>> >>>> newBean.setNewName( map.get("oldName") ) >>>> >>>> is that correct, because I think I am in need of #2 >>>> >>>> --- >>>> Thank You… >>>> >>>> Mick Knutson, President >>>> >>>> BASE Logic, Inc. >>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>> p. (866) BLiNC-411: (254-6241-1) >>>> f. (415) 685-4233 >>>> >>>> Website: http://www.baselogic.com >>>> Blog: http://www.baselogic.com/blog/ >>>> Linked IN: http://linkedin.com/in/mickknutson >>>> Twitter: http://twitter.com/mickknutson >>>> Vacation Rental: http://tahoe.baselogic.com >>>> --- >>>> >>>> >>>> >>>> On Thu, Apr 22, 2010 at 4:20 PM, Matt Sgarlata < >>>> mat...@sp...> wrote: >>>> >>>>> Hi Mick, >>>>> >>>>> I can't speak to how Groovy and Spring work, but you are on the right >>>>> track using a PropertyNameMappingCopier. I would suggest you first try out >>>>> using it in a programmatic way to make sure it does what you are looking >>>>> for, then see if you are able to wire it up how you would like with Groovy >>>>> and Spring. >>>>> >>>>> Matt >>>>> >>>>> On Thu, Apr 22, 2010 at 2:17 PM, Mick Knutson <mkn...@ba...>wrote: >>>>> >>>>>> So looking through this again, I think I can create a copier in Groovy >>>>>> Spring DSL: >>>>>> >>>>>> caeCopier(net.sf.morph.transform.copiers.PropertyNameMatchingCopier){ >>>>>> mapping = [ >>>>>> "sDummySessionID": "sessionID" >>>>>> , "ivrportnum": "ivrPortNumber" >>>>>> , "ivrsystem": "ivrSystem" >>>>>> , "appname": "applicationName" >>>>>> , "dispatchcode": "dispatchCode" >>>>>> , "application_sANIID": "aniId" >>>>>> , "dnis": "dnis" >>>>>> >>>>>> ] >>>>>> } >>>>>> >>>>>> >>>>>> But What I really need to understand, is this mapping issue: >>>>>> >>>>>> Servlet.Request (Object) --> CallSession (Object) >>>>>> >>>>>> so basically what I am looking at is: >>>>>> >>>>>> *callSession.setAni( request.getParameter("application_sANIID") );* >>>>>> >>>>>> >>>>>> Is this mapping possible? >>>>>> >>>>>> --- >>>>>> Thank You… >>>>>> >>>>>> Mick Knutson, President >>>>>> >>>>>> BASE Logic, Inc. >>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>> f. (415) 685-4233 >>>>>> >>>>>> Website: http://www.baselogic.com >>>>>> Blog: http://www.baselogic.com/blog/ >>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>> Twitter: http://twitter.com/mickknutson >>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>> --- >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Apr 19, 2010 at 10:13 AM, Matt Sgarlata < >>>>>> mat...@sp...> wrote: >>>>>> >>>>>>> Hi Mick, >>>>>>> >>>>>>> Sorry about that! The new name is SimpleDelegatingTransformer. >>>>>>> >>>>>>> Matt >>>>>>> >>>>>>> On Mon, Apr 19, 2010 at 10:08 AM, Mick Knutson < >>>>>>> mkn...@ba...> wrote: >>>>>>> >>>>>>>> I have an interesting issue I am trying to solve in a manageable >>>>>>>> way. >>>>>>>> >>>>>>>> I have a few dozen legacy JSP's that I am phasing out. But I have to >>>>>>>> do them 1by1. Each page create a POST of ~12 named request parameters that >>>>>>>> are ALL named different. VERY frustrating as there is no good convention. >>>>>>>> >>>>>>>> So, My thought is trying to create a Map for mapping the old names >>>>>>>> to the new names for each POST: >>>>>>>> Map reqParam = {"newName", "oldName"} >>>>>>>> >>>>>>>> Where I have a new POJO that has set/getNewName(..) >>>>>>>> >>>>>>>> >>>>>>>> Then, somehow copying from these old request properties from my >>>>>>>> request properties Map to the new one's in my new POJO. >>>>>>>> >>>>>>>> Once Mapped, I have no further use for the old names. >>>>>>>> >>>>>>>> >>>>>>>> *Next Post:* >>>>>>>> >>>>>>>> Morph seems to have what I think I want, but I have spent the past >>>>>>>> few hours trying to get a simple example working, and the docs are wrong. It >>>>>>>> referes to many classes that doe not exist in the jar. >>>>>>>> >>>>>>>> I also can not seem to find any other good examples. Can you point >>>>>>>> any out for me? >>>>>>>> >>>>>>>> >>>>>>>> Specifically, this is missing: >>>>>>>> >>>>>>>> >>>>>>>> <!-- the overall transformer we'll use to do the graph copy --> >>>>>>>> <bean >>>>>>>> id="graphTransformer" >>>>>>>> class="net.sf.morph.transform.DelegatingCopier"> >>>>>>>> <property name="components"> >>>>>>>> <list> >>>>>>>> <ref bean="personCopier"/> >>>>>>>> <ref bean="vehicleCopier"/> >>>>>>>> <ref bean="childrenCopier"/> >>>>>>>> <ref bean="addressConverter"/> >>>>>>>> </list> >>>>>>>> </property> >>>>>>>> </bean> >>>>>>>> >>>>>>>> *MISSING from the code: net.sf.morph.transform.DelegatingCopier* >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> --- >>>>>>>> Thank You… >>>>>>>> >>>>>>>> Mick Knutson, President >>>>>>>> >>>>>>>> BASE Logic, Inc. >>>>>>>> Enterprise Architecture, Design, Mentoring & Agile Consulting >>>>>>>> p. (866) BLiNC-411: (254-6241-1) >>>>>>>> f. (415) 685-4233 >>>>>>>> >>>>>>>> Website: http://www.baselogic.com >>>>>>>> Blog: http://www.baselogic.com/blog/ >>>>>>>> Linked IN: http://linkedin.com/in/mickknutson >>>>>>>> Twitter: http://twitter.com/mickknutson >>>>>>>> Vacation Rental: http://tahoe.baselogic.com >>>>>>>> --- >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> ------------------------------------------------------------------------------ >>>>>>>> Download Intel® Parallel Studio Eval >>>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>>> _______________________________________________ >>>>>>>> morph-user mailing list >>>>>>>> mor...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Matthew Sgarlata >>>>>>> Executive Vice President, Software Development >>>>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>>>> 202-210-7102 (phone/teléfono) >>>>>>> 651-286-2806 (fax) >>>>>>> >>>>>>> This message is intended only for the named recipient. If you are not >>>>>>> the intended recipient, you are notified that disclosing, copying, >>>>>>> distributing, or taking any action in reliance on the contents of this >>>>>>> information is strictly prohibited. >>>>>>> >>>>>>> >>>>>>> ------------------------------------------------------------------------------ >>>>>>> Download Intel® Parallel Studio Eval >>>>>>> Try the new software tools for yourself. Speed compiling, find bugs >>>>>>> proactively, and fine-tune applications for parallel performance. >>>>>>> See why Intel Parallel Studio got high marks during beta. >>>>>>> http://p.sf.net/sfu/intel-sw-dev >>>>>>> _______________________________________________ >>>>>>> morph-user mailing list >>>>>>> mor...@li... >>>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> morph-user mailing list >>>>>> mor...@li... >>>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Matthew Sgarlata >>>>> Executive Vice President, Software Development >>>>> Vicepresidente Ejecutivo de Desarrollo de Software >>>>> 202-210-7102 (phone/teléfono) >>>>> 651-286-2806 (fax) >>>>> >>>>> This message is intended only for the named recipient. If you are not >>>>> the intended recipient, you are notified that disclosing, copying, >>>>> distributing, or taking any action in reliance on the contents of this >>>>> information is strictly prohibited. >>>>> >>>>> >>>>> ------------------------------------------------------------------------------ >>>>> >>>>> >>>>> _______________________________________________ >>>>> morph-user mailing list >>>>> mor...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>>> >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> >>>> _______________________________________________ >>>> morph-user mailing list >>>> mor...@li... >>>> https://lists.sourceforge.net/lists/listinfo/morph-user >>>> >>>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> >>> >>> _______________________________________________ >>> morph-user mailing list >>> mor...@li... >>> https://lists.sourceforge.net/lists/listinfo/morph-user >>> >>> >> >> >> ------------------------------------------------------------------------------ >> >> >> _______________________________________________ >> morph-user mailing list >> mor...@li... >> https://lists.sourceforge.net/lists/listinfo/morph-user >> >> > > > -- > Matthew Sgarlata > Executive Vice President, Software Development > Vicepresidente Ejecutivo de Desarrollo de Software > 202-210-7102 (phone/teléfono) > 651-286-2806 (fax) > > This message is intended only for the named recipient. If you are not the > intended recipient, you are notified that disclosing, copying, distributing, > or taking any action in reliance on the contents of this information is > strictly prohibited. > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |
From: Mick K. <mkn...@ba...> - 2010-04-26 18:40:35
|
I even tried: simpleDelegatingTransformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer, ref("caeCopier"), false){ components = [ref("caeCopier")] } But still the same error |
From: Matt S. <mat...@sp...> - 2010-04-26 20:08:11
|
Hi Mitch, Try true instead of false. Hopefully that will do the trick. Matt On Mon, Apr 26, 2010 at 2:13 PM, Mick Knutson <mkn...@ba...>wrote: > I even tried: > > simpleDelegatingTransformer(net.sf.morph.transform.transformers.SimpleDelegatingTransformer, > ref("caeCopier"), false){ > components = [ref("caeCopier")] > } > > But still the same error > > > ------------------------------------------------------------------------------ > > _______________________________________________ > morph-user mailing list > mor...@li... > https://lists.sourceforge.net/lists/listinfo/morph-user > > |