In my attempt to make Hudson EC2 plugin (which I blogged earlier) work with Windows AMIs, I wrote a little SSH daemon.
Here's the problem statement. Windows AMIs on EC2 do not have any built-in programmable remote access technology. This is a really poor packaging job of Amazon — their documentation talks about doing the remote desktop protocol (RDP) to talk to the server. This obviously...
on May 20, 2009
If you want to translate your message files for a couple of different languages, but you do not have money, do not have time, do not have language specialists friends or do not have anything else to help you, we have a solution... actually we got a "use at your own risk" solution!
Here are the steps:
Download google-api-translate-java-0.53.jar and use it in the classpath.
Configure the default...
on May 19, 2009
I've released the
Hudson Selenium plugin, which instantly lets you deploy Selenium
Grid on top of your existing Hudson cluster. By using this plugin, you
can start using Selenium Grid without installing it on individual
machines in the cluster manually. This is the latest addition to the
family of plugins that let you reuse you Hudson cluster infrastructure
for additional purposes.
on May 16, 2009
Whether you recycle old PCs or use new ones as Hudson slaves, you have to first install an OS on a system. As the Hudson cluster I managed gets bigger, I find this more and more painful. You have to have a CD of the OS, and you have to have a working CD-ROM drive (somehow on recycled PCs, CD-ROM drives are often unreliable.)
Then the installation itself is rather boring, yet it's interactive....
on May 11, 2009
Japan is in the middle of a week long holiday this week, so our Japanese Hudson committers are cranking out a lot of cool stuff.
This one is from Kiyotaka, who wrote a Hudson plugin called GCrawler.
GCrawler (1) searchs Google Code and discovers all Grails projects, (2) reads Subversion repository to figure out metadata, and (3) automatically add them to Hudson and builds them.
The net result...
on May 8, 2009
This is from Seiji Sogabe, who is a Hudson committer. He put together a chart of the hudson.war size from 1.100 to 1.300. This is another way to see the progress in Hudson.
Off the top of my head, a big jump in 1.160 or so is probably the native Maven2 support, but I don't know what's the jump around 1.280 — maybe we picked up extra unnecessary dependencies? With Maven, it's so easy...
on May 7, 2009
"You can do everything from GUI" has always been one of Hudson's strengths, and we also have the REST API, but at the same time, CLI is also very useful for improving automation around administration, builds, and so on. So starting Hudson 1.302, I added a CLI agent to Hudson. CLI can be downloaded from your Hudson from http://server/hudson/cli, which also shows you the basic usage.
on May 2, 2009
Hudson has reached version 1.300 last Friday. While it's not like this release is fundamentally different from any other past releases, it does feel like it is some kind of a milestone.
The community continues to grow. We have around 1500 human-generated e-mails per month nowadays, with 7500/wk or so downloads of hudson.war. Access to the update center is increasing steadily last time I checked...
on Apr 22, 2009
I think most of my projects are driven by anger/rage, and this one is no exception. I was doing a hobby project, and I had to write a META-INF/services/Something file and put a fully-qualified name of my class that implements Something.
Now, I've done this countless times, and while I hated every time, I sort of looked the other way and just wrote it manually. But tonight, I guess it was just...
on Mar 26, 2009
Monitoring GlassFish HTTP service using VisualVM.
GlassFish application server has some motniroting features which are exposed through its administration chanlles including Administration Console and asadmin utility. I disucssed some of these features here and in this we will see how we can use visualvm and its plugin as a desktop application to monitor GlassFish HTTP service.
VisualVM is JDK...
on Mar 23, 2009
Here at my work, I take care of a 30-40 node Hudson cluster for our group. This is probably a relatively bigger Hudson cluster, but I know people out there do set up Hudson clusters of various sizes.
Hudson cluster is used for doing builds, obviously, but I've been thinking it would be nice if this cluster becomes multi-purpose, because there are a lot of things we could do better if we have a...
on Mar 15, 2009
The java.net Maven2 repository was set up about 2.5 years ago so that people hosting projects on java.net can push artifacts to a Maven repository.
This repository has grown in size to the point that it puts significant strain on the java.net system. So to improve the situation, we are moving the location of the repository from http://maven2-repository.dev.java.net/svn/maven2-repository/trunk/...
on Mar 9, 2009
When run on Unix, Hudson can now authenticate users through the operating system, by using its user database and group database.
I noticed that many Unix deployment of Hudson chooses LDAP for the authentication, but the problem with LDAP is that there are too many things that you need to configure. You have to configure the root DN, you need to tweak the queries, and you often need to give you...
on Feb 27, 2009
Starting 1.281, Hudson can now launch itself as a proper Unix daemon. All you have to do is start Hudson as:
$ java -jar hudson.war --daemon
If you run this as root, it'll leave /var/run/hudson.pid and record PID there. Unlike java -jar hudson.war &, this will detach the daemon from the shell properly, so it'll keep going even after you exit your shell. This is done by using akuma that I...
on Feb 10, 2009
One of the things I recently came across is the Linux kernel's unique ability to have a process-specific file system mount table. In Unix that I know of, a file system mount table is global to the entire system, but apparently, starting Linux 2.6.16, you can have multiple mount tables in the system. In a way, this is a kind of a virtualization technology, because two processes in the same system...
on Feb 8, 2009
Here at Sun, one of my job is to maintain our internal Hudson cluster of some 40 nodes. Among other things, a part of the administration task involves in setting up a new slave every so often, which means installing a new OS, configuring it, and adding it to the cluster. We need to support all kinds of different OSes, so that adds an interesting complexity to the mix. We've got a considerable...
on Feb 7, 2009
Eric Lefevre found a study of CI tools by Fontys University of Applied Sciences in Venlo, Netherlands. This is based on sending questions to volunteer participants and tabulating the results.
With the usual caveat about the sampling size and geographic distribution of respondents, this paper found that the most commonly used CI tool today is Cruise Control (29 people), followed by Hudson (24...
on Feb 3, 2009
As explained in here, writing a proper daemon requires various function calls that are traditionally only available to native applications. So typically, Java applications rely on external wrappers like Apache commons daemon or Java service wrapper, or even worse, just ignore those conventions and do Runtime.exec.
But this creates an unnecessary inconsistency between how you launch a program in...
on Jan 31, 2009
Several people reported to me that the artifacts they pushed to the java.net Maven2 repository stopped appearing to the external servers. I'm happy to report that this problem is fixed now.
This appears to be caused by a Subversion workspace corruption triggered by a disk full problem — disk problem was fixed earlier, but because of the workspace corruption didn't resolve itself, we ended...
on Jan 22, 2009
Starting Hudson 1.264, Hudson has an option of sending usage statistics. This was released 12/16 last year, so it's been about a month. So I run some data analysis over the data that's collected so far.
First, data is filtered to eliminate one off installations that don't appear to be a long running installation. That is, I only counted installations that kept sending the usage data for more...
on Jan 21, 2009