Saturday February 21, 2004
Black Sun to open for Yngwie Malmsteen
Long time Bay Area axe-slinger Thaen Rasmussen's current band, Black Sun
is set to open for Yngwie Malmsteen. Those of us who frequented the metal scene way back when may recall Thaen's legacy effort, Anvil Chorus, and their opening gig with Yngwie. Yep, I believe that show at Wolfgang's in San Francisco was over twenty years ago, 11/19/1983!
( Feb 21 2004, 12:09:30 PM PST )
Tiles Definition Files: anti-pattern?
Struts tiles definition files allow the developer to refer to components to include symbolically. Besides the struts-config.xml, this is an additional configuration point. Ostensibly, the extra layer of indirection eases maintenance and re-use. However, I've found it to be flawed:
- It increases the maintenance burden by requiring mappings in two different xml files and these mappings are easily abused
- For instance, suppose updating the UI logic on the SomerSault widget is required. The developer may have to traverse two different mapping types (struts class mapping and tiles component mapping)
That's too many steps
- look in struts-config.xml for the class mapped to /SomerSault.do
- the <Action /> stanza forwards to something called somerSault.layout
- ok, next, look in tiles-defs.xml and one might find that somerSault.layout maps to /SomerSaultContainer.do
- alright, go back to the struts-config.xml to find /SomerSaultContainer.do
and see that it maps to the type com.example.SomerSaultContainer
- There's no compile-time validation
- The developer might make all of these changes and be please that everything compiles, including the JSP components (using the jasperC ant task). However, at runtime if the
names don't match up, it's difficult to debug where the problem is.
It would be preferable to define any symbolic names for components as constants in a compiled class (say TileDefinitionConstants), this would make the names uniformly available to the Action classes and JSPs. Exposing the symbols to the JSPs would require writing a little tag library but that's a trivial feat.
( Feb 21 2004, 10:22:50 AM PST )