Developing Rich Web Applications with Spring

Engineering | Keith Donald | July 17, 2008 | ...

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.

Key things you will learn in the bootcamp include:
  • How to design and implement REST architectures with Spring Web MVC 2.5
  • How to progressively enhance HTML pages and forms with Ajax behaviors using Spring JavaScript with the Dojo Toolkit
  • How to design and implement linear progressions that carry out application transactions with Spring Web Flow 2
  • How to implement web authentication and authorization models with Spring Security 2
  • How to optimize object persistence and concurrency in a high-volume web application environment
  • How to integrate JavaServerFaces component libraries into your application with Spring Faces
  • User interface best practices in the areas of style, layout, and accessibility
  • Testing strategies for all layers of a web application
  • Techniques for optimizing web application performance
Like all SpringSource workshops, "Developing Rich Web Applications with Spring" focuses on being hands-on and holistic.  We designed this bootcamp for teams building web applications to equip them with everything they need to hit the ground running with the latest and best version of Spring.  It is a great next course for those who have taken Core Spring, and is generally suitable for enterprise Java developers and architects seeking in-depth, comprehensive coverage of Spring for web application development.
    For more information and to register for an upcoming workshop, visit SpringSource.com.  I am very excited to be leading the first public bootcamp in Washington D.C on August 5th through 7th--I hope to see you there!

SpringSource Seminar Day in Central Europe

Engineering | Juergen Hoeller | June 29, 2008 | ...

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

UPDATE: SpringSource's CEO Rod Johnson now to co-present the seminar keynote with CTO Adrian Colyer! Also note that we are organizing a concluding Meet & Greet session at the SpringSource booth.

The speaker list includes SpringSource's CEO Rod Johnson, CTO Adrian Colyer as well as project leads Rob Harrop, Christian Dupuis, Jennifer Hickey, Keith Donald, Juergen Hoeller and Mark Pollack. This is your chance to get in touch with SpringSource's project leads and European consultants for first-hand insight into Spring. The presentation language will be English; the overall event will be moderated in English as well as German.

The seminar will be held at the beautiful Bergschloessl Linz and allows for convenient travelling on a day trip basis (e.g. from Vienna, Salzburg and Munich). Of course, you might prefer to stay for the weekend in order to visit the city of Linz, the European Capital of Culture 2009... Tip: The famous Linzer Klangwolke happens to be scheduled for Saturday, September 6th - the weekend right before the seminar!

Linz is easy to reach by car, train and plane. The main train station is close to the venue, with direct connections from e.g. Vienna, Wels, Salzburg, Nuremberg and Frankfurt. The Blue Danube Airport Linz (LNZ) - providing direct connections from Vienna, Frankfurt, Duesseldorf, Munich and Zurich - is a 20 minutes drive away.

The admission fee for this unique opportunity is EUR 150, to be paid on arrival at the venue. Advance registration before August 11th is required: please send an email to Eva Hoeller (eva.hoeller AT springsource DOT com), stating your contact details as well as the number of seats that you would like to reserve for your company. Seating is limited, so register early!

UPDATE: This seminar is booked out at the already extended level of 145 attendees. See you there!

Juergen Hoeller
VP & Distinguished Engineer
SpringSource

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

Engineering | Rod Johnson | June 25, 2008 | ...

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.

Some applications previously priced at $3,995 are now listed at $4,595 -- up 13.1 percent -- while database software prices increased 18.75 percent from $40,000 to $47,500 per CPU. Other prices increased approximately 15 percent, according to Wang's report. The price for BEA's WebLogic application server is now $25,000 per CPU, up 47.1 percent from its $17,000-per-CPU price prior to Oracle's $6.7 billion acquisition of the middleware software vendor in April.
This decision probably indicates two things: that Oracle justified the high cost of acquiring BEA (actually, over $8 bn) through its belief that it can make more money from BEA customers by raising prices; and Oracle's expectation that, with no independent vendor left, there is not enough competition left in the Java EE application server market for customers to resist such a price hike. From the same article:
Some industry observers have worried that the acquisitions could give Oracle a near-monopoly in some markets. The Forrester report says the price increase for BEA WebLogic could reflect Oracle's dominant position in the application server market.
In a two-horse race in the legacy app server market between Oracle and IBM, both vendors might well take that view, effectively creating the OPEC of application server vendors. IBM Senior Vice President and Software Group General Manager Steve Mills recently commented that he is “not particularly concerned with competition" in this space, “particularly from open source offerings.”

Fortunately, for customers…

Running a Spring Batch Job in The SpringSource Application Platform

Engineering | Dave Syer | May 30, 2008 | ...

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.

The bundle configuration is in META-INF/spring/module-context.xml (this is conventional for Platform bundles) - Spring DM picks up all XML files from META-INF/spring. This one just uses Spring to configure and launch an instance of the HSQL Server.

There is an integration test that can be used to check the…

Open Source, Open Strategy: The SpringSource Manifesto

Engineering | Rod Johnson | May 28, 2008 | ...

As an open source software provider, we think we should be open about our strategy, too. We'd like to share how we got here, where we're going and why the journey will be good for Spring, good for Spring users and good for SpringSource.

Our History

The Spring story began in 2001, when I began working on the 30,000 lines of framework code I published along with Expert One-on-One J2EE Design and Development in 2002. My objective was to help others to avoid the pitfalls that I had encountered completing J2EE projects since 1999.

It quickly became clear that others liked the ideas in that code - such as Dependency Injection and the Spring data access abstraction - and benefited from putting them into practice. I was approached by readers who requested that I publish the code and who wanted to contribute.

I quickly came to see some important benefits of open source.

  • Most users get the functionality they need for free
  •     	<li> It…

Implementing Enterprise Integration Patterns part 0

Engineering | Iwein Fuld | May 19, 2008 | ...

After my talk on Spring Integration I've been getting quite some questions on clarification and samples. To meet the demand I will start a small series on implementing different integration patterns using Spring Integration. This first article will focus on the basics. It will show you how to get up and running and walk through one of the samples.

If you never heard about Spring Integration before it might be a good idea to familiarize yourself with it reading the introductory blog Mark Fisher wrote about it or by browsing the project website. In general

Let me start with a disclaimer: the…

Spring Web Flow 2 Released; Introduces New Faces and JavaScript Modules

Releases | Keith Donald | May 15, 2008 | ...

Dear Spring Community,

We are pleased to announce general availability of Spring Web Flow 2. Download | Documentation

Spring Web Flow is the project in the Spring Portfolio that focuses on providing the infrastructure for building and running rich web applications. As a Spring project, Web Flow builds on the Spring Web MVC framework to provide:

  • A domain-specific-language for defining reusable controller modules called flows
  • An advanced controller engine for managing conversational state
  • First-class support for using Ajax to construct rich user interfaces
  • First-class support for using JavaServerFaces with Spring

The modules of the Web Flow 2 distribution and their relationship with the Spring Framework are illustrated below:

What's in Web Flow 2

Web Flow 2 Distribution Components

 

Spring Web MVC

The Spring Web MVC framework, a module of the Spring Framework distribution, provides the foundation for developing web applications with Spring using the proven ModelViewController paradigm. Each of the modules of the Web Flow distribution builds on this foundation.

Spring Web Flow

The Web Flow module is a MVC extension that allows you to define Controllers using a domain-specific-language. This language is designed to model user interactions that require several requests into the server to complete, or may be invoked from different contexts.

Spring JavaScript

Spring JavaScript is a JavaScript abstraction framework that makes it easy to write unobtrusive JavaScript to progressively enhance a web page with behavior. The framework consists of a public JavaScript API along with an implementation that builds on the Dojo Toolkit. Spring.js aims to simplify the use of Dojo for common enterprise scenarios while retaining its full-power for advanced use cases.

Spring JavaScript can work with any server-side framework. The Web Flow 2 distribution includes convenient integration between Spring JavaScript and Spring Web MVC for processing Ajax requests.

Spring Faces

The Spring Faces module contains Spring's support for JavaServerFaces. This support allows you to use JSF as a View technology within a familiar Spring MVC and Web Flow Controller environment. With this architectural approach, you combine the benefits of the JSF UI component model with the benefits of a Web MVC architecture. Spring Faces also includes a lightweight component library built on Spring JavaScript for declaratively enabling Ajax and client-side validation behaviors in a progressive manner.

Themes of the Web Flow 2 Release

In addition to introducing the new Spring Faces and Spring Javascript modules, the Web Flow 2 release effort addresses two major themes: Integration and Simplicity.

Integration

Across each of the modules, the Web Flow 2 distribution adds a number of interesting integrations that allow you to enrich your web applications. These integrations support:

  • Using Spring Security to secure your flows in a declarative manner
  • Using Tiles for JSP page composition and Ajax partial-rendering
  • When using JSF, using Facelets for page composition and layout
  • When using JSF, using Apache Trindad and JBoss RichFaces component libraries
  • Using the Dojo widget system in a progressive and unobtrusive manner; a manner that degrades gracefully if JavaScript is not available on the client

Simplicity

The flow definition language has been simplified tremendously in Web Flow 2 while becoming more powerful overall. These simplifications include:

  • An appoximate 50% overall reduction in lines-of-code when comparing a version 2 flow definition with its version 1 equivalent (example: version 2 vs version 1)
  • A concise syntax for invoking actions using an Expression Language (EL), with support for both the Unified EL and OGNL
  • Declarative model binding and validation, with support for convention-over-configuration
  • Support for reuse at both the flow and state levels using flow definition inheritance
  • Enhanced modularity, allowing a flow and its dependent resources to be packaged together in a self-contained bundle

Release Notes

  • Web Flow 2 requires Java 1.4 or greater and runs on all major Java EE platforms including Tomcat, Jetty, Websphere, WebLogic, and JBoss.
  • Web Flow 2 requires Spring Framework 2.5.4 or greater.
  • Web Flow 2 has been certified by SpringSource as "Platform Ready" and is fit to run on the SpringSource dm Server in OSGi-enabled web applications.

Getting Started

  • To get started using a build system such as Maven or Ant+Ivy, access Web Flow artifacts from the Maven Central Repository.

Additional Community Resources

  • Watch the Ajaxian.com interview where the release and Spring JavaScript are discussed with Dion Almaer.
  • Explore Spring Web reference applications on-line. The Spring Travel application showcases the integrated Web Flow 2 feature set and is included in the distribution. The SpringSource Enterprise Bundle Repository is a real-world application in production built on Spring 2.5 and Spring Web Flow 2.0.
  • If you are an existing Web Flow 1 user, review the migration guide to help in upgrading to Web Flow 2. The WebFlowUpgrader tool automates the conversion of your flows to the version 2 syntax
  • Track updates to the Web Flow source repository with Fisheye
  • Watch for upcoming articles on Web Flow 2 by subscribing to springframework.org

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

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