What's New in Spring Web Services 1.5?

Engineering | Arjen Poutsma | March 29, 2008 | ...

After being in the works for about six months, I'm happy to announce that Spring Web Services 1.5.0 has been released! In this post, I'd like to go over some of the major new features.

New Transports

The 1.5 release includes two new transports: JMS and email. Using these new transports requires no Java code changes: just add a bit of configuration, and you're off! The JMS transport integrates nicely with Spring 2's Message-Driven POJO model, as indicated by the following piece of configuration taken from the airline sample application:


<jms:listener-container connection-factory="connectionFactory">
  <jms…

Spring Web Services 1.5.0 Final Released

Releases | Arjen Poutsma | March 28, 2008 | ...

Dear Spring community,
I'm pleased to announce that Spring Web Services 1.5.0 has been released!

Downloads | Site | Changelog | Announcement

This final release candidate the following new features over 1.0.3:

  • Two new transports: JMS and email, both for client and server,
  • WSS4J-based WS-Security implementation, which allows for WS-Security on non-SUN JDKs (i.e. WebSphere) and JDK 1.4,
  • WS-Addressing support for both client and server, supporting the August 2004 and final versions of the specification,
  • Native support for Java 6, including JAXP 1.4, and the bundled SAAJ 1.3 and JAXB 2.0,
  • Two new Spring namespaces, which drastically decrease the amount of XML required to configure marshallers and typical Spring-WS constructs,
  • Spring-WS jars are now OSGi bundles,
  • A new, client-side interception mechanism, including WS-Security support,
  • @Endpoints are now @Components, so they are automatically picked up when using Spring 2.5 component scanning
  • A new and improved XSD-to-WSDL generator that inlines included and imported XSDs
  • Support for Spring Security
  • Support for the Java 6 HTTP Server
  • Two new samples, showing Plain Old XML usage and WS-Addressing with the Java 6 HTTP server

and many small improvements and bug fixes. Check the changelog for more details.

We recommend upgrading to Spring Web Services 1.5 from all previous versions, in order to benefit from these new features!

The 1.5 series is 95% backwards compatible, though support for Java 1.3 has been dropped, in favor of Java 1.6.

Cheers,

Arjen Poutsma
Spring Web Services Lead

Spring Java Configuration - What's New in M3

Engineering | Chris Beams | March 27, 2008 | ...

Today marks the third milestone release of the Spring Java Configuration project (JavaConfig for short). The release contains numerous bug fixes and new features - I'll highlight a few of the most interesting changes below, but first let me give a quick refresher as to what JavaConfig is all about.

If you have any experience with Spring, the following snippet of XML configuration will likely be familiar. Let's assume we're looking at a file named application-config.xml:


<beans>
	<bean id="orderService" class="com.acme.OrderService"/>
		<constructor-arg ref="orderRepository"/>
	</bean…

Spring For JavaServerFaces - TSSJS Slides and Demos

Engineering | Keith Donald | March 27, 2008 | ...

Today I am delivering a presentation entitled Spring for Java Server Faces at TSSJS in Las Vegas. The presentation looks at how JSF and Spring fit together, and walks the audience through approaches to integrating these two technologies.

The slides are available for your viewing pleasure, and for you to use as you see fit.

In the presentation, I outline two approaches to integrating JSF and Spring. The first approach is what I call "JSF-centric", which is the integration approach most folks with a traditional JSF background employ today. The second approach is what I call "Spring-centric…

Using a Hybrid Annotations & XML Approach for Request Mapping in Spring MVC

Engineering | Rossen Stoyanchev | March 24, 2008 | ...

In Spring 2.5 it is possible to use annotations to configure all parts of a web application. Seeing annotations applied is particularly interesting in the Web layer where developers traditionally rely on the SimpleFormController and the MultiActionController for form page handling. The introduction of annotations has created a third option, one that does not require a base class while still offering the flexibility of previous approaches.

While it is easy to see the elegance in using annotated POJOs to implement Controllers, the benefit is not as clear in the area of URL-to-Controller…

SpringSource Tool Suite Released

Engineering | Christian Dupuis | March 20, 2008 | ...

This year's EclipseCon was the first that we attended as a company. We had quite a few talks, which were all well received and we announced the beta program for SpringSource Tool Suite. Overall we all had a very great time and we got lots of feedback from the Eclipse community about the projects in the Spring Portfolio and especially what we are doing in the web space. I'll make sure to forward all the feedback to the project leads in the coming weeks. Since EclipseCon is coming to its end today, I finally found time to sit down and write about what we introduced at the conference.

We unveiled the Personal Use Edition of SpringSource Tool Suite (STS) during our BoF on Monday and I have spent a lot of time talking and mailing to people about what extra value it brings. In this blog I will outline the features of the SpringSource Tool Suite in more detail. First of all, I have heard quite a few times that people think that the announcement of the SpringSource Tool Suite means that we will stop improving and shaping Spring IDE. Please let me make the point that this absolutely not the case; actually the opposite is true and already evident by taking a look at the Spring IDE JIRA and Subversion repository. In fact since I joined SpringSource in January, I was able to increase the amount of time that I spent on Spring IDE while working on the tool suite in parallel.

The goal of the SpringSource Tool Suite is to give you the most sophisticated development tools for doing enterprise development with the Spring Portfolio on the Eclipse platform - sounds like marketing slang but that is the mission statement the tools team is committed to. STS certainly builds on top of the proven Spring IDE but it ties deeply into Eclipse Mylyn and already extends both open source tools to bring enterprise level extensions into your IDE. With the effort to provide the best Spring tooling available we already started and continue to add tooling related features, hooks and extension points into the Spring core framework and other Spring projects.

So with the tool suite you finally get all the benefits of Mylyn's Task-Focused User Interface for doing Spring development. You get context management and focusing while working on Spring application blueprints. Additionally we took the Task-Focused UI approach to a new level and introduced a new technology that we named Task-Focused Tutorials. Task-Focused Tutorials extend the Eclipse Cheat Sheet framework and add task-focusing to each step of the tutorial. With a Task-Focused Tutorial a user - someone new to Spring or someone who wants to learn a certain feature or Spring project - will be able to import a running sample application with a single click and start exploring the sample. Each tutorial step will then provide an explanation of a certain aspect of the tutorial and show only those Java and Spring elements that are relevant to understand and explore the explanation.

Task-Focused Tutorials

From the above screenshot you can see how that looks in Eclipse. The tutorial brought the PetClinic sample application into the Eclipse workspace and focused the workspace to show only the @Autowired annotation and how it is applied to application components. On the right side you can see the expanded step that explains how and why you should use the @Autowired annotation. At the very end of the tutorial the user is able to launch the sample application on a bundled Tomcat server that is automatically installed and configured; again just with a single click.

We think that this way of introducing new features and products is a very powerful approach and makes it really easy for people to explore the Spring Portfolio. Everything a developer needs to have and know when getting started is right where it should be: inside the IDE. When you download the Personal Use Edition Beta you will have instant access to around 20 tutorials that have all been created by either project leads or experienced consultants that directly work with clients. Most notable Adrian Colyer took time to create 7 tutorials that introduce OSGi concepts, Equinox and Spring Dynamic Modules. These tutorials are really cool if you want to jump on the OSGi train right now. The tool suite contains a automatic OSGi bundle update/refresh mechanism that finally allows working on applications and get instant redeploy semantics based on the power of the OSGi runtime (have you ever tried that with EJBs; I did).

The next feature I would like to talk about is called Runtime Error Analysis: the SpringSource Tool Suite is able to provide information on how to solve runtime problems by analyzing Java stack traces. To make that happen we created a online knowledge base that is integrated into the suite and which is being queried right inside the Eclipse IDE. The knowledge base is open for everybody using the tool and we even encourage people to contribute their own analyses by using build-in rich editing features. Take a look at the following screenshot.

Runtime Error Analysis

With the tool suite you don't only get support for analyzing runtime errors but also the tool will help to find common pitfalls and Spring best-practice violations. Especially while working on XML bean definition files this feature becomes really handy as it will inform the developer right inside the XML editor that there is something in the file that he/she might want to revise. For example the tool will detect and recommend the usage of bean inheritance under certain circumstances. Also it will recommend the usage of the constantly improving namespace elements instead of using traditional style bean definitions. Here is an example:

Runtime Error Analysis

So lets see what we got:

  • Spring Development Tools
  • Mylyn's Task-Focused User Interface for Java, Resources and Spring application blueprints
  • Task-Focused Tutorials
  • Runtime Error Analysis
  • Best Practice and Architecture Review tools

There are more features that I haven't touched on. Do you see the main theme in this feature line-up? The last three listed features provide invaluable assistance to develop powerful Spring-based applications. Internally we started to use a metaphor for that feature set: Consultant in a Box. With the SpringSource Tool Suite we want to give access to SpringSource knowledge as if you had a consultant sitting next to you!

I would like to encourage everybody to head over to the beta registration page and give the Tool Suite a try. In closing I also want to say thanks to everybody who has already submitted feedback, issues and suggestions. I will get back to all of you as soon as this overwhelming week at EclipseCon has ended.

Spring Dependency Injection & Java 5 (including slides and code)

Engineering | Alef Arendsen | March 18, 2008 | ...

I'm writing this as I'm on my way to Cairo. We're flying just West of Italy and I have clear view on the Italian coast line, with its blue waters and waves gently moving towards shore. It must be nice down there now. I'm heading to Cairo for a meeting of the Egyptian User Group, organized by Ahmed Hashim, who no doubt will have done an excellent job, I'm sure of that. I'll be presenting on Spring with the theme this time being Dependency Injection, type safety and Java 5. Yesterday (March 14th that is), I did almost the same presentation at the Profict Wintercamp in Loenen, NL for an audience…

Spring Batch 1.0.0.rc1 Released

Releases | Ben Hale | March 17, 2008 | ...

I'm pleased to announce that Spring Batch 1.0.0.rc1 has been released.  You can access this release via the Spring Maven Milestone Repository (browse) or via the Download Page.

This is the first release candidate for the Spring Batch 1.0.0 release with an anticipated final release on 28 March.  The major changes for this release are:

  • Improvements in Reference Documentation
  • Reorganization of packaging structure in spring-batch-infrastructure and spring-batch-core
  • Merging of the spring-batch-core and spring-batch-execution modules

Please see the changelog for details.

Ben Hale
Spring Batch Technical…

Spring Web Flow 2.0 M4 Released

Releases | Keith Donald | March 11, 2008 | ...

Dear Spring Community,

We are pleased to announce that Spring Web Flow 2.0 M4 is now available.  Download | Documentation

This release firms up the Web Flow 2 architectural model, including how SWF 2 integrates with Spring MVC, JavaServerFaces, and Ajax.  It also introduces many new features and improvements, including:

2.0 M4 New and Noteworthy

  • The introduction of a simplified XML flow definition syntax.   See the Spring Travel reference application for an example of the new syntax.
    • Use of the version 2 syntax reduces the size of a version 1 flow definition by up to 50%.  As an example, Spring Travel 1.0.5 consists of ~200 lines of flow-application code across six artifacts.  The latest 2.0 M4 version consists of 93 lines of code across two artifacts, a 50% reduction with four less files to maintain. 
    • Savings are achieved primarily by stronger Expression Language (EL) integration and simpler tags for action execution and data mapping.
  • Spring Security integration.  Full support for securing flows, states, and transitions is provided.
    A new "currentUser" EL variable makes it easy to reference the authenticated Principal from a flow definition or view template.
  • Flexible support for flow exception handling inside Spring MVC, including default support for automatically restarting ended or expired flows.
  • Support for handling Ajax events that do not change the current page.  A new "render" element allows you to selectively re-render fragments of a page after handling an Ajax event.
  • View variables.  A view variable allocates when its containing view-state enters and goes out of scope when the state exits.  These variables provide a page context and are particularly useful for updating a model over a series of Ajax requests from the same page.
  • @Autowired flow variables.  Flow variables may now have their dependencies @Autowired by Spring, enabling them to hold references to Spring-managed @Services.   References to services are automatically re-wired for you between requests after variable deserialization.
  • Support for popups.  Mark a view-state with popup=true and it will render in a modal popup dialog when Javascript is enabled on the client.
  • The factoring out of a Javascript abstraction layer called "Spring Javascript" from Web Flow's JSF support.  Currently, Dojo and Ext based implementations of this layer are provided.  Spring.js provides:
    • A common interface for Ajax, regardless of which toolkit is being used under the covers
    • An aspect-oriented-like API for decorating HTML DOM nodes with behaviors, including client-side validation behaviors.
  • A small JSF component library that uses Spring.js underneath to progressively enhance Spring web applications using JSF.  This library degrades if Javascript is not available on the client.  See the Spring Travel example for an illustration: turn Javascript off and compare the application to when Javascript is turned on.
  • Support for rendering JSF views in a standard Spring MVC environment.  This enables Facelets templates to be rendered by plain Spring MVC Controllers as well as Flows.

Please see the Spring Travel reference applications included in the release for practical demonstrations of all these features.  The reference projects are directly importable into Eclipse as Dynamic Web Projects.

1.x Compatibility

A special note to existing Web Flow users: The upcoming 2.0 RC1 will provide support for version 1 flows in a version 2 environment.  This will allow 1.0.x flows to run unchanged along side version 2 flows in the same application.

For more information, see the full Web Flow 2 ChangeLog and RoadMap.  We also encourage you to visit our support forums and JIRA system to provide your feedback on M4 to the development team.

Enjoy!  2.0 final is right around the corner.

Keith Donald
Web Flow Technical Lead
SpringSource

Spring Web Flow 2.0 M4 - Feedback Requested

Engineering | Keith Donald | March 11, 2008 | ...

The Web Flow team has been working hard on Web Flow 2. We just reached our 4th milestone and will enter release candidate status as early as next week. The 2.0 final release is scheduled for the end of the month.

Between now and 2.0 final, we'd like your feedback! If you are an application developer currently using Web Flow 1.x, or evaluating Web Flow for use in your project, please give 2.0 M4 an evaluation and let us know what you think. If you are a web framework provider integrating the Web Flow engine into your framework, we encourage you to evaluate the refined hooks in 2.0 M4 and…

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