Last updated December 06, 2011 00:14, by pandora808

Glassbox: News


GlassBox is still alive and powering the JavaME version of TuneWiki and a number of other production applications.

There hasn't been any update to SVN in quite a while - but only because there have been no bugs reported or discovered. Project is still active and very stable. Thanks!


Still alive and kicking!. Though you may not see much activity here on the front page, this is still an active project and is being used in production on multiple storefronts and major carriers. Congrats GlassBox!


Another sample application was added, one written before Glassbox's predecessor, and ported to that, then ported to Glassbox. So a long time coming, but once again, here is "IHate411" opensourced in Glassbox. You can download binaries here


GlassBox v1.3 has been released. It mostly included bug fixes to improve HTTP Cookie handling and HTTP form post handling. Now if you want to do a form "post", you would do something like this:

 Hashtable params = new Hashtable();
 params.put("username", "somedood");
 params.put("password", "somepass");
 HttpRequest request = new HttpRequest();
 // using a Hashtable "params" automatically sets this request method to POST
 String result = request.loadStringFromURL("", params);

you can also mix GET URLs with POST parameters. for example:

 Hashtable params = new Hashtable();
 params.put("username", "somedood");
 params.put("password", "somepass");
 HttpRequest request = new HttpRequest();
 String result = request.loadStringFromURL("", params);

In this example, the POST parameters written to the HTTP body are: username, password, ignore_email and stuff

Another small fix was that if a MonitoredTask throw an exception, TaskOperator it did not properly cancel the delay or timeout TimerTasks, it would not cause any real state error, but you would get logging messages complaining about events 700 and 300 being supressed due to the callback already having been issued.

You can download new binaries here


The Quickstart Guide PDF has been updated to reflect the v1.2 changes.


GlassBox v1.2 in stores now! Ok, the updates to MonitoredTask and TaskOperator are finished, tested and commited.

The biggest difference is that creating a new MonitoredTask is now much much easier. I've simplified the state tracking in MonitoredTask, event messaging in TaskOperator and provided a great simple baseclass implementation of MonitoredTask for subclassing.

Before your MonitoredTask had to implement: setTaskState() getTaskState() systemCancel() userCancel() and runTask()

Now if you just extend SimpleMonitoredTask, you get the sane implementations of all of these, and only have to implement runTask()! Much easier!! *NOTE* you can call super.runTask(operator) in your runTask() implementation to allow the operator to be set in the superclass.

setTaskState() and getTaskState() have also been replaced with setPrepared(boolean) and isPrepared(). These allow the TaskOperator to decide on whether or not a new thread needs to be started to prepare the task, or if it can be sent directly through the workflow.

Another important improvement here, is that you no longer need to set your state at the end of the runTask() implementation, you don't need to track the state at all anymore. (so MonitoredTask.STATE_UNPREPARED and the other constants are gone). If runTask() completes without being cancelled, without a timeout, and without throwing an exception -- it's considered a successful execution. All of that is handled in TaskOperator now, which means your implementation of runTask() just needs to do whatever it is that you need to do, and if something craps out, throw an exception.

v1.2 jars are in SVN, and all the changes are commited to the source tree. I'll try and update the Quickstart Guide ASAP.


I'm doing some work to simplify the way TaskOperator handles MonitoredTasks. I didn't like how complicated MonitorTasks seemed when you had to maintain the 'state' with MonitoredTask.STATE_SUCCESS in the implementation of the MonitorTask's runTask() method, as well as STATE_ERROR and STATE_CANCELLED states.

Anyways, it's much simpler now, no more of that mess. MonitoredTask implementations, as well as the display subclasses (FormDisplay, ListDisplay, CanvasDisplay - are all implementations of MonitoredTask).


Javadocs are now available here


The opensource iBored sample application available for download and use! [screenshots and download]

checkout the source here


I finished up the first pass of javadocs, as well as putting together a QuickStart guide to GlassBox.

PDF QuickStart Guide

This guide showcases some of the major features of GlassBox, giving you examples of how to use them, and sample code to go along with it. If you follow the guide all the way through, it will actually get you started on a working application that applies these key features.

I would love to hear feedback on the guide, so if you want to see how something else works in GlassBox, or want some clarification, don't hesitate to send it my way. (pandora at pandora d0t la)

The SVN repository is also live, you'll find the link in the left nav menu.


First Post! Ok, really though, I've been in development on this project for almost 6 months and it's now in a VERY usable state. Though it has virtually no documentation, so I'm waiting to do a "release" until I have lots of documentation. So for now the sourcecode is alive and well in SVN, but I'm not linking to it here just yet. Needs more PDF/examples. Mission Statement

GlassBox is a flexible Java ME application framework and build system. GlassBox helps developers create their applications without worrying about all the redundancies of JavaME applications like screen creation/state-management, timeout events, asynchronous webservices (ajax), threading utilities, resource management, file abstraction and serialization, data caching and structures, config/preference structures and a whole lot more to help you spend more time on the appilication, not the foundation. Background

The project actually has quite a history and background going back about 2 years, this is version 2, a complete rewrite from the ground up. Maybe I'll put the whole story up here... Participation and Interaction

If you are interested in helping with the project, would like to make suggestions, or complain about something, email [pandora at pandora d0t la]