1 2009-09-09 Marek Habersack <mhabersack@novell.com>
3 * Route.cs: when Url is set to null, create a parser for empty
4 string. Fixes bug #537751
6 * PatternParser.cs: Parse allows for null/empty URLs. Fixes bug
9 2009-09-08 Marek Habersack <mhabersack@novell.com>
11 * UrlRoutingModule.cs: store original request path in
12 PostResolveRequestCache and restore it in
13 PostMapRequestHandler. Fixes bug #537089
15 2009-08-19 Marek Habersack <mhabersack@novell.com>
17 * Route.cs: GetRouteData adds contents of its DataTokens
18 dictionary to the returned RouteData.DataTokens dictionary. Fixes
19 bug #523330. Patch from Dax@daxxfiles.net, thanks!
21 2009-06-25 Marek Habersack <mhabersack@novell.com>
23 * PatternParser.cs: parameter name lookups must be
25 Null and empty (string) parameters are skipped when building query
26 part of the action path.
28 2009-06-16 Marek Habersack <mhabersack@novell.com>
30 * RouteValueDictionaryExtensions.cs: do not compile if
31 SYSTEMCORE_DEP is not defined
33 * PatternParser.cs: if SYSTEMCORE_DEP is not defined, do not
34 compile parts which require RouteValueDictionaryExtensions.
36 * Decorated all classes with the TypeForwardedFrom attribute for
39 2009-06-04 Marek Habersack <mhabersack@novell.com>
41 * RouteValueDictionaryExtensions.cs: if both values are strings in
42 Has (string, value), compare them case-insensitively. Fixes bug
45 2009-05-27 Marek Habersack <mhabersack@novell.com>
47 * PatternParser.cs: if Match is passed an empty path, do not
48 attempt to match the Url segments, skip to defaults matching right
51 2009-05-25 Marek Habersack <mhabersack@novell.com>
53 * UrlPattern.cs: removed - replaced by PatternParser below.
55 * RouteValueDictionaryExtensions.cs: added - some shortcuts for
56 using RouteValueDictionary in PatternParser
58 * Route.cs: use the new PatternParser.
59 Factored out ProcessConstraint into ProcessConstraintInternal so
60 that the latter can be used by the PatternParser class.
61 Added parameter checks in ProcessConstraint.
63 * PatternTokenType.cs: added
65 * PatternToken.cs: added a helper class for the pattern parser.
67 * PatternParser.cs: added. New implementation of url
68 parser/matcher/generator which fixes all URL isues known so
69 far. Fixes bug #504378
71 2009-05-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
73 * UrlPattern.cs: if the pattern is line {a}/{b} and {b} is substituted
74 by an empty string, remove the '/' too.
76 2009-05-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
78 * UrlPattern.cs: non-string default arguments work now.
80 2009-05-12 Marek Habersack <mhabersack@novell.com>
82 * UrlPattern.cs: TrySubstitute performs substitution trimming. If
83 a segment would be set to a default value and all of its following
84 segments as well, it will be omitted from the generated URL. The
85 value comparison is done case-insensitively when the dictionary
86 values are strings. Fixes bug #502555
88 2009-05-11 Marek Habersack <mhabersack@novell.com>
90 * UrlPattern.cs: TrySubstitute treats defaults differently
91 now. They are not consulted when checking if the passed values
92 match the pattern, but only when substituting the values. Fixes
95 2009-05-05 Marek Habersack <mhabersack@novell.com>
97 * UrlPattern.cs: Match adds defaults values should some keys be
98 missing from the url. Fixes bug #500739
100 * Route.cs: a small GetRouteData loop optimization
102 2009-02-18 Marek Habersack <mhabersack@novell.com>
104 * UrlPattern.cs: TrySubstitute now gets the collection of default
105 values and uses it to replace url segments instead of failing when
106 the passed values collection is missing a segment.
107 Do not use the tokens array in Match.
109 * RouteCollection.cs: check if name is null or empty, not just
110 null in GetVirtualPath
112 * Route.cs: url.TrySubstitute should be passed the defaults
113 collection when called from GetVirtualPath
115 2009-02-14 Marek Habersack <mhabersack@novell.com>
117 * UrlPattern.cs: use the defaults collection when matching a path
118 and segments are missing.
120 * RouteCollection.cs: GetRouteData must use VirtualPathProvider
121 to check for virtual path existence.
123 2008-10-23 Atsushi Enomoto <atsushi@ximian.com>
125 * UrlPattern.cs : fixed possible out-of-range case ("tableName/" in
128 2008-10-17 Atsushi Enomoto <atsushi@ximian.com>
130 * RouteValueDictionary.cs : its string comparison is case
133 2008-10-17 Atsushi Enomoto <atsushi@ximian.com>
135 * UrlPattern.cs : fixed pattern match for such string that has
136 suffix. (DynamicData uses it.)
138 2008-10-16 Atsushi Enomoto <atsushi@ximian.com>
140 * RouteValueDictionary.cs : object argument is actually for
141 anonymous type instance.
143 2008-10-10 Atsushi Enomoto <atsushi@ximian.com>
145 * UrlRoutingModule.cs : implement PostMapRequestHandler() and
146 PostResolveRequestCache() to work correctly in order.
147 Now it should practically work.
149 2008-09-18 Atsushi Enomoto <atsushi@ximian.com>
151 * UrlRoutingModule.cs, RouteCollection.cs :
152 handle RouteExistingFiles.
154 2008-09-18 Atsushi Enomoto <atsushi@ximian.com>
156 * Route.cs : reject invalid constraint.
157 * UrlRoutingHandler.cs : more ProcessRequest() impl.
158 * UrlRoutingModule.cs : note.
160 2008-09-17 Atsushi Enomoto <atsushi@ximian.com>
162 * HttpMethodConstraint.cs, Route.cs, RouteCollection.cs,
163 UrlPattern.cs, UrlRoutingModule.cs:
164 ongoing UrlRoutingModule implementation.
166 2008-09-12 Atsushi Enomoto <atsushi@ximian.com>
168 * HttpMethodConstraint.cs, Route.cs, UrlPattern.cs,
169 RouteCollection.cs : implement Route.GetRouteData() and
170 HttpMethodConstraint.Match().
172 2008-09-12 Atsushi Enomoto <atsushi@ximian.com>
174 * UrlPattern.cs : new file for URL pattern processing.
175 * Route.cs : use above.
177 2008-09-11 Atsushi Enomoto <atsushi@ximian.com>
179 * HttpMethodConstraint.cs, RequestContext.cs, Route.cs,
180 RouteCollection.cs, RouteData.cs, RouteTable.cs,
181 RouteValueDictionary.cs, StopRoutingHandler.cs,
182 UrlRoutingHandler.cs, UrlRoutingModule.cs, VirtualPathData.cs:
185 2008-09-04 Atsushi Enomoto <atsushi@ximian.com>
187 *.cs: initial checkin.