Updated Branches: refs/heads/wicket-1.5.x 7735422f7 -> 9b329e002
WICKET-4457 setTextEncoding on JavascriptResourceReferences/CssResourceReferences Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/9b329e00 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/9b329e00 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/9b329e00 Branch: refs/heads/wicket-1.5.x Commit: 9b329e0027a45e22160bb9d335dd72eae8821505 Parents: 7735422 Author: Peter Ertl <p...@apache.org> Authored: Tue May 8 00:24:27 2012 +0200 Committer: Peter Ertl <p...@apache.org> Committed: Tue May 8 00:26:43 2012 +0200 ---------------------------------------------------------------------- .../wicket/request/resource/AbstractResource.java | 12 ++---- .../wicket/request/resource/PackageResource.java | 31 ++++++++++++++- 2 files changed, 34 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/9b329e00/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java index 79e4d9f..9fdf1f1 100644 --- a/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/AbstractResource.java @@ -225,8 +225,8 @@ public abstract class AbstractResource implements IResource } /** - * Sets the text encoding for the resource. The encoding is only used if the content type - * indicates a textual resource. + * Sets the text encoding for the resource. This setting must only used + * if the resource response represents text. * * @param textEncoding * character encoding of text body @@ -554,12 +554,6 @@ public abstract class AbstractResource implements IResource String fileName = data.getFileName(); ContentDisposition disposition = data.getContentDisposition(); String mimeType = data.getContentType(); - String encoding = null; - - if (mimeType != null && mimeType.contains("text")) - { - encoding = data.getTextEncoding(); - } long contentLength = data.getContentLength(); @@ -576,6 +570,8 @@ public abstract class AbstractResource implements IResource // 4. Mime Type (+ encoding) if (mimeType != null) { + final String encoding = data.getTextEncoding(); + if (encoding == null) { webResponse.setContentType(mimeType); http://git-wip-us.apache.org/repos/asf/wicket/blob/9b329e00/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java index 4237a27..ba6d03e 100644 --- a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java +++ b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResource.java @@ -116,6 +116,11 @@ public class PackageResource extends AbstractResource implements IStaticCacheabl */ private final String variation; + /** + * text encoding (may be null) - only makes sense for character-based resources + */ + + private String textEncoding = null; /** * Hidden constructor. @@ -149,7 +154,7 @@ public class PackageResource extends AbstractResource implements IStaticCacheabl path = name; } - scopeName = scope.getName(); + this.scopeName = scope.getName(); this.locale = locale; this.style = style; this.variation = variation; @@ -165,6 +170,27 @@ public class PackageResource extends AbstractResource implements IStaticCacheabl return style != null ? style : Session.get().getStyle(); } + /** + * get text encoding (intented for character-based resources) + + * @return custom encoding or {@code null} to use default + */ + public String getTextEncoding() + { + return textEncoding; + } + + /** + * set text encoding (intented for character-based resources) + * + * @param textEncoding + * custom encoding or {@code null} to use default + */ + public void setTextEncoding(final String textEncoding) + { + this.textEncoding = textEncoding; + } + public Serializable getCacheKey() { IResourceStream stream = getCacheableResourceStream(); @@ -237,6 +263,9 @@ public class PackageResource extends AbstractResource implements IStaticCacheabl // set Content-Type (may be null) resourceResponse.setContentType(contentType); + // set content encoding (may be null) + resourceResponse.setTextEncoding(getTextEncoding()); + try { // read resource data