28 Jun 02:38 When I realized my concept for a ServiceLocator fell in the category of "interesting patterns you'll never use", I decided instead to work in a <mixin/> tag for LightWire. The tag is a child of <bean/> like <constructor-arg/> or <property/>. Children of <mixin/> <value/>, <ref/>, <map/>, or <bean/> defined therein will be "mixed in" rather than constructor or setter injected. 30 May 13:57 So, if you find yourself using flash forms and you wonder why the form won't display when you know you have Flash installed, check out this Adobe TechNote. Sure, I could have avoided the headache by learning Flex. I'll reform, sooner or later. And while I'm putting a nail in the wall about that, I'll put one in for switching to Apache as well... 27 May 02:30 Now bundled with its distant cousin, the composite Iterator, Recordset provides methods and properties for list traversal via inheritance. Recordset is not a query, but rather a query that is converted to an array of structs. Extending Recordset is useful as an alternative to maintaining an array of objects, or if you want to display a list with calculated fields (an employee has a startdate, but display format is "years of service"). 16 May 14:03 To go along with my previous woolgathering on the correlation between a database schema and a class package, here is another observation regarding class inheritance and sub/supertype tables. In object modeling, we describe the relationship between a subclass and superclass as "is a". The same goes for tables in a data model, where the subtype "is a" supertype. The obvious benefit of using inheritance in object modeling is code reuse. 15 May 02:31 When generating object models, I prefer to package related classes together. For instance, a Calendar would have the following classes: calendar.Calendar calendar.CalendarDAO calendar.CalendarService calendar.CalendarGateway Since my controller or view will never invoke methods on my CalenderDAO or CalendarGateway directly, I can secure the methods in those classes by setting access="package". Another subtle benefit is that the component files are organized in a single folder... 11 May 02:12 Over the past month, I've worked on some projects that required special data handling and calculated values. I considered using Peter Bell's Iterating Business Object, but instead decided to build an Iterator that can be composed into my domain objects. I'm a big fan of using "composition over inheritance", so I saw this as a prefect opportunity to add iteration to my domain objects with a minimum impact. 11 May 02:12 Over the past month, I've worked on some projects that required special data handling and calculated values. I considered using Peter Bell's Iterating Business Object, but instead decided to build an Iterator that can be composed into my domain objects. I'm a big fan of using "composition over inheritance", so I saw this as a prefect opportunity to add iteration to my domain objects with a minimum impact. 11 Apr 09:59 As a follow-up to Peter Bell's "LightWire or ColdSpring?" entry, I'm happy to announce that LightWire now supports XML configuration using ColdSrping XML bean definitions. With the current release (0.65), you can set your object dependencies with xml, programatically, or a mix of both. This feature supports recursion, factories and optional default settings... 5 Apr 14:37 I see a lot of discussions centered around application configuration and the merits of different implementations. Of these, XML cofiguraiton is the most pervasive. A suggested best practice when using xml config files is to keep them outside of the web root to prevent exposing key settings. After recently installing Raymond Camden's Lighthouse Pro, I learned that you can also obfuscate the xml inside a comment block. To try and understand this clever workaround, I openend the hood (a.k. 31 Mar 23:43 ColdFusion developers on Mac take note. Updating Java to J2SE Relase 5 will cause a "CFCServlet must be initialized" error when you use Application.cfc. Normally, I don't go hunting down the next version of Java to install, I simply neglected to uncheck this install during a recent Software Update. If you have updated and are currently seeking a fix, my temp fix is to change the CurrentJDK symbolic link under /System/Library/frameworks/JavaVM.framework/Versions back to 1.4. |