The Spring Blog

Engineering
Releases
News and Events

VMforce Provides Spring Cloud Platform

VMware and Salesforce today announced a partnership to build an enterprise Java cloud called VMforce. The announcement is understandably receiving a lot of attention in the wider industry context, but today I’d like to focus on the central role of SpringSource technology in the new platform and the unique and compelling benefits it brings developers in the Spring community.

What is VMforce?

VMforce is a joint service from VMware and SalesForce. VMforce uses the Force.com physical infrastructure to run vSphere with a special customized vCloud layer that allows for seamless scaling and management. Above this layer VMforce runs SpringSource tc Server instances that provide the execution environment for the enterprise applications that run on VMforce. Spring applications can store their own enterprise data in the Force.com database or use data already resident there. All of these architecture details are seamlessly integrated into a single platform that allows the developer to interact with the server in the way they would with a local tc Server or Tomcat instance.

Read more...

Spring Web Flow 2.0.9 Released

Dear Spring Community,

We are pleased to announce that Spring Web Flow 2.0.9 is now available. Download | Reference Documentation | Change Log

This release includes a number of minor bug fixes, as well as an update to the version of Dojo that addresses a Dojo security vulnerability.

In addition to 2.0.x maintenance, the Web Flow project team is currently working on a 2.1 release that provides a current generation version of Web Flow that builds on Spring 3. At the same time, work is continuing towards the first 3.0 milestone for the next generation Web Flow. Watch for future announcements in these areas soon.

Read more...

SpringSource Hops On Cloud Messaging with RabbitMQ

I am delighted to announce that the SpringSource division of VMware has acquired Rabbit Technologies Ltd., the company behind the popular open source cloud messaging technology RabbitMQ. This acquisition will enhance our middleware portfolio and accelerate our cloud initiatives.

Messaging Evolution in the Cloud


RabbitMQ is well suited for the cloud for three main reasons:


  • Open: RabbitMQ is open source, has an open and active community, and is based on open standards. Openness will be a critical factor for successful cloud platforms because moving to the cloud loses a lot of its appeal if it turns out to be just another version of vendor lock-in.

  • Flexible Scalability: RabbitMQ is capable of scaling in multiple different ways, not just technical horizontal scaling but also federated messaging that spans cross service scaling all the way up to geographically diverse scaling.

  • Protocol based: RabbitMQ is a protocol based, rather than API based, messaging system. This means that messaging clients are not tied to vendor installed libraries which increases portability for applications and allows for client messaging from a wide variety of different platforms. This approach also allows RabbitMQ to support multiple protocols which increases its utility in heterogeneous environments like the cloud.

Read more...

Uploading Job Configurations to Spring Batch Admin

An interesting problem that has no universal good solution is: how do I change the configuration of a running Spring application? Spring Batch Admin 1.0.0.M3 was released recently, and it has a configuration upload feature that solves this problem in a particular way. Someone asked for this feature at the recent S2GForum in Munich (if you missed that sign up for events in London and Amsterdam in May), and I was happy to tell him that it already existed, so maybe it deserves a bit more air time…

Screenshots of the Basic Use Case

Read more...

Spring Framework 3.0.2 released

I’m pleased to announce that Spring Framework 3.0.2 is available now, including more than 100 fixes for user-reported issues. Get it from our download page.

Spring 3.0.2 catches up with recent third-party releases such as Hibernate 3.5 final, OpenJPA 2.0 beta 3, Hessian 4.0.3, and JasperReports 3.7. In addition, this release introduces web support refinements (e.g. the new HttpEntity class) and fixes a couple of regressions.

We recommend upgrading to Spring 3.0.2 from all previous Spring 3.0 releases - for both development and production use. If you are currently using Spring 2.5, the 3.0.2 release is the recommended entry point into the world of Spring 3 now. Enjoy!

Read more...

SpringSource dm Server 2.0.1 Released

SpringSource dm Server 2.0.1 is released today.

The release fixes a few minor bugs and one security issue. The Admin Console’s version of dojo is upgraded from 1.3.2 to 1.3.3 to prevent an open redirect attack.

The release also includes the final Reference Implementation of the OSGi Web Container. The OSGi Web Container specification was recently released by the OSGi Alliance as part of the OSGi 4.2 Enterprise Specification.

No further releases of dm Server are planned as the project is being donated to the Eclipse Foundation as Virgo. We aim to ship a baseline release of Virgo in due course which will be functionally equivalent to dm Server 2.0. SpringSource will offer commercial support for Virgo.

Read more...

Using UDP and TCP Adapters in Spring Integration 2.0 M3

The UDP and TCP channel adapters introduced in Spring Integration 2.0 Milestone 3 provide lightweight communication either between two or more Spring Integration applications, or between a Spring Integration application and some other platform.

Following on from Oleg’s blog about the Loan Broker, I use the same example to show how to use the new UDP adapters available with M3. Assume that the CEO of the Loan Broker company has heard complaints from some customers that several banks are quoting outrageous rates. He asks the CIO if he can monitor the quotes coming back from the banks for a while.

Read more...

Now Available: SpringSource Tool Suite 2.3.2

The latest version of SpringSource Tool Suite (STS) is now available. STS is the best Eclipse-powered development environment for building Spring, Groovy and Grails powered enterprise applications. The new version (2.3.2) is now available for download and provides mostly fixes for some minor bugs and some performance improvements.

Download | Install Instructions | ChangeLog | New & Noteworthy | JIRA

Now is a great time to start working with STS and please use the community forum to give your feedback and ask questions.

Read more...

Spring Integration 2.0 Milestone 3 Released

The 3rd development milestone for Spring Integration 2.0 was released last week (download it here).

If you have read Oleg’s recent blog, you already know that we have started working on a new reference sample implementation based on the “Loan Broker” example that plays a significant role in Gregor Hohpe and Bobby Woolf’s Enterprise Integration Patterns book.

I just wanted to post a brief blog listing a few of the other new additions and improvements in this release. You can expect to see more detailed blog entries covering a few of these features over the next couple weeks. I’m including some links to documentation, samples, and test code so that you can at least get a quick sense of how these features are evolving.

Read more...

EIP 'Loan Broker' Reference Implementation (Part 1)

We are pleased to announce the first installment of the ‘Loan Broker’ Reference Implementation.
‘Loan Broker’ concept has become a de-facto reference domain for showcasing Enterprise Integration Patterns (EIP) - by Gregor Hohpe ad Bobby Woolf, and this installment of the Loan Broker RI demonstrates how Enterprise Integration Patterns are realized and applied using Spring Integration (SI) framework.

Introduction


lb-pipesFilters

At the core of EIP architecture are the very simple yet powerful concepts of Pipes and Filters and Message. Endpoints (Filters) are connected with one another via Channels (Pipes). The producing endpoint sends Message to the Channel and the Message is retrieved by the Consuming endpoint.  This architecture is meant to define various mechanisms that describe How information is exchanged between the endpoints, without any awareness of What those endpoints are or What information they are exchanging, thus providing for a very loosely coupled and flexible collaboration model while also, decoupling Integration concerns from Business concerns. EIP extends this architecture by further defining:

Read more...