Most of you probably know Spring Roo as the Java-based rapid application development tool that uses AspectJ and a command-line shell to build Spring applications. But underneath those slick commands that set up your application components lurks an even more powerful and extensible platform, one that you can use to build anything you want.
In this presentation, SpringSource's Josh Long and Spring Roo in Action authors Ken Rimple and Srini Penchikala introduce Spring Roo 1.2, and then go further, exposing Roo's powerful addon-based underbelly. They introduce Roo's OSGi bundle support, and introduce how add-ons can be used to generate code, install templates, respond to addition / removal of annotations, and expose both open-source and internal-company libraries for use by your developers. Finally, they wrap up by discussing the recently developed Tailor add-on, and will show how it can be used to completely customize your developers' shell environment.
Presenters: Ken Rimple, Srini Penchikala, and Josh Long
In the last year and a half, RabbitMQ has seen six major new releases. In this talk, we briefly review messaging, RabbitMQ and the AMQP protocol before covering some of the new features including easier plugin management, new plugins and extensions, publisher confirms, dead lettering, and a new high availability feature based on mirroring queues across nodes in a cluster. Presenter: Jerry Kuch, Staff Engineer, VMware
SpringSource University has recently launched a new education website that will be hosted on VMware.com. Along with all the information on SpringSource / vFabric education you will find information about certification, class schedules, free class material and more. SpringSource has also released several new learning paths to assist students in becoming a professional developer, operator or administrator:
Welcome to another installment of This Week in Spring! As usual, we've got a lot to cover, so let's get to it.
The SpringSource Tool Suite has been open sourced! And, two different versions of it are now available, supporting two different developers: the Spring developer, served by the Spring Tool Suite, and the Groovy and Grails developer, served by the Groovy/Grails Tool Suite. For more on this fantastic news, check out Tool Suites-lead Martin Lippert's blog.
The ZeroTurnaround blog has a really cool little blog on rapid development with Spring and Hibernate.
Of course, Zero Turnaround has a handy little software agent that lets you reload Java classes on the fly. So that's a huge gain in productivity right there. That, coupled with XML-free Spring 3.1 and Hibernate 4.1, and you have yourself a really awesome combination. To learn more, check out the blog! The example he illustrates are also well represented in this sample project on GitHub. The example even includes web.xml, even though it isn't required, just as was done in that blog post, specifically because it's more reliable on the buggy versions of JBoss 7 and Servlet 3 environments aren't ubiquitous, yet.
This is a seriously cool blog post, be sure to read the followups!
We talked about this before, but InfoQ's coverage is pretty awesome, too.
IG Group Open-Sources RESTdoclet, which makes it dead simple to generate documentation for Spring-based RESTful services. REST, for better or for worse, does not have something like SOAP's WSDL, which enumerates the interface contract for clients connecting to SOAP-based web services. This technology fills that gap.
The Hybris blog has been on a roll recently with their posts on consuming OAuth from the client perspective, but this post, in particular, introducing how to setup Spring Security OAuth
is the one I've been waiting for! It's a very nice read, and I'm glad they've shared it with us, complete with working code and a blow-by-blow breakdown of the pieces. OAuth is complex, Spring Security OAuth (not yet GA!) makes it much simpler, but it's still nice to have guidance.
Biju Kunjummen has a great blog post introducing
some of the nuances of using Java-based configuration
. Specifically, he reminds us to let Spring provide the lifecycle callbacks by routing things through @Bean methods, instead of instatiating the objects directly.
The Halycon code blog has a post on using Spring's sub-contexts to let you take advantage of Spring's property-placeholder resolution in import statements. Normally, these statements are not able to see the property placeholders of the current application context, but nested contexts can see the property placeholders of the parent contexts. Solution? Simply instantiate everything in a child context so that the import statement can use the parent context's properties! This trick's kind of sneaky! I like it.
Remember, child contexts provide scoping - beans defined in one child can't see beans defined in another. This makes it very useful for things like Spring Batch Admin, which lets you upload and launch new Spring Batch jobs (which themselves are based on Spring configuration) on the fly.
The Middleware magic blog has a nice, complete post on configuring Spring to talk to a JBoss AS 7-managed JMS instance. The example is particularly involved because of all the work required to setup JBoss and to build up a client connection to it.
We're pleased to an announce the GA release of Spring Security 3.1.2
The release is available from the Spring Community Downloads area and jars are available from Maven central repository. See the project website for more information.
Special thanks to Chris Beams for all his help and guidance with updating the Spring Security build to use the Spring release process.
Umar Ashfaq has put together a nice blog detailing how to
authenticate ajax based requests using Spring Security. This blog then links to two other blogs, one on the server side implementation and another on the client side.
The approach described uses standard Spring Security web integration, but modifies the responses to work well with an Ajax client.
The SolidSoft blog has an interesting post on using a library called SpringMockito to mock beans in a Spring context. The library mocks beans for you and then
makes it easy to inject them and reference them as you would the real deal. This could be very compelling especially used in conjunction with Spring 3.1's profiles feature, which lets you partition
beans along environments. You might, for example, have a bean called development, production and test.
Welcome to another installation of This Week in Spring!
This week I'm in Bangalore, India with other members of the SpringSource and Cloud Foundry teams talking to major system integrators about Spring and Cloud Foundry. The uptake's amazing, and the feedback is even better.
Jonathan Brisbin has announced the latest release of Spring Data Rest, version 1.0.0.RC2, which features JSONPE support, and better integration with Spring MVC applications, as well as even more configuration hooks so you can exert even more control over the behavior of the framework.
Dr. David Syer has announced the 1.0.0.RC1 release of Spring Security OAuth. Spring Security OAuth is a module that works with Spring Security
and lets you expose OAuth-secured RESTful resources.
The new release features lots of new extension points in the Authorization Server features,
a Whitelabel UI for better out-of-box experience, and improved support for expressions in security filters. Check it out!
Nicolas Frankel has a nice blog on method injection with Spring.
Method injection is less useful with the introduction of Java configuration support, of course. Spring supports the injection of proxies of your beans that are recreated according to their scope on access in beans of larger scopes. In XML, this means using the <aop:scoped-proxy/> element in your bean definitions, or specifying the proxyMode attribute in the @Bean annotation on your Java configuration-based bean definitions.
I'm pleased to announce the release of Spring Data REST 1.0.0.RC2! Beyond a number of bug fixes, this release adds support for JSONPE (JSONP with error handling), the ability to turn off CRUD methods with the @RestResource annotation, and is now built and tested against the Servlet 3.0 API (though it is not yet 3.0 specific, so will still work fine in Servlet 2.5 containers).
New functionality includes:
JSONPE - Simply add a URL parameter to have the results wrapped in a call to the Javascript function you specify. Also handles server errors by translating an error to HTTP 200 and passing the original status code as the first parameter of your error handler.
Turn off CRUD methods - The exporter now respects @RestResource annotations on CRUD methods. Just override the method from CrudRepository you want to turn off and annotate it with @RestResource(exported = false).
Better integration with existing Spring MVC applications - Simplified the internal Spring MVC configuration to make it even easier to integrate with your existing Spring MVC application. Simply including the RepositoryRestMvcConfiguration bean into your own configuration should Just Work.
Welcome to another installment of This Week in Spring.
Can you guys believe we're staring down August already? Time sure has flown quickly! The good news is that we're near my favorite time of the year, SpringOne!
This year's speaker and content lineup is going to be amazing, and
it will be a unique opportunity to meet with the experts on your favorite technologies, Spring, Grails, Cloud Foundry, RabbitMQ, and much more. Register now to take advantage of early-bird rates...
Spring Shell 1.0 M1 has just been released. Spring Shell is an interactive shell that can be easily extended with commands using a Spring based programming model, extracted from the Spring Roo project.
Koen Serneels has a quick post announcing his new book, Pro Spring MVC with Webflow. I haven't read it yet, but it looks interesting!
Readers of this column will know about Thymeleaf, an HTML5-optimized template engine that works nicely with Spring MVC as a View implementation. The new version now features integration with Apache Tiles, so you can use Thymeleaf templates and manage them in Tiles layouts. Very cool!