Getting started with Maven

OnJava.com have a sample chapter from the book ‘Maven: A Developer’s Notebook’, which gives a quick headstart into getting started with Maven for your build process.

I have just started to investigate the use of Maven for one of my own projects, and I am impressed so far – in particular with the fact that the same targets that I would write again and again in Ant for different projects are now just part of Maven by default – it already knows how to compile, run JUnits, generate Javadoc etc, you just configure where your source and target directories are (if they are non-standard and not following the suggested directory layout that Maven will use by default), and it gets on and does it thing. Very cool.

JSF1.2 and JSTL1.2 in EE 5.0 – new feature summary

java.sun.com have a two part article covering the new web tier features in EE5.0, including the JSTL1.2 tag library and JSF 1.2, and

The JSTL tag lib is now a bundled feature of the EE platform so you don’t have to include the jar in your web apps anymore. The EL language has now been combined between JSTL EL and JSF EL, to form a Unified Expression Language – see the follow-on article here for more info.

Other changes include fixes and improvements for the multiple browser/conversation support, and saving of session state to the client.

MySQL to fight off Oracle with FireBird?

MySQL will be announcing next week that it has acquired web app technology company Netfrastructure. What is interesting from MySQL’s survival point of view since Oracle has eaten up it’s main database engine suppliers Berkeley DB and InnoDB, is that the founder of Netfrastructure, Jim Starkey is a bigname in the open source database world. Starkey has been a major contributer to the open source database Firebird, which according the analysts usage figures is second behind MySQL itself.

Starkey is also famous for the creation of InterBase (from which Firebird was branched), which was one of the first RDBMSs to have features such as triggers, event alerts, arrays and multiversioning. He was the founder of InterBase Software and also worked for it’s successive owners, Ashton Tate and Borland (anyone remember dBase?).

XA Transactions and JMS

There is a post on TheServerSide.com discussing a blog entry titled ‘98% of developers just don’t need it’ that is getting a lot of attention today. The blog entry suggests that only 2% of Java developers understand and/or need to know and understand the usage of XA Transactions (for managing distributed resources) and JMS.

I think while in some sense this is true, it is certainly not as low as 2%, that is a gross overestimate. It is true that the majority of systems and therefore developers working on those systems are more than likely only using one database resource, and no other transactional resources at the same time, and therefore will not have a need for XA Transactions. But every developer should be aware of the purpose, need and usage of transactions in a system. Again not all systems will have a need for transactions (for example, single user desktop apps), and we have to appreciate that the the developer community is incredible vast and diverse in terms of systems that we work on and the areas that we tend to specialize in. Just because one developer has tended to work on low end single user applications does not mean that this is typical, and this would be a skewed view of the software development world if that were his opinion. The use and need of JMS for messaging and asynchronous processing is also a more specialized need that addresses a requirement and a problem that not all systems have.

That said, I have had the experience of working on large systems ranging from 100s of concurrent users to 1000s of concurrent users, and in each case multiple database resources were being accessed requiring XA transactions, and also JMS was also being used for integration with other systems and/or for the use of asynchronous processing with queues. I have also worked with many developers who have also worked on these types of system, and even with developers who are integration specialists and whose whole career has centered around messaging systems – JMS and middleware such as MQ Series are their daily bread and butter – they live with this technology.

To sumarize – yes, these are specialized needs, but the needs are out there. If you read the authors article in their blog or on TheServerSide.com and and not knowing any better come away with the conclusion that ‘I don’t need to know stuff like that’ then you will be ill prepared for when you do come across these needs. 2PC and asynchronous processing are tools that every developer should have in their back pocket for when a problem comes up that does need these solutions.