Early draft of OSGi Service Platform Release 4.2 specification now available

The OSGi Alliance have posted an early draft of release 4.2 of the Service Platform specification.  SpringSource employees are active members of both the Core Platform Expert Group (CPEG) and the Enterprise Expert Group (EEG) within the Alliance. My personal involvement has been largely with the EEG, and particularly with RFC 124 “A Component Model for OSGi”.

RFC 124 is a standardization of the core ideas behind Spring Dynamic Modules. If you look at the configuration schema, you’ll see that it very closely resembles the “osgi” namespace provided by Spring Dynamic Modules (DM).  RFC 124 takes everything that we have learnt over the last couple of years developing Spring DM and combines this with some key insights from other members of the core and enterprise expert groups to produce a specification that is both based on proven real world experience and also closely integrated with the OSGi Service Platform itself. Many thanks go to the Spring DM development team :- Costin Leau, Hal Hildebrand of Oracle, and Andy Piper of BEA (now Oracle) for all their hard work in helping to develop and test Spring DM, and then to help us take the model forward as the basis for standardization in the OSGi Service Platform.

Read more

Who is the Chief of the Apache projects?

The answer is the Apache Software Foundation (ASF), a non-profit, meritocracy-based organization made up of individuals (not companies) who contribute code, bug fixes, answers to user questions, their time, and sometimes even their money to ensure that the software they are delivering addresses real-world requirements, along with being robust, secure, and widely adopted.

ZDNet’s Dana Blankenhorn’s response to Dave Rosenberg’s blog regarding companies selling support for technologies they don’t own or contribute to inspired me to set some things straight about Apache projects and companies that “support�? them. SpringSource which, through its acquisition of Covalent, is a significant contributor to a number of Apache projects. I agree with Dave that vendors who are attempting to monetize open source projects by merely selling “support�? around those technologies, while not contributing to the software, are little more than parasites. Not only do these companies not contribute to the projects, but their lack of involvement results in inferior support, which harms users and, ultimately, the reputation and acceptance of the projects.

Read more

Amsterdam Java Meetup - September 12th

Now that the holiday season (at in the Netherlands that is) has almost ended, I thought it would be time for another Amsterdam Java Meetup. So, we reserved the good-old Jaren in the Nieuwe Doelenstraat again, for having a few (paid-for) drinks with fellow Java developers and everybody else that wants to join in.

We’re doing this in the same week as the Core AOP course, held in Amsterdam, which is quite convenient for me, since now I’m sure I will be in town as opposed to some of the other meetups where I couldn’t be present myself.

Read more

Optimising and Tuning Apache Tomcat

On Wednesday I gave a webinar on Optimising and Tuning Apache Tomcat. A recording of the webinar and a copy of the slides can be obtained from the webinars section of the SpringSource website. The same page has links for all the previous SpringSource webinars, as well as the Covalent webinar archive.

I wasn’t able to get to all of the questions during the Q&A session so, as promised, here are the remaining questions and my answers.

  • What are the best practices for tuning XYZ application running on Apache

    There isn’t an ideal configuration setting for any application as the best settings will depend on many factors. As a starting point, use the recommendations provided with the application. After that, follow the process set out in the webinar and don’t be afraid to go against the recommendations provided with the application if that gives you better performance.

  • <li><strong>Do you have any recommendations for open source tools for troubleshooting, performance benchmarking or testing web applications?</strong>

    My starting point when troubleshooting is to build a simple test case using Eclipse. I then use the built-in debugger to step through the code to really understand what is happening. If you need a profiler then NetBeans includes one although I have never used it. I use a commercial profiler (YourKit) as they provide free licences to open source developers. For performance benchmarking I use Apache JMeter and for testing I use a combination of JUnit and Apache JMeter.

    <li><strong>What tool do you recommend for monitoring memory, cpu, etc.?</strong>

    For a Tomcat specific tool, I like LambdaProbe. For a more general tool you might want to take a look at the SpringSource Application Management Suite.

  • Is it recommended to use JMeter, LambdaProbe or a Profiler in a production environment?

    It depends on the environment. I have used all three of those tools in production environments in the past but equally there have been times when I have deliberately not used those tools. You have to balance the risk of the tool causing a problem (performance, functionality, security, etc.) against the potential benefit of using the tool. That balance has to be assessed on a case by case basis.

  • Is it a good idea to have a hardware load balancer and an Apache httpd load balancer?

    This also depends on circumstances. A hardware load balancer brings some benefits but also costs. Generally, I would expect to see hardware load balancers in environments that had very high availability requirements.

  • Can Tomcat be clustered and load balanced using iPlanet?

    Yes, a version of mod_jk is available for iPlanet. You can download both source and binary versions from the Apache Tomcat download pages. You should be aware that there are relatively few users of mod_jk for iPlanet so you may run into a few more bugs that if you use one of the more popular web servers as a front end.

Read more

SpringSource Enterprise Commercially Available

Yesterday, SpringSource announced the GA release of SpringSource Enterprise. As our first commercial product release, this is an important milestone for us. The engineering team did an amazing job putting this release together. The package includes enterprise versions of Spring, the SpringSource Tool Suite, SpringSource Application Management Suite and SpringSource Advanced Pack for Oracle Database, all designed to make it easier to develop, deploy, and manage enterprise-class applications.

You can test drive SpringSource Enterprise yourself:

Read more

Developing Rich Web Applications with Spring

I am pleased to announce that Developing Rich Web Applications with Spring, a three-day bootcamp lead by SpringSource engineers on web application development, is now available.  This intense, hands-on workshop teaches how to apply the latest versions of Spring Web MVC, Spring Web Flow, Spring JavaScript, and Spring Faces to create rich web applications.  It compliments our flagship “Core Spring” course by focusing squarely on using Spring to solve problems facing Java web application developers.

Read more

Using EclipseLink on the SpringSource Application Platform

<!DOCTYPE html PUBLIC “-//W3C//DTD HTML 4.01//EN”>

This week the EclipseLink team announced the release of EclipseLink 1.0. I’ve been using EclipseLink on S2AP for a while now; in fact, I used EclipseLink when developing our JPA load-time-weaving support.

We’ve yet to upgrade our internal usage to 1.0 - our beta9 was tagged just before the announcement - but I wanted to demonstrate how effectively the pairing works in an OSGi environment.

In the 1.2.0 version of the S2AP Petclinic sample, we released the EclipseLink implementation of the Clinic back-end. The back-end is a drop-in replacement for the JDBC back-end that was previously the only option.

Read more

SpringSource Seminar Day in Central Europe

SpringSource is organizing its first dedicated seminar day in central Europe: the SpringSource Seminar Day in Linz, Austria, on September 8th, 2008. This is a full-day seminar about current hot topics in the Spring portfolio: a rare chance to hear about what’s brand-new and upcoming right from the Spring project leads! The agenda is planned as follows:

8:30 … Open for registration
9:30 … Welcome and introduction (by Juergen Hoeller)
9:45 … Keynote: The Spring Portfolio (by Rod Johnson and Adrian Colyer)
11:00 … Introducing the SpringSource Application Platform (by Rob Harrop and Eberhard Wolff)
12:00 … Lunch break (lunch buffet provided on site)
13:00 … Tools for Enterprise Development and Management (by Christian Dupuis and Jennifer Hickey)
14:15 … Developing Rich Web Applications with Spring (by Keith Donald and Agim Emruli)
15:15 … Coffee break (coffee and cookies provided on site)
15:45 … Spring Framework 3.0 – The Next Generation (by Juergen Hoeller and Mike Wiesner)
17:00 … Spring.NET 1.2 (by Mark Pollack and Erich Eichinger)
18:00 … Meet & Greet at the SpringSource booth (including drinks and snacks)
19:00 … End of the seminar

Read more

Pumping it dry: $200 a barrel and $25,000 per CPU

When Oracle acquired BEA systems, I and others noted the significance of the loss of the only independent Java middleware vendor. With Oracle's recent announcement of a price hike for their products, including WebLogic Server, this is no longer a theoretical issue. They have the oil, and they think they have existing customers over a barrel. The need for alternatives is now even more painfully clear.

In fairness, Oracle's move is partly driven by the weakness of the US dollar, but the increases in WebLogic pricing are far greater than those affecting other products.

Read more

Running a Spring Batch Job in The SpringSource Application Platform

In this article I will show you how to run a Spring Batch job in the SpringSource Application Platform. I ran an early version of this up as a little demo for JavaOne, and then again at the London Spring User Group, and thought it might be a good thing to share. The sample code is here.

The Bundles

First we’ll do a quick tour of the bundles in the sample code. Start the server now, or at any point after you have installed some bundles.

Bundle: hsql-server

This one is useful to have around for development and testing. All it does is launch an instance of HSQLDB in server mode, so that you can connect to it and inspect the database using SQL statements. You can just drag and drop it into the Platform Server instance in the Servers View. Do this first, because the Platform remembers the order in which bundles were installed, and starts them in that order. This one has to be started first because other bundles will try to connect to the database server.

Read more