Re: [morph-user] Adapting legacy request parameters into new POJO?
Brought to you by:
orangeherbert,
sgarlatm
|
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
>
>
|