Ever get frustrated because you typed the right thing with the wrong case and your system blew up? We do.

Tapestry IoC attempts to be case insensitive for all the main constructs:

Thus, getService("Baz", Baz.class) is preferred, but getService("BAZ", Baz.class) (or any variation thereof) will work just exactly as well. This also extends to other naming conventions, such as contributeFoo methods. It also applies to values inside annotations.

Just case is ignored – other punctuation, as well as whitespace, must exactly match.

Under the covers, this is supported by the CaseInsensitiveMap class.