[google-web-toolkit commit] r5242 - Edited wiki page through web user interface.

41 views
Skip to first unread message

codesite...@google.com

unread,
Apr 15, 2009, 7:22:59 PM4/15/09
to gwt...@gmail.com
Author: amitm...@google.com
Date: Wed Apr 15 16:03:52 2009
New Revision: 5242

Modified:
wiki/ResourceOracle.wiki

Log:
Edited wiki page through web user interface.

Modified: wiki/ResourceOracle.wiki
==============================================================================
--- wiki/ResourceOracle.wiki (original)
+++ wiki/ResourceOracle.wiki Wed Apr 15 16:03:52 2009
@@ -100,17 +100,17 @@

As of Gwt 1.6, if multiple {{{PathPrefix}}}es have the same path attribute
but different {{{ResourceFilter}}}s, only the last one is kept. This is an
undesirable outcome in most cases. For example, if there are two
{{{PathPrefix}}}es p4 and p5:
{{{
-p4: <source path="client" includes="*.java" excludes="**/testing/***" />
+p4: <source path="client" includes="*.java" />

-p5: <source path="client" includes="Foo.java" excludes="shared/**" />
+p5: <source path="client" includes="Foo.java" />
}}}

-only the second path-prefix is kept. In particular, a path like
client/Bar.java is excluded, as a result of being excluded by the second
path-prefix. This outcome is probably different from what the user expects.
In this scenario, any path-prefixes defined by a user, however specific,
could end up clobbering any path-prefixes that the user's modules inherit.
The primary reason this clobbering happens is because Gwt 1.6 internally
does not distinguish between the inclusion (exclusion) being specifically
mentioned by the {{{PathPrefix}}} and the inclusion (exclusion) due to
defaults. When a resource with a specified path is processed by a Gwt 1.6
{{{PathPrefix}}}, the output is either *include* or *exclude*. The resource
is included if the output is *include*. Else, the output is *exclude* and
the resource is excluded. To handle multiple {{{PathPrefix}}}es
meaningfully, we generalize the output to be:
+only the second path-prefix (p5) is kept. In particular, a path like
client/Bar.java is excluded, as a result of being excluded by the second
path-prefix. This outcome is probably different from what the user expects.
In this scenario, any path-prefixes defined by a user, however specific,
could end up clobbering any path-prefixes that the user's modules inherit.
The primary reason this clobbering happens is because Gwt 1.6 internally
does not distinguish between the inclusion (exclusion) being specifically
mentioned by the {{{PathPrefix}}} and the inclusion (exclusion) due to
defaults. When a resource with a specified path is processed by a Gwt 1.6
{{{PathPrefix}}}, the output is either *include* or *exclude*. The resource
is included if the output is *include*. Else, the output is *exclude* and
the resource is excluded. To handle multiple {{{PathPrefix}}}es
meaningfully, we generalize the output to be:

# *include*: if the include filter of the {{{PathPrefix}}} specifically
includes the resource and its exclude filter does not excludes the resource.
# *exclude*: if the exclude filter of the {{{PathPrefix}}} specifically
excludes the resource.
# *unspecified_include*: if the resource is included just by default.
For example, a path-prefix {{{<source path="client" />}}} includes all java
files in the client directory by default.
- # *unspecified_exclude*: if the resource is excluded just by default.
For example, a path-prefix {{{<source path="client" />}}} excludes a file
with path as {{{client/.svn/FOO}}} by default.
+ # *unspecified_exclude*: if none of the above three outputs apply. For
example, a path-prefix {{{<source path="client" includes="Foo.java" />}}}
excludes a file with path as {{{client/Bar.java}}} by default.

For each path-prefix path, an ordered list of {{{PathPrefix}}}es is
maintained, with the lexically last {{{PathPrefix}}} at the head of the
list. If a resource matches a {{{PathPrefix}}} path, path-prefixes are
applied from the ordered list starting from the head. The next
{{{PathPrefix}}} in the list is applied only if the previous path-prefix
filter's output is either *unspecified_include* or *unspecified_exclude*.
If the output remains *unspecified_include* (*unspecified_exclude*) at the
end, it is treated as an *include* (*exclude*). As with Gwt 1.6, the
resource is included if the output is *include* at the end. Else, the
output is *exclude* and it is excluded.

Reply all
Reply to author
Forward
0 new messages