Aug 10th
Thijs Volders, Uncategorized
Ever had the problem of keeping track of database changes during your software development project? There is a solution in the form of Liquibase.
Many teams will work on the same database. Perhaps even on the same database tables and overall structure. How can you keep track of whom did which changes (and why perhaps) and make sure that no change is ever forgotten or overwritten?
How can you make sure that databases will remain structurally equal over different environments…
Liquibase can provide this functionality. It provides database refactoring automation and keeps track of the changes. Used in combination with a version control system like SVN or Mercury you get a powerful tool to keep track of these changes cross-teams and over time.
Liquibase is database vendor independent but also supports various platforms to allow more vendor-tailored changes to be performed on a database.
Liquibase uses two database tables and a changelog XML file to maintain database state. The database tables contains checksums and changesetids which have been executed by liquibase on that particular database.
The changeLog XML file is used to hold the changeset definitions which is maintained by developers.
The changelog contains the changeSets. These changeSets basically hold the sql-statements which are needed for a particular change. A changeset can contains changes for multiple schemas and multiple tables.
An example of such a changeset:
<changeSet author=”johnny.devmaster” id=”123456789″>
<createTable schemaName=”MYDBSCHEMA” tableName=”SOUNDS”>
<column name=”ID” type=”BIGINT”>
<constraints nullable=”false” primaryKey=”true” />
</column>
<column name=”SAMPLE_RATE” type=”BIGINT” />
<column name=”MIME_TYPE” type=”VARCHAR(255)” />
<column name=”ARTIST” type=”VARCHAR(1024)” />
<column name=”LANGUAGE” type=”VARCHAR(31)” />
</createTable>
</changeSet>
As can be seen from the example above a changeset has an id and author attribute. The author attribute is not mandatory but allows for easy tracking of whom did the changes.
A changeset should contains a ‘one-transaction’ set of changes. This allows for better rollback when executing a changeset throws errors.
Whenever a teammember needs to make a structural change to the database he (or she) can test this on the development environment and when the actual statements have been defined they need to be inserted into the changelog as a changeset.
At the end of a development cycle the software is release together with the Liquibase-changelog.
Liquibase provides a command-line interface (CLI) to execute this changelog against a database.
As part of the deployment-activities the Liquibase CLI should be executed to get the database for the environment up to par with the release software.
When using Liquibase you should refrain from altering the database manually.
If absolutely necessary to make changes outside of Liquibase make sure that liquibase knows about it to prevent future changelog-execution problem.
More information about this great tool can be found at liquibase.org
Jun 30th
Thijs Volders, Uncategorized
In a couple of days I will receive a new Android phone and I wanted to experiment a bit with developing my own application(s) for it.
So I downloaded and installed the Android SDK from Google and installed the Netbeans Android plugin.
After installing the plugin I needed to add the Android Platform to the list of Java Platforms in Netbeans.
While going through the wizard for adding the platform I ran into the following problem:

Fortunately restarting Netbeans fixed it for me!
Jun 25th
Thijs Volders, Uncategorized
Another Message-To-Self: Things I do not use often enough to remember so I’ll blog them as Messages-To-mySelf.
To be able to use USB devices in Oracle Virtualbox there are a couple or prerequisites to setup:
The first being that USB support is only available through the Virtualbox binaries downloaded from virtualbox.org. The OpenSource Edition within Ubuntu does not support USB usage.
The second is that when your USB devices are greyed out in the VirtualBox menus than your user account is most likely not part of the VboxUsers group.
Make sure that you’re part of that group (do not forget to re-login) and you can enjoy USB devices within your virtual machine.
Jun 15th
Thijs Volders, Uncategorized
Today I received news that the Community Acceptance Survey has been completed with a positive outcome.
The conclusions is that the survey indicates that the testers of the newest release of Netbeans, version 6.9 is stable enough to be released.
More information about the survey can be found here
Also list of components whether they are Go/noGo for release can be found here
Jun 1st
Thijs Volders, Uncategorized
The GlassFish open source edition is alive and kicking. May 29th the first milestone release of the GlassFish open source edition was released.
Some of the new features are Basic clustering, Dynamic reconfiguration and Application versioning.
More information about the plans for GlassFish 3.1 see plan for GF v3.1
More links directing you to interesting infopages about the newly released features, please see GF v3.1 available
May 12th
Thijs Volders, Uncategorized
Today I am starting Messages To Self (MTS) posts. This will help me keeping track of stuff I often use or which I find interesting, ways of working or interesting links.
The first is the tee command.
An excerpt from the man page:
tee – read from standard input and write to standard output and files
An example for usage:
mvn clean integration-test | tee build.log
This will start a Maven build and output to both the console as well as a build.log file on disk.
May 6th
Thijs Volders, Uncategorized
An interesting post on the Aquarium about the new roadmap for GlassFish future releases.
In the roadmap there is even a mention of GlassFish 4!
See the original post on http://blogs.sun.com/theaquarium/entry/focus_on_glassfish_v3_means
Apr 12th
Thijs Volders, Uncategorized
Sad news reached me today; James Gosling has left Oracle as of April 2nd.
James Gosling was the godfather of Java and had been employed by Sun Microsysftems for many years.
His reasons for leaving we’re not disclosed. We hope to here from him soon again!
By the way, James’ new blog location is now here
Mar 24th
Thijs Volders, GlassFish
At the moment signs are pointing at Oracle eventually stopping active work in the OpenSSO area whereas Oracle’s strategic product for OpenSSO is Oracle Identity Management.
But what about OpenESB (also known as Glassfish ESB)? Is Oracle going to stop funding for it?
Oracle already has some products which fulfill the same role as OpenESB does and they have indicated these other products to be strategic. Hence, OpenESB seems to be of no (or less to say the least) value to Oracle.
Mixed messages have been emerging about the continuation of the OpenESB project….
Some voices say that the development team has been disintegrated and no active work is being done at the moment to evolve OpenESB.
Other messages have been coming in indicating that Oracle will continue to do work on the project.
A recent message posted by Frank Kieviet (OpenESB Community mgr) seems to indicate that Oracle is still supporting the OpenESB team.
See the post on Nabble for Frank’s words on the current situation.
Looking at the Subversion changelogs there has not been much activity lately although I am not aware of the change-frequency before Sun-Oracle merger…
It remains to be seen how it will work out with this project. Let’s hope that Oracle will support the team in such a way that OpenESB can continue to evolve and play a great role in the Services oriented world!
To be continued….
Mar 20th
Thijs Volders, Uncategorized
Today I ran into a blogpost about one of the truly amazing open source products of the company formerly known as Sun Microsystems.
It seems as if Oracle is starting with a tactic also known as salami tactics with some of the products coming from the Sun stables. One of the products being swallowed, chewed and (partially) spit out is OpenSSO.
Fortunately all seems not lost. A company called ForgeRock is taking over the legacy left by Sun Microsystems.
The productname OpenSSO is rebranded to OpenAM to prevent legal lawsuits with Oracle…
Lets hope that ForgeRock can continue the great work performed on OpenSSO (or should we now call it OpenAM
?)
Have a look at the following blogpost for more elaboration about this topic