-
15. Re: Problem Getting Started with Resource Loading in RF4.1
lfryc Feb 19, 2012 3:51 PM (in response to lfryc)Btw here is feature request to cover the process described above in the blog:
https://issues.jboss.org/browse/RFPL-2006
Please vote there!
-
16. Re: Problem Getting Started with Resource Loading in RF4.1
josh68 Feb 24, 2012 3:55 PM (in response to lfryc)Hi, Lukáš.
I think I'm starting to get the hang of things with RF4.2 resource handling, but what I think I actually am seeing is that you can't successfully implement both custom mapping and full resource optimization. Reason being, if I point a static mapping for, say, jquery and the jquery ui, and then I move to Production, RF will load packed.js, which is every script, including jquery.js and jquery-ui.js. Correct me if I'm wrong about this line of thinking. I'm plannig to use a JSF compression filter and maven optimization plugin for packing at compile-time instead of RF's native optimizations.
Elsewhere, I posted a ridiculously detailed set of questions about resource loading/mapping, but I was basically asking for details about what strategies from past releases were deprecated (like "static" vs "custom" resource mapping, if there really is any difference). And, as many concrete examples as possible would help all of us. I think many users are confused about resource mapping, including, in my case, the possibility of pointing RF to resources from other libraries (I'm integrating RF and PrimeFaces). I've managed a workaround by pointing to local copies of files from my PrimeFaces jar, but if there's a cleaner way to do it, I'd love to know.
The one other workaround I'm trying to use is the DoNotLoadSelectedRichFacesResources event listener, since my ultimate goal is to use RF for A4J and resource handling, but not anything UI-related. I still need to test ways to pinpoint exactly what RF does and doesn't load, depending on what tags are in my pages.
Thanks,
Josh
-
17. Re: Problem Getting Started with Resource Loading in RF4.1
josh68 Feb 24, 2012 4:55 PM (in response to josh68)I guess this was a page I needed to read :
https://community.jboss.org/wiki/IntroductionToRichFacesPre-ProcessedResourceDependencies
-
18. Re: Problem Getting Started with Resource Loading in RF4.1
healeyb Feb 26, 2012 9:30 AM (in response to josh68)Lukas, thanks for all the tips, I'm building on windows so I've tried changing the path names to use \ rather than
/, so this is my relevant pom.xml content:
<plugin>
<groupId>org.richfaces.cdk</groupId>
<artifactId>maven-richfaces-resources-plugin</artifactId>
<version>4.2.0.Final</version>
<configuration>
<skins>
<skin>blueSky</skin>
</skins>
<includedContentTypes>
<include>application/javascript</include>
<include>text/css</include>
<include>image/.+</include>
</includedContentTypes>
<fileNameMappings>
<property>
<name>^.*showcase.*/([^/]+\.css)$</name>
<value>org.richfaces.showcase.css/$1</value>
</property>
<property>
<name>^.+/([^/]+\.(png|gif|jpg))$</name>
<value>org.richfaces.images/$1</value>
</property>
<property>
<name>^.+/([^/]+\.css)$</name>
<value>org.richfaces.css/$1</value>
</property>
</fileNameMappings>
</configuration>
<executions>
<execution>
<id>packed-compressed-resources</id>
<goals>
<goal>process</goal>
</goals>
<configuration>
<pack>true</pack>
<compress>true</compress>
<resourcesOutputDir>${faces.resources.dir}\org.richfaces.staticResource\${project.version}\PackedCompressed\</resourcesOutputDir>
<staticResourceMappingFile>${resource.mappings.dir}\staticResourceMapping\PackedCompressed.properties</staticResourceMappingFile>
<staticResourcePrefix>org.richfaces.staticResource\${project.version}\PackedCompressed\</staticResourcePrefix>
<excludedFiles>
<exclude>^\Qorg.richfaces.renderkit.html.images.\E.*</exclude>
<exclude>^\Qorg.richfaces.renderkit.html.iconimages.\E.*</exclude>
<exclude>^jquery\.js$</exclude>
</excludedFiles>
</configuration>
</execution>
</executions>
</plugin>
But I'm getting this error (running maven with -e -X):
Configuring mojo org.richfaces.cdk:maven-richfaces-resources-plugin:4.2.0.Final:process from plugin realm ClassRealm[plugin>org.richfaces.cdk:maven-richfaces-resources-plugin:4.2.0.Final, parent: sun.misc.Launcher$AppClassLoader@37af78ce]
Configuring mojo 'org.richfaces.cdk:maven-richfaces-resources-plugin:4.2.0.Final:process' with basic configurator -->
(f) compress = true
(f) encoding = UTF-8
(f) excludedFiles = [^\Qorg.richfaces.renderkit.html.images.\E.*, ^\Qorg.richfaces.renderkit.html.iconimages.\E.*, ^jquery\.js$]
(s) name = ^.*showcase.*/([^/]+\.css)$
(s) value = org.richfaces.showcase.css/$1
(s) name = ^.+/([^/]+\.(png|gif|jpg))$
(s) value = org.richfaces.images/$1
(s) name = ^.+/([^/]+\.css)$
(s) value = org.richfaces.css/$1
(f) fileNameMappings = [org.richfaces.cdk.FileNameMapping@6ff403b6, org.richfaces.cdk.FileNameMapping@7d1fdb25, org.richfaces.cdk.FileNameMapping@366c9a50]
(f) includedContentTypes = [application/javascript, text/css, image/.+]
(f) pack = true
(f) project = MavenProject: uk.co.sportquest:SportQuest:1.0.0 @ C:\Users\Brendan\Documents\NetBeansProjects\SportQuest\pom.xml
(f) resourcesOutputDir = C:\Users\Brendan\Documents\NetBeansProjects\SportQuest\target\classes\META-INF\resources\org.richfaces.staticResource\1.0.0\PackedCompressed\
(f) skins = [blueSky]
(f) staticResourceMappingFile = C:\Users\Brendan\Documents\NetBeansProjects\SportQuest\target\classes\META-INF\richfaces\staticResourceMapping\PackedCompressed.properties
(f) staticResourcePrefix = org.richfaces.staticResource\1.0.0\PackedCompressed\
(f) webRoot = C:\Users\Brendan\Documents\NetBeansProjects\SportQuest/src/main/webapp
-- end configuration --
resourceRoots: [ZipVFSFile[C:\Users\Brendan\.m2\repository\org\glassfish\javax.faces\2.1.7\javax.faces-2.1.7.jar, ZipNode[resources, META-INF/resources/], null], ZipVFSFile[C:\Users\Brendan\.m2\repository\org\richfaces\ui\richfaces-components-ui\4.2.0.Final\richfaces-components-ui-4.2.0.Final.jar, ZipNode[resources, META-INF/resources/], null], ZipVFSFile[C:\Users\Brendan\.m2\repository\org\richfaces\core\richfaces-core-impl\4.2.0.Final\richfaces-core-impl-4.2.0.Final.jar, ZipNode[resources, META-INF/resources/], null], ZipVFSFile[C:\Users\Brendan\.m2\repository\org\richfaces\sandbox\ui\schedule\schedule-ui\4.1.0-SNAPSHOT\schedule-ui-4.1.0-SNAPSHOT.jar, ZipNode[resources, META-INF/resources/], null], FileVFSFile[C:\Users\Brendan\Documents\NetBeansProjects\SportQuest\src\main\webapp\resources, null]]
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
foundResources: [images:header.jpg, org.richfaces.images:actLeftTabBg.png, null:org.richfaces.renderkit.html.iconimages.PanelIconGrid, null:org.richfaces.renderkit.html.images.CalendarSeparator, scripts:jquery.ui.datepicker.min.js, null:org.richfaces.renderkit.html.images.CalendarIcon, images:arrow.gif, scripts:jqia2.support.js, css:reset.css, images:grippie.png, images:page_white_delete.png, org.richfaces:jquery-dnd.js, org.richfaces:jquery.effects.highlight.js, org.richfaces:error.png, scripts:jail-0.9.min.js, org.richfaces.images:dsBtnGrad.png, org.richfaces:close.gif, null:ui.resizable.js, images:messi_thumb.jpg, org.richfaces:tab.js, org.richfaces:inputNumberSpinner.js, org.richfaces.images:chevronDisabled.png, org.richfaces.images:actTabBottomBg.png, org.richfaces:dnd-indicator.js, scripts:jquery.qtip2.min.js, css:jquery.bt.css, org.richfaces:popupPanel.js, org.richfaces:node_icon.gif, null:fullcalendar.js, org.richfaces:ico_cancel.gif, images:NeonDm5.gif, org.richfaces.images:gridSeparatorImage.gif, org.richfaces:listMulti.js, images:oval-blue-left.gif, images:more.gif, scripts:jquery.corner.js, org.richfaces:jquery.pnotify.js, org.richfaces:ico_ok.gif, org.richfaces.images:autocompleteFieldGradient.png, org.richfaces:popupList.js, org.richfaces.images:gradientA.png, scripts:jquery.dataTables.min.js, css:jquery.qtip.min.css, org.richfaces.images:dsDigGrad.png, null:org.richfaces.renderkit.html.images.ButtonHoverBackgroundImage, css:styleSheet.css, org.richfaces:inplaceSelect.ecss, org.richfaces:editor.js, org.richfaces:extendedDataTable.ecss, null:gcal.js, images:trash_stroke_12x12.png, org.richfaces.images:sliderSelectedArrowBottom.png, org.richfaces:fatal.png, org.richfaces:up_icon.gif, org.richfaces:list.js, org.richfaces:datatable.js, images:trash_stroke_16x16.png, org.richfaces.images:chevron.png, null:ui.draggable.js, org.richfaces.images:menu_list_bg.gif, css:demo_page.css, org.richfaces.images:squareSeparatorImage.gif, org.richfaces.images:menuNodeImage.gif, null:org.richfaces.renderkit.html.images.SpinnerArrowTop, org.richfaces.images:sliderDisabledArrowBottom.png, images:oval-blue-right.gif, images:sort_desc_disabled.png, org.richfaces:inputBase.js, scripts:jquery.ui.dialog.min.js, null:org.richfaces.renderkit.html.images.DotSeparatorImage, org.richfaces.images:chevronDownDisabled.png, null:org.richfaces.renderkit.html.iconimages.PanelIconTriangleDown, org.richfaces.images:inplaceBtnPressGrad.png, org.richfaces:notifyMessage.js, org.richfaces:jquery-ui-core.js, null:skinning_both.ecss, images:sort_asc.png, null:org.richfaces.renderkit.html.images.DisabledCalendarIcon, images:Blue_gradient_50.png, org.richfaces.images:plus.png, org.richfaces.images:dsBtnGradOver.png, null:org.richfaces.renderkit.html.iconimages.PanelIconTriangleLeft, org.richfaces:richfaces-csv.js, org.richfaces.images:last.png, org.richfaces:tabPanel.js, org.richfaces:fu-clr.gif, org.richfaces:mark_changed.gif, org.richfaces.images:inputBackgroundImage.png, null:org.richfaces.renderkit.html.iconimages.PanelIconChevron, org.richfaces.images:chevronLeft.png, org.richfaces:toolbar.ecss, scripts:jquery.contextMenu.js, org.richfaces:fu-add.gif, org.richfaces.images:grid.png, org.richfaces.images:disc.png, org.richfaces.images:buttonBackgroundImage.png, org.richfaces.images:fuBtnGrad.png, org.richfaces:tooltip.js, images:x_14x14.png, scripts:PIE.php, org.richfaces:notify_close.png, images:sort_asc_disabled.png, org.richfaces:inplaceSelect.js, null:org.richfaces.renderkit.html.images.ComboDownButton, org.richfaces:popupPanel.ecss, org.richfaces:collapsiblePanelItem.js, org.richfaces:popup.js, org.richfaces.images:triangleDownDisabled.png, null:org.richfaces.renderkit.html.images.AutocompleteGradient, org.richfaces:tree.js, org.richfaces:log.js, scripts:jquery.qtip-1.0.0-rc3.min.js, scripts:jquery.tooltip.min.js, images:background_create.txt, org.richfaces:datagrid.ecss, sqcc:inputAddress.xhtml, null:org.richfaces.renderkit.html.images.SliderArrowBottom, css:demo_table_jui.css, sqcc:focus.xhtml, org.richfaces:panelMenuGroup.js, org.richfaces:Autocomplete.ecss, images:info.jpg, org.richfaces:dnd-droppable.js, scripts:PIE.htc, org.richfaces:reorderMarker.gif, null:skinning_classes.ecss, images:Sorting icons.psd, org.richfaces.images:disabledCalendarIcon.png, org.richfaces:message.js, sqcc:inputCountrySport.xhtml, css:ellipsis.xml, org.richfaces.images:pmenu_bg_dis.png, org.richfaces:select.js, org.richfaces:togglePanelItem.js, css:jquery.ui.timepicker.css, org.richfaces:Autocomplete.js, org.richfaces:panelMenu.js, images:door.png, null:org.richfaces.renderkit.html.images.SquareSeparatorImage, org.richfaces.images:standardButtonBgImage.png, org.richfaces:msg.ecss, org.richfaces.images:buttonHoverBackgroundImage.png, images:page_white_paste.png, images:bubble.png, scripts:jquery.ticker-1.8.js, null:richfaces-selection.js, org.richfaces:inplaceBase.js, null:jquery.position.js, images:check_12x10.png, org.richfaces.images:triangleDown.png, org.richfaces:combo_list_shadow.png, images:border-radius.htc, null:richfaces-base-component.js, org.richfaces:popupPanelSizer.js, null:jquery.js, scripts:jquery-ui-1.8.16.custom.min.js, images:SportQuestLogoWeb.png, org.richfaces:ico.gif, null:org.richfaces.renderkit.html.images.InputBackgroundImage, org.richfaces.images:spinnerDisabledArrowBottom.png, org.richfaces:contextmenu.js, org.richfaces.images:triangle.png, scripts:jquery-ui-timepicker-addon.js, org.richfaces:fileupload.js, images:gradient2.png, org.richfaces:AutocompleteBase.js, null:org.richfaces.renderkit.html.images.LineSeparatorImage, org.richfaces:accordion.js, org.richfaces.images:autocompleteButtonGradient.png, org.richfaces:fu-add-dis.gif, org.richfaces:accordion.ecss, org.richfaces.images:triangleUpDisabled.png, images:back_enabled.jpg, null:org.richfaces.renderkit.html.iconimages.PanelIconChevronDown, scripts:jail-0.9.js, images:forward_enabled.jpg, null:org.richfaces.renderkit.html.images.SliderArrowRight, scripts:espogo.js, scripts:jquery.chromatable.js, org.richfaces:menugroup.js, css:defaultTheme.css, sqcc:test.xhtml, null:richfaces-jsf-event.js, null:org.richfaces.renderkit.html.images.MenuNodeImage, css:jquery.tooltip.css, org.richfaces:popupPanelBorders.js, org.richfaces:tooltip.ecss, null:richfaces.schedule.js, org.richfaces.images:comboDownButton.png, images:mouse_right.png, org.richfaces.ckeditor:contents.css, org.richfaces:tree.ecss, org.richfaces.images:line.png, images:favicon.ico, scripts:jquery.betterTooltip.js, org.richfaces:inputNumberSlider.js, org.richfaces:notify.js, org.richfaces.images:chevronDown.png, org.richfaces:menu.js, org.richfaces.images:sliderDisabledArrowLeft.png, css:jquery.contextMenu.css, org.richfaces.images:sliderSelectedArrowLeft.png, org.richfaces:menuKeyNavigation.js, javax.faces:jsf-uncompressed.js, images:sort_desc.png, org.richfaces:calendar.ecss, null:spacer.gif, null:richfaces-utils.js, sqcc:inputTime.xhtml, null:org.richfaces.renderkit.html.images.InputErrorIcon, diagrams:locationsHelp.png, images:controls.png, sqcc:graphicImage.xhtml, org.richfaces:push.js, org.richfaces.images:dotSeparatorImage.gif, images:NeonDh5.gif, org.richfaces.images:actRightTabBg.png, org.richfaces.images:calendarButtonDown.png, org.richfaces:notify.ecss, images:HubloMedLe4.gif, scripts:jquery.valign.js, null:org.richfaces.renderkit.html.images.TreeMinusImage, org.richfaces:orderingList.ecss, org.richfaces:indicator.ecss, org.richfaces:calendar-utils.js, scripts:excanvas.js, org.richfaces:collapsible-subtable.js, scripts:jquery.fixedheadertable.min.js, images:ajax-loader.gif, null:org.richfaces.renderkit.html.images.TreeLineImage, null:org.richfaces.renderkit.html.images.TreePlusImage, scripts:PIE_uncompressed.htc, images:comment.gif, org.richfaces:notifyStack.js, org.richfaces.images:tabLineBottomBg.png, org.richfaces:JQuerySpinBtn.js, images:bullet01.png, images:timeicon.gif, null:org.richfaces.renderkit.html.images.ProgressBarAnimatedBackgroundImage, org.richfaces:poll.js, org.richfaces:calendar.js, org.richfaces:spacer.gif, css:ticker-style.css, scripts:jquery.contextMenu.edited.js, org.richfaces:info.png, images:crystal_button_2008_inmotion_23124.jpg, org.richfaces:menu-base.js, sqcc:tooltip2.xhtml, images:forward_disabled.jpg, org.richfaces.images:triangleLeft.png, org.richfaces.images:triangleUp.png, org.richfaces.images:triangleDisabled.png, null:org.richfaces.renderkit.html.images.ButtonBackgroundImage, org.richfaces:fu-upl.gif, org.richfaces.images:pmenu_bg.png, org.richfaces.images:calendarSeparator.png, org.richfaces:togglePanel.js, scripts:jquery.tools.min.js, images:HubloMedLa4.gif, org.richfaces.images:chevronUp.png, org.richfaces:accordionItem.js, org.richfaces:fileupload.ecss, images:check_16x13.png, scripts:PIE_uncompressed.js, scripts:jquery.autocomplete-min.js, org.richfaces:jquery.mousewheel.js, org.richfaces.images:buttonDisabledBackgroundImage.png, images:x_alt_16x16.png, images:page_white_edit.png, org.richfaces:inplaceInput.js, images:page_white_copy.png, org.richfaces.images:sliderArrowLeft.png, org.richfaces:collapsible-subtable-toggler.js, org.richfaces:warning.png, org.richfaces:collapsiblePanel.js, images:SportQuestLogo-2.png, images:SportQuestLogo-2.jpg, scripts:WhereFrom.txt, org.richfaces:datascroller.ecss, org.richfaces:log.ecss, org.richfaces.images:tabBg.png, null:org.richfaces.renderkit.html.iconimages.PanelIconDisc, images:henry_thumb.jpg, null:org.richfaces.renderkit.html.images.GridSeparatorImage, null:org.richfaces.renderkit.html.iconimages.PanelIconTriangleUp, sqcc:tooltip3.xhtml, images:arrow_down_16x16.png, scripts:jquery.dropshadow.js, images:check_alt_16x16.png, org.richfaces:inputNumberSpinner.ecss, diagrams:locationsHelp.xml, images:check_alt_12x12.png, org.richfaces:toolbar.js, images:img_navsprites.gif, org.richfaces.images:fuBtnDisGrad.png, net.java.dev.atmosphere:jquery-atmosphere.js, images:x_alt_12x12.png, org.richfaces:icons.ecss, org.richfaces.images:pbAniBg.gif, scripts:jquery.bt.min.js, images:SportQuestLogo.gif, org.richfaces.images:calendarButtonUp.png, org.richfaces:pickList.ecss, org.richfaces:jquery.effects.core.js, org.richfaces.images:tabBottomBg.png, org.richfaces:datatable.ecss, org.richfaces:progressBar.js, null:org.richfaces.renderkit.html.images.TreeLineLastImage, org.richfaces:panelMenu.ecss, org.richfaces:hotkey.js, org.richfaces:collapsible-subtable.ecss, org.richfaces.ckeditor:ckeditor.js, images:back_disabled.jpg, org.richfaces.images:spinnerArrowBottom.png, images:background265.png, org.richfaces.images:spinnerDisabledArrowTop.png, images:style.css, org.richfaces.images:discDisabled.png, sqcc:oneClickButton.xhtml, images:button.png, org.richfaces:close_act.gif, org.richfaces:panelMenuItem.js, null:org.richfaces.renderkit.html.images.StandardButtonBgImage, org.richfaces:dropdownmenu.ecss, org.richfaces:json-dom.js, scripts:jquery.tagcanvas.min.js, null:fullcalendar.css, org.richfaces:dnd-draggable.js, org.richfaces:inputNumberSlider.ecss, null:org.richfaces.renderkit.html.images.SpinnerArrowBottom, org.richfaces.images:sliderArrowRight.png, null:richfaces-queue.js, scripts:autocomplete.js, sqcc:oneClickLink.xhtml, org.richfaces.images:chevronLeftDisabled.png, org.richfaces:jquery.hotkeys.js, org.richfaces.images:chevronUpDisabled.png, null:ui.core.js, org.richfaces.images:triangleLeftDisabled.png, org.richfaces:datascroller.js, org.richfaces:status.js, org.richfaces.images:tabLineBg.png, sqcc:unstyle.xhtml, org.richfaces.images:colHdrGrad.png, null:jquery.focus.js, org.richfaces.images:calendarIcon.png, org.richfaces:menuitem.js, null:org.richfaces.renderkit.html.images.SliderArrowLeft, images:cut.png, css:ui-timepicker.css, org.richfaces:jquery.component.js, null:org.richfaces.renderkit.html.iconimages.PanelIconChevronLeft, org.richfaces:leaf_icon.gif, org.richfaces.images:inputErrorIcon.png, scripts:jail-0.95.min.js, javax.faces:jsf.js, org.richfaces.images:sliderArrowBottom.png, scripts:createScrollableTable.js, null:org.richfaces.renderkit.html.images.StandardButtonPressedBgImage, diagrams:WhereFrom.txt, org.richfaces.images:comboDisabledDownButton.png, null:skinning.ecss, scripts:jquery.ui.timepicker.js, org.richfaces:component-control.js, org.richfaces:extendedDataTable.js, null:richfaces-jsf-log.js, org.richfaces:progressBar.ecss, org.richfaces:mark_list.gif, org.richfaces.images:insldrTrackGrad.png, null:org.richfaces.renderkit.html.iconimages.PanelIconTriangle, sqcc:ticker.xhtml, org.richfaces.images:leaf_icon.gif, org.richfaces:tabPanel.ecss, scripts:.LCKjquery.chromatable.js~, org.richfaces.images:spinnerArrowTop.png, org.richfaces:inplaceInput.ecss, org.richfaces.images:inplaceBtnGrad.png, org.richfaces:list.ecss, org.richfaces:fileUploadProgress, images:sort_both.png, images:x_11x11.png, org.richfaces.images:gridDisabled.png, org.richfaces:panel.ecss, org.richfaces.images:standardButtonPressedBgImage.png, null:richfaces.js, null:org.richfaces.renderkit.html.BaseGradient, css:pieSave.css, org.richfaces:ok.png, org.richfaces:orderingList.js, org.richfaces:contextmenu.ecss, scripts:PIE.js, org.richfaces:pickList.js, images:big_arrow_green.gif, css:chromatable.css, org.richfaces.images:minus.png, css:demo_table.css, org.richfaces.images:sliderDisabledArrowRight.png, scripts:excanvas.compiled.js, org.richfaces:collapsiblePanel.ecss, null:org.richfaces.renderkit.html.iconimages.PanelIconChevronUp, org.richfaces.images:node_icon.gif, org.richfaces.images:menu_item_bg.gif, org.richfaces:select.ecss, null:richfaces-event.js, null:org.richfaces.renderkit.html.images.ButtonDisabledBackgroundImage, org.richfaces.images:actTabBg.png, sqcc:tooltip.xhtml, org.richfaces:down_icon.gif, org.richfaces:bg_shadow.png, org.richfaces.images:sliderSelectedArrowRight.png, org.richfaces.images:lineSeparatorImage.gif]
class org.richfaces.renderkit.CalendarRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, :richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:json-dom.js, org.richfaces:jquery.effects.core.js, org.richfaces:jquery.effects.highlight.js, org.richfaces:JQuerySpinBtn.js, org.richfaces:calendar-utils.js, org.richfaces:calendar.js, org.richfaces:calendar.ecss]
class org.richfaces.renderkit.DropTargetRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:jquery-ui-core.js, org.richfaces:jquery-dnd.js, org.richfaces:dnd-droppable.js]
class org.richfaces.renderkit.html.AjaxStatusRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, org.richfaces:status.js]
class org.richfaces.renderkit.InplaceSelectRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, :richfaces-selection.js, org.richfaces:inputBase.js, org.richfaces:inplaceBase.js, org.richfaces:popup.js, org.richfaces:list.js, org.richfaces:popupList.js, org.richfaces:inplaceInput.js, org.richfaces:inplaceSelect.js, org.richfaces:inplaceSelect.ecss]
class org.ajax4jsf.renderkit.AjaxBehaviorRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js]
class org.richfaces.renderkit.html.DropDownMenuRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:popup.js, org.richfaces:menuKeyNavigation.js, org.richfaces:menu-base.js, org.richfaces:menu.js, org.richfaces:dropdownmenu.ecss]
class org.richfaces.renderkit.html.InputNumberSliderRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, :jquery.position.js, org.richfaces:jquery.mousewheel.js, org.richfaces:inputNumberSlider.js, org.richfaces:inputNumberSlider.ecss]
class org.richfaces.renderkit.EditorRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, :richfaces-jsf-event.js, :richfaces-utils.js, org.richfaces:editor.js]
class org.richfaces.renderkit.AbstractTableRenderer
[:richfaces-event.js]
class org.richfaces.renderkit.html.TogglePanelRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:togglePanel.js]
class org.richfaces.renderkit.html.NotifyStackRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, org.richfaces:jquery.pnotify.js, org.richfaces:notify.js, org.richfaces:notifyStack.js, org.richfaces:notify.ecss]
class org.richfaces.renderkit.PickListRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, :richfaces-utils.js, :richfaces-selection.js, org.richfaces:inputBase.js, org.richfaces:popup.js, org.richfaces:list.js, org.richfaces:listMulti.js, org.richfaces:popupList.js, org.richfaces:pickList.js, org.richfaces:orderingList.js, org.richfaces:pickList.ecss, org.richfaces:orderingList.ecss]
class org.richfaces.renderkit.html.PanelMenuRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:panelMenu.js, org.richfaces:panelMenuItem.js, org.richfaces:panelMenuGroup.js, org.richfaces:icons.ecss, org.richfaces:panelMenu.ecss]
class org.richfaces.renderkit.html.HtmlMessageRenderer
[org.richfaces:base-component.reslib, null:richfaces-event.js, org.richfaces:message.js, org.richfaces:msg.ecss]
class org.richfaces.renderkit.html.ContextMenuRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:popup.js, org.richfaces:menuKeyNavigation.js, org.richfaces:menu-base.js, org.richfaces:menu.js, org.richfaces:contextmenu.js, org.richfaces:contextmenu.ecss]
class org.richfaces.renderkit.InplaceInputRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:inputBase.js, org.richfaces:inplaceBase.js, org.richfaces:inplaceInput.js, org.richfaces:inplaceInput.ecss]
class org.richfaces.renderkit.CSVResourceDependenciesOrdering
[:jquery.js, :richfaces.js, org.richfaces:richfaces-csv.js]
class org.richfaces.renderkit.html.ProgressBarBaseRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:progressBar.js, org.richfaces:progressBar.ecss]
class org.richfaces.renderkit.html.InputNumberSpinnerRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, :jquery.position.js, org.richfaces:jquery.mousewheel.js, org.richfaces:inputNumberSpinner.js, org.richfaces:inputNumberSpinner.ecss]
class org.richfaces.renderkit.html.QueueResourceComponentRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js]
class org.richfaces.renderkit.html.HtmlMessagesRenderer
[org.richfaces:base-component.reslib, null:richfaces-event.js, org.richfaces:message.js, org.richfaces:msg.ecss]
class org.richfaces.renderkit.html.PopupPanelBaseRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:popupPanel.js, org.richfaces:popupPanelBorders.js, org.richfaces:popupPanelSizer.js, org.richfaces:popupPanel.ecss]
class org.richfaces.component.AbstractAjaxLog
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, org.richfaces:log.js, org.richfaces:log.ecss]
class org.richfaces.renderkit.html.TabPanelRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:togglePanel.js, org.richfaces:tabPanel.js, org.richfaces:tabPanel.ecss]
class uk.co.sportquest.jsfbeans.helper.JQuery
[javax.faces:jsf.js, primefaces:jquery/jquery.js, primefaces:jquery/ui/jquery-ui.js]
class org.richfaces.renderkit.SelectManyRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, :richfaces-utils.js, :richfaces-selection.js, org.richfaces:inputBase.js, org.richfaces:popup.js, org.richfaces:list.js, org.richfaces:listMulti.js, org.richfaces:popupList.js, org.richfaces:pickList.js, org.richfaces:pickList.ecss]
class org.richfaces.renderkit.OrderingListRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, :richfaces-utils.js, :richfaces-selection.js, org.richfaces:inputBase.js, org.richfaces:popup.js, org.richfaces:list.js, org.richfaces:listMulti.js, org.richfaces:orderingList.js, org.richfaces:orderingList.ecss]
class org.richfaces.renderkit.DragSourceRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:jquery-ui-core.js, org.richfaces:jquery-dnd.js, org.richfaces:dnd-draggable.js]
class org.richfaces.renderkit.html.HtmlNotifyMessagesRenderer
[org.richfaces:base-component.reslib, null:richfaces-event.js, org.richfaces:notifyMessage.js, org.richfaces:jquery.pnotify.js, org.richfaces:notify.js, org.richfaces:notifyStack.js, org.richfaces:notify.ecss]
class org.richfaces.renderkit.html.PanelBaseRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, org.richfaces:panel.ecss]
class org.richfaces.renderkit.HotKeyRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:jquery.hotkeys.js, org.richfaces:hotkey.js]
class org.richfaces.renderkit.ExtendedDataTableRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :jquery.position.js, org.richfaces:extendedDataTable.js, org.richfaces:extendedDataTable.ecss]
class org.richfaces.renderkit.html.ToolbarRendererBase
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-base-component.js, org.richfaces:toolbar.js, org.richfaces:toolbar.ecss]
class org.richfaces.renderkit.AbstractRowsRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js]
class org.richfaces.renderkit.html.TabRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, :richfaces-event.js, org.richfaces:togglePanelItem.js, org.richfaces:tab.js]
class org.richfaces.renderkit.html.AjaxPollRenderer
[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, null:richfaces-base-component.js, org.richfaces:poll.js]
class uk.co.sportquest.component.AutocompleteRenderer
[:jquery.js, org.richfaces:jquery-ui-core.js, :scripts/autocomplete.js, :scripts/jquery.dropshadow.js, javax.faces:jsf.js]
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 19.650s
Finished at: Sun Feb 26 14:17:50 GMT 2012
Final Memory: 71M/560M
------------------------------------------------------------------------
Failed to execute goal org.richfaces.cdk:maven-richfaces-resources-plugin:4.2.0.Final:process (packed-compressed-resources) on project SportQuest: Exception caught when scanning class uk.co.sportquest.component.AutocompleteRenderer:
collection: [:jquery.js, org.richfaces:jquery-ui-core.js, :scripts/autocomplete.js, :scripts/jquery.dropshadow.js, javax.faces:jsf.js]
PartialOrder[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, :richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:json-dom.js, org.richfaces:jquery.effects.core.js, org.richfaces:jquery.effects.highlight.js, org.richfaces:JQuerySpinBtn.js, org.richfaces:calendar-utils.js, org.richfaces:calendar.js, org.richfaces:calendar.ecss]
-> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.richfaces.cdk:maven-richfaces-resources-plugin:4.2.0.Final:process (packed-compressed-resources) on project SportQuest: Exception caught when scanning class uk.co.sportquest.component.AutocompleteRenderer
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Exception caught when scanning class uk.co.sportquest.component.AutocompleteRenderer
at org.richfaces.cdk.ProcessMojo.execute(ProcessMojo.java:465)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: java.lang.IllegalStateException: Exception caught when scanning class uk.co.sportquest.component.AutocompleteRenderer
at org.richfaces.cdk.resource.scan.impl.ResourceOrderingScanner.scan(ResourceOrderingScanner.java:118)
at org.richfaces.cdk.ProcessMojo.scanResourceOrdering(ProcessMojo.java:294)
at org.richfaces.cdk.ProcessMojo.reorderFoundResources(ProcessMojo.java:381)
at org.richfaces.cdk.ProcessMojo.execute(ProcessMojo.java:426)
... 21 more
Caused by: org.richfaces.cdk.ordering.IllegalPartialOrderingException:
collection: [:jquery.js, org.richfaces:jquery-ui-core.js, :scripts/autocomplete.js, :scripts/jquery.dropshadow.js, javax.faces:jsf.js]
PartialOrder[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, :richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:json-dom.js, org.richfaces:jquery.effects.core.js, org.richfaces:jquery.effects.highlight.js, org.richfaces:JQuerySpinBtn.js, org.richfaces:calendar-utils.js, org.richfaces:calendar.js, org.richfaces:calendar.ecss]
at org.richfaces.cdk.ordering.PartialOrderToCompleteOrder.checkCurrentPartialOrders(PartialOrderToCompleteOrder.java:224)
at org.richfaces.cdk.ordering.PartialOrderToCompleteOrder.addPartialOrdering(PartialOrderToCompleteOrder.java:78)
at org.richfaces.cdk.resource.scan.impl.ResourceOrderingScanner.addResourceDependencies(ResourceOrderingScanner.java:130)
at org.richfaces.cdk.resource.scan.impl.ResourceOrderingScanner.scan(ResourceOrderingScanner.java:116)
... 24 more
For more information about the errors and possible solutions, please read the following articles:
[Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
I'll have a look at getting freenode chat working this week. In the meantime, do you have any ideas what could be causing this?
Thanks,
Brendan.
-
19. Re: Problem Getting Started with Resource Loading in RF4.1
lfryc Feb 27, 2012 5:15 AM (in response to josh68)Josh Schneider wrote:
Reason being, if I point a static mapping for, say, jquery and the jquery ui, and then I move to Production, RF will load packed.js, which is every script, including jquery.js and jquery-ui.js.
You were absolutely right with 4.2.0.CR1,
but with 4.2.0.Final, jquery.js was excluded from packaging since I recognized this problem as well.
Unfortunately it is not only jquery.js which could be in collision: there are jquery{ui-core, dnd, component, effects, mousewheel, pnotify, focus, position}.js scripts which are probably used by PF as well.
Josh Schneider wrote:
but I was basically asking for details about what strategies from past releases were deprecated (like "static" vs "custom" resource mapping, if there really is any difference).
Afaik "static" and "custom" resource mapping were both the same features (static were misused for pointing to "having statically compiled resources instead of dynamically generated"). Custom resource mapping then refers to defining custom set of mappings instead of predefined one (like the case of "resource optimization").
I'm aware of lot of confusion these changes made for early adopters like you, but it were your responses which forces me to clarify that, and I think this will really pay off for everyone else starting with resource loading in 4.x. Thanks a lot for your efforts!
-
20. Re: Problem Getting Started with Resource Loading in RF4.1
lfryc Feb 27, 2012 5:31 AM (in response to josh68)Josh Schneider wrote:
The one other workaround I'm trying to use is the DoNotLoadSelectedRichFacesResources event listener, since my ultimate goal is to use RF for A4J and resource handling, but not anything UI-related. I still need to test ways to pinpoint exactly what RF does and doesn't load, depending on what tags are in my pages.
You are refering to Workaround for LOAD_NONE resource loading strategy in RichFaces 4.1.
One problem here is that it doesn't work with MyFaces at the moment.
I would like to improve DoNotLoadSelectedRichFacesResources to consume configuration from resource mapping, make it compatible with MyFaces and make it part of the framework , so please vote for these issue!
If you want to make it work right now, please open new specific discussion in forums to address it (what behavior you see and what you expect) and leave the link here.
-
21. Re: Problem Getting Started with Resource Loading in RF4.1
lfryc Feb 27, 2012 5:59 AM (in response to healeyb)Brendan Healey wrote:
But I'm getting this error (running maven with -e -X):
Caused by: java.lang.IllegalStateException: Exception caught when scanning class uk.co.sportquest.component.AutocompleteRenderer
at org.richfaces.cdk.resource.scan.impl.ResourceOrderingScanner.scan(ResourceOrderingScanner.java:118)
at org.richfaces.cdk.ProcessMojo.scanResourceOrdering(ProcessMojo.java:294)
at org.richfaces.cdk.ProcessMojo.reorderFoundResources(ProcessMojo.java:381)
at org.richfaces.cdk.ProcessMojo.execute(ProcessMojo.java:426)
... 21 more
Caused by: org.richfaces.cdk.ordering.IllegalPartialOrderingException:
collection: [:jquery.js, org.richfaces:jquery-ui-core.js, :scripts/autocomplete.js, :scripts/jquery.dropshadow.js, javax.faces:jsf.js]
PartialOrder[javax.faces:jsf.js, null:jquery.js, null:richfaces.js, null:richfaces-queue.js, :richfaces-base-component.js, :jquery.position.js, :richfaces-event.js, org.richfaces:json-dom.js, org.richfaces:jquery.effects.core.js, org.richfaces:jquery.effects.highlight.js, org.richfaces:JQuerySpinBtn.js, org.richfaces:calendar-utils.js, org.richfaces:calendar.js, org.richfaces:calendar.ecss]
Basically richfaces-resources-maven-plugin scans classpath (all compile-time dependencies of Maven project) and collects all @ResourceDependency (incl. @ResourceDependencies) definitions - then it takes all the definitions which forms "partial order for component" (the order ot dependencies for one particular component) and builds "complete order".
PartialOrderToCompleteOrder.java
Why it is needed? When creating package of resources, you must ensure that files are packaged in right order, so there will be no conflicting definitions (like JS "xyz is not defined" exception or CSS rules priorities).
However this approach is weak since all the "partial orders" needs to be defined in right order to ensure "complete order" can be built - they needs to follow strict rule.
I can identify two problems here:
- it seems you are defining own @ResourceDependency and the ordering violates the rule above
- you are using PrimeFaces which does not obviously need to follow this rule
There are two ways to address this issue:
- force the @ResourceDependency definitions to be ordered nice (which would be problem in PF resources)
- which doesn't satisfy PrimeFaces dependencies
- provide custom order from external file
- the maven plugin can get new configuration parameter to point to this external file and switch to force ordering defined in this file
Btw, here is the code which is responsible of ordering the resources which were found:
The "complete order" which expects RichFaces can be extracted from build of RichFaces in following submodule (plugin dumps complete order after successful run):
https://github.com/richfaces/components/blob/develop/dist/static-resources/pom.xml
If you would like to grab this issue, it is tracked here: https://issues.jboss.org/browse/RF-11800
-
22. Re: Problem Getting Started with Resource Loading in RF4.1
healeyb Feb 27, 2012 9:09 AM (in response to lfryc)Lukas, thanks for the detailed information, I'll go through this later. I don't use primefaces, I moved from primefaces to
richfaces for increased stability and won't be going back. I use @ResourceDependency in a few places only so it
shouldn't be too difficult to resolve this problem now I know where to look.
edit: Aha! I found some old test code which was referencing primefaces resources, now removed. Still getting an error
though... which is a problem with the sandbox schedule component. I've notified Bernard of the problem, now I guess
I need to <exclude> it from the plugin execution...
Thanks,
Brendan.
-
23. Re: Problem Getting Started with Resource Loading in RF4.1
josh68 Mar 1, 2012 12:08 PM (in response to lfryc)Thanks, Lukáš
It's helpful to know exactly what is being pulled from jQuery UI, and where. That could be useful for custom mapping. Neither RichFaces nor PrimeFaces reference the entire UI, for obvious reasons (almost no one needs the full library).
Lukáš Fryč wrote:
Josh Schneider wrote:
Reason being, if I point a static mapping for, say, jquery and the jquery ui, and then I move to Production, RF will load packed.js, which is every script, including jquery.js and jquery-ui.js.
You were absolutely right with 4.2.0.CR1,
but with 4.2.0.Final, jquery.js was excluded from packaging since I recognized this problem as well.
Unfortunately it is not only jquery.js which could be in collision: there are jquery{ui-core, dnd, component, effects, mousewheel, pnotify, focus, position}.js scripts which are probably used by PF as well.
Josh Schneider wrote:
but I was basically asking for details about what strategies from past releases were deprecated (like "static" vs "custom" resource mapping, if there really is any difference).
Afaik "static" and "custom" resource mapping were both the same features (static were misused for pointing to "having statically compiled resources instead of dynamically generated"). Custom resource mapping then refers to defining custom set of mappings instead of predefined one (like the case of "resource optimization").
I'm aware of lot of confusion these changes made for early adopters like you, but it were your responses which forces me to clarify that, and I think this will really pay off for everyone else starting with resource loading in 4.x. Thanks a lot for your efforts!
Yes, I've been trying to work with the LOAD_NONE workaround you're citing. We happen to use Mojarra, so I didn't know about it being implementation-specific. I will figure out how to vote and do so, since it sounds like your ideas would be a great improvement. As it is, I'm trying (I'm not a Java dev) to figure out the syntax for very specific load exclusions, but other workarounds are possible.
You are refering to Workaround for LOAD_NONE resource loading strategy in RichFaces 4.1.
One problem here is that it doesn't work with MyFaces at the moment.
I would like to improve DoNotLoadSelectedRichFacesResources to consume configuration from resource mapping, make it compatible with MyFaces and make it part of the framework , so please vote for these issue!
If you want to make it work right now, please open new specific discussion in forums to address it (what behavior you see and what you expect) and leave the link here.
Assuming I do figure out how to vote, my number one vote would be to update RF UI components to wrap UI libraries. I'd vote for jQuery UI, since it leverages jQuery and uses fairly clean and semantic markup (and I know how to use it!), but anything would be an improvement over the old-style, table-within-table, custom components RF still uses. If that were already in RF, I wouldn't even be trying to use PrimeFaces. I know the CDK allows us to create our own components, but I'd have to wrangle in a back-end developer to do that, and just don't have time. As it is, I had been just using vanilla jQuery UI components (configured and instantiated client-side), and then leveraging a4j to handle any needed AJAX, but we don't have a clear methodology for doing that (like generating and serializing JSON from beans and then consuming it using jQuery AJAX for the UI). That's why so many people like these frameworks, I know.
Thanks again.
-Josh