A GCJ-based servlet engine for Apache Mod_GCJ

Mod_GCJ is a project aimed to serve dynamic pages from Apache using GCJ, the free Javatm implementation that is part of the GCC compiler suite.


News & Updates

[December 3, 2008]

I took a few days time to bring mod_gcj and rhinola up to date, add some missing pieces, and prepare new releases for both projects. mod_gcj now implements a pretty useful subset of the servlet specification. Rhinola no longer depends on mod_gcj and can be deployed on any servlet container. Have a look at the release notes for details.

There would be quite a bit of work left to make mod_gcj and rhinola ready for serious work. However, I feel that with current developments in Java-land, there's not much incentive to keep following this path, so this is in all probability the last releases for mod_gcj and rhinola. I will continue to concentrate on development of Helma and Helma NG, the latter being conceptually similar to rhinola. If you are interested in continuing to work on any of the code in this project, drop a note to hannes (at) helma (dot) at!

[October 25, 2006]

mod_gcj is still alive! After a one year break spent waiting for GCJ to mature some more, new versions for both mod_gcj and rhinola are available. The changes are mostly smaller fixes and enhancements, as well as adaptations to changes in GCJ. Both packages have been tested on Ubuntu 6.10. Let me know whether or not they work on other platforms!

The next stop will be to swap rhinola for Helma 2 (which is actually derived from rhinola) by making mod-gcj more servlet-like and/or writing a special connector for Helma 2.

[August 11, 2005]

mod_gcj 0.8 is out and contains fixes for bugs that prevented it from building on Debian and Fedora Core. It also contains a fix for parsing HTTP POST parameters, implements pruning of unused classloaders, and includes a few other minor nice new features.

PS: If you give mod_gcj a try, be sure to also check out Rhinola!

[July 28, 2005]

mod_gcj 0.7 is finally out. It adds features like support for HTTP parameter parsing, character encodings, and advanced HTTP header processing including parsing and setting of cookies and date headers. In combination with GCJ 4.0, mod_gcj should now be ready for deployment of real-world web applications. Documentation has also been greatly enhanced since the 0.5 release.

[May 13, 2005]

mod_gcj is pretty much ready for the next release feature-wise. The API docs and Todo list reflect the new state. What remains to be done is to update/enhance the documentation.

[April 8, 2005]

GCJ has made a lot of progress on the GCC 4.0 branch over the last half year. It looks like all the classloader problems that hampered development and practical use of mod-gcj in the past have been fixed. If you want to check out mod-gcj, make sure you build a GCJ snapshot from branch gcc-4_0-branch (or just wait until GCC 4.0 is released, which should happen soon). These are excellent news, and I hope to spend more time on mod-gcj soon.

[July 29, 2004]

mod_gcj 0.5 is out. The API is simple but covers the basic HTTP functionality. If you have Apache 1.3 or 2.0 and GCC/GCJ 3.3.* or later installed on a Linux box give it a try - mod_gcj should be easy and fun to build and install. In case you downloaded a previous release and are confused about versioning: I changed the version number from 1.0 alpha to 0.5 to better reflect the state of the software. I'll stick to this scheme from now on.

[June 24, 2004]

I finally started spending some serious time on mod_gcj last week. The code should run with both Apache 1.3 and 2.0 and performs pretty well. A first alpha release should be ready sometime next week. Until then feel free to check it out via anonymous CVS (the module name is "mod_gcj"). Unfortunately, build instructions are still missing. If you need help building or installing mod_gcj drop a message to the mailing list or to me directly at hannes (at) helma (dot) at.

[May 7, 2004]

I set up a mailing list for Mod-GCJ. Please join if you are interested in seeing Mod-GCJ happen. I'm still busy with other projects, so any active help is highly appreciated. In other news, I found that mod_mono does pretty much what we need in terms of providing module code that spawns an external process to host the GCJ runtime. mod_mono runs both on Apache 1.3 and 2.0, so using it as a starting point seems like a promising option.

[March 22, 2004]

I uploaded a new snapshot that can be statically linked with Apache, and as expected the dynamic loading problems have gone. It is now possible to load arbitrary Handler classes from arbitrary classpaths. There's even a rudimentary class reloading support for classes that have been updated (hint: touch the directory), and you can easily pass requests on to other Apache handlers (just return false from your handler method). Based on what I learned so far, I set up a design blueprint page that outlines the approach I'm planning to take.

Getting involved

Mod-GCJ is a side project of mine, so unfortunately I can't afford to work on it as often as I'd like to. If you're interested in helping out join the mailing list and drop me a note!