Archive for 2009

Grails HTTP-based test plugins

Wednesday, November 18th, 2009

grails-logoThere are two leading frameworks for doing http-based integration tests within the Grails framework: functional-test and webtest. Both are packaged as grails plugins and accomplish the same task in a similar manner. The main library behind the scene is HtmlUnit. This is a well thought out library for abstracting web conversations, i.e get this url, check that it has a form, click the submit button. It’s basically a headless browser which even supports Javascript. HtmlUnit appears to have taken the mantle from HttpUnit as the premeir library in this small arena. There has only been one release since 2006 for HttpUnit while HtmlUnit has been very active with 11 releases in the same period.

Webtest is the more established project with its first release in 2007. Webtest is provided by Canoo as a free open source plugin to Grails. The tests are run via an Ant script that packages together the test cases and runs through each one.

Functional-test is a relatively new project with its first release in early 2009. Functional test is basically the same as webtests however instead of using the Ant-based scripts everything is based on Junit and implemented in plain old java or groovy.

We’ve chosen to proceed with using the Junit-based plugin for our HTTP integration tests. Our primary reason in deciding to use Junit is that it integrates well with our other unit-based tests which also use Junit instead of using disparate frameworks for the various types of tests. While this plugin may be newer it’s traffic on the mailing lists is growing and substantial.

HOWTO: Layout Django Apps

Wednesday, July 1st, 2009

The Texas Digital Library has been using the Django framework for a growing number of our smaller projects. Typically, if there’s not already a well established open source solution for the task at hand then the default answer is to write it in Django. Our faculty directory and request systems are already implemented in Django and we are currently refreshing our account management system into the framework. As our use of Django has grown, our practice of storing these projects in the version control repository as one unit has shown its weakness. Within the version control repository, we have passwords, database connections, and file locations stored; in general different settings between production vs development. This makes it hard to keep track of the settings for production vs pre-production and the development instances. This post is my attempt at describe a set of best practices for how to store Django projects in a code repository and deploy them between production and development environments.

Django Applications vs Projects

Django provides tools and concepts to break up your websites into very small components that can be re-used between sites. The first and most basic distinction that needs to be understood is Django’s difference between applications and projects.

A Django Application is a single self-contained set of related features that depends upon the Django framework. By convention, a Django application typically will contain:,,,, and other files. These applications should contain no configuration that needs to be changed between installations.

A Django Project is a collection of applications that share a single database configuration, work together in a URL space, and share a common set of application configurations. Projects may contain multiple applications or just one. Django requires that projects have at least three files:,, and I believe it is best to consider Django Projects like Apache’s httpd.conf.


Vireo @ JCDL 2009

Tuesday, June 16th, 2009

My colleague, Adam Mikeal, presented our paper titled “Large-scale ETD repositories: a case study of a digital library application” at JCDL 2009, where it was nominated for best paper! The paper describes at a high level the Texas Digital Library’s implementation of a state-wide electronic thesis and dissertation (ETD) system, delving into the theoretical, technical, and political issues that were encountered. Vireo is the main component of the system, a Manakin-based addon to DSpace that handles the ETD work flow, starting with a student’s initial submission through an iterative staff review, cataloging by the library, and on to final publication.


Mikeal, A., Creel, J., Maslov, A., Phillips, S., Leggett, J., and McFarland, M. 2009. Large-scale ETD repositories: a case study of a digital library application. In Proceedings of the 2009 Joint international Conference on Digital Libraries (Austin, TX, USA, June 15 – 19, 2009). JCDL ’09. ACM, New York, NY, 135-144. DOI=

Where to host a blog?

Sunday, June 7th, 2009

One of the questions I faced when starting this blog is where should I host it? There are lots of options from several commercial blogging services or from the many free blogging services such as Blogger, SquareSpace, ExpressionEgine, or Because of my employment there is also the option to use the Texas Digital Library’s blogging service based upon WordPress. Then lastly because I have the technical skills and available hosting, I can self publish my blog. I ultimately decided to self publish this blog using my own means instead of using a blogging service, here are the factors that effected my decision:


Microsoft tools for repositories workshop

Thursday, May 28th, 2009

During the Open Repositories 2009 conference I attended the Microsoft’s “Tools for Repositories” workshop.  At the workshop Microsoft was able to get down into the details of their new products and how they are intended to work together. I was impressed by the breadth of work that Microsoft is engaging in to support scholarly publishing use-cases within their tool set. The workshop lasted about 4 hours, longer than most of the other workshops at OR09. The bulk of time was given to the two developers Savas Paratatidas and Pablo Fernicola, along with the team leader Alex Wade.

Microsoft announced their intention to engage with the repository community at last year’s OR08 conference in Southhampton. The OR09 workshop featured the tools that Microsoft has developed in the intervening year starting with new authoring tools in Word, publishing via SWORD, a new peer-reviewed journaling service, and the new .NET based repository. It’s clear to see that Microsoft will have a huge impact on scholarly publishing in the future. We, as the repository community, will need to adjust our services to ensure they work smoothly within the Microsoft ecosystem. After the jump read about the three big features that were presented.