[ 
https://issues.apache.org/jira/browse/MYFACES-4511?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17641294#comment-17641294
 ] 

Werner Punz edited comment on MYFACES-4511 at 11/30/22 1:07 PM:
----------------------------------------------------------------

The namespaced tests now pass on the new codebase:

!image-2022-11-30-13-58-54-262.png|width=457,height=130!

I will fix the old codebase tomorrow. The main problem simply was/is that 
:componentId basically wants a viewRoot id in front so that the final 
identifier resolves

This either can be done on the server by getting :identifier or on the client.

The RI chose to resolve this on the client, so I basically now have added this 
behavior.

The old codebase will be adapted accordingly.

I also added a more leniend ViewState element detection code so that patterns 
like name="viewId:jakarta.faces.ViewState" are detected properly, despite that 
we are not using it, but the TCK already has such a pattern in place.

Also for the TCK cases and the more lenient name handling of ViewState are not 
unit tests in place which cover this entire area. So any breaking of this 
behavior now

will trigger a test fail accordingly on javascript unit test level.

I will start to fix the old codebase accordingly tomorrow (aka the official 
branches)

This however leaves the deviation open we have to the RI with the ViewRoot id 
not being the id in the head (mentioned above)

I will file a separate issue on this one, once I have fixed everything in the 
js codebase. So that someone can take over, should be an easy fix.

 

 


was (Author: werpu):
The namespaced tests now pass on the new codebase:

!image-2022-11-30-13-58-54-262.png|width=457,height=130!

I will fix the old codebase tomorrow. The main problem simply was/is that 
:componentId basically wants a viewRoot id in front so that the final 
identifier resolves

This either can be done on the server by getting :identifier or on the client.

The RI chose to resolve this on the client, so I basically now have added this 
behavior.

The old codebase will be adapted accordingly.

I also added a more leniend ViewState element detection code so that patterns 
like name="viewId:jakarta.faces.ViewState" are detected properly, despite that 
we are not using it, but the TCK already has such a pattern in place.

Also for the TCK cases and the more lenient name handling of ViewState are not 
unit tests in place which cover this entire area. So any breaking of this 
behavior now

will trigger a test fail accordingly on javascript unit test level.

I will start to fix the old codebase accordingly tomorrow (aka the official 
branches)

 

> TCK: Spec790: Manual faces.ajax.request() call fails to send correct response 
> ------------------------------------------------------------------------------
>
>                 Key: MYFACES-4511
>                 URL: https://issues.apache.org/jira/browse/MYFACES-4511
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.2.15, 2.3.10, 2.3-next-M7, 4.0.0-RC2
>            Reporter: Volodymyr Siedlecki
>            Assignee: Werner Punz
>            Priority: Major
>         Attachments: image-2022-11-30-13-58-54-262.png, test-faces23-cdi.war
>
>
> For this TCK application (see github and the attached),  the manual ajax 
> request fails.
> URL: localhost:port/namespacedView/spec790WithNamespacedView.xhtml
> MyFaces Output:{{{{}}{}}}
> {noformat}
> <?xml version="1.0" encoding="UTF-8"?>
> <partial-response id="j_id__v_0">
>    <changes>
>       <update id="j_id__v_0:jakarta.faces.ViewState:1">
>          <![CDATA[ZWZkYjAyMGViZWRhZjZmYzAwMDAwMDAy]]>
>       </update>
>    </changes>
> </partial-response>{noformat}
> {{}}
> Mojarra Output:
> {noformat}
> <?xml version='1.0' encoding='UTF-8'?>
> <partial-response id="j_id1">
>    <changes>
>       <update id="j_id1:panel1">
>          <![CDATA[<div id="j_id1:panel1">
>             <form id="j_id1:form1" name="j_id1:form1" method="post" 
> action="/namespacedView/spec790WithNamespacedView.xhtml" 
> enctype="application/x-www-form-urlencoded">
>             <input type="hidden" name="j_id1:form1" value="j_id1:form1" />
>             <input id="j_id1:form1:button" type="submit" 
> name="j_id1:form1:button" value="submit form1 and render panel2 and panel3 
> using h:commandButton f:ajax" 
> onclick="mojarra.ab(this,event,'action','j_id1:form1','j_id1:panel2 
> j_id1:panel3');return false" />
>             </form></div>]]>
>       </update>
>       <update id="j_id1:panel2">
>          <![CDATA[<div id="j_id1:panel2">
>             <form id="j_id1:form2" name="j_id1:form2" method="post" 
> action="/namespacedView/spec790WithNamespacedView.xhtml" 
> enctype="application/x-www-form-urlencoded">
>             <input type="hidden" name="j_id1:form2" value="j_id1:form2" />
>             <a id="j_id1:form2:link" href="#" 
> onclick="mojarra.ab(this,event,'action','j_id1:form2','j_id1:panel1 
> j_id1:panel3');return false">submit form2 and render panel1 and panel3 using 
> h:commandLink f:ajax</a>
>             </form></div>]]>
>       </update>
>       <update id="j_id1:jakarta.faces.ViewState:0">
>          <![CDATA[-6784505207945273947:-8354726413445019164]]>
>       </update>
>    </changes>
> </partial-response>{noformat}
> My initial investigation leads me  to believe its' because of what is sent in 
> the form. MyFaces uses the input directly, but Mojarra looks to update to the 
> full id when creating the request.
> MyFaces:
> {code:java}
> jakarta.faces.partial.render    ":panel1 :panel2"{code}
> Mojarra:
> {code:java}
> j_id1:jakarta.faces.partial.render    "j_id1:panel1 j_id1:panel2"{code}
> See the Facelet code here: 
> [https://github.com/jakartaee/faces/blob/master/tck/faces23/namespacedView/src/main/webapp/spec790WithNamespacedView.xhtml#L43-L44]
>  
> Test Code: 
> [https://github.com/jakartaee/faces/blob/master/tck/faces23/namespacedView/src/test/java/ee/jakarta/tck/faces/test/javaee8/namespacedView/Spec790WithNamespacedViewIT.java#L74]
> Background Issue: [https://github.com/jakartaee/faces/issues/790]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to