XPath Support in Spring Web Services

Engineering | Arjen Poutsma | April 23, 2007 | ...

Following up on my post on WS-DuckTyping, I thought it would be interesting to show what support Spring Web Services offers for XPath. Some of these features are available right now, but most will be part of the RC1 release we will release later this month. Throughout this post I will be using the contacts xml file defined in item 35 of Effective XML, by Rusty Harold.

XPathExpression

One of the options that has been available for quite a while is the XPathExpression. This is an abstraction over compiled XPath expressions, such as the Java 5 XPathExpression, and Jaxen XPath.

Recently, I've added the XPathExpressionFactoryBean, to make it easier to inject XPath expressions into your beans, like so:


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/200…

What Spring Web Flow Offers JSF Developers

Engineering | Keith Donald | April 21, 2007 | ...

Spring Web Flow, much like the Spring Framework itself, is a unique integration technology. Most of our users view it as a generic ApplicationController that can be embedded in any environment. We support Servlet and Portlet based applications, and ship integration with the leading web frameworks Struts, Spring MVC, and Java Server Faces. There are even teams I know of using Spring Web Flow in a Flex environment. In each of these environments, Spring Web Flow integrates to provide a better model for implementing navigation logic and managing application state.

Our users like this because…

Spring Project CI Builds

Engineering | Ben Hale | April 18, 2007 | ...

Over the last couple of weeks, fellow i21 employee Costin Leau and I have been working on improving the Continuous Integration processes of the Spring projects. When we started, we had separate builds running in Cruise Control, Continuum, and even a custom cron job. We were having some trouble getting any of our existing tools to give us what we wanted on all of the builds, when both Costin and I independently came upon Atlassian's new product Bamboo.

In about 10 minutes we had the Spring CI build up and running. This might not sound like much, but due to its size Spring doesn't play nicely…

Spring Web Flow 1.0.2 Released

Releases | Keith Donald | April 10, 2007 | ...

Dear Spring Community,

We are pleased to announce that Spring Web Flow 1.0.2 has been released.  This is a bugfix and enhancement release, addressing all bugs reported against the Spring Web Flow 1.0 series and significantly enhancing Spring Web Flow's support for users of Java Server Faces (JSF).  We recommend upgrading to this release from previous versions.

 

Spring Web Flow is a next generation Java web application controller framework.  The framework provides a powerful system for implementing navigation logic and managing application state consistently across a variety of environments.

New and Noteworthy in this Release

Spring Web Flow 1.0.2 is a solid, stable release that serves as a drop-in replacement for existing users and also contains several noteworthy enhancements.  Three of these enhancements are particularly worth noting in more detail:

Significantly enhanced JSF integration

Now when used as a JSF extension, Spring Web Flow provides:

  • A NavigationHandler that brings the full power of the Web Flow navigation system to JSF developers.  This system allows for implementing dynamic navigation rules and solves the infamous back-button problem out-of-the-box.
  • A state management system providing UI Components full access to beans managed in any of Web Flow's conversational data scopes, including "conversation", "flow", and "flash" scope.  These scopes complement JSF's default scopes and are particularly useful for interactive web applications that apply Ajax techniques using libraries such as Ajax4JSF.
  • Native support for all major JSF view technologies.  With Spring Web Flow 1.0.2, views that participate in flows are standard JSF views whether they are built using JSP or Facelets.  Any JSF UI Component can now bind to beans managed in any of the conversational scopes seamlessley.

Please run and review the sellitem-jsf sample for a quick assessment of these enhancements in action.  They significantly improve the ease of using Spring Web Flow in a JSF environment, and are the start of a larger effort that will continue into the 1.1 release and beyond.

Expanded practical documentation

Complete walk-throughs of each of Spring Web Flow's sample applications are now provided in the reference manual.  These walk-throughs take you through the implementation of each sample, and explain best practices and design considerations along the way.   After downloading the release, see the 'Practical' chapter for how to get the sample applications running inside your IDE.

Spring IDE 2.0 integration

The upcoming 2.0 version of the Spring IDE Eclipse Plugin features a Graphical Web Flow Editor and XML Flow Definition Editor.  Beginning with Spring Web Flow 1.0.2, each of the sample applications has been Spring IDE 2.0 enabled, allowing you to easily assess these tools as they progress.  To evaluate Spring IDE 2.0 simply import the sample projects into Eclipse and install the latest version of the Spring IDE 2.0 plugin from the nightly update site.

Spring Web Flow 1.1 Road Map 

Work has begun on Spring Web Flow 1.1 in anticipation of a first release candidate becoming available at JavaOne.  Building on 1.0.2, this release will offer major new functionality including support for conversational persistence contexts, Acegi Security integration, unified EL integration, integrated Spring 2.0 custom scopes, enhanced support for Java-based flows, and support for flow composition and inheritance.

Special thanks to Jeremy Grelle, Rossen Stoyanchev, and Christian Dupuis for their major contributions to this release.  It is an exciting time to be a part of the Web Flow community!

Keith Donald - Interface21
Erwin Vervaet - Ervacon
Leads, Spring Web Flow Development 

Spring Framework 2.0.4 Released

Releases | Juergen Hoeller | April 10, 2007 | ...

Dear Spring Community,

We are pleased to announce that Spring 2.0.4 has been released.  This is a bugfix and enhancement release, addressing all reported bugs against the Spring 2.0 series and introducing significant performance improvements.  We recommend upgrading to Spring 2.0.4 from previous 2.0.x releases.

Spring 2.0 Released

 

Regarding the performance improvements, repeated creation of Spring bean instances is up to 12 times faster in this release than previous versions of Spring 2.0. AspectJ-based weaving performance has also increased by a significant factor.

Please see the changelog and JIRA roadmap for all the details of the 77 issues addressed in this release.

Juergen Hoeller
Lead, Spring Framework Development
Interface21 - http://www.interface21.com

So what's the deal with Spring-OSGi?

Engineering | Costin Leau | April 05, 2007 | ...

Welcome to my blog! This is my first entry...ever. I manage to resist the urge of blogging but since so many people encouraged me to write about what I do at i21 I decided to give it a go. This and the fact that the Spring-OSGi had its first release yesterday evening (EET time zone).

I've been involved with Spring-OSGi since August last year and it has been quite a ride. It's one of the most challenging projects I have worked on and I'm glad to have it released, even as a milestone, to the public. Thanks a lot to everybody involved for making this happen, especially my team mates - Adrian…

Request-Reply JMS with Spring 2.0

Engineering | Mark Fisher | April 04, 2007 | ...

Several months ago, I posted a blog entry introducing Spring 2.0's support for Message Driven POJOs. While many people are now familiar with that feature, Spring 2.0's JMS remoting features have received less attention. Essentially, this remoting functionality provides a JMS-based version of Spring's general approach to remoting as exhibited in its support for RMI, Hessian/Burlap, and its own HttpInvoker.

For those unfamiliar with Spring remoting, the general idea is to configure a non-invasive exporter on the server-side and a proxy generator (a Spring FactoryBean) on the client-side.

I will demonstrate this JMS remoting here with a code example - based on the same example as in my previous post

BeanInitializer: wiring dependencies in unit tests

Engineering | Dave Syer | April 02, 2007 | ...

One of the things that irritates me the most about unit testing some classes in a Spring context, is initialising them with all their dependencies. This is especially true of Spring framework extensions, like FactoryBean implementations or *Aware implementations. It is cumbersome to add all the dependencies, and easy to forget to call the bean lifecycle methods, like the afterPropertiesSet method from InitializingBean.

The Spring base classes for unit testing help quite a lot, but there are still some things that are fiddly. E.g. in many cases it is necessary to disambiguate autowiring, so…

Amsterdam Java Meetup scheduled for April 13th

Engineering | Alef Arendsen | March 31, 2007 | ...

Mark you calendars! In about two weeks, I'm hosting another Amsterdam Java Meetup; the quarterly event in the Netherlands where all people that have something to do with Java (but hey, we're friendly; .NET guys are welcome too!) can have a chat and a drink. No technical sessions, no presentations, no keynotes, just drinks and chatting.

We have been organizing the Java Meetups for a while now and the attendance has grown from about 20 in December 2005 to about 60 or 70 last January.

So, spread the word and come join us (ah, and don't forget, the first couple of rounds are paid for).

When: April 13th, 6pm - ? Where: Amsterdam - de Jaren - Nieuwe Doelenstraat

AOP Context Binding With Named Pointcuts

Engineering | Ben Hale | March 29, 2007 | ...

There a a ton of new features in Spring AOP including the AspectJ pointcut language, the <aop:*/> namespace, and the @AspectJ syntax support. But by far one of the most powerful aspects (forgive the pun) is the AOP context binding.

For example, let's say you want to advise a method that takes a String as an argument.


public interface HelloService {
	String getHelloMessage(String toAddHello);
}

To advise this method, you'd write a pointcut that looked for a String return type, all implementations of the HelloService interface and the getHelloMessage(String) method.


@Before("execution…

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