On Dec 3, 2006, at 1:27 PM, Mark Lundquist wrote:

7) There would be a globally configurable property to take the place of the local @value attribute. To invoke a (non-default) configured instance, you use <match type="..."> just like today, but that is not any lighter syntactically than just using @value. The real reason for this is to be able to configure a more specific default, e.g.

        <matchers default="uri">

<matcher name="general" class="..."> <!-- Note: the concrete class is always the same! -->
          </matcher>

          <matcher name="uri" class="...">
            <value>{request:URI}</value>
          </matcher>
          <matcher class="...">

        </matchers>

This allows you to just write

        <match path="foobar/**/*">

which is nearly identical to today's <match pattern="foobar/**/*"> where <matchers default="wildcard">. The tradeoff is that you then have to use <match type="general"> for anything else... but you have the choice if you want to do it that way.

Bah, I still had some "old skool" thinking goin' on there myself...

Instead of a <value> configuration element that precludes a local @value attribute, the element should be called <default-value> and it should just configure a default if @value is omitted. You can still override the default with @value. So:

        <match path="**" />             <!-- perfectly good... -->

<match value="{request-param:foo}" equals="true" /> <!-- also perfectly good, no need for @type or a different matcher instance -->

—ml—

Reply via email to