Holy automated code generation Batman…

Holy automated code generation Batman…

.NET has a superb mechanism for building class models in memory and outputting them to source code. Check out this

page for some idea what I’m talking about.

There are plenty more goodies on the gotdotnet site to play with as well.

Never thought I’d say it, but MS have done well, from what I’ve seen so far. Now if only their IDE was cheaper than a small car…

Maven. Maven 1.0 beta

Maven. Maven 1.0 beta 5 has been released. Maven is a funky tool that simplifies the life of Java developers. [james strachan’s musings]

Aye, he be speaking the truth.

I used Maven on a little projectlet I’m playing with and it did all the boring work for me. All I did was create two source directories (one for production code – other for unit tests), a single index.xml documentation page and a project descriptor – and it magically produced this.

Given how much time I typically spend playing with build files, documentation, test/code reportings, etc, this was a major timesaver.

[Joe’s Jelly]

Two useful tools in one post! I’ll be following QDox – I was looking for a simple parser when I got bored of keeping test suite classes updated by hand and wrote a simple suite generation tool. Ended up doing it with string matching, not ideal, but it does the job. This looks like it might be just what I need.

A C# plugin for Eclipse

A C# plugin for Eclipse has been released. Microsoft must be in two minds about

this. On one hand they absolutely need to nurture the development community if

.NET and C# are to take off, on the other, they want to sell as many copies of

Visual Studio .NET as possible.

This can only be a good thing for the platform – an alternative (and free) IDE will be an effective way to attract those who are on the fence to at least evaluate .NET. I’ll be posting my own thoughts on it in the near future…

Worthy of further study: Webwork

Worthy of further study:

Webwork is an MVC framework along the lines of struts, but smaller and cleaner, with less servlet-specificness.

Xindice is a native XML database that allows the use of XPath for queries.

Kodo is a JDO implementation that makes persistence look really easy.

Sitemesh is a dynamic decoration framework for HTML pages.

Lucene is a java based document indexing system and full text search engine.

While trawling through some legacy

While trawling through some legacy web application code today, a paraphase of Greenspun’s tenth rule of programming occurred: “Any sufficiently complex 3-tier application will start to resemble an ad-hoc, buggy, poorly implemented version of an existing open source framework.”

Original quote: “Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.”

Been tussling with classloaders and

Been tussling with classloaders and SAX parsers this morning. Class.forName is essentially broken when using modern app. servers with multiple classloaders. Fixed that by using Thread.getCurrentThread().getContextClassloader(). Unfortunately this then broke JUnit with a ClassCastException when using the reloading classloader. Had to add a fallback to the bootstrap classloader to cover both bases.

The implementation of SAX shipped with Java 1.4.0_01 no longer uses class.forName(), which should make life easier.