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 Spring Blog
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.
- Upload a tested application to Cloud Foundry
- Enable the maintenance page on the current deployment
- Clone the deployment
- Run a SQL script to migrate the database schema
- Redeploy with the newer version of the application
- Reconfigure the elastic IP so that the new deployment is served from the static IP address
- Stop the old deployment
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.
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 this data to the management team.
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.
A new mvc configuration namespace: <mvc:annotation-driven/> activates rich processing of @Controller classes, including support for annotation-driven formatting and annotation-driven validation (if a JSR-303 “Bean Validation” provider such as Hibernate Validator 4.0 is present). The newly revised version of our formatting package also comes with support for the popular Joda Time library.
Revised lifecycle management at runtime: Auto-starting message listener containers and schedulers will now kick off once context configuration has been fully completed. On context close, a specific shutdown order can be defined for ‘phased’ stopping of lifecycle components. A configurable LifecycleProcessor delegate provides corresponding customization hooks.
Thanks to the efforts of a number of other SpringSource project teams, we are excited to have integrations of three developer tools with Cloud Foundry, namely SpringSource Tool Suite, Grails, and Roo. The result of this is that you can create and develop your Spring or Grails applications, and run them in the cloud without having to leave your favorite IDE or command-line interface. These tools utilize the Cloud Foundry client web services API (to be published soon) and leverage additional intelligence and SpringSource artifact repositories in the cloud for optimized, efficient uploads of Java web applications to Cloud Foundry. This means that you can go from “code to cloud” in just minutes.
Spring Batch Admin provides a web-based user interface that features an admin console for Spring Batch applications and systems. It is a new open-source project from SpringSource. A milestone release 1.0.0.M1 will be available soon with all the features below, and we hope to get to a 1.0.0 final release early in 2010.
Main Use Cases
The easiest way to get a quick overview of Spring Batch Admin is to see some screenshots of the main use cases. The user interface is a web application (built with Spring MVC).
This release follows quickly on the M5 release as we close in on the first 2.0.0 release candidate. This time we’ve focused very heavily on fixing outstanding defects and added just a handful of new features. Take a look at the M6 release notes for the full details of the defects that we’ve fixed and the features we’ve added. Please keep your feedback coming as comments on our blog, in the forums, and on the JIRA.
New and Noteworthy
We are proud to present the Spring community with a new tool which helps get their applications to production even faster: tc Server Developer Edition is the standard 100% Tomcat you know and love, plus a new Spring Insight console.
Spring Insight gives deep visibility into your application’s real activity on a request-by-request basis. For any request you can see all the JDBC queries it made, how much time it took to render, or timings for any of your major Spring beans.
This fine grained information is very valuable when you are looking at a specific request in isolation, but it can be difficult to find a specific request in a mountain of millions. Fortunately, Spring Insight also has a 10k foot view and can quickly point you to problem areas.
Here is a screencast showing the dm Admin Console for the dm Server. It gives a brief tour of the dm Admin Console and then shows some of the features by deploying a simple demo application. The application consists of a configuration file, a web bundle and a content bundle. When deployed the application simply shows the contents of the configuration file in a web browser. The application is installed in parts for the purpose of this demo, in reality you would group the application together with either a ‘par’ or a ‘plan’, to see how this is done with a ‘plan’ file another screencast is available here.