On 8/30/06, Don Brown <[EMAIL PROTECTED]> wrote:
I guess what I'm saying here is that the Struts learning curve should be
as flat as possible, allowing developers to ease into the framework
without forcing them to learn about things like custom interceptors and
results when they don't have the need for them.

In my experience, the easiest way to flatten the learning curve is consistency.

Right now, our approach to default result types is inconsistent. Most
results work out of the box, but some require people to add optional
JARs to the distribution. For the "optional" results, we've started to
add apologetic logging statements, saying "Oops, I'm here, but my JAR
isn't, but you probably don't care anyway."

If we are going to have optional result types, then let's have
optional result types. Let's add an "optional" attribute, so that we
can render more meaningful logging statements.

1 When optional=true, and the support class is absent, then nothing is logged.

2 When optional=true, and the support class is present, then a DEBUG
logging statement saying the result is enabled is logged

3 When optional=false (the default), and the support class is absent,
a runtime exception is logged and thrown (fail fast).

4 When optional=false, and the support class is present, then nothing
is logged (the nominal case).

Even if we mark a result type optional in the configuration, we can
still override the setting in a package, so if we need to do a problem
determination, we can add the result again as "optional=false" in a
package, so that we can be sure the system sees the result, but not
the JAR.

-Ted.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to