Rod Johnson

Alumni
Recent Blog posts by Rod Johnson

XML Syntax Sugar in Spring 2.0

Engineering | November 26, 2006 | ...

If you've followed October's Spring 2.0 release, you will know that one of the big new features was XML extension name spaces: the ability to define new XML elements and attributes that generate Spring metadata, and can be used alongside regular bean definitions. This provides a valuable new extension point and makes Spring configuration both more simpler to use for many repeated tasks and more powerful.

However, there is also a sweet little piece of syntax sugar that you may not have noticed--probably because no one in the Spring team has gotten around to telling you... Having promised myself…

Spring Framework: The Origins of a Project and a Name

Engineering | November 09, 2006 | ...

I am regularly asked about the origin of the name “Spring.”

The name goes back to late 2002. In November 2002, I published Expert One-on-One J2EE Design and Development. The book was accompanied by 30,000 lines of framework code, which had accounted for a good deal of the year full-time I put into writing the book. (Writing a 750 page book is enough work on its own; writing a substantial framework to go along with it is sheer masochism. It was hard.) Many of the fundamental concepts of the Spring Framework were there: an already capable IoC container, with BeanFactory and ApplicationContext…

Oracle, Open Source and Commodization

Engineering | October 28, 2006 | ...

I was in San Francisco for Oracle World. I even spoke briefly in Thomas Kurian's keynote on Java middleware. But Neelan and I had to leave on Tuesday and missed the Big Deal: Larry Ellison announcing that Oracle are offering support for Linux.

This is an interesting event from the perspective of the open source business. What are the wider implications?

Oracle are offering support for an open source product that they did not create and don't control.

This is possible for a number of reasons:

  • Linux is not a product. It is a class of technology, and companies or organizations assemble, document, distribute and support products.
  • Linux support is already commoditized to some extent. Red Hat is only one of several distributors offering support.
  • The leadership of Linux is diffused. Linus Torvalds does not work for a big distributor; Red Hat does more than most but no single company provides clear leadership.
  • The leadership of Linux matters less than you think. Linux is not primarily an engine of innovation, but an engine of commodization.

However, it's interesting to think about what the limits are for companies such as Oracle in providing…

Spring 2.0 final, with over 10,000 downloads in the first day

Engineering | October 05, 2006 | ...

Spring 2.0 went final on Tuesday! This is the product of 9 months of hard work from the Spring team, and huge amounts of user feedback (thanks!) and it's a big step forward.

I promise my next blog will be about something other than download numbers. I've been playing around with some interesting approaches to testing pointcuts in @AspectJ annotations, so I'm hoping next time to post some interesting code.

But we just noticed some pretty amazing figures from SourceForge, so I can't resist posting about them. There were over 10,000 downloads of Spring 2.0 in the first 24 hours! Interest in Spring 2.0 has been building for months--with some users already in production with a release candidate, including a prominent media site in Europe--and I think Keith's brilliant launch page

Spring 2.0 Final Released

Releases | October 03, 2006 | ...

It is our pleasure to announce that the long-awaited final release of the Spring Framework version 2.0 is now available.

Spring 2.0 Released

Download | Documentation | Changelog 

As the leading full-stack Java/Java EE application framework, Spring delivers significant benefits for many projects, reducing development effort and costs while improving test coverage and quality.

This stable, production-grade release comes after 9 months of active development.  In this short time the Spring 2.x series has matured immensely, benefiting from over 150,000 early access downloads across 9 milestone releases, resulting in over 750 JIRA issues resolved, 50 of which introduce major new features.

What's New?

We believe three attributes capture what our users can expect from the Spring 2.0 series: Simple, Powerful, and Proven.


Version 2.0 brings major new simplifications to the framework's overall usage model.  As our existing users know, the heart of Spring is the Bean Container which drives the configuration of your Java and Java EE application.  In version 2.0 many common configuration tasks have been simplified through the introduction of custom Bean Configuration Dialects.  What does this mean to you?

This means you can now:

  • Make your business services transactional in one-line of configuration code.
  • Lookup objects from JNDI in one-line of configuration code.
  • Expose externalized properties to your services in one line of configuration code.
  • Apply consistent exception handling policies to your data access objects with a single annotation.
  • Invoke Stateless Remote EJBs by defining a single configuration tag.  No more custom service locators or business delegates.
Simplifications continue across the modules of the framework, allowing you to:
  • Write parameterized JDBC queries in one line of code.
  • Apply convention over configuration when deploying your Spring MVC controllers.
  • Use Spring JSP tags to reduce your typing when developing input forms.


A major goal of Spring 2.0 is to make the common tasks easier.  Version 2.0 also opens up exciting new doors for solving the harder problems in an elegant manner.  In 2.0 you may:

  • Weave custom behavior into multiple points of program execution using AspectJ's concise pointcut expression language.
  • Receive asynchronous JMS messages with transactional and thread-safety guarantees.  See it live
  • Develop your own Bean Configuration Dialect for your application.
  • Inject objects from custom scopes such as "request" and "session" scope in a thread-safe manner.
  • Invoke Groovy, Beanshell, and JRuby scripts from your Java application.
  • Schedule tasks to run asynchronously with sophisticated threading and pooling options.

Version 2.0 builds on the foundation set by Spring 1.x.  This new release delivers major new functionality while preserving backwards compatability as far as possible.

With over one million downloads since its release in March 2004, Spring 1.x made developing sophisticated applications from plain Java Objects (POJOs) the de-facto standard.  The 2.x series builds on this widely-recognized best-practice to deliver new simplification and power while preserving full compatiblity with the established Spring 1.x series.  Users can expect their upgrade to be straightforward; in most cases, simply a matter of replacing the 1.2.8 JAR files with those included in Spring 2.0.

Enjoy, and thank you

Spring 2.0 represents the cumulative effort of many over the last year.  From the lead developers Juergen, Rob, Rick, and Costin at Interface21, to our supporting partners BEA and Oracle, to the many in the community contributing innovations, patches, documentation, bug reports, and tests--there is a lot of blood, sweat, and tears here.  We truly hope you find this new version as much a joy to use as it was for us to build.  Enjoy, and rest assured: the work doesn't stop here.

Sincerely,

The Spring Team

 


Additional Resources

  • Attend The Spring Experience 2006, the premier conference for the Spring community, December 7th - 10th in Hollywood, Florida.  Register by October 16th to secure the early bird discount for your team.
  • Track future Spring 2.x development with the Roadmap
  • Bookmark this page for the rollout of additional screencasts and code examples showing the new 2.0 features in action.

Long time, no blog

Engineering | September 22, 2006 | ...

Welcome to my new blog! I haven't blogged since August 2004, but have been inspired by our new team blog to try to lift my game. I've also been shamed by the blog-energy of my colleagues.

I'm very excited about a lot of topics at the moment, and promise to blog much more often than once every 2 years in future... Stay tuned for my thoughts about Spring 2.0 and beyond, OO design, AOP, and the future of enterprise Java.

In the meantime, I'll share my travel schedule for the next few months (which will at least give me an excuse for not always posting regularly):

  • October 1-6: JAOO conference in Aarhus, Denmark.
  • October 10-11: BEAWorld event in Prague. Always a beautiful city, although Prague is no longer a cheap destination.
  • October 23: Keynote about Spring 2.0 at the Oracle Develop event, a new part of Oracle Open World conference, in San Francisco. This looks set to be a big conference.
  • November: I'm spending most of November in Australia, partly to visit family and friends, and partly because Interface21 has opened a new office there, headed by Ben Alex, Acegi Security lead. I'll be speaking at various events, including Spring User Groups in Sydney and Brisbane, the Sydney JUG, and a forum in Melbourne.
  • November 27-28: JAX Asia conference in Singapore. This is a new conference. The German JAX conferences are big and have interesting content, so I'm looking forward to it. With amazing timing, this is just at the time I was returning to London from Sydney, so I'm literally in the area... There's also a JAX conference in Jakarta, but I'm at the limit of my travel tolerance for the next few months already and just couldn't commit to that.
  • December 7-10: This is going to be the most fun. The Spring Experience, in Hollywood, Florida. This year we expect over 500 developers, and great speakers as usual. Keith is doing a great job of organizing it, along with Jay Zimmerman of No Fluff Just Stuff fame.
  • 11-15 December: JavaPolis in Antwerp. A big European conference, great value for attendees and always has a top speaker lineup--probably because organizer Stephan Janssen seems to know everyone who's anyone in the Java community. And of course Belgium is always worth visiting, if only for the beer. I'm a big fan of Belgian white beer in particular.
Ouch. Even writing that list made me feel tired. Fortunately I have been flying a lot less than usual for the last couple of months, so I've avoided the delays and restrictions here in UK airports. But it's pretty obvious that by late December I am going to be in serious need of a rest...

Thank you! Spring Framework passes 1 million downloads

Engineering | September 22, 2006 | ...

A couple of weeks ago, the Spring Framework project passed 1 million downloads from its home on SourceForge. The true total is probably much higher, as this figure does not include nightly builds or the other sites from which Spring can be downloaded. And, of course, Spring is included in the distributions of a large and growing range of other products. And then there's Spring.NET...

Most important, Spring continues to gain momentum: the numbers are growing very rapidly. The most downloaded version of Spring is the most recent production release, 1.2.8, which has been downloaded 175,000 times…

Spring Framework 2.0 M1 released

Releases | December 22, 2005 | ...

The beginning of the next season of Spring is here:  Spring Framework 2.0 M1 has been released.

Download it here.

Important new features include:

  • Simplified, extensible XML configuration
  • Powerful new Spring AOP features and AspectJ 5 integration
  • Asynchronous JMS facilities enabling message-driven POJOs
  • Spring Portlet MVC, a MVC framework for JSR-168 Portlets
  • ... and much, much more

Spring 2.0 remains 100% backwards compatible with Spring 1.2 and continues to run on Java 1.3 and greater.

A word on the new configuration enhancements: Spring 2.0 uses XML Schema to support the definition of tailored application configuration schemas.  The M1 release ships convenient XML tags that greatly simplify the definition of declarative transactions, JNDI lookups, custom aspects, and common utility services such as loading properties files.

Please review the central JPetstore sample application included in the release.  This sample demonstrates the new 2.0 features in action and will continued to be refined in subsequent milestones.

Read Juergen's original announcement on the developer mailing list for more information.

Review the Spring 2.0 roadmap for information about upcoming milestones.

Method Injection

Engineering | August 06, 2004 | ...

A couple of months ago, in the days before I had a blog, there was a discussion by Cedric and Bob about "Getter Injection."

The basic concept is that the IoC container can override abstract or concrete methods on managed objects on deployment. The container is injecting a method, such as a getter method, rather than a reference or primitive as in Setter Injection. As it happened, I was already working on a container method override mechanism for Spring 1.1, which has since been released in Spring 1.1 RC1. It's an interesting concept, and definitely part of a complete IoC container. However, I…

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring offers support and binaries for OpenJDK™, Spring, and Apache Tomcat® in one simple subscription.

Learn more

Upcoming events

Check out all the upcoming events in the Spring community.

View all