Bundlor Version Expansion and Property Substitution

Engineering | Christopher Frost | May 12, 2009 | ...

Introduction

Recently the M3 milestone of Bundlor has been released (Forum Anouncement). This milestone adds support for Property Substitution and Version Expansion. This blog post explains how to work with these new features to improve the quality of generated Manifests.

Property Substitution

Bundlor can now be used to substitute any property value into your Manifest Template.

Bundle-Name: ${name}
Bundle-Description: Test bundle using new version of Kernel at ${com.springsource.kernel}
Import-Template: com.springsource.kernel.*;version="${com.springsource.kernel}"

This syntax allows you to specify property placeholders for ${name} and ${com.springsource.kernel} and have them substituted at runtime with actual values. The way that these values are passed in is specific to which Bundlor front end is being used.

Specifying Properties at the Command Line

When Bundlor is run from the command line it will use all the properties available as system properties, this does not include any environment variables. The command line script will pass through any variables passed in via -D so the following will provide the ${com.springsource.kernel} property with a value of '2.0.0.RELEASE' and the ${name}

SpringSource Tool Suite now free

Engineering | Christian Dupuis | May 07, 2009 | ...

It was April 27th around 2:39pm, when Rod announced in his SpringOne Europe opening keynote:

“STS will be free!"

Reto Meier, with our partner namics, took a picture as proof of that very moment and published it on flickr.com. Also the audience at SpringOne seemed to be enthusiastic about the announcement and as a consequence the word was spread to outside of the conference soon after.

So here we are, since Rod promised it, we can't get out of it… ;-)

Rod @ SpringOne

Today we are proud to deliver on Rod's promise and can announce that the first free versions of STS have been published and can be downloaded from the product page

Spring Framework 3.0 M3 released

Engineering | Juergen Hoeller | May 06, 2009 | ...

We are pleased to announce that the third Spring 3.0 milestone is available now (download page)! This release comes with many new features and refinements, including...

Reference documentation: M3 is the first Spring 3.0 milestone that comes with reference documentation, in both HTML and PDF format. Even if the documentation is still a work in progress, it does cover many 3.0 feature areas at this point already. We hope that you'll find this early cut of the documentation useful for learning more about the 3.0 milestone features.

Annotated factory methods: Spring 3.0 M3 includes the core…

SpringSource Plus Hyperic Unifies Application Lifecycle From Developer to Data Center

Engineering | Rod Johnson | May 04, 2009 | ...

A few weeks ago, I laid out SpringSource's vision for creating a unified enterprise Java solution that spans the application lifecycle. Today, we announce a significant advance in realizing that vision: SpringSource's acquisition of Hyperic, which greatly strengthens our capabilities for the management of modern applications and infrastructure.

As SpringSource has grown, like the Spring open source projects, the company has taken on a wider range of problems. Today's announcement is the logical continuation of our push into the server space, and offers the potential to further simplify the…

Jump into Roo for extreme Java productivity

Engineering | Ben Alex | May 01, 2009 | ...

Update: The second installment of the "Introducing Spring Roo" blog series is now available and includes a detailed step-by-step tutorial to help you get started with Roo. The third installment covers Roo's internal architecture in detail.

The twittersphere has been abuzz this week with news from SpringOne Europe. One announcement generating a significant amount of interest is SpringSource's new open source productivity tool, codenamed "Roo".

Roo is a sophisticated round-tripping code generator that makes it quicker and easier than you've ever imagined to create and evolve Spring applications. Even if you have reservations about code generation, it will still be worth taking a look at Roo. It contains significant innovation that addresses all major objections to code generation, whilst still delivering best practice Spring…

SpringSource tc Server - The logical next step

Engineering | Jim Jagielski | April 28, 2009 | ...

The time is ripe for lightweight AND enterprise class Java application servers, and Apache Tomcat is the pick of the litter. And now, with SpringSource tc Server, we at SpringSource make it a reality.

If you were familiar with Covalent, and now SpringSource, then you most likely know about ERS (Enterprise Ready Server). ERS is our pre-built, pre-packaged and fully QA-ed distribution of the Apache httpd web server and Apache Tomcat. Included in the distro are also some very useful enhancements, in the form of modules, for Apache, such as PHP, mod_perl and mod_snmp. The somewhat unfortunate…

Oracle Adds New Exhibit to Java Technology Museum

Engineering | Rod Johnson | April 21, 2009 | ...

Last year, Oracle acquired BEA Systems, the hottest company in enterprise Java…until around 2001.

Today, they announced the acquisition of Sun Microsystems, the architects of the infrastructure of the dot com era. Remember the "dot in dot com"??

Both companies represent the history of enterprise Java, and are far less important to the future.

Larry Ellison states that “Java is the single most important software we've ever acquired."? Ellison is right about the importance of Java: Java is the world’s #1 programming language and the dominant choice of the enterprise. But the question is exactly what has Oracle acquired? There is no purpose to be served by Oracle trying to milk the Java language itself for profit--and, in any case, it's now open enough to make that impossible. (Open sourcing Java did turn out to matter. A lot.) And it is a long time since Sun controlled enterprise

Spring Web Flow Project Update

Engineering | Keith Donald | April 20, 2009 | ...

The Spring Web Flow project team has just completed the 7th maintenance release of Web Flow 2. This is our best release to-date and comes nearly one year to the day of the Web Flow 2.0.0 final release. Now, with the 2.0.x line mature and stable, we are beginning work on the next major version. In this entry, I would like to reflect on the past year and also provide some information on where we are headed.

Web Flow 2 Adoption

When Web Flow 2 was released last year, we saw 50,000 downloads in the first two months after the release. Since then, our forum traffic has steadily increased, and we have seen new adoption across several exciting industries. Many of you know Spring Web Flow is the foundation of Orbitz's on-line travel platform which today powers sites such as ebookers.com and nwa.com. If you have been following the 2009 NBA playoffs, you may also find it interesting Web Flow is an important component of nba.com as well.

Our Work in the Past Year

Like all Spring projects, Web Flow depends on feedback to be successful. Field interactions with customers and SpringSource support engineers have driven much of our work on 2.0.x in the last year. The community has also been exceptional at reporting bugs, contributing patches, highlighting usage scenarios, and generally discussing ways the project can continue to improve.

I'd like to quickly recap some of the concrete improvements made since 2.0.0.RELEASE:

  • Configuration simplifications and conventions for flow URL mapping

    This one, applied in 2.0.5 and driven by customer feedback as well as Dan Allen's JSFOne presentation, cut the size of a typical webflow-config.xml in half, down to ~20 lines of configuration. As you can see, this was achieved by applying a wildcard-search for flow definitions in conjunction with conventions for binding flow definitions to URLs based on their flow ids.

  • Support for explicit view-state model bindings

    This improvement, first provided to SpringSource customers in response to this security advisory and subsequently released in 2.0.3, allows you to restrict the set of allowed model bindings by view-state. This was achieved in the declarative style shown here.

  • Redirect-after-post improvements

    One of the most useful features of Web Flow is the redirect-after-post pattern just works, which is one critical prerequisite to good back button support with controlled navigation. 2.0.5, 2.0.6 and 2.0.7 all introduced subsequent improvements to this support. The most recent improvement ensures redirect behavior is applied consistently in all scenarios, including when there is a binding or validation error. You can review the source code that controls the enforcement of this pattern in the doEnter and doResume methods of ViewState.java.

  • Support for streaming actions

    The community figured out how to stream files back to a client participating in a flow. Documented support for this was overlooked in Web Flow 2.0.0 and was added in 2.0.6.

  • Type conversion improvements

    Numerous improvements to the system that powers view-state model binding were applied from 2.0.2 through 2.0.6. The system provides all the unique features of Spring's DataBinder, such as support for converting elements of generic collections, with a simpler type Converter API compared to Java PropertyEditors.

In addition to these core improvements, we have seen a number interesting Web Flow integrations in the last year such as Grails 1.1, the ZK RIA framework, Terracotta, IceFaces, SpringSource's richweb training course, IntelliJ, Skyway Software, and the first Web Flow 2 book.

Where We Are Headed

We have a lot planned for the future. I will leave all the technical details for another time, but would like to summarize some of the key themes of the effort. First, Web Flow 3 will be the first release to require Java 5, as it will build on Spring Framework 3 as its foundation. Second, you can expect to see the introduction of a @Flow model that compliments Spring MVC's stateless @Controller model and allows stateful web flows to be defined as POJOs. Third, you can expect Spring JavaScript and Spring Faces, two modules that grew out of the Web Flow 2 effort, to both be promoted to top-level Spring projects. Spring JavaScript will become Spring's official Ajax integration project, and Spring Faces will become Spring's official JavaServerFaces integration project.

I look forward to meeting with many of you at SpringOne next week to discuss your experiences applying the project and our future directions!

Enterprise Java and the American Motors Gremlin

Engineering | Rod Johnson | April 15, 2009 | ...

You may remember the AMC Gremlin--a strong claimant for ugliest car ever. The Gremlin was produced back in the 70s, but there are still a few around, like this one, which I photographed last year in San Francisco.

AMC Gremlin

The enterprise Java experience today reminds me of this piece of American motoring heritage. The Gremlin was a desperate response to the oil shock. AMC needed a “compact” car, so they took the smallest car they had and chopped it in half. The end result sold surprisingly well, but showed unmistakable signs of the fact that its front and rear were produced by different teams and…

Proxies in OSGi

Engineering | Ben Hale | April 14, 2009 | ...

Over the past couple of months, we've had a number of customers report issues to us regarding ClassNotFoundExceptions and proxies in dm Server. The issue actually has to do with type visibility in OSGi and is explained very well by Peter Kriens over at the OSGi Alliance Blog. Please take a look at his post if you are seeing classloading issues when using proxies in dm Server or any other OSGi runtime.

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