TheServerSide Java Symposium conference agenda is almost complete! Check it out now and share your comments. If there's something else you'd like to see, please let us know. Perhaps we can organize a Fireside Chat or an open source Project Report. *TheServerSide Java Symposium returns to Las Vegas, March 18-20. Register before January 16 to save $300. New sessions added this week: HtmlUnit: An Efficient Approach to Testing Web Applications with Marc Guillemot, Lead Developer of HtmlUnit and Daniel Gredler, Committer HtmlUnit is an open source Java headless browser allowing efficient test automation of Web applications. Contrary to most other tools in this area, HtmlUnit simulates a browser rather than driving a "real" browser. It perfectly reproduces the behavior of Firefox or IE for a very large number of Web applications: from simple old-fashioned pre-Ajax apps all the way to complex Web 2.0 ones. HtmlUnit's approach provides obvious benefits in areas such as ease of deployment, performance, scalability, and (surprisingly) Ajax, but also has some limitations. Project committers Marc Guillemot and Daniel Gredler provide detailed insight into the library, explain how to get the most out of the HtmlUnit approach, and show why in many cases it is far more efficient than working with a "real" browser to ensure the quality of your Web application. Meta-programming with JRuby with Patrick Farley, Lead Consultant with ThoughtWorks Meta-programming is a powerful and expressive set of language features and idioms that let us do more with less. JRuby opens up the world of Ruby meta-programming to Java developers. In this session, we tour JRuby meta-programming facilities and dive into examples of how they work and how to use them. Effective meta-programming requires both knowledge of the language and good judgment. As Stan Lee said, “with great power comes great responsibility.? We'll also discuss when meta-programming is appropriate and, more importantly, when it is not. Topics covered include: • Open classes, anonymous classes, and singleton classes; • Declarative programming; • Interpreter directives; • Adding, removing, and re-defining methods at runtime; • Sharing behavior with Modules; • Reducing structural duplication; • Dynamic method invocation with #send; • Handling the unknown with #method_missing and #const_missing. Click here to see other sessions we've lined up for you. We're working hard to bring TheServerSide community the most informative and engaging event of 2009. See you in Vegas! team