Webinar Replay: Spring with Cucumber for Automation


Learn how Spring and Cucumber integrate to make test automation easier. Cucumber is a framework for Behavior-Driven-Development (BDD), a refinement of TDD (Test-Driven-Development). Its intent is to enable developers to write high-level use cases in plain text that can be verified by non-technical stakeholders, and turn them into executable tests, written in a language called Gherkin. Using Spring, Cucumber, WebDriver2, Hemant Joshi will show you how to use Spring & Cucumber to do BDD with elegance and joy.

Speaker: Hemant Joshi

This Week in Spring - Aug 27th, 2013

Welcome back to another installment of This Week in Spring. We have a lot to cover, as usual! Spring Security and lead Rob Winch feature heavily in this week's roundup! So, cheers to Rob Winch!

  1. Spring Security lead Rob Winch put together a post introducing some of the new, smart and convenient protection in Spring Security against cross-site request forgery (or CSRF).
  2. Rob also put together another epic blog post that demonstrates some of Spring Security's new support for security headers.
  3. Rob was also kind enough to integrate these new features into the Spring REST stack codebase where you can see them in action in the context of a full-stack, integrated Spring REST service. To see these changes, along with Spring Security and Spring Security OAuth, all integrated using Java Configuration, check out the oauth module.
  4. Reactor lead Jonathan Brisbin has announced Reactor 1.0.0.M2 is now available. The new release looks very exciting! From Jon's writeup: "This 2nd milestone includes a number of bugfixes and some really exciting new features. Reactor now includes a Processor abstraction, which is a highly-optimized task processor based on the LMAX Disruptor RingBuffer… Anecdotal benchmarks on a MacBook Pro show the Processor can pump around 100,000,000 events per second through the pipeline. Yes, you read that right: 100 million per second!"
  5. Hyperic, Cloud Foundry, Spring and Spring Data ninja Jennifer Hickey has announced the latest cut of the Spring Data Redis project. The new release includes support for millisecond precision in key expiration commands, resubscription of message listeners on connection failure, a full implementation of ConcurrentMap contract in RedisMap and RedisProperties
  6. Spring Batch lead Michael Minella has announced Spring Batch 3.0M1 has been released! This release marks the first steps towards implementing the JSR-352 Java Batch specification, among other things.
  7. Register now for the Aug 29th Webinar: Taming Coupling & Cohesive Beasts with Modularity Patterns and Spring with Param Rengaiah.
  8. Join our friends from Pivotal Labs as David Frank shows you How to Get Agile with Pivotal Tracker, on September 5th.
  9. Spring Security lead Rob Winch tweeted, "#Gradle made it dead simple to build #SpringSecurity with #SpringFramework 3 and run tests with both #Spring 3/4," and linked to this epic example. This isn't strictly speaking Spring related post, but it's a nice example of a really elegant Gradle build, for those who also work with it, as we do at SpringSource.
  10. Spring Security lead Rob Winch (boy, that guy sure gets around!) also announced the latest release of Spring Security LDAP.
  11. Our pal Xavier Padró is back, this time with a post introducing how to use resource-local JMS transactions on message receipt with Spring's JmsTemplate.
  12. Patrick Grimard's put together a nice post on integrating Yeoman Backbone with a Spring web application, as well as a way to sidestep some issues he was having with resource resolution by using Tuckey’s UrlRewriteFilter. Now, I like the UrlRewriteFilter. That said, I think (but haven't tested..) that Patrick could've accomplished the same thing using Spring MVC resource handling support, as he starts to do in an example in the code when overriding the public void addResourceHandlers(ResourceHandlerRegistry registry) configuration method. Perhaps I'm mistaken, and either way, cool post!
  13. SpringSource has released new trainings to the Q3 schedule, check out the training schedules for: Core Spring, Enterprise Integration with Spring and Spring Web.

Reactor 1.0.0.M2 – a foundation for reactive fast-data applications on the JVM

I'm excited to announce the 2nd milestone release of Reactor on our way toward 1.0! Maven artifacts for Reactor 1.0.0.M2 are available in the usual milestone repository. What is Reactor? Reactor is a foundational framework for building high-throughput, asynchronous, reactive applications on the JVM. It provides Selector-style topic matching for event routing, dynamic Consumer assignment, Read more...

Spring Batch 3.0 M1 Released

We are pleased to announce that Spring Batch 3.0.0.M1 is now available via Github and the SpringSource download repository. This release represents our first step to implementing JSR-352. You can read more about the the JSR and the related features included in this release in our blog post: Spring Batch 3.0 Milestone 1 Released
Spring Batch Home | Source on GitHub | Reference Documentation
We look forward to your feedback in the forum, Jira and at SpringOne2GX!

Spring Batch 3.0 Milestone 1 Released

SpringOne2GXIf you haven't registered for SpringOne2GX yet, it's not too late!. Register today to attend JSR-352, Spring Batch and You at SpringOne2GX and learn about JSR-352 and Spring Batch in depth.Today we are pleased to announce the first milestone release towards Spring Batch 3.0 (download). With this release we take our first steps towards implementing Read more...

Spring Security 3.2.0.RC1 Highlights: Security Headers

SpringOne2GXIf you haven't registered for SpringOne2GX yet, it's not too late!. Register today to attend Getting Started with Spring Security 3.2 at SpringOne2GX and learn about Spring Security 3.2 in depth. This is my last post in a two part series on Spring Security 3.2.0.RC1. My previous post discussed Spring Security's CSRF protection. In this Read more...

Spring Data Redis 1.1 RC1 Released

Dear Spring Community,

I am pleased to announce the first release candidate of Spring Data Redis 1.1!

Downloads | JavaDocs | Reference Documentation | Changelog

Highlights include:

  • Support for millisecond precision in key expiration commands
  • Resubscription of message listeners on connection failure
  • Full implementation of ConcurrentMap contract in RedisMap and RedisProperties

For more information about Spring Data Redis please see the home page for a live sample and webinar recording.

We look forward to your feedback on the forum or in the issue tracker. We hope to see you at the upcoming SpringOne conference in Santa Clara, CA. Checkout the schedule and register!

Free Spring - Hadoop Conference in Singapore

We are glad to announce that we will host a FREE conference about Spring and Hadoop on Friday August 30th in downtown Singapore from 6 to 8 PM. 

1- Spring best practices: from Spring Petclinic to Spring Data Hadoop

 Michael Isvy joined SpringSource (the company behind Spring, now part of Pivotal) in 2008. He has, since then, taught Spring to more than 1000 students in 10 different countries. He has presented on Spring at numerous conferences and is an active technical blogger on the SpringSource blog. Michael holds the position of Education Manager for the Asia-Pacific region at SpringSource/Pivotal.
He has recently worked on the new Spring-Petclinic sample application, which aims to promote best practices when working with Spring and Spring MVC inside a web application. He will use this application to showcase Spring best practices. He will also bring an interesting perspective on how Spring best practices have evolved over time.

In the end, Michael will present the Spring Data Hadoop project that offers a simple POJO programming model for Apache Hadoop developers.

2- Getting started with Apache Hadoop

 Steve Illingworth is The Chief Technology Officer at Pivotal in Asia Pacific & Japan.  Prior  to  Pivotal, Steve was responsible for architecting Business Intelligence and Data Warehousing solutions based upon Greenplum's Unified Analytics Platform (UAP). With over 19 years of experience in the area of Business Intelligence and Data Warehousing, Steve is an accomplished presenter having been a keynote speaker at many Industry  events including OpenWorld conferences and iDevelop conferences word-wide.
On a daily basis, Steve works with customers on their journey to Hadoop, using Pivotal HD™ (Pivotal's Hadoop distribution) and HAWQ™ (true SQL parallel database on top of the Hadoop Distributed File System).

Steve will be providing an introduction to Apache Hadoop and Pivotal HD.

For more information or to register directly (free) click here
Please make sure to register in time (limited seats available)

Spring Security 3.2.0.RC1 Highlights: CSRF Protection

SpringOne2GXIf you haven't registered for SpringOne2GX yet, it's not too late!. Register today to attend Getting Started with Spring Security 3.2 at SpringOne2GX and learn about Spring Security 3.2 in depth. On Monday I announced the release of Spring Security 3.2.0.RC1. This is the first of a two part blog series going over the new Read more...

This Week in Spring - Aug 20th, 2013

Welcome to another installment of This Week in Spring! As usual, we've got a lot to cover so let's get to it!

  1. Spring Security lead Rob Winch has just announced Spring Security 3.2.0.RC1. The new release is jam packed with tons of new stuff including CSRF protection, improved Java configuration support, HTTP Strict Transport Security support, numerous new examples, and much more!
  2. Craig Walls has just announced an update to Spring Social Twitter and Spring Social Facebook, now at version 1.1.0.M4, and Spring Social LinkedIn, now at 1.0.0.RC3. The new releases include a new RealTimeUpdateController for handling realtime updates from Facebook, a builder-style API for creating and publishing Tweets, the ability to fetch a Tweet as an oEmbed object for easy embedding in a web page, and bounding box and geometry support in a Tweet's location. A new error handler for LinkedIn to properly handle API errors and throw Spring Social exceptions. Ability to fetch a user's email address as part of a basic LinkedIn profile request.
  3. Spring.NET founder, Spring XD and Spring Data lead Dr. Mark Pollack (by the by, I only mention all of this cool stuff because he'd never mention it himself. The dude is really smart!) has published a fantastic post introducing some of the new features in the latest Spring XD 1.0 M2 release. Read it and then download the bits. The samples are easy enough to get working (just follow the blog!), and there is certainly a lot to play with!
  4. Register now for the Aug 29th Webinar: Taming Coupling & Cohesive Beasts with Modularity Patterns and Spring with Param Rengaiah.
  5. Join our friends from Pivotal Labs as David Frank shows you How to Get Agile with Pivotal Tracker, on September 5th.
  6. I published a tutorial on the Spring REST stack to accompany a webinar I gave a month or so back on building REST web services and clients with Spring MVC, Spring HATEOAS, Spring Data REST, Spring Security OAuth, Spring Social, and Spring Android. The tutorial is on my the-spring-rest-stack GitHub repository, currently in the file tutorial.asc. Let me know if this helps you on GitHub or on Twitter.
  7. the STIVLO blog has had an ongoing series on how to build web applications on Google App Engine for Java, and of course Spring - which runs on multiple application servers, platforms and clouds, was a great choice there. It's interesting what little has to change (and what doesn't change!) to accomodate Google App Engine. Check it out.
  8. The Tech Tots blog has a nice post on using the JdbcTemplate and Spring MVC to build a REST controller.
  9. David King has a very code-comprehensive post on using JMS with Spring and JUnit.
  10. Janardhana Gangula has put together a nice post on how to migrate from Liferay Portlet to Spring MVC Portlet support.
  11. The Pretech blog has a simple, code-centric example of how to setup a Spring MVC REST service
  12. KH Yiu has a nice post on how to use property values obtained from a property file in XML configuration. An oldie but a goodie!
  13. This (Chinese language!) post on the pangbangb blog explains how to create a namespace handler for XML schemas by blogger pangblog, from what I can gather from the translation. It looks about right: you define a namespace .xsd, define a Spring NamespaceHandler, and then tie them together with spring.handlers and spring.schemas file. Simple!
  14. Blogger Ulises Fasoli has put together a nice comparison of Spring's ViewResolver interface with the HttpMessageConverter hierarchy.

Spring Security 3.2.0.RC1 Released

Spring Security 3.2.0.RC1 is now available from the SpringSource repository at http://repo.springsource.org. See here for a quick tutorial on resolving these artifacts via Maven.

This release includes tons of updates and fixes. The highlights include:

  • Polishing of Spring Security Java Configuration
    • Uses content negotiation to determine how to prompt user for authentication when multiple authentication mechanisms (i.e. HTTP Basic and Form login) enabled
    • AbstractSecurityWebApplicationInitializer allows registering Java Configuration directly
    • A number of bugs fixed
  • CSRF protection and automatic integration with Spring Web MVC jsp tags
  • Automatic cache control support
  • Defence against Clickjacking attacks
  • HTTP Strict Transport Security support to reduce Man in the Middle attacks
  • Samples include pom.xml so they can be imported as Maven projects
  • MediaTypeRequestMatcher for matching on requests with content negotiation
  • Over ten java configuration samples have been integrated into the samples directory
  • Three new guides that walk users through samples and provide detailed instructions on how to do specific tasks. More of these guides will follow in coming releases
  • Stay tuned to the SpringSource Blog over the coming week for more information about this release.


    To learn about all the new features within Spring Security 3.2 attend my Getting Started with Spring Security 3.2 presentation at SpringOne2GX September 9-12, 2013. If you haven't already gotten your tickets, do so now before its too late!

    Changelog | Download | Reference Manual | Guides | FAQ

    Spring Social 1.1.0.M4 Released

    Dear Spring Community,

    I'm happy to announce the 1.1.0.M4 release of Spring Social, Spring Social Facebook, and Spring Social Twitter. At the same time, I'm also pleased to include Spring Social LinkedIn 1.0.0.RC3 along with these releases.

    Spring Social is an extension of the Spring Framework that enables you to connect your Java applications to Software-as-a-Service (SaaS) providers such as Facebook and Twitter.

    These four releases bring several small improvements and bug fixes as we step toward Spring Social 1.1.0. Included in these releases:

    • A new RealTimeUpdateController for handling realtime updates from Facebook.
    • A builder-style API for creating and publishing Tweets.
    • Ability to fetch a Tweet as an oEmbed object for easy embedding in a web page.
    • Bounding box and geometry support in a Tweet's location.
    • A new error handler for LinkedIn to properly handle API errors and throw Spring Social exceptions.
    • Ability to fetch a user's email address as part of a basic LinkedIn profile request.

    In addition, several bugs were fixed. See the changelog (Core|Facebook|Twitter|LinkedIn) for details.

    To get the software, download the release distribution (Core|Facebook|Twitter|LinkedIn) or change the dependencies in your build file to reference version 1.1.0.M4 (or 1.0.0.RC3 for Spring Social LinkedIn).

    These releases represent another step toward a Spring Social 1.1.0 release later this year. There are a few more issues to tie up, and we anticipate a first release candidate very soon.

    We invite you to discuss this release as well as the continuing work toward Spring Social 1.1.0 in the Spring Social Forum and to report any bugs or improvements in the Spring Social issue tracker.

    Spring XD 1.0 Milestone 2 Released

    Today we are pleased to announce the 1.0 M2 release of Spring XD (download)  Spring XD is a unified, distributed, and extensible system for data ingestion, real time analytics, batch processing, and data export.  The project’s goal is to simplify the development of big data applications. The second milestone release of Spring XD introduces several Read more...

    Spring XD 1.0.0.M2 released

    Dear Spring Community,

    The Spring XD team is pleased to announce that the second milestone of Spring XD is now available for download.

    Spring XD makes it easy to solve common big data problems such as data ingestion and export, real-time analytics, and batch workflow orchestration. The second milestone introduces several new features such as an interactive shell, new sources and sinks, support for RabbitMQ as a transport between modules, several DSL improvements and initial support for running batch jobs.

    For more information, please see the Project Home Page, the Release Notes and the the blog posting, and the reference documentation.

    We would love to hear your feedback as we continue working hard towards the final Spring XD 1.0.0 release. If you have any questions, please use Stackoverflow (Tag: springxd), and to report any bugs or improvements, please use either the Jira Issue Tracker or file a GitHub issue.

    This Week in Spring - Aug 13th, 2013

    Welcome back to another installment of This Week in Spring. As usual, we've got a lot to cover, so let's get to it!

    1. The How to do in Java blog has a nice post on how to setup Siteminder pre-authentication using Spring Security 3.
    2. Another great SpringOne2GX 2013 session's just been added to the SpringOne2GX 2013 lineup, Real Time Analytics with Spring. This talk introduces one use case for Project Reactor, a foundation for asynchronous applications on the JVM.
    3. Andy Clement has just cut a new release of AspectJ, 1.8.0.M1, which will be used in Spring 4 and support Java 8. It is available through the SpringSource Maven repository as 1.8.0.M1. It is also in today's release of AJDT for Eclipse 4.3.
    4. The GoPivotal blog has an in-depth look at Apache Tomcat 8. Definitely worth a look!
    5. Eberhard Wolff has put together a very nice video on using the recently announced Spring Boot. Nice job, Eberhard! (as usual)
    6. Our pal Petri Kainulainen has written a very cool post on unit testing Spring MVC REST APIs.
    7. The Being Java Guys blog has a code-heavy post on how to do file uploads with Spring MVC. Nice job!
    8. This post from the Matthew's Thoughts! blog explains a simple Spring REST starter project that demonstrates how to use regular Spring Security to add a username and password-based authentication with a Spring MVC-powered REST service.
    9. The Code with Zen Mind blog has a nice series on building and testing Spring MVC applications. The first post introduces how to setup a test-driven project. The second post demonstrates how to do refactoring and how to introduce new test cases. The third post demonstrates how to use the tests established in the first two posts to survice a major refactoring (the implementation of the service under test changes). Really insightful!
    10. This post from the public static void blog() blog introduces how Spring's logging layering works. The post is in what Google Translate insists is Slovak, however, the translation was pretty good and - if we're honest - the diagrams are quite explanatory by themselves! Good stuff. Take a look, and - if possible - a read.
    11. The 1.5 version of the Cloud Foundry integration for Eclipse, which supports pushing applications to Pivotal Cloud Foundry organizations and spaces, using new Cloud Foundry services, and incrementally updating applications from Spring Tool Suite. The new integration may be installed from the STS dashboard or using the update site in the Help > Install New Software menu.

    SpringSource Training Schedule: September 2013

    If you are a Java developer looking to increase your Spring knowledge, Spring Training by Pivotal is the place to start. We are providing several Spring trainings across the globe closely connected to your needs as a professional developer. This month we provide the new 4-day Groovy & Grails class in Boston, MA. SpringSource has also started offering new Hibernate with Spring Classes in the Bay Area, Germany, London (GB) and the United States (Online Courses)

    The complete Spring training schedule for September, 2013 can be found below:

    Step 1: Core Spring


    Asia Pacific

    Europe, Middle East & Africa

    Step 2: Spring Web / Enterprise Integration with Spring / Hibernate with Spring


    Asia Pacific

    Europe, Middle East & Africa

    If you cannot find a professional training near you, you can always request an onsite SpringSource training

    Webinar: Getting Agile with Pivotal Tracker

    Start: 2013-09-05 10:00 End: 2013-09-05 11:00 Timezone: US/Pacific Start: 2013-09-05 10:00 End: 2013-09-05 11:00 Timezone: US/Pacific .event-nodeapi, .submitted {display:none}

    Speaker: Davis W. Frank

    "Agile Software Development" is an ambiguous term. It's an umbrella term. It's a controversial term. But what does it really mean? The first principle of agile development is to keep feedback loops small to allow a team to make frequent, small corrections on the way to delivery.

    Pivotal Labs practices this every day, coaching our clients on how to re-view their problems and approach from first principles. We wrote Pivotal Tracker - the Agile project management app - to work the way we think

    Come learn about tight feedback loops, how to use them in software, and how Pivotal Tracker can keep your backlog sane.

    Europe: Thursday, September 5
    3:00pm GMT Summer Time (London, GMT+01:00)

    North America: Thursday, September 5
    10:00am Pacific Daylight (San Francisco, GMT-07:00)

    This Week in Spring - Aug 6th, 2013

    Welcome back to another installment of This Week in Spring. On August 1, I celebrated my third year at SpringSource. I continue to enjoy the ride of my life and a huge part of that is my interaction with you, the most amazing community ever. Thanks for that, folks.

    Have you booked your tickets for SpringOne2GX? This year's show is a special one. In my work as the Spring Developer Advocate, I speak at many conferences all around the world. Ask any developer with a pulse, and they'll confirm that big data (and Hadoop), reactive web applications, REST, mobile application development, and cloud computing are sizzling hot topics today. Pivotal, and Spring, support today's developers, and SpringOne2GX's agenda represents in my estimation the perfect blend of content for today's developers. Check out the agenda. We've just recently added talks on big data, and REST service security with OAuth. This will be our first show under Pivotal, and it's the only place where you can talk to the developers working on the technologies you care about both at SpringSource and in the community. As you know, we've just announced our Cloud Foundry conference, Platform, and SpringOne2GX full pass ticket holders may register for that show - which is at the same venue as SpringOne2GX just two days earlier - for free! If I had to pay for just one show a year, this would be that show. Hurry the early bird rate expires this friday!

    1. Major news: Phil Webb and Dr. David Syer have just announced Spring Boot, which simplifies Spring application development. Spring Boot provides an opinionated layer on top of Spring and in so doing makes it dead simple to get an application up and running with a minimum of fuss. Seriously, this stuff will blow your mind. Do not read any further until you've read this short and sweet post! Give it a go and be sure to let us know about your experiences!
    2. Spring Framework 3.2.4 maintenance release is now available, with an important security fix for SpringOXM..
    3. Spring Data Redis-lead and ninja Jennifer Hickey just announced the availability of two Spring Data releases. Spring Data Redis 1.1, M2, featuring a lot of new features, including enhanced data pipelining, Redis 2.6 scripting, and more. Spring Data Redis 1.0.6 is also available, and features bug fixes and smaller improvements.
    4. Spring Mobile and Android lead Roy Clarkson just announced Spring Mobile 1.1.0.RC1, which features improvements to device detection and view resolution in Spring Mobile. Roy also announced a new cut of the stable line of Spring Mobile, 1.0.2, which features similar improvements, some backported.
    5. Spring Data ninja Oliver Gierke has just announced that the final release candidate for Spring Data Babbage is now available. This release is named for Charles Babbage. This release features support for the MongoDB Aggregation Framework and improved the execution of polymorphic queries, support to use SpEL expressions in manually defined queries with JPA, improved handling of entities using @IdClass, a countBy(..) method for Neo4j repositories, and much more.
    6. The replay for the webinars Functional Programming without Lamba and Spring with Cucumber for Automation are now available online. Be sure to check them out!
    7. A few weeks ago, our friend Johnathan Mark Smith put together a video introducing how to use Spring Data MongoDB and Java configuration. Check it out! And, if you're doing awesome videos, feel free to share. I'd love to post them on This Week in Spring, too!
    8. I smiled when I saw a tweet by the Reactor project lead Jonathan Brisbin in which he says, "Processor throughput: 90M ops/sec on a laptop. 1 thread + @LMAX Disruptor. Not #fastdata, #uberfastdata" and then links to a test case in the code. Needless to say, Reactor is going to shake things up big time! (And, of course, we'll have more content on Reactor at SpringOne2GX.
    9. The latest release of Tomcat, Apache Tomcat 8.0.0-RC1 (alpha), is now available! There are a lot of new features. Notably, Tomcat 8 will be the first Tomcat to support JSR 356, web sockets. This is the perfect compliment to Spring 4's recently announced web socket support.
    10. Mohan Srihari Kantipudi has put together a nice post on Spring's basic REST capabilities
    11. I liked Gregor Riegler's post on Spring Loaded, the best kept secret in open source. Spring Loaded is a Java agent that lets you reload code as you're working on it (no need to redeploy!). This is a very cool post and I hope you'll consider using Spring Loaded, too.