In running some old WFS requests against the new dispatching system in geoserver trunk, I was caught by two hard-to-figure-out 'bugs' with my requests:
1) My request wasn't in the right namespace. In the past geoserver has been very lax about requiring the <GetFeature> tag to be in the "http://www.opengis.net/wfs" namespace.
Question: is this intentional? Or should we be more forgiving?
2) My request didn't have the 'version="1.0.0"' parameter on it. In the past this defaulted to version 1.0.0 (easy, as there was only one version of the WFS!). Now it defaults to 1.1.0 (there's code in the Dispatcher which prioritizes versions by 'recent-ness').
Question: is this intentional? Should we default to version 1.0.0, or 1.1.0?
Here're my thoughts:
There's a sizeable group of people who've written applications expecting geoserver to behave a certain way. If they upgrade to 1.6.x and everything they've written breaks (even though their requests are actually the problem as they weren't valid to start with!) then I think that's a bad thing. I think we should be very lax, and either enforce validity by being annoying (watermark images from invalid WMS requests with a 'hey...fix your request') or by having a 'strict' switch that changes to a more strict mode.
On the other hand, adding 'not-so-strict'ness to the Dispatcher takes an EXTREMELY clean and well-laid out piece of code and makes it much less clean. That makes me a little sad.
--saul