This post originated from an RSS feed registered with Java Buzz
by dion.
Original Post: AspectJ2ME: Using AOP for running J2ME on any phone
Feed Title: techno.blog(Dion)
Feed URL: http://feeds.feedburner.com/dion
Feed Description: blogging about life the universe and everything tech
Michael Yuam explains how Tira Wireless does WORA with Aspect Oriented Programming.
Tira Wireless is a very successful J2ME game porting house with big name customers like Disney and Warner Brothers. It takes J2ME games from developers and port them to more than a thousand handset/wireless operator/language combinations for global distribution. As one would expect, they have intimate knowledge and hands-on experience with many JVM implementations to know how exactly "write once, run everywhere" does not work in J2ME. :) Today, Tira Wireless sent two engineers from Toronto down to Austin on a Sunday to sit down with me and explain to me exactly how their approaches work. To my pleasant surprise, their approach is "aspect oriented programming" using a customized version of Javassist (the same underlying library for JBoss AOP)!
The concept is really pretty simple. In regular AOP, the aspects are cross cutting several different classes. In Tira Wireless's Jump transformation engine, an aspect is a specific class-level bytecode modification that has to be done (i.e., cross cutting) across several handsets. Better yet, Tira wireless's has profiled more than 200 handsets and distilled a set of commonly used transformations for you! Those prepackaged aspects/transformations include swapping soft button labels, using multiple images to replace faulty image flip calls, catching certain exceptions, changing thread behaviors, and changing app start/pause behaviors. For each application port, Tira Wireless's Jump developer tool lists a set of recommended aspects/transformations for those two devices and other possible transformations for you to choose. The following shows the aspects available for the Nokia 3650 to Motorola V300 port and the Nokia 7210 to Nokia 3650 port.
AspectJ2ME ?