You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2013/01/08 17:47:33 UTC
svn commit: r1430375 - in /lenya/branches/BRANCH_2_1_X/src/modules/resource:
java/src/org/apache/lenya/cms/cocoon/selection/MediaTypeSelector.java
java/src/org/apache/lenya/modules/resource/MediaTypeParser.java
xslt/resource2xhtml.xsl
Author: andreas
Date: Tue Jan 8 16:47:33 2013
New Revision: 1430375
URL: http://svn.apache.org/viewvc?rev=1430375&view=rev
Log:
Ignore */* media type if other media types are requested, fix resource preview for non-suffix URIs.
Modified:
lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/cms/cocoon/selection/MediaTypeSelector.java
lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/modules/resource/MediaTypeParser.java
lenya/branches/BRANCH_2_1_X/src/modules/resource/xslt/resource2xhtml.xsl
Modified: lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/cms/cocoon/selection/MediaTypeSelector.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/cms/cocoon/selection/MediaTypeSelector.java?rev=1430375&r1=1430374&r2=1430375&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/cms/cocoon/selection/MediaTypeSelector.java (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/cms/cocoon/selection/MediaTypeSelector.java Tue Jan 8 16:47:33 2013
@@ -31,9 +31,15 @@ import org.apache.lenya.modules.resource
import com.google.common.base.Optional;
/**
+ * <p>
* Compares the media type passed as expression to the Accept header of the HTTP request.
- * Returns true if the media type matches. Matches with the double-wildcard (universal)
- * media type are ignored.
+ * Returns true if the media type matches.
+ * </p>
+ * <p>
+ * If the Accept header contains specific media types and additional the double-wildcard
+ * (universal) media type, and only the universal media type is matched, this match is
+ * ignored.
+ * </p>
*/
public class MediaTypeSelector extends AbstractLogEnabled implements Selector {
@@ -48,10 +54,11 @@ public class MediaTypeSelector extends A
Arrays.asList(expression.split("\\s,\\s")),
request.getHeader("Accept"),
true);
- getLogger().info(
- "Accepted: " + expression
- + "\nHeader: " + request.getHeader("Accept")
- + "\nDetected: " + type.or("-"));
+ getLogger().debug(
+ request.getRequestURI()
+ + "\n Accepted: " + expression
+ + "\n Header: " + request.getHeader("Accept")
+ + "\n Detected: " + type.or("-"));
return type.isPresent() && !type.equals("*/*");
}
Modified: lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/modules/resource/MediaTypeParser.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/modules/resource/MediaTypeParser.java?rev=1430375&r1=1430374&r2=1430375&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/modules/resource/MediaTypeParser.java (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules/resource/java/src/org/apache/lenya/modules/resource/MediaTypeParser.java Tue Jan 8 16:47:33 2013
@@ -226,9 +226,11 @@ public final class MediaTypeParser {
public static Optional<String> bestMatch(Collection<String> supported, String header, boolean excludeAllType) {
List<ParseResults> parseResults = new LinkedList<ParseResults>();
List<FitnessAndQuality> weightedMatches = new LinkedList<FitnessAndQuality>();
- for (String r : StringUtils.split(header, ',')) {
+ final String[] mediaTypes = StringUtils.split(header, ',');
+ final boolean exclude = excludeAllType && mediaTypes.length > 1;
+ for (String r : mediaTypes) {
ParseResults result = parseMediaRange(r);
- if (!(excludeAllType && result.type.equals("*") && result.subType.equals("*"))) {
+ if (!(exclude && result.type.equals("*") && result.subType.equals("*"))) {
parseResults.add(result);
}
}
Modified: lenya/branches/BRANCH_2_1_X/src/modules/resource/xslt/resource2xhtml.xsl
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules/resource/xslt/resource2xhtml.xsl?rev=1430375&r1=1430374&r2=1430375&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules/resource/xslt/resource2xhtml.xsl (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules/resource/xslt/resource2xhtml.xsl Tue Jan 8 16:47:33 2013
@@ -50,7 +50,17 @@ limitations under the License.
</xsl:if>
</xsl:variable>
- <xsl:variable name="mediaUrl" select="concat(substring-before($documentUrl, '.html'), '.', $sourceExtension, $revisionSuffix)"/>
+ <xsl:variable name="mediaBaseUrl">
+ <xsl:choose>
+ <xsl:when test="contains($documentUrl, '.html')">
+ <xsl:value-of select="substring-before($documentUrl, '.html')"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$documentUrl"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="mediaUrl" select="concat($mediaBaseUrl, '.', $sourceExtension, $revisionSuffix)"/>
<xsl:template match="/">
<html>
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org