We’ve been working really hard on Spring Batch getting ready for the Spring Portfolio 2.5 release train, and I thought it would be a good time to update everyone on what is happening. In this article I’m going to expand a bit on the domain modelling, and our decision to raise the profile of some of the core domain objects, and increase their responsibilities. I will also give a few tastes of what is coming in the next couple of releases leading up to 1.0, so people have a chance to comment if they want to.
The Spring Blog
My last blog showed how Spring is soaring past EJB. Research by BZ Media and others shows that Apache Tomcat is the leading open source application server with a 64% market penetration. The dominance of Spring and Tomcat is well-known. What people may not know as well is that thousands of organizations are running Spring on Tomcat as their middleware infrastructure. Those organizations want one company to turn to for the products and services they need to be successful.
Today we announced our acquisition of Covalent Technologies. Not only does Covalent bring Apache leadership, but our combined company now has significant leadership on Apache Tomcat and HTTP. Two weeks ago, Sun paid $1bn for the “M” in LAMP. Now that Covalent’s outstanding Apache expertise and services are part of SpringSource, we are strong leaders in the “A”. We have always been about technology leadership, so we're very excited about what we can do together with Covalent. Over the last few years, Covalent has earned a great reputation in the marketplace with its support for Apache projects, including Tomcat and Apache HTTP. Its hundreds of support customers include more than half of the Fortune 500, and household names like Pfizer, Johnson & Johnson, British Telecom (BT), NASA, Intel, Royal Bank of Scotland and Bear Stearns. Our announcement today begins a new phase in the history of our company, and–I believe—the rapidly changing application platform market.
One of the central themes behind Spring 2.5 is comprehensive annotation-based configuration. We’ve been talking and blogging a lot about @Autowired, about Spring MVC’s @RequestMapping and also about the new support for annotated tests written with JUnit4 or TestNG. @Autowired is certainly the central one of Spring 2.5’s annotations, being available for use in service components, web components, unit tests - even domain objects when using Spring’s @Configurable with AspectJ weaving. Spring MVC’s @RequestMapping is equally flexible, supporting many variants of handler method signatures.
A lot of features have been improved or added since my previous post (about 1.0 M1); I’ll talk more about them in future entries (there is also the reference documentation that explains the library at length) so I’ll just name a few:
We want to provide a powerful, simple and consistent programming model. That’s why Spring Dynamic Modules builds on top of Spring and uses its proven concepts, reliability and ubiquity.
Well, it took a lot longer than we initially anticipated, but I’m really pleased to say that the Spring Dynamic Modules project reached its 1.0 milestone today. When I first posted on this topic back in September of 2006 (“Spring OSGi support gaining momentum”) the initial specification was just an attachment to an issue against the Spring Framework, and connections to the wider OSGi community were only just beginning to be formed.
Fast forward eighteen months, and Spring Dynamic Modules has become a full-fledged project in the Spring portfolio with committers from SpringSource, BEA, and Oracle. Both BEA and Oracle are using Spring Dynamic Modules to build their own OSGi-based products (see for example “WebLogic Event Server - why we used Spring”), and the Spring Dynamic Modules discussion group has almost 1000 members. The OSGi Alliance itself has formed an Enterprise Expert Group, and SpringSource is an active member.
Job listings are a good indicator of the true adoption of technologies. They indicate whether or not companies are spending money, making it possible to distinguish substance from hype; they indicate the importance for developers of gaining and growing the relevant skills (an important element of technology perpetuation); and they provide a good guide to the safety for companies in adopting a particular technology.
Thus the jobtrends site of Indeed.com, a job listing aggregation site, is an important resource. It allows trends in the number of job requirements to be tracked over time, and makes it convenient to compare technologies.
Spring’s dependency injection (DI) mechanism allows configuring beans defined in application context. What if you want to extend the same idea to non-beans? Spring’s support for domain object DI utilizes AspectJ weaving to extend DI to any object, even if it is created by, say, a web or an ORM framework. This enables creating domain behavior rich objects, since domain objects can now collaborate with the injected objects. In this blog, I discuss the latest improvements in the Spring framework in this area.
Since I joined SpringSource six months ago as the Director of Training, I have been hearing one consistent request. Based on the growing demand for Spring skills, developers and consultants worldwide are seeking quantifiable ways to demonstrate their Spring expertise. Likewise, the hiring managers behind that demand are asking for a certification program to help identify and hire technologists who have an immediately useful, baseline knowledge of Spring.
Quite a day for news as we complete our first annual Spring eXchange in London. First, the news that Sun Microsystems acquired MySQL, and then the long anticipated acquisition of BEA Systems by Oracle. Before commenting any further, I want to congratulate all of our friends at MySQL, especially Mårten Mickos, and all of our friends at BEA. The trend of consolidation in this industry is increasing.
As an open source company, we are thrilled to see MySQL rewarded for their effort. We have seen how hard Mårten and his colleagues have worked to build their software, community and a strong business, benefiting countless developers in the process. They have been among the pioneers of open source. More importantly, we have appreciated the counsel and advice the MySQL folks have given us as we build our business in northern California and around the world. Their success is well earned and we wish them all the success in the world in their new endeavors.
Last Friday was Tony (C.A.R.) Hoare’s birthday. Who is C. A. R. Hoare? If you’re a programmer, you’re probably familiar with Quicksort–an elegant and surprisingly simple sorting algorithm that is blazingly fast in most cases. If you studied computer science, you’ve almost certainly implemented Quicksort in numerous languages, and will recognize the animation on this page. Hoare invented Quicksort in 1960, and it’s now the most widely used sorting algorithm.
Among other contributions, Hoare also invented the Communicating Sequential Processes (CSP) language used to specify the interactions of concurrent processes. A smart guy, who has made a notable contribution to the evolution of computer science.