You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by jw...@apache.org on 2007/01/31 23:29:36 UTC
svn commit: r502039 [3/39] - in
/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad: ./
trinidad-api/src/main/java/org/apache/myfaces/trinidad/config/
trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/
trinidad-api/src/main...
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/BaseLafRenderer.java Wed Jan 31 15:29:21 2007
@@ -22,6 +22,8 @@
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
import org.apache.myfaces.trinidad.context.RequestContext;
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgent;
@@ -673,24 +675,6 @@
}
- /**
- * encodes a given URL
- * @param context the context from which to get the URLEncoder
- * @param url the URL to encode. this must be a String object
- * @return the encoded form of the URL, by calling the encodeURL method
- * in the URLEncoder
- * @see UIXRenderingContext#getURLEncoder()
- * @see org.apache.myfaces.trinidadinternal.share.url.URLEncoder#encodeURL(String)
- */
- protected static String encodeURL(
- UIXRenderingContext context,
- Object url
- )
- {
- return context.getURLEncoder().encodeURL((url != null)
- ? url.toString()
- : null);
- }
protected static String appendURLArgument(
String baseURL,
@@ -719,18 +703,61 @@
return BaseLafUtils.appendURLArguments( baseURL, keysAndValues);
}
- protected void renderEncodedURIAttribute(
- UIXRenderingContext context,
- String name,
- Object value) throws IOException
+ protected String encodeActionURL(
+ UIXRenderingContext context,
+ Object value) throws IOException
{
if (value != null)
{
- value = encodeURL(context, value);
- context.getResponseWriter().writeURIAttribute(name, value, null);
+ FacesContext facesContext = context.getFacesContext();
+ if(facesContext != null)
+ {
+ return facesContext.getExternalContext().encodeActionURL(value.toString());
+ }
+ return value.toString();
+ }
+ return null;
+ }
+
+ protected String encodeResourceURL(
+ UIXRenderingContext context,
+ Object value) throws IOException
+ {
+ if (value != null)
+ {
+ FacesContext facesContext = context.getFacesContext();
+ if(facesContext != null)
+ {
+ return facesContext.getExternalContext().encodeResourceURL(value.toString());
+ }
+ return value.toString();
+ }
+ return null;
+ }
+
+ protected void renderEncodedActionURI(
+ UIXRenderingContext context,
+ String name,
+ Object value) throws IOException
+ {
+ if (value != null)
+ {
+ String encodedURL = encodeActionURL(context, value);
+ context.getResponseWriter().writeURIAttribute(name, encodedURL, null);
}
}
+ protected void renderEncodedResourceURI(
+ UIXRenderingContext context,
+ String name,
+ Object value) throws IOException
+ {
+ if (value != null)
+ {
+ String encodedURL = encodeResourceURL(context, value);
+ context.getResponseWriter().writeURIAttribute(name, encodedURL, null);
+ }
+ }
/**
* Returns the Agent capability specified by the key
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/ButtonRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/ButtonRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/ButtonRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/ButtonRenderer.java Wed Jan 31 15:29:21 2007
@@ -646,7 +646,7 @@
if (isLink)
{
- renderEncodedURIAttribute(context, "href", destination);
+ renderEncodedActionURI(context, "href", destination);
renderAttribute(context, node, "target", TARGET_FRAME_ATTR);
// Don't render access key on Netscape... Netscape doesn't
@@ -702,4 +702,5 @@
new AlternateRenderer();
}
+
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GeneratedImageRenderer.java Wed Jan 31 15:29:21 2007
@@ -129,7 +129,7 @@
if (hasLink)
{
writer.startElement("a", component);
- renderEncodedURIAttribute(context, "href", destination);
+ renderEncodedActionURI(context, "href", destination);
renderAttribute(context, node, "target", TARGET_FRAME_ATTR);
// Don't render access key on Netscape... Netscape doesn't
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GlobalButtonRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GlobalButtonRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GlobalButtonRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/GlobalButtonRenderer.java Wed Jan 31 15:29:21 2007
@@ -75,7 +75,7 @@
if (isLink)
{
- renderEncodedURIAttribute(context, HREF_ATTRIBUTE, destination);
+ renderEncodedActionURI(context, HREF_ATTRIBUTE, destination);
renderAttribute(context, node,
TARGET_FRAME_ATTRIBUTE, TARGET_FRAME_ATTR);
@@ -86,7 +86,7 @@
{
writer.startElement(IMAGE_ELEMENT, null);
renderStyleClassAttribute(context, AF_MENU_BUTTONS_IMAGE_STYLE_CLASS);
- renderURIAttribute(context, SOURCE_ATTRIBUTE, iconURI);
+ renderEncodedResourceURI(context, SOURCE_ATTRIBUTE, iconURI);
renderAltAndTooltipForImage(context, shortDesc);
renderAttribute(context, BORDER_ATTRIBUTE, 0);
renderAttribute(context, node, WIDTH_ATTRIBUTE, WIDTH_ATTR);
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HeaderRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HeaderRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HeaderRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HeaderRenderer.java Wed Jan 31 15:29:21 2007
@@ -236,7 +236,7 @@
writer.startElement(IMAGE_ELEMENT, null);
writer.writeAttribute(ALT_ATTRIBUTE, EMPTY_STRING_ATTRIBUTE_VALUE, null);
renderStyleClassAttribute(context, AF_PANEL_HEADER_ICON_STYLE_CLASS);
- renderURIAttribute(context, SOURCE_ATTRIBUTE, iconURI);
+ renderEncodedResourceURI(context, SOURCE_ATTRIBUTE, iconURI);
writer.endElement(IMAGE_ELEMENT);
}
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HtmlLafRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HtmlLafRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HtmlLafRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HtmlLafRenderer.java Wed Jan 31 15:29:21 2007
@@ -226,9 +226,12 @@
return;
ResponseWriter writer = context.getResponseWriter();
-
- writer.writeAttribute(attribute,
- LafIconProvider.getCacheImageURI(context) + uri,
+ String cachedImgURI = LafIconProvider.getCacheImageURI(context) + uri;
+ FacesContext facesContext = context.getFacesContext();
+ if(facesContext != null)
+ cachedImgURI = facesContext.getExternalContext().encodeResourceURL(cachedImgURI);
+ writer.writeURIAttribute(attribute,
+ cachedImgURI,
null);
}
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/IconButtonRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/IconButtonRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/IconButtonRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/IconButtonRenderer.java Wed Jan 31 15:29:21 2007
@@ -79,7 +79,7 @@
Object destination = getDestination(context, node);
if (destination != null)
- renderEncodedURIAttribute(context, HREF_ATTRIBUTE, destination);
+ renderEncodedActionURI(context, HREF_ATTRIBUTE, destination);
}
}
@@ -95,7 +95,7 @@
{
ResponseWriter writer = context.getResponseWriter();
writer.startElement("img", null);
- writer.writeURIAttribute("src", source, null);
+ renderEncodedResourceURI(context, "src", source);
writer.writeAttribute("border", "0", null);
renderAltAndTooltipForImage(context, getShortDesc(context, node));
writer.writeAttribute("align", getVAlign(context, node), null);
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/TreeRenderer.java Wed Jan 31 15:29:21 2007
@@ -741,7 +741,7 @@
// Convert iconURL to an absolute uri
if (isIconAbsoluteURI)
- renderURIAttribute(context, SOURCE_ATTRIBUTE, icon);
+ renderEncodedResourceURI(context, SOURCE_ATTRIBUTE, icon);
else
writeAbsoluteImageURI(context, SOURCE_ATTRIBUTE, icon);
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/HeaderRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/HeaderRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/HeaderRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/HeaderRenderer.java Wed Jan 31 15:29:21 2007
@@ -150,7 +150,7 @@
{
writer.startElement(IMAGE_ELEMENT, null);
writer.writeAttribute(ALT_ATTRIBUTE, EMPTY_STRING_ATTRIBUTE_VALUE, null);
- renderURIAttribute(context, SOURCE_ATTRIBUTE, iconURI);
+ renderEncodedResourceURI(context, SOURCE_ATTRIBUTE, iconURI);
writer.endElement(IMAGE_ELEMENT);
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ButtonRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ButtonRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ButtonRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ButtonRenderer.java Wed Jan 31 15:29:21 2007
@@ -22,6 +22,8 @@
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
import org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SkinSelectors;
import org.apache.myfaces.trinidadinternal.ui.NodeUtils;
import org.apache.myfaces.trinidadinternal.ui.UINode;
@@ -270,7 +272,11 @@
if (destination != null)
{
- destination = encodeURL(context, destination);
+ String destinationBeforeEncode = destination;
+ FacesContext facesContext = context.getFacesContext();
+ if(facesContext != null)
+ destination = facesContext.getExternalContext().encodeActionURL(destination);
+
Object targetFrame = getTargetFrame(context, node);
// if destination starts with "javascript:",
@@ -286,8 +292,8 @@
destination +
"'";
}
- else if ( destination.length() < 11 ||
- !"javascript:".equalsIgnoreCase(destination.substring(0,11)))
+ else if ( destinationBeforeEncode.length() < 11 ||
+ !"javascript:".equalsIgnoreCase(destinationBeforeEncode.substring(0,11)))
{
onClickJS = "document.location='" + destination + "'";
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/CommandItemRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/CommandItemRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/CommandItemRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/CommandItemRenderer.java Wed Jan 31 15:29:21 2007
@@ -88,7 +88,7 @@
if ( destination != null)
{
- value = '#' + encodeURL(context, destination);
+ value = '#' + encodeActionURL(context, destination);
}
else if ( value != null)
{
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ImageRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ImageRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ImageRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ImageRenderer.java Wed Jan 31 15:29:21 2007
@@ -184,7 +184,7 @@
{
Object source = _getLocalSource(context, node);
- renderURIAttribute(context, SOURCE_ATTRIBUTE, source);
+ renderEncodedResourceURI(context, SOURCE_ATTRIBUTE, source);
renderAltAndTooltipForImage(context, getShortDesc(context, node));
renderAttribute(context, node, WIDTH_ATTRIBUTE, WIDTH_ATTR);
renderAttribute(context, node, HEIGHT_ATTRIBUTE, HEIGHT_ATTR);
@@ -277,7 +277,7 @@
if (hasLink)
{
- renderEncodedURIAttribute(context, HREF_ATTRIBUTE, destination);
+ renderEncodedActionURI(context, HREF_ATTRIBUTE, destination);
if (supportsAccessKeys(context))
{
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/LinkRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/LinkRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/LinkRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/LinkRenderer.java Wed Jan 31 15:29:21 2007
@@ -198,7 +198,7 @@
if (!isJavascript ||
supportsScripting(context))
{
- renderEncodedURIAttribute(context, "href", destination);
+ renderEncodedActionURI(context, "href", destination);
}
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/NavigationBarRenderer.java Wed Jan 31 15:29:21 2007
@@ -514,7 +514,8 @@
// First, non-formSubmitted mode.
if (formName == null)
{
- onChange = _getChoiceOnChange(_getDestinationString(context, navBar),
+ onChange = _getChoiceOnChange(context,
+ _getDestinationString(context, navBar),
sourceKey,
eventKey,
name,
@@ -565,6 +566,7 @@
}
private String _getChoiceOnChange(
+ UIXRenderingContext context,
String destination,
String sourceKey,
String eventKey,
@@ -608,13 +610,20 @@
startScript = _CHOICE_ON_CHANGE_START;
endScript = _CHOICE_ON_CHANGE_END;
}
-
- StringBuffer buffer = new StringBuffer(initialSize +
- startScript.length() +
- endScript.length());
+
+ int bufferlength = initialSize + startScript.length() + endScript.length();
+ StringBuffer buffer = new StringBuffer(bufferlength);
+ StringBuffer urlBuffer = new StringBuffer(initialSize);
buffer.append(startScript);
- appendURLArguments(buffer, destination, keysAndValues);
+
+ appendURLArguments(urlBuffer, destination, keysAndValues);
+ String url = urlBuffer.toString();
+ FacesContext facesContext = context.getFacesContext();
+ if(facesContext != null)
+ url = facesContext.getExternalContext().encodeActionURL(url);
+
+ buffer.append(url);
buffer.append(endScript);
return buffer.toString();
@@ -1339,7 +1348,8 @@
int count = choice.getIndexedChildCount(context);
if (count > 1)
{
- onChange = _getChoiceOnChange(destination,
+ onChange = _getChoiceOnChange(context,
+ destination,
sourceKey,
eventKey,
name,
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ScriptRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ScriptRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ScriptRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/ScriptRenderer.java Wed Jan 31 15:29:21 2007
@@ -75,7 +75,7 @@
}
writer.writeAttribute("language", "javascript", null);
- writer.writeURIAttribute("src", source, null);
+ renderEncodedResourceURI(context, "src", source);
_renderDeferAttribute(context, node);
// Bug #3426092:
// render the type="text/javascript" attribute in accessibility mode
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafRenderer.java Wed Jan 31 15:29:21 2007
@@ -22,6 +22,8 @@
import java.util.Iterator;
import javax.faces.component.UIComponent;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
import javax.faces.convert.Converter;
import javax.faces.validator.Validator;
@@ -470,7 +472,7 @@
{
return true;
}
-
+
public static void renderStyleAndClass(
UIXRenderingContext context,
String inlineStyle,
@@ -1434,7 +1436,7 @@
if (supportsNavigation(context))
{
writer.startElement("a", null);
- renderEncodedURIAttribute(context, HREF_ATTRIBUTE, destination);
+ renderEncodedActionURI(context, HREF_ATTRIBUTE, destination);
writer.writeAttribute("onclick", onClick, null);
writer.writeAttribute("target", targetFrame, null);
@@ -1461,7 +1463,7 @@
// get the correct alignment to use for the agent
writer.writeAttribute("align", imgAlign, null);
- writer.writeAttribute("src", iconAbsoluteURI, null);
+ renderEncodedResourceURI(context, "src", iconAbsoluteURI);
writer.writeAttribute("border", "0", null);
if (isBlock)
{
@@ -1507,9 +1509,11 @@
ResponseWriter writer = context.getResponseWriter();
- writer.writeAttribute(attribute,
- getBaseImageURI(context) + uri,
- null);
+ String encodedUri = getBaseImageURI(context) + uri;
+ FacesContext facesContext = context.getFacesContext();
+ if (facesContext != null)
+ encodedUri = facesContext.getExternalContext().encodeResourceURL(encodedUri);
+ writer.writeURIAttribute(attribute, encodedUri, null);
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafUtils.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafUtils.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafUtils.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/XhtmlLafUtils.java Wed Jan 31 15:29:21 2007
@@ -27,7 +27,6 @@
import java.util.Stack;
import javax.faces.component.UIComponent;
-import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
@@ -46,9 +45,7 @@
import org.apache.myfaces.trinidadinternal.share.url.FormEncoder;
import org.apache.myfaces.trinidadinternal.style.ParsedPropertyKey;
import org.apache.myfaces.trinidadinternal.style.Style;
-import org.apache.myfaces.trinidadinternal.style.StyleContext;
import org.apache.myfaces.trinidadinternal.style.StyleMap;
-import org.apache.myfaces.trinidadinternal.style.StyleProvider;
import org.apache.myfaces.trinidadinternal.style.util.StyleUtils;
import org.apache.myfaces.trinidadinternal.ui.AttributeKey;
import org.apache.myfaces.trinidadinternal.ui.MutableUINode;
@@ -313,18 +310,8 @@
// try to get it now
if (styleClasses == null)
{
- ExternalContext external =
- context.getFacesContext().getExternalContext();
-
- if (!"true".equals(
- external.getInitParameter(
- Configuration.DISABLE_CONTENT_COMPRESSION)))
- {
- StyleContext styleContext = context.getStyleContext();
- StyleProvider provider = context.getStyleContext().getStyleProvider();
- styleClasses = StyleUtils.getShortStyleClasses(styleContext, provider);
-
- }
+ RenderingContext arc = RenderingContext.getCurrentInstance();
+ styleClasses = context.getSkin().getStyleClassMap(arc);
if (styleClasses == null)
styleClasses = _NULL_STYLE_CLASSES;
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/util/FormattedTextParser.java Wed Jan 31 15:29:21 2007
@@ -726,7 +726,10 @@
RenderingContext arc = RenderingContext.getCurrentInstance();
if (!Boolean.FALSE.equals(arc.getAgent().getCapabilities().get(
TrinidadAgent.CAP_NAVIGATION)))
+ {
+ href = context.getExternalContext().encodeActionURL(href);
context.getResponseWriter().writeURIAttribute("href", href, null);
+ }
}
@Override
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/PseudoFacesContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/PseudoFacesContext.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/PseudoFacesContext.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/PseudoFacesContext.java Wed Jan 31 15:29:21 2007
@@ -18,17 +18,7 @@
*/
package org.apache.myfaces.trinidadinternal.webapp;
-import java.io.InputStream;
-import java.net.URL;
-
-import java.util.AbstractMap;
-import java.util.Collections;
import java.util.Iterator;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-
-import java.security.Principal;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
@@ -37,16 +27,8 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseStream;
import javax.faces.context.ResponseWriter;
-
import javax.faces.render.RenderKit;
-//import javax.servlet.ServletContext;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
/**
* Pseudo FacesContext, vended by the filter for code that
* needs to run before (or after) the FacesServlet, but needs
@@ -57,12 +39,10 @@
*/
class PseudoFacesContext extends FacesContext
{
- public PseudoFacesContext(
- ServletRequest request,
- ServletResponse response)
+ public PseudoFacesContext(ExternalContext ec)
{
- _external = new External((HttpServletRequest) request,
- (HttpServletResponse) response);
+ assert ec!= null;
+ _external = ec;
}
@Override
@@ -181,281 +161,4 @@
private final ExternalContext _external;
-
- private static final class External extends ExternalContext
- {
- public External(
- HttpServletRequest request,
- HttpServletResponse response)
- {
- _request = request;
- _response = response;
- }
-
- // Can't very well have a ServletContext before a servlet!!!
- @Override
- public Object getContext() { throw new UnsupportedOperationException(); }
- @Override
- public Object getRequest() { return _request; }
- @Override
- public Object getResponse() { return _response; }
- @Override
- public Object getSession(boolean create)
- {
- return _request.getSession(create);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Map<String, Object> getSessionMap()
- {
- Object o = getSession(true);
- if (o == null)
- return Collections.EMPTY_MAP;
-
- return new SessionMap((HttpSession) o);
- }
-
- @Override
- public String getRequestContextPath()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getRequestServletPath()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getInitParameter(String name)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String encodeResourceURL(String url)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String encodeActionURL(String url)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, Object> getRequestMap()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, Object> getApplicationMap()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void dispatch(String path)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String encodeNamespace(String name)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getAuthType()
- {
- throw new UnsupportedOperationException();
- }
-
- // -= Simon Lessard =-
- // FIXME: Odd... JSF 1.2 does not give generics type for this map
- @SuppressWarnings("unchecked")
- @Override
- public Map getInitParameterMap()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public String getRemoteUser()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, Object> getRequestCookieMap()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, String> getRequestHeaderMap()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, String[]> getRequestHeaderValuesMap()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Locale getRequestLocale()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Iterator<Locale> getRequestLocales()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Map<String, String> getRequestParameterMap()
- {
- return new ParameterMap(_request);
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Iterator<String> getRequestParameterNames()
- {
- return _request.getParameterMap().keySet().iterator();
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Map<String, String[]> getRequestParameterValuesMap()
- {
- return _request.getParameterMap();
- }
-
- @Override
- public String getRequestPathInfo()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public URL getResource(String path)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public InputStream getResourceAsStream(String path)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Set<String> getResourcePaths(String path)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public Principal getUserPrincipal()
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public boolean isUserInRole(String role)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void log(String message)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void log(String message, Throwable exception)
- {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void redirect(String url)
- {
- throw new UnsupportedOperationException();
- }
-
- private HttpServletRequest _request;
- private HttpServletResponse _response;
- }
-
- private static final class ParameterMap extends AbstractMap<String, String>
- {
- public ParameterMap(ServletRequest request)
- {
- _request = request;
- }
-
- @Override
- public String get(Object key)
- {
- return _request.getParameter((String) key);
- }
-
- @Override
- public Set<Map.Entry<String, String>> entrySet()
- {
- throw new UnsupportedOperationException();
- }
-
- private ServletRequest _request;
- }
-
- private static final class SessionMap extends AbstractMap<String, Object>
- {
- public SessionMap(HttpSession session)
- {
- _session = session;
- }
-
- @Override
- public Object get(Object key)
- {
- return _session.getAttribute((String) key);
- }
-
- @Override
- public Object put(String key, Object value)
- {
- Object old = _session.getAttribute(key);
- _session.setAttribute(key, value);
- return old;
- }
-
- @Override
- public Object remove(Object key)
- {
- Object old = _session.getAttribute((String) key);
- _session.removeAttribute((String) key);
- return old;
- }
-
- @Override
- public Set<Map.Entry<String, Object>> entrySet()
- {
- throw new UnsupportedOperationException();
- }
-
- private HttpSession _session;
- }
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java Wed Jan 31 15:29:21 2007
@@ -19,14 +19,11 @@
package org.apache.myfaces.trinidadinternal.webapp;
import java.io.IOException;
-import java.io.InputStream;
-
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
-
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
@@ -40,19 +37,14 @@
import javax.servlet.http.HttpServletResponseWrapper;
import org.apache.myfaces.trinidad.logging.TrinidadLogger;
-import org.apache.myfaces.trinidad.context.RequestContext;
-import org.apache.myfaces.trinidad.context.RequestContextFactory;
-import org.apache.myfaces.trinidad.model.UploadedFile;
import org.apache.myfaces.trinidad.util.ClassLoaderUtils;
-
-import org.apache.myfaces.trinidadinternal.context.RequestContextFactoryImpl;
+import org.apache.myfaces.trinidadinternal.config.GlobalConfiguratorImpl;
+import org.apache.myfaces.trinidadinternal.config.dispatch.DispatchResponseConfiguratorImpl;
+import org.apache.myfaces.trinidadinternal.config.dispatch.DispatchServletResponse;
+import org.apache.myfaces.trinidadinternal.config.upload.FileUploadConfiguratorImpl;
+import org.apache.myfaces.trinidadinternal.config.upload.UploadRequestWrapper;
import org.apache.myfaces.trinidadinternal.context.RequestContextImpl;
-import org.apache.myfaces.trinidadinternal.context.TrinidadPhaseListener;
-import org.apache.myfaces.trinidadinternal.share.util.MultipartFormHandler;
-import org.apache.myfaces.trinidadinternal.share.util.MultipartFormItem;
-import org.apache.myfaces.trinidad.skin.SkinFactory;
-import org.apache.myfaces.trinidadinternal.skin.SkinFactoryImpl;
-import org.apache.myfaces.trinidadinternal.skin.SkinUtils;
+import org.apache.myfaces.trinidadinternal.context.external.ServletExternalContext;
/**
* Actual implementation of the Trinidad servlet filter.
@@ -91,68 +83,26 @@
context.getExternalContext().getRequestMap().get(_IS_RETURNING_KEY));
}
-
-
- /**
- * Sets the maximum number of bytes that MultipartFormItem.writeFile()
- * will be allowed to write. This value may be set immediately
- * before or between calls to MultipartFormItem.writeFile(). If
- * any call to writeFile() exceeds this value, an EOFException
- * will be thrown.
- * <p>
- * @param maxAllowedBytes the maximum number of bytes that
- * MultipartFormItem.writeFile() will be allowed to write. Defaults
- * to 128MB.
- * @see org.apache.myfaces.trinidadinternal.share.util.MultipartFormItem#writeFile
- */
- public void setMaximumAllowedBytes(long maxAllowedBytes)
- {
- _maxAllowedBytes = Math.max(0L, maxAllowedBytes);
- }
-
- /**
- * Gets the maximum number of bytes that MultipartFormItem.writeFile()
- * will be allowed to write.
- */
- public long getMaximumAllowedBytes()
- {
- return _maxAllowedBytes;
- }
-
- public void init(
- FilterConfig filterConfig) throws ServletException
+ public void init(FilterConfig filterConfig) throws ServletException
{
- if (RequestContextFactory.getFactory() == null)
- RequestContextFactory.setFactory(new RequestContextFactoryImpl());
-
_servletContext = filterConfig.getServletContext();
-
- // Create a new SkinFactory if needed.
- if (SkinFactory.getFactory() == null)
- SkinFactory.setFactory(new SkinFactoryImpl());
-
- // register the base skins
- SkinUtils.registerBaseSkins();
-
+
+ //There is some functionality that still might require servlet-only filter services.
_filters = ClassLoaderUtils.getServices(TrinidadFilterImpl.class.getName());
for(Filter f:_filters)
{
f.init(filterConfig);
}
- // after the 'services' filters are initialized, then register
- // the skin extensions & skin additions found in trinidad-skins.xml.
- // This gives a chance to the 'services' filters to create more base
- // skins that the skins in trinidad-skins.xml can extend.
- SkinUtils.registerSkinExtensions(_servletContext);
-
}
public void destroy()
{
+ //Destroy filter services
for(Filter f:_filters)
{
f.destroy();
}
+
_filters = null;
}
@@ -162,6 +112,7 @@
ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
+ //Execute the filter services
if (!_filters.isEmpty())
chain = new FilterListChain(_filters, chain);
@@ -169,110 +120,28 @@
// properly installed.
request.setAttribute(_FILTER_EXECUTED_KEY, Boolean.TRUE);
-
- // If someone didn't release the RequestContext on an earlier request,
- // then it'd still be around, and trying to create a new one
- // would trigger an exception. We don't want to take down
- // this thread for all eternity, so clean up after poorly-behaved code.
- RequestContext context = RequestContext.getCurrentInstance();
- if (context != null)
- {
- if (_LOG.isWarning())
- _LOG.warning("RequestContext had not been properly released on earlier " +
- "request.");
- context.release();
- }
-
- RequestContextFactory factory = RequestContextFactory.getFactory();
- assert(factory != null);
-
- // See if we've got a cached RequestContext instance; if so,
- // reattach it
- Object cachedRequestContext =
- request.getAttribute(TrinidadPhaseListener.CACHED_REQUEST_CONTEXT);
-
- // Catch both the null scenario and the
- // RequestContext-from-a-different-classloader scenario
- if (cachedRequestContext instanceof RequestContext)
- {
- context = (RequestContext) cachedRequestContext;
- context.attach();
- }
- else
+ ExternalContext externalContext = new ServletExternalContext(_servletContext, request, response);
+ GlobalConfiguratorImpl config = GlobalConfiguratorImpl.getInstance();
+ config.beginRequest(externalContext);
+
+ //To maintain backward compatibilty, wrap the request at the filter level
+ Map<String, String[]> addedParams = (Map<String, String[]>) externalContext.getRequestMap().
+ get(FileUploadConfiguratorImpl._PARAMS);
+
+ if(addedParams != null)
{
- context = factory.createContext(_servletContext, request);
- request.setAttribute(TrinidadPhaseListener.CACHED_REQUEST_CONTEXT,
- context);
+ FileUploadConfiguratorImpl.apply(externalContext);
+ request = new UploadRequestWrapper((HttpServletRequest)request, addedParams);
}
-
- assert(RequestContext.getCurrentInstance() == context);
-
+
try
{
- // Only handle multipart and HTTP requests
- if (!MultipartFormHandler.isMultipartRequest(request) ||
- !(request instanceof HttpServletRequest))
- {
- _doFilterImpl(request, response, chain);
- }
- else
- {
- MultipartFormHandler mfh = new MultipartFormHandler(request);
- mfh.setMaximumAllowedBytes(getMaximumAllowedBytes());
- mfh.setCharacterEncoding(request.getCharacterEncoding());
-
- HashMap<String, String[]> parameters = new HashMap<String, String[]>();
-
- // Copy over all parameters that were already present (for example,
- // query parameters)
- parameters.putAll(request.getParameterMap());
-
- MultipartFormItem item;
- UploadedFiles files = new UploadedFiles(request);
- while ((item = mfh.getNextPart()) != null)
- {
- String name = item.getName();
- String value = null;
- // No filename - it's not a file uploaded field
- if (item.getFilename() == null)
- {
- value = item.getValue();
- Object oldValue = parameters.get(name);
- if (oldValue == null)
- {
- parameters.put(name, new String[]{value});
- }
- else
- {
- String[] oldArray = (String[]) oldValue;
- String[] newArray = new String[oldArray.length + 1];
- System.arraycopy(oldArray, 0, newArray, 1, oldArray.length);
- newArray[0] = value;
- parameters.put(name, newArray);
- }
- }
- // Upload a file
- else if (item.getFilename().length() > 0)
- {
- _doUploadFile(context, request, files, item);
- }
- }
-
- request = new UploadRequestWrapper((HttpServletRequest) request,
- parameters);
-
- _doFilterImpl(request, response, chain);
-
- files.dispose();
- }
+
+ _doFilterImpl(request, response, chain);
}
finally
{
- if (context != null)
- {
- context.release();
- assert(RequestContext.getCurrentInstance() == null);
- }
+ config.endRequest(externalContext);
}
}
@@ -283,12 +152,17 @@
ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
+ // -= Scott O'Bryan =-
+ // This is used for PPR. Not needed in Portal Environment at the moment
+ // At some point we may want to make this a configurator
HttpServletResponse monitor
- = new MonitorRedirectServletResponse((HttpServletResponse) response,
- request);
-
- ServletResponse dispatch
- = new DispatchServletResponse(monitor, (HttpServletRequest)request);
+ = new MonitorRedirectServletResponse((HttpServletResponse) response, request);
+
+ // -= Scott O'Bryan =-
+ // Added for backward compatibility
+ ExternalContext ec = new ServletExternalContext(_servletContext, request, monitor);
+ HttpServletResponse dispatch = new DispatchServletResponse(ec);
+ DispatchResponseConfiguratorImpl.apply(ec);
_invokeDoFilter(request, dispatch, chain);
@@ -301,6 +175,12 @@
// However, the Servlet specification suggest <String, Object> so this
// could lead to some nasty problems one day. Especially if JEE spec includes
// generics for its Servlet API soon.
+ //
+ // -= Scott O'Bryan =-
+ // TODO: The following should be made available to the Portal. This is not trivial
+ // because this just re-invokes the filter chain with a new set of parameters.
+ // In the portal environment, this must rerun the portlet without the use of
+ // filters until Portlet 2.0.
Map<String, String[]> launchParameters = (Map<String, String[]>)
request.getAttribute(RequestContextImpl.LAUNCH_PARAMETERS);
if (launchParameters != null)
@@ -322,7 +202,8 @@
// Set up a PseudoFacesContext with the actual request and response
// so that RequestContext can be more functional in the interval
// between now and when the FacesServlet starts.
- PseudoFacesContext pfc = new PseudoFacesContext(request, response);
+ PseudoFacesContext pfc = new PseudoFacesContext(
+ new ServletExternalContext(_servletContext, request, response));
_PSEUDO_FACES_CONTEXT.set(pfc);
try
{
@@ -334,28 +215,6 @@
}
}
- private void _doUploadFile(
- RequestContext context,
- ServletRequest request,
- UploadedFiles files,
- MultipartFormItem item) throws IOException
- {
- UploadedFile temp = new TempUploadedFile(item);
-
- UploadedFile file =
- context.getUploadedFileProcessor().processFile(request, temp);
-
- if (file != null)
- {
- // Store the file.
- files.__put(item.getName(), file);
-
- if (_LOG.isFine())
- _LOG.fine("Uploaded file " + file.getFilename() + "(" +
- file.getLength() + " bytes) for ID " + item.getName());
- }
- }
-
/**
* A ServletResponseWrapper that will catch partial page redirects
* and handle them correctly.
@@ -428,50 +287,6 @@
}
}
- static private class TempUploadedFile implements UploadedFile
- {
- public TempUploadedFile(MultipartFormItem item)
- {
- _item = item;
- assert(item.getValue() == null);
- }
-
- public String getFilename()
- {
- return _item.getFilename();
- }
-
- public String getContentType()
- {
- return _item.getContentType();
- }
-
- public long getLength()
- {
- // The length is not known yet.
- return -1L;
- }
-
- public Object getOpaqueData()
- {
- return null;
- }
-
- public InputStream getInputStream() throws IOException
- {
- return _item.getInputStream();
- }
-
- public void dispose()
- {
- throw new UnsupportedOperationException();
- }
-
- private MultipartFormItem _item;
- }
-
- private long _maxAllowedBytes = 1L << 27;
-
private ServletContext _servletContext;
private List<Filter> _filters = null;
@@ -493,5 +308,6 @@
protected PseudoFacesContext initialValue() { return null; }
};
- private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(TrinidadFilterImpl.class);
+ private static final TrinidadLogger _LOG =
+ TrinidadLogger.createTrinidadLogger(TrinidadFilterImpl.class);
}
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/base-desktop.xss
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/base-desktop.xss?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/base-desktop.xss (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/main/resources/META-INF/adf/styles/base-desktop.xss Wed Jan 31 15:29:21 2007
@@ -1174,16 +1174,16 @@
<property name="cursor">pointer</property>
</style>
<style selector="af|navigationPane::bar-active-enabled af|navigationPane::bar-content">
- <property name="color">black</property>
+ <includeStyle name="AFTextForeground"/>
</style>
<style selector="af|navigationPane::bar-inactive-enabled af|navigationPane::bar-content">
- <property name="color">black</property>
+ <includeStyle name="AFTextForeground"/>
</style>
<style selector="af|navigationPane::bar-active-enabled af|navigationPane::bar-content a">
- <property name="color">black</property>
+ <includeStyle name="AFTextForeground"/>
</style>
<style selector="af|navigationPane::bar-inactive-enabled af|navigationPane::bar-content a">
- <property name="color">black</property>
+ <includeStyle name="AFTextForeground"/>
</style>
<style selector="af|navigationPane::bar-active-enabled af|navigationPane::bar-content a:hover">
<property name="text-decoration">underline</property>
@@ -1349,11 +1349,13 @@
<style selector="af|navigationPane::tabs-inactive">
<property name="cursor">pointer</property>
</style>
- <style selector="af|navigationPane af|navigationPane::tabs-active:disabled">
+ <style selector="af|navigationPane::tabs-active:disabled">
<property name="cursor">default</property>
+ <property name="color">gray</property>
</style>
- <style selector="af|navigationPane af|navigationPane::tabs-inactive:disabled">
+ <style selector="af|navigationPane::tabs-inactive:disabled">
<property name="cursor">default</property>
+ <property name="color">gray</property>
</style>
<style selector="af|navigationPane::tabs-start">
<includeStyle name=".p_AFOverlappingTabTopHeight"/>
@@ -1426,18 +1428,18 @@
<style selector="af|navigationPane::tabs-mid">
<includeStyle name="AFDefaultFont"/>
<property name="padding-left">3px</property>
- <property name="color">#000000</property>
+ <includeStyle name="AFTextForeground"/>
<property name="white-space">nowrap</property>
</style>
<style selector="af|navigationPane::tabs-mid A">
<includeStyle name="AFDefaultFont"/>
- <property name="color">#000000</property>
+ <includeStyle name="AFTextForeground"/>
<property name="text-decoration">none</property>
</style>
- <style selector="af|navigationPane af|navigationPane::tabs-active:disabled af|navigationPane::tabs-mid">
+ <style selector="af|navigationPane::tabs-active:disabled af|navigationPane::tabs-mid">
<property name="color">gray</property>
</style>
- <style selector="af|navigationPane af|navigationPane::tabs-inactive:disabled af|navigationPane::tabs-mid">
+ <style selector="af|navigationPane::tabs-inactive:disabled af|navigationPane::tabs-mid">
<property name="color">gray</property>
</style>
<style selector="af|navigationPane::tabs-bottom-mid">
@@ -1474,11 +1476,9 @@
<style selector="af|navigationPane::tabs-active af|navigationPane::tabs-mid">
<property name="background-image">url('../../images/tab3-mid-selected.gif')</property>
<property name="font-weight">bold</property>
- <property name="color">#585955</property>
</style>
<style selector="af|navigationPane::tabs-active af|navigationPane::tabs-mid A">
<property name="font-weight">bold</property>
- <property name="color">#585955</property>
</style>
<style selector="af|navigationPane::tabs-active af|navigationPane::tabs-bottom-mid">
<property name="background-image">url('../../images/tab3-bot-mid-selected.gif')</property>
@@ -1515,10 +1515,10 @@
</style>
<style selector="af|navigationPane::tabs-inactive af|navigationPane::tabs-mid">
<property name="background-image">url('../../images/tab3-mid-deselected.gif')</property>
- <property name="color">#000000</property>
+ <includeStyle name="AFTextForeground"/>
</style>
<style selector="af|navigationPane::tabs-inactive af|navigationPane::tabs-mid A">
- <property name="color">#000000</property>
+ <includeStyle name="AFTextForeground"/>
</style>
<style selector="af|navigationPane::tabs-inactive af|navigationPane::tabs-bottom-mid">
<property name="background-image">url('../../images/tab3-bot-deselected.gif')</property>
Modified: incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/context/RequestContextTest.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/context/RequestContextTest.java?view=diff&rev=502039&r1=502038&r2=502039
==============================================================================
--- incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/context/RequestContextTest.java (original)
+++ incubator/adffaces/branches/jwaldman-portal-pretrunkmerge/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/context/RequestContextTest.java Wed Jan 31 15:29:21 2007
@@ -125,6 +125,6 @@
{
// =-=AEW Would be better to create it with a mock context so we
// can test parsing
- return (new RequestContextFactoryImpl()).createContext(null, null);
+ return (new RequestContextFactoryImpl()).createContext(null);
}
}