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.
Spring 2.5.1 is the first bug fix and enhancement release in the Spring 2.5 series. It closes a couple of gaps found in Spring 2.5 final and introduces various new features in the context of Java 6 and Java EE 5 support:
Java-5-specific Model interface for use with MVC handler methods
@ModelAttribute’s default attribute names are consistently derived from the declared parameter/return type
Support for last-modified handling in @RequestMapping handler methods (through the WebRequest interface)
SpringBeanAutowiringSupport class for self-autowiring classes within a web app (e.g. JAX-WS endpoints)
EJB3-compliant SpringBeanAutowiringInterceptor for processing Spring’s @Autowired in EJB3 SBs/MDBs
Remoting support for the HTTP server that is included in Sun’s JDK 1.6 (covering HTTP invoker, Hessian and Burlap)
"jms:listener-container" tag supports a concurrency range (e.g. "3-5"), for specifying a minimum number of consumers
Tiles2 support works on JDK 1.4 as well
Any many further enhancements in the details…
At The Spring Experience, I hosted a session various aspects. One of them was the Hibernate synchronization aspect that I described last week. Another was an aspect capable of capturing first failures and system state, sometimes called First-Failure Data Capture (FFDC). I hosted this session to show off some aspects that are very useful, but that people might not have come across in practice yet. I often hear people asking about aspects other than logging, tracing, transaction management and security. The Hibernate synchronization aspect and the FFDC aspect are nice examples I think.
It has been quite a year for Spring.NET. We have gone through two milestone and two release candidates before the GA release in December. The first chunks of code for the 1.1 release were made way back in late 2004 by Aleks Seovic who started work on the ASP.NET framework. In short, it has been a long time in the making. Being the end of year, a natural time for reflection both past and present, I’d like to say thanks to the other members of the project and the Spring.NET community for all their contributions and support. I’m looking forward to a great 2008!
Mixing code in one and the same transaction that uses an Object-Relational Mapper with code that doesn’t, can cause issues with data not being available in the underlying database when it should be. Since this is a situation I come across once every now and then, I figured it would be helpful for all if I write down my solution to this problem.
In short: what I will present in the remainder of this post is an aspect that triggers the underlying persistence mechanism (JPA, Hibernate, TopLink) to send any dirty data to the database.
Sometimes important changes sneak up. Such changes aren’t driven by marketing campaigns, but by many individual decisions; there’s no fanfare; by the time they’re observed, they have surprising momentum. I mentioned one such development in my opening keynote at the recent Spring Experience conference: the steady rise of Tomcat.
Recently we’ve begun running polls on SpringFramework.org, and some of the results are interesting. The question Which application server(s) do you use? produced the following results: BEA WebLogic (various versions) and JBoss AS shared first place among Java EE app servers on 16% each, with IBM WebSphere just behind on 15% and Glassfish putting in a creditable performance on 5%. But the easy winner was Tomcat, on 37%.
In my recent post, I had mentioned that the Subversion repository for Spring Integration would be publicly accessible soon, and I’m pleased to provide that link now. You can checkout the project with the following command:
svn co https://anonsvn.springframework.org/svn/spring-integration/base/trunk spring-integration
If the checkout is successful, you should see the following directory structure:
spring-integration/ +--build-spring-integration/ +--spring-build/ +--spring-integration-core/ +--spring-integration-samples/
We are pleased to announce that the Spring .NET 1.1 final release is now available
- Inversion of Control Container
- Aspect-Oriented Programming Framework
- Aspect Library
- ASP.NET Framework
- ASP.NET AJAX Integration
- ADO.NET Framework
- Declarative Transaction Management
- Declarative Middleware Services
- NHibernate Integration
- NUnit Integration Testing
This release has been a long time in the making and the team would like to extend our heartfelt thanks to everyone who has contributed to the project.