<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hello rich faced devs!<br>
<br>
In reviewing a recent PR [1] for RF-13301:"
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Favor use of Page Fragments in Framework Tests" [2] I've gotten a
good chance to see page fragments in action. I really like how they
remove a much of the DOM setup of the integration tests. A powerful
abstraction indeed.<br>
<br>
However I'm a little concerned over some of the generic names we
have in the page fragments API. Consider the RichFacesTabPanel
fragment [3] in the above PR. It has methods (among others) with
the following names:<br>
<br>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
* RichFacesTabPanel#getRootOfContainerElement() to return the
content element of the TabPanel component<br>
* RichFacesTabPanel#getSwitcherControllerElements() to get the
headers of the parent Tab<br>
<br>
Both of these names are quite generic since they are inherited from
a parent class that shared amongst all switchable components.
However, for both these methods the super method is abstract, so
there is no shared implementation. Can someone with more knowledge
of the page fragments implementation explain the benefit of the
method inheritance here? IMO the abstraction leaves us with an
unclear API which won't help adoption.<br>
<br>
If we can come to an agreement of how we can improve this, we can
scan the remaining page fragments for methods that can benefit from
a similar naming improvement.<br>
<br>
Also, while on the subject of page fragments, I noticed the javadoc
for page fragments is not included in our generated javadoc. This
also will hurt adoption. I've created a jira RF-13816 [4] to
address including the javadoc for page fragments. Please comment
there if you feel they shouldn't be included.<br>
<br>
Cheers,<br>
Brian Leathem<br>
<br>
[1] <a class="moz-txt-link-freetext" href="https://github.com/richfaces/richfaces/pull/108">https://github.com/richfaces/richfaces/pull/108</a><br>
[2] <a class="moz-txt-link-freetext" href="https://issues.jboss.org/browse/RF-13301">https://issues.jboss.org/browse/RF-13301</a><br>
[3]
<a class="moz-txt-link-freetext" href="https://github.com/richfaces/richfaces/blob/master/build/page-fragments/src/main/java/org/richfaces/fragment/tabPanel/RichFacesTabPanel.java">https://github.com/richfaces/richfaces/blob/master/build/page-fragments/src/main/java/org/richfaces/fragment/tabPanel/RichFacesTabPanel.java</a><br>
[4] <a class="moz-txt-link-freetext" href="https://issues.jboss.org/browse/RF-13816">https://issues.jboss.org/browse/RF-13816</a><br>
</body>
</html>