Web Development Evolved: Grails 2.0 Released!
After nearly a year in development, we are extremely excited to announce the GA release of Grails 2.0 - the second major revision of the web framework that is changing the face of web development on the JVM.
This release brings a greatly enhanced user experience. Everything from the command line, to the test reports, to the UIs that Grails generates for you have been rethought and reinvented. Some of the exciting features available in Grails 2.0 include:
- A new console UI incorporating tab completion and coloured output
- A better and more reliable reloading mechanism, resulting in far fewer server restarts
- Enhanced error reporting and problem diagnosis
- The latest and greatest libraries: Groovy 1.8, Spring 3.1, Hibernate 3.6 and Servlet 3.0
- New APIs for link generation and page rendering
- New GORM features: detached criteria, Where queries, multiple data sources, and more
- Standard plugins for database migrations and reverse engineering
- New unit testing API with full GORM emulation
- … plus hundreds of smaller improvements
All of these new features are covered in great detail in the “What’s new in Grails 2.0?” section of the user guide. Also be sure to check out the Grails 2.0 webinar and the “Countdown to Grails 2.0” blog…
Countdown to Grails 2.0: User experience
Welcome to this final Countdown to Grails 2.0 post: the final release is imminent! I'm not really going to say much here because some of the most interesting new features of Grails 2.0 are much better seen. For that reason, I've created a screencast so you can see exactly what awaits you when you install Grails 2.0 for the first time:
The key aspects are:
- a whole new interactive console;
- better automatic class reloading, including support for domain classes and Java files;
- enhanced error reporting;
- new HTML 5 scaffolding; and
- new test reports.
As shown in the screencast, the new interactive console comes with: auto-completion on commands; execution of external applications using "bang" (!) commands; a command history buffer; and easy access to test and dependency reports. This is backed up by a much improved reloading mechanism for Grails classes. You don't need to restart run-app…
This Week in Spring, December 13, 2011 (Spring 3.1 Edition)
Today saw the release of the Spring framework, version 3.1, the next step in enterprise Java development.
There is a <EM>lot</EM> of other stuff to talk about this week, but we'll forego them for next week, because there's quite simply too much to look at with Spring 3.1. Take a look at the following content, and don't forget to download (<A href="http://www.springsource.com/download/community?project=Spring%20Framework&version=3.1.0.RELEASE">direct</a> or <a href="http://www.springsource.org/spring-core#download">maven</a>) and try out the latest and greatest bits today!
And, of course, for all the gritty details of what's new, check out the Spring Framework 3.1 release notes.
Among my favorite new features in this release:
<ul> <LI> Comprehensive Java-based application configuration</LI> </LI> <lI>New caching abstraction </LI…
Spring Framework 3.1 goes GA
It is my pleasure to announce that Spring Framework 3.1 becomes generally available today! This release delivers several key features that make Spring ready for the challenges of 2012 and beyond:
The environment abstraction and the associated bean definition profiles, along with centrally configurable property sources for placeholder resolution.
Java-based application configuration based on @Enable* annotations on configuration classes, allowing for convenient container configuration: e.g. using @EnableTransactionManagement to activate declarative transaction processing.
The cache abstraction with our declarative caching solution (@Cacheable etc) on top, focusing on convenient interaction between application code and cache providers.
The Servlet 3.0 based WebApplicationInitializer mechanism for bootstrapping a Spring web application without web.xml! This is a key piece in Spring's web configuration story, providing a rich alternative to XML-based bootstrapping.…
Spring Integration Scripting Support - Part 1
This Week in Spring, December 6th, 2011
Welcome back to another installment of This Week in Spring.
We're in December, folks. I just can't believe that it's already December.
Um, OK, ignore me.
Just astonished. Let's get into the roundup because there is a lot of new content this week.
Did you miss SpringOne? Well, that's a shame. You missed out on a lot. However, don't fret, our friends at InfoQ
are riding to the rescue with a steady stream of videos from the different talks at SpringOne2GX.
The first two talks on the docket? The opening keynote with SpringSource CTO Adrian Colyer,
SpringOne 2Gx Keynote - Spring, Yesterday, Today and Tomorrow.
On day two, <a href= "http://www.springsource.org/node/3322">Ben Alex lead the SpringOne 2GX technical keynote</a>, a procession of demonstrations and thought provoking insights into next generation application development with Spring and on the cloud. </LI> <LI> <a href = "http://www.twitter.com/ramnivas">Ramnivas Laddad</a>, all around great guy and one of the brilliant, mad…
Countdown to Grails 2.0: Persistence
It's been a while since the last Countdown blog post, but the release of 2.0.0.RC3 gives me a good reason to write another. In the last post, I focused on database migration and how we are standardising on the new Database Migration Plugin. I'll be continuing on the theme of persistence here and introducing several great new features, particularly around querying.
Let's start with some of the minor improvements. First, abstract domain classes are now treated as most people would expect: an abstract base domain class results in a table for it and its subclasses. For example, consider the…
Cross Site Request Forgery and OAuth2
In this short article we look at Cross Site Request Forgery in the context of OAuth2, looking at possible attacks and how they can be countered when OAuth2 is being used to protect web resources.
OAuth2 is a protocol enabling a Client application, often a web application, to act on behalf of a User, but with the User’s permission. The actions a Client is allowed to perform are carried out on a Resource Server (another web application or web service), and the User approves the actions by telling an Authorization Server that he trusts the Client to do what it is asking. Common examples of Authorization Servers on the internet are Facebook and Google, both of which also provide Resource Servers (the Graph API in the case…
This Week in Spring, November 29th, 2011
Welcome back to another installment of This Week in Spring. There's a lot to talk about this week as well as a bevy of new releases, so let's get right to it!
- Chris Beams has announced the latest and greatest release of Spring 3.1, RC2. This is the intended final release so get the bits and try it out soon. For a tour of what's what in Spring 3.1, check out the release notes and the Spring 3.1 blog series
<LI> The steady march to Spring Integration 2.1 GA continues. This week, <A href= "http://www.springsource.org/node/3315">Spring Integration 2.1 RC1 was released</a>. There are a lot of new features in Spring Integration 2.1, including support for GemFire, RabbitMQ, MongoDB, and much, much, more. For the full details, <a href="https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&version=12341">see the release notes</a>. </LI> <LI> <A href ="http://www.springsource.com/developer/sts">SpringSource Tool Suite</A> lead Martin Lippert has announced the <a href="http…
Spring Roo 1.2.0.RC1 released
The Spring Roo team is delighted to announce the availability of 1.2.0 Release Candidate 1. The Roo 1.2.0.RC1 release follows on from M1 and includes two exciting new features:
- Multi-module Maven project support. This is the Roo community's most popular and most voted for feature (ROO-120). You can now create projects with a parent POM and as many project modules as you wish. For example, you can put your domain model in one module and separate out your UI code such as MVC or GWT, into their own modules. Full documentation on this feature will be available in the general availability release of Roo 1.2.0 later this year.
- JSF 2.0/PrimeFaces 3. The second most popular community feature and most asked for feature in the recent Roo survey - JSF 2.0/PrimeFaces support (ROO-516). You can now scaffold high-quality JSF applications utilizing the stunning components from the PrimeFaces 3.0 component library. Full round-tripping of code, switching between JSF 2.0 implementations (Oracle Mojarra or Apache MyFaces), and PrimeFaces theme selection via a Roo command are supported.
We have also enhanced our Roo annotations to give you more flexibility over the way you configure your persistence layer:
- No need to have the "Active Record"-pattern persistence code in your domain objects any longer. The new @RooJpaEntity annotation ensures only the @Entity, @Id, and @Version fields and methods are created and maintained by Roo, with no CRUD methods. Classes annotated with @RooJpaEntity are intended to be used with Roo's JPA repository and service layering features.
- The old @RooEntity annotation has been renamed to @RooJpaActiveRecord and is still the default when creating entities and will introduce the same CRUD methods as before.
- Use RC1 in existing Roo projects? - easy, simply rename your @RooEntity annotations to @RooJpaActiveRecord and use the organize imports feature in STS or Eclipse to resolve the imports.
We hope you enjoy this new release. Please share your experiences via the community forum, follow @SpringRoo for the latest news, or use #springroo in your tweets
Alan Stewart, Project Lead - Spring Roo