Logging Dependencies in Spring

Engineering | Dave Syer | December 04, 2009 | ...

This article deals with the choices that Spring makes and the options that developers have for logging in applications built with Spring. This is timed to coincide with the imminent release of Spring 3.0 not because we have changed anything much (although we are being more careful with dependency metadata now), but so that you can make an informed decision about how to implement and configure logging in your application. First we look briefly at what the mandatory dependencies are in Spring, and then go on to discuss in more detail how to set your application up to use some examples of…

Obtaining Spring 3 Artifacts with Maven

Engineering | Keith Donald | December 02, 2009 | ...

A recent commentor here ragged, "It's only half of the world that's using Maven", when pointing out it is not obvious how to obtain Spring 3 artifacts with Maven. In this entry, I'll show you how to do this and what the options are. This information will also be integrated into the reference documentation of the upcoming Spring 3 final release.

Maven Repositories where Spring Artifacts are Published

In general, Spring publishes its artifacts to two different places:

  1. Maven Central, which is the default repository Maven queries, and does not require any special configuration to use
  2. The Enterprise Bundle Repository (EBR), which is run by SpringSource and also hosts all the libraries that integrate with Spring

So the first thing you need to decide when obtaining Spring with Maven is which place you'll get it from. In general, if you care about OSGi, use the EBR, since it houses OSGi compatible artifacts for all of Spring's dependencies, such as Hibernate and Freemarker. If OSGi does not matter to you, either place works, though there are some pros and cons between them. In general, pick one place or the other for your project; do not mix them. This is particularly important since EBR artifacts use a different naming convention than Maven Central…

Spring Framework 3.0 RC3 released

Engineering | Juergen Hoeller | December 01, 2009 | ...

We decided to publish a further Spring 3.0 release candidate before going GA: Get it from the download page, do a round of thorough testing, and let us know how it works for you. Spring 3.0 is now waiting for your integration test feedback and will eventually go GA in mid December.

This release candidate comes with several enhancements: e.g. extended functionality in the new <mvc:*> namespace, and a further revision of startup/shutdown behavior (affecting message listeners and scheduled tasks). Feel free to give those features an early try! We are also keen to learn about upgrade experiences with existing Spring 2.5 applications since we expect many of your applications to selectively adopt 3.0 features... while keeping the majority of the code…

Spring 3.0.0 Release Candidate 3 Now Available

Releases | Adam Fitzgerald | December 01, 2009 | ...

It's getting closer. Arjen Poutsma has just announced that Spring 3.0.0.RC3 is now available. This release candidate contains lots of fixes to issues raised by community members.


Download | Documentation | Javadoc API | Change Log | JIRA


Thank you to all of the dedicated community members that have given feedback and identified issues. Please keep up the good work so that we can get a high quality 3.0 GA release.

Gemini project proposal at Eclipse.org

Engineering | Adrian Colyer | November 24, 2009 | ...

This week the Gemini project proposal was unveiled at Eclipse.org. Gemini is part of the Eclipse RT (runtime) project which is "designed to foster, promote and house runtime efforts in Eclipse, on the basis of the Equinox framework and OSGi" (Eclipse RT mission statement). Gemini itself is an umbrella project bringing together a collection of modules designed for enterprise application development. SpringSource and Oracle are the first two companies providing committers to the project, and several other companies have expressed interest in joining too.

The initial projects being contributed to…

New Features in the Latest Cloud Foundry

Engineering | Charles Lee | November 23, 2009 | ...

We recently updated CloudFoundry.com. With this update, we introduced several exciting new features that pave the way for future development. I want to take this opportunity to describe and explain these features, as well as provide some background in how they came about. We are excited for you to try them out and provide us with feedback.

Cost Tracking

While the pay-per-use model of the cloud can reduce expenditure, it is important to track the actual usage and costs so that it does not result in an unexpected hefty bill. Previously, Cloud Foundry informed the users of their current spending rate of their deployments. This is useful for understanding the meter rate, but it does not give a clear understanding or statistics on how much an application deployment actually costs. The latest update to Cloud Foundry presents a new historical feature to cost tracking. For running deployments, Cloud Foundry displays the cost so far. For deployments that are no longer active, the total cost of running that deployment over its lifetime is shown.

Screen shot 2009-11-18 at 12.59.52 PM

Aside from preventing monthly bills from surprising you, this is particularly useful when you need to compare the cost per application against the budget. If your budget is derived from correlating the business objectives to the dollars spent, then Cloud Foundry will clearly show you if you have achieved your goals. Over time, we expect to evolve this feature to be more accurate (network I/O charges are not currently included) and expand the statistic correlation between cost and other operational metrics to give you the tools for better targeting and planning.

Availability Zone

Many users have requested the ability to specify the availability zone for deployments due to the fact that reserved instances in EC2 need to be launched in specified availability zones.  Reserved instances are pre-paid and cost about a third of on-demand instances. Cloud Foundry now offers the ability specifiy the availability zone and the selection input is positioned below the region when configuring deployments.

Screen shot 2009-11-19 at 10.46.12 AM

Note: the cost tracking does not reflect the cost savings of using reserved instances as Amazon does not yet provide a convenient way of retrieving the billing details.

Maintenance Page

If you need to disable your Java web application for maintenance, the convention is to display a bumper page (a.k.a. maintenance page) informing your user of the unavailability. Cloud Foundry now provides this capability with just a single button. First, when you add or edit an application, you will notice a new field: Maintenance Page. This is the static page (from the application’s root context) that you would like to display when in maintenance mode. Once deployed, you can switch between maintenance and normal operations by going to the Deployment Details page and clicking “Begin Maintenance” to display the maintenance page; and click “End Maintenance” to revert back to serving the application normally. This is a small step towards providing full application lifecycle management support. We introduced the integration with developer tools last month, and we will be analyzing and figuring out the various lifecycle phases/stages that should be supported in the development and deployment of applications into the cloud.

Clone Deployment

There are numerous reasons for duplicating environments with the same configuration, and now Cloud Foundry provides a simple way of cloning a deployment with the Clone button on the deployment details page. Creating a duplicate deployment based on an existing deployment is particularly useful when used in conjunction with the maintenance feature to upgrade an application. The Clone button is enabled when your deployment utilizes an EBS volume. You will be prompted to give the clone a name and all the configuration will be duplicated and launched in a new deployment. Once the cloned deployment is launched, you can deploy a different version of the application or a completely different application altogether by clicking on the Redeploy button in the Applications section.

Screen shot 2009-11-18 at 2.24.05 PM

A series of steps may be involved in upgrading an active deployment of an application:
  1. Upload a tested application to Cloud Foundry
  2. Enable the maintenance page on the current deployment
  3. Clone the deployment
  4. Run a SQL script to migrate the database schema
  5. Redeploy with the newer version of the application
  6. Reconfigure the elastic IP so that the new deployment is served from the static IP address
  7. Stop the old deployment
With the clone feature, upgrading a running application can be smooth and reliable by leveraging the existing production deployment configuration.

Additional Metrics and Charts

In this latest release of Cloud Foundry beta, we have improved the monitoring capability by extending the number of metrics collected, as well as adding user-interface features. First of all, Hyperic SIGAR filesystem metrics have been added to provide monitoring of crucial disk usage information on the VM root disks and the database storage. These metrics are now visible in the areas of instance details. Next, the number of client requests has been added as a metric. Cloud Foundry collects this data and converts it to a rate based metric per minute, giving you a measure of usage of your application. This metric appears in the improved deployment details section as a chart with a listing of aggregate values (maximum, minimum, and average).

Screen shot 2009-11-18 at 3.44.20 PM

This is just the beginning of providing a dynamic monitoring display that provides useful and correlated operational metrics and data. Over time, we will be adding more metrics for performance, health, and resource consumption.

Spring 3 Type Conversion and Validation

Engineering | Keith Donald | November 17, 2009 | ...

The Spring 3 final release is right around the corner, and it's going to be a great release. In this blog entry, I will take you through some of Spring 3's type conversion and validation enhancements. Whether you are developing a traditional web application, a desktop application, or a "next-generation" RIA, data binding, type conversion, and validation are important areas. As you'll see in this entry, Spring 3 gives you a significant upgrade in each of these areas while preserving backwards compatibility with previous releases.

New System Goals

Before I get into features, I'd first like to highlight the…

Understanding the Value of Your Application

Engineering | charris | November 16, 2009 | ...

We all love building applications with the latest and greatest technology however at the end of the day we are paid to deliver applications that achieve business goals. We spend each development iteration focusing on how best to achieve these goals but how do we know if the latest iteration achieved its goals? Did the latest release effect the existing business goals being delivered by the application?

SpringSource delivers this capability by giving you visibility into the application with Spring instrumentation, monitoring tools that show trends and reporting tools that allow you to export…

Spring Framework 3.0 RC2 released

Engineering | Juergen Hoeller | November 13, 2009 | ...

It is my pleasure to announce that we released the second Spring 3.0 release candidate today (download page). This release introduces key improvements over RC1 in several areas, in particular:

  • Spring 3.0 RC2 is fully JSR-330 compliant and passes the final version of the TCK. JSR-330, a.k.a. "Dependency Injection for Java", basically standardizes an @Inject annotation with a qualifier model. The "javax.inject" annotations can now be used as alternative to Spring's own @Autowired and @Qualifier annotations. Spring's <context:annotation-config> element automatically activates JSR-330 processing as well (if the "javax.inject" API is present).

  • A dedicated AnnotationConfigApplicationContext: making programmatic bootstrapping as convenient as possible, without any XML involved. Explicit registration of annotated classes is supported as well as component scanning in the classpath. This works fine not only with Spring's @Component model but also with @Configuration classes (a.k.a. "JavaConfig") and JSR-330 compliant classes.

Spring 3.0.0 Release Candidate 2 Now Available

Releases | Adam Fitzgerald | November 13, 2009 | ...

Fresh from Arjen Poutsma's twitter feed: Spring 3.0.0.RC2 is now available. The release candidate contains lots of fixes to issues raised by community members and has also been updated to support the final versions of JSR-330 "javax.inject" and JSR-303 "javax.validation" APIs.


Download | Documentation | Javadoc API | Change Log | JIRA


Thank you to all of the dedicated community members that have given feedback and identified issues. Please keep up the good work as we move closer to GA.

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

VMware offers training and certification to turbo-charge your progress.

Learn more

Get support

Tanzu Spring Runtime 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