1 2010-06-05 Marek Habersack <mhabersack@novell.com>
3 * UrlRoutingModule.cs: 4.0 doesn't do the UrlRouting.axd magic, it
4 simply remaps the current handler to the one obtained from the
7 2010-05-06 Marek Habersack <mhabersack@novell.com>
9 * RouteCollection.cs: GetVirtualPath throws ArgumentException
10 when named route is not found in the collection.
12 2010-05-05 Marek Habersack <mhabersack@novell.com>
14 * UrlRoutingModule.cs: PostMapRequestHandler is obsolete in 4.0
16 * RouteValueDictionary.cs: do not process type fields in
17 RouteValueDictionary (object)
19 * RouteCollection.cs: GetRouteData throws an exception if Request
20 is null in the passed context.
21 Added Ignore* and MapPageRoute* 4.0 APIs
23 * RequestContext.cs: 4.0 API update
25 * PatternParser.cs: match parser rewrite to encompass 4.0 bug
26 fixes. We don't emulate some of the pre-4.0 routing bugs anymore.
28 2009-11-23 Marek Habersack <mhabersack@novell.com>
30 * Route.cs: GetRouteData throws NotImplementedException only when
31 pathInfo for the current request is a non-empty string. Patch from
32 Tiaan <tagdev@gmail.com>, thanks!
34 2009-11-09 Marek Habersack <mhabersack@novell.com>
36 * RouteCollection.cs: GetVirtualPath doesn't append trailing slash
37 to application path blindly anymore. Fixes bug #553022
39 2009-09-09 Marek Habersack <mhabersack@novell.com>
41 * Route.cs: when Url is set to null, create a parser for empty
42 string. Fixes bug #537751
44 * PatternParser.cs: Parse allows for null/empty URLs. Fixes bug
47 2009-09-08 Marek Habersack <mhabersack@novell.com>
49 * UrlRoutingModule.cs: store original request path in
50 PostResolveRequestCache and restore it in
51 PostMapRequestHandler. Fixes bug #537089
53 2009-08-19 Marek Habersack <mhabersack@novell.com>
55 * Route.cs: GetRouteData adds contents of its DataTokens
56 dictionary to the returned RouteData.DataTokens dictionary. Fixes
57 bug #523330. Patch from Dax@daxxfiles.net, thanks!
59 2009-06-25 Marek Habersack <mhabersack@novell.com>
61 * PatternParser.cs: parameter name lookups must be
63 Null and empty (string) parameters are skipped when building query
64 part of the action path.
66 2009-06-16 Marek Habersack <mhabersack@novell.com>
68 * RouteValueDictionaryExtensions.cs: do not compile if
69 SYSTEMCORE_DEP is not defined
71 * PatternParser.cs: if SYSTEMCORE_DEP is not defined, do not
72 compile parts which require RouteValueDictionaryExtensions.
74 * Decorated all classes with the TypeForwardedFrom attribute for
77 2009-06-04 Marek Habersack <mhabersack@novell.com>
79 * RouteValueDictionaryExtensions.cs: if both values are strings in
80 Has (string, value), compare them case-insensitively. Fixes bug
83 2009-05-27 Marek Habersack <mhabersack@novell.com>
85 * PatternParser.cs: if Match is passed an empty path, do not
86 attempt to match the Url segments, skip to defaults matching right
89 2009-05-25 Marek Habersack <mhabersack@novell.com>
91 * UrlPattern.cs: removed - replaced by PatternParser below.
93 * RouteValueDictionaryExtensions.cs: added - some shortcuts for
94 using RouteValueDictionary in PatternParser
96 * Route.cs: use the new PatternParser.
97 Factored out ProcessConstraint into ProcessConstraintInternal so
98 that the latter can be used by the PatternParser class.
99 Added parameter checks in ProcessConstraint.
101 * PatternTokenType.cs: added
103 * PatternToken.cs: added a helper class for the pattern parser.
105 * PatternParser.cs: added. New implementation of url
106 parser/matcher/generator which fixes all URL isues known so
107 far. Fixes bug #504378
109 2009-05-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
111 * UrlPattern.cs: if the pattern is line {a}/{b} and {b} is substituted
112 by an empty string, remove the '/' too.
114 2009-05-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
116 * UrlPattern.cs: non-string default arguments work now.
118 2009-05-12 Marek Habersack <mhabersack@novell.com>
120 * UrlPattern.cs: TrySubstitute performs substitution trimming. If
121 a segment would be set to a default value and all of its following
122 segments as well, it will be omitted from the generated URL. The
123 value comparison is done case-insensitively when the dictionary
124 values are strings. Fixes bug #502555
126 2009-05-11 Marek Habersack <mhabersack@novell.com>
128 * UrlPattern.cs: TrySubstitute treats defaults differently
129 now. They are not consulted when checking if the passed values
130 match the pattern, but only when substituting the values. Fixes
133 2009-05-05 Marek Habersack <mhabersack@novell.com>
135 * UrlPattern.cs: Match adds defaults values should some keys be
136 missing from the url. Fixes bug #500739
138 * Route.cs: a small GetRouteData loop optimization
140 2009-02-18 Marek Habersack <mhabersack@novell.com>
142 * UrlPattern.cs: TrySubstitute now gets the collection of default
143 values and uses it to replace url segments instead of failing when
144 the passed values collection is missing a segment.
145 Do not use the tokens array in Match.
147 * RouteCollection.cs: check if name is null or empty, not just
148 null in GetVirtualPath
150 * Route.cs: url.TrySubstitute should be passed the defaults
151 collection when called from GetVirtualPath
153 2009-02-14 Marek Habersack <mhabersack@novell.com>
155 * UrlPattern.cs: use the defaults collection when matching a path
156 and segments are missing.
158 * RouteCollection.cs: GetRouteData must use VirtualPathProvider
159 to check for virtual path existence.
161 2008-10-23 Atsushi Enomoto <atsushi@ximian.com>
163 * UrlPattern.cs : fixed possible out-of-range case ("tableName/" in
166 2008-10-17 Atsushi Enomoto <atsushi@ximian.com>
168 * RouteValueDictionary.cs : its string comparison is case
171 2008-10-17 Atsushi Enomoto <atsushi@ximian.com>
173 * UrlPattern.cs : fixed pattern match for such string that has
174 suffix. (DynamicData uses it.)
176 2008-10-16 Atsushi Enomoto <atsushi@ximian.com>
178 * RouteValueDictionary.cs : object argument is actually for
179 anonymous type instance.
181 2008-10-10 Atsushi Enomoto <atsushi@ximian.com>
183 * UrlRoutingModule.cs : implement PostMapRequestHandler() and
184 PostResolveRequestCache() to work correctly in order.
185 Now it should practically work.
187 2008-09-18 Atsushi Enomoto <atsushi@ximian.com>
189 * UrlRoutingModule.cs, RouteCollection.cs :
190 handle RouteExistingFiles.
192 2008-09-18 Atsushi Enomoto <atsushi@ximian.com>
194 * Route.cs : reject invalid constraint.
195 * UrlRoutingHandler.cs : more ProcessRequest() impl.
196 * UrlRoutingModule.cs : note.
198 2008-09-17 Atsushi Enomoto <atsushi@ximian.com>
200 * HttpMethodConstraint.cs, Route.cs, RouteCollection.cs,
201 UrlPattern.cs, UrlRoutingModule.cs:
202 ongoing UrlRoutingModule implementation.
204 2008-09-12 Atsushi Enomoto <atsushi@ximian.com>
206 * HttpMethodConstraint.cs, Route.cs, UrlPattern.cs,
207 RouteCollection.cs : implement Route.GetRouteData() and
208 HttpMethodConstraint.Match().
210 2008-09-12 Atsushi Enomoto <atsushi@ximian.com>
212 * UrlPattern.cs : new file for URL pattern processing.
213 * Route.cs : use above.
215 2008-09-11 Atsushi Enomoto <atsushi@ximian.com>
217 * HttpMethodConstraint.cs, RequestContext.cs, Route.cs,
218 RouteCollection.cs, RouteData.cs, RouteTable.cs,
219 RouteValueDictionary.cs, StopRoutingHandler.cs,
220 UrlRoutingHandler.cs, UrlRoutingModule.cs, VirtualPathData.cs:
223 2008-09-04 Atsushi Enomoto <atsushi@ximian.com>
225 *.cs: initial checkin.