Refactor/Redesign org.jboss.seam.navigation.Pages
-------------------------------------------------
Key: JBSEAM-4077
URL:
https://jira.jboss.org/jira/browse/JBSEAM-4077
Project: Seam
Issue Type: Feature Request
Components: Core
Affects Versions: 2.1.1.GA
Reporter: Drew Kutchar
Currently org.jboss.seam.navigation.Pages is a major pain point since some of the methods
are marked private and some are static (don't know why).
For example, selectDataModelRow() is private and it's got this line "if (
index<dataModel.getRowCount() )" in it which I don't think is really
necessary. This caused a lot of pain for us when we were trying to integrate it with
RichFaces ExtendedDataModel and DataScroller. Basically when you're getting ranges
from the database, the RowCount would query the database. So we had to avoid using
@DataModel and @DataModelSelection completely. I know I can override installing the Pages
component, but then I have to copy/paste pretty much everything from Pages to our
CustomPages just to change a line, talk about anti-DRY. I can give you more details on
this if you want.
In addition, the other not so cool method is "public static String
getRequestScheme(FacesContext facesContext)" which determines if a request is secure
by looking at the URL. There are scenarios that you would want to override this method.
Consider the case when you have an SSL accelerator. The accelerator will terminate the SSL
connection and create a new HTTP connection to the app server. Now you have the option to
pass an HTTP header when the accelerator decrypts HTTPS packets so you're app server
knows that the request was originally secure (so no need to redirect, or anything).
This class has not been designed that well for extension and I think it can be improved.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira