You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Andy Schwartz (Commented) (JIRA)" <de...@myfaces.apache.org> on 2012/03/23 16:41:27 UTC
[jira] [Commented] (TRINIDAD-2250) Skin pregeneration missing agent
versions
[ https://issues.apache.org/jira/browse/TRINIDAD-2250?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13236685#comment-13236685 ]
Andy Schwartz commented on TRINIDAD-2250:
-----------------------------------------
This patch:
https://issues.apache.org/jira/secure/attachment/12519643/trinidad-2250.patch
Solves the problem by adding two new methods to Version:
+ /**
+ * Converts this Version to the previous version just before this
+ * version. For example, new Version("1.9").toPreviousVersion()
+ * results in the version "1.8".
+ *
+ * The resulting version is guaranteed to be "concrete" - ie.
+ * will contain no wildcards.
+ *
+ * Calling toPreviousVersion() on Version.MIN_VERSION returns
+ * Version.MIN_VERSION.
+ *
+ * @return the Version instance corresponding to the version just
+ * before this version.
+ */
+ public Version toPreviousVersion()
+ /**
+ * Converts this Version to the next version just after this
+ * version. For example, new Version("1.9").toPreviousVersion()
+ * results in the version "1.10".
+ *
+ * The resulting version is guaranteed to be "concrete" - ie.
+ * will contain no wildcards.
+ *
+ * Calling toNextVersion() on Version.MAX_VERSION returns
+ * Version.MAX_VERSION.
+ *
+ * @return the Version instance corresponding to the version just
+ * after this version.
+ */
+ public Version toNextVersion()
We use these to expand the set of agent versions that we pregenerate - ie. in addition to the start/end of each @agent version range, we also attempt to pregenerate:
- The version just previous to the start of the range.
- The version just after the end of the range.
Looking back at the example above, this means that we would pregenerate for:
- 0 (start of #2)
- 1 (start of #1
- 3 (end of #2)
- 4 (end.toNextVersion() of #2)
- 7 (start.toPreviousVersion() of #3)
- 8 (start of #3)
- Integer.MAX_VALUE (end of #1 and #3)
And thus cover the case where we match range #1 but not #2 or #3.
> Skin pregeneration missing agent versions
> -----------------------------------------
>
> Key: TRINIDAD-2250
> URL: https://issues.apache.org/jira/browse/TRINIDAD-2250
> Project: MyFaces Trinidad
> Issue Type: Bug
> Components: Skinning
> Affects Versions: 2.0.2-core
> Reporter: Andy Schwartz
> Assignee: Andy Schwartz
> Attachments: trinidad-2250.patch
>
>
> In cases where skins specify overlapping version ranges, skin pregeneration may fail to generate certain style sheets.
> For example, imagine the skin specifies @agent rules for the following version ranges:
> 1. min-version:1
> 2. max:version:3
> 3. min-version:8
> With our current implementation, we only attempt to generate style sheets for the start and end of each version range.
> For the above example, this would be:
> - 0 (start of #2)
> - 1 (start of #1
> - 3 (end of #2)
> - 8 (start of #3)
> - Integer.MAX_VALUE (end of #1 and #3)
> If the actual agent version is 7, we should use a style sheet that matches #1, but not #2 or #3. However, we since we only use the start/end points of each version range to determine which style sheets to pregenerate, we fail to pregenerate such a style sheet.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira