[richfaces-issues] [JBoss JIRA] (RF-13252) a4j:ajax includes jsf.js script twice
Lukáš Fryč (JIRA)
issues at jboss.org
Fri Jan 3 10:26:33 EST 2014
[ https://issues.jboss.org/browse/RF-13252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12933602#comment-12933602 ]
Lukáš Fryč edited comment on RF-13252 at 1/3/14 10:24 AM:
----------------------------------------------------------
The Mojarra problem might be fixed also on our side by specifying {{jsf.js}} dependency specifically (instead of just {{ajax.reslib}} that depends on {{jsf.js}} transitively):
{code:java}
@ResourceDependencies( {
@ResourceDependency(library = "javax.faces", name = "jsf.js"),
@ResourceDependency(library = "org.richfaces", name = "ajax.reslib")
} )
public class AjaxBehaviorRenderer extends ClientBehaviorRenderer ...
{code}
This fix works because Mojarra's {{CommandLinkRenderer}} checks in {{renderJsfJs}} method whether the page already on {{jsf.js}}.
If only {{ajax.reslib}} is specified, Mojarra doesn't know about presense of {{jsf.js}}.
----
This problem can be fixed by RF-13314 where we deprecate use of {{*.reslib}}.
----
Another solution would be marking all resources rendered by ResourceLibraryRenderer as rendered:
https://github.com/richfaces/richfaces/blob/master/framework/src/main/java/org/richfaces/ui/core/ResourceRenderer.java#L53
was (Author: lfryc):
The Mojarra problem might be fixed also on our side by specifying {{jsf.js}} dependency specifically (instead of just {{ajax.reslib}} that depends on {{jsf.js}} transitively):
{code:java}
@ResourceDependencies( {
@ResourceDependency(library = "javax.faces", name = "jsf.js"),
@ResourceDependency(library = "org.richfaces", name = "ajax.reslib")
} )
public class AjaxBehaviorRenderer extends ClientBehaviorRenderer ...
{code}
This fix works because Mojarra's {{CommandLinkRenderer}} checks in {{renderJsfJs}} method whether the page depends on {{jsf.js}}, but it depends on {{ajax.reslib}} instead.
----
This problem can be fixed by RF-13314 where we deprecate use of {{*.reslib}}.
----
Another solution would be marking all resources rendered by ResourceLibraryRenderer as rendered:
https://github.com/richfaces/richfaces/blob/master/framework/src/main/java/org/richfaces/ui/core/ResourceRenderer.java#L53
> a4j:ajax includes jsf.js script twice
> -------------------------------------
>
> Key: RF-13252
> URL: https://issues.jboss.org/browse/RF-13252
> Project: RichFaces
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: component-a4j-core
> Affects Versions: 4.3.4
> Environment: any browser
> EAP 6.2 (Mojarra 2.1.19)
> EAP 6.1 (Mojarra 2.1.19)
> JBoss AS 7.1.1 (Mojarra 2.1.7)
> Reporter: Jonáš Trantina
> Assignee: Lukáš Fryč
> Fix For: 4.3.5
>
> Attachments: reproducer.zip
>
> Original Estimate: 4 hours
> Remaining Estimate: 4 hours
>
> When a4j:script is used in the page like so:
> {noformat}
> <h:commandLink value="Click me ">
> <a4j:ajax event="click" render="@form"/>
> </h:commandLink>
> {noformat}
> Then two script tags pointing to jsf.js are added to the page, once in the head by the inclusion of @ResourceDependency [1], and once again by Overriding the ClientBehaviorRenderer#getScript method [2,3].
> Note, that according to Brian, resolving this without introducing any functional regressions may require the resolution of RF-12270 [4].
> [1] https://github.com/richfaces/richfaces/blob/master/framework/src/main/java/org/richfaces/ui/ajax/ajax/AjaxBehaviorRenderer.java#L53
> [2] https://github.com/richfaces/richfaces/blob/master/framework/src/main/java/org/richfaces/ui/ajax/ajax/AjaxBehaviorRenderer.java#L123
> [3] https://github.com/jboss/mojarra/blob/2.1.21-jbossorg-1/jsf-api/src/main/java/javax/faces/render/ClientBehaviorRenderer.java#L95
> [4] https://issues.jboss.org/browse/RF-12270
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the richfaces-issues
mailing list