Webinar Replay: Abstracting PaaS services to be portable with Spring Cloud

News | Pieter Humphrey | June 04, 2014 | ...

Speaker: Ramnivas Laddad

Slides: https://speakerdeck.com/ramnivas/abstracting-paas-services-to-be-portable-with-spring-cloud

Developing an application to a cloud platform involves working with deployed application's environment and connecting to services. Spring Cloud, a new project, simplifies these tasks in a variety of cloud platforms including Cloud Foundry and Heroku. Spring Cloud makes it possible to deploy the same artifact (a war or a jar) to multiple cloud environments. It supports multiple clouds through the concept of Cloud Connector and provides out of the box implementation for Cloud Foundry and Heroku, and extension points for other cloud platforms. In this talk, we will introduce the Spring Cloud project, show how you can simplify configuring applications for cloud deployment, discuss its extensibility mechanism, and put it to good use by showing practical examples from the field.

Learn more about Spring Cloud at http://projects.spring.io/spring-cloud

Learn more about CloudFoundry at http://cloudfoundry.org/learn

Learn more about Heroku at https://devcenter.heroku.com/

!{iframe width="420" height="315" src="//www.youtube.com/embed/F49_LJJPs_s" frameborder="0" allowfullscreen}{/iframe}

This Week in Spring - June 3rd, 2014

Engineering | Josh Long | June 03, 2014 | ...

Welcome to another installment of This Week in Spring. This week's an exciting week! Well, let's be honest. They're all exciting weeks. But in particular, this week's going to make a lot of people happy. Watch the blog and I'll see you back here next week to recap! :)

  1. Oh my goodness! Spring Boot 1.1.0.RC1 is now available! The new release maintains the epic with support for Spring Data Elasticsearch, HornetQ, and Spring Social, and a lot more! Grab the latest release, kick the tires, and feedback on Twitter or GitHub.
  2. Dr. Mark Pollack has just announced that the latest release of Spring XD, 1.0.0.M7 is now available. The new release provides a lot of great new features. My favorite is the ability to pin data to a certain stream - think of this as correllation using a message's content - so that you can preserve stateful operations. Think of this as a great way to route and divide messages based on a useful business key. There's a great example in the release notes.
  3. Azul rockstar Gil Tene gave an amazing talk on reducing latency for SpringOne2gX 2013 that is now available online. Gil is one of our industry's mad scientists. I haven't yet seen this talk, but I will, and I highly recommend that you do too. Azul makes high performance, low latency JVMs both as appliances and as deliverable software. His talks thus stem from a lot of thankless research and development that I'd just as soon spare myself by watching, and learning from, his talks. Go, Gil!
  4. June webinars are here! Michael Minella in Spring Batch 3.0.0 on June 10th, and Glenn Renfro in Spring Integration Done Boot-ifully on June 17th.
  5. Spring ninja Greg Turnquist has put together a teaser post on using the amazing when.js Promises/A+ implementation in a front-end REST client in advance of his SpringOne2GX 2014 talk. Check out the post and his talk at the conference!
  6. Ramnivas Laddad, a Spring ninja, original AspectJ leaders, and architects behind Cloud Foundry, has just posted a very cool look at Spring Cloud, which makes consuming client services from different middle/infrastructure services (a database, a message queue) on various Platforms-as-a-Service (PaaSes) a simple matter of platform-decoupling configuration.
  7. The replay of ADP's Jeffery Sologov's talk looking at the pitfalls of building large scale applications is now up! Check it out!
  8. ttp://twitter.com/JakubJirutka chimed in to tell us about this epic Spring Expression Language (SpEL)-powered implementation of the Bean Validation API (JSR 303/349). The GitHub offers an interesting point, "it’s especially very useful for cross-field validations that are very complicated with a plain Bean Validation." I love the examples, too:
    @SpELAssert(value = "password.equals(passwordVerify)",
            applyIf = "password || passwordVerify",
            message = "{validator.passwords_not_same}")
    public class User {
      private String password;
      private String passwordVerify;

    Nice job!

  9. A hat tip to the amazing Brian Dussault for finding this: Zuul is a nifty looking application configuration management solution that offers a clean Spring client API.

  10. You know what made my day yesterday? A HystrixInvocationHandler. An InvocationHandler is used by the JDK (and Spring's rich proxying subsystem) to create proxies that wrap beans. This InvocationHandler wraps method invocations on a given bean in Netflix's OSS Hystrix project's Command objects. Hystrix Commands wrap functionality and provide/support resiliency patterns. I can't wait to see more of what becomes of Spencer Gibb's Halfpipe project!
  11. Our pal David Welch is at it again, this time with an interesting project called Spring Tiered, which aims to simplify even further (and normalize) the development of HATEOAS based services. Interesting...
  12. Also, speaking of building (and consuming) resilient services, check out Chris Richardson's fantastic talk from SpringOne2GX 2013 on powerful abstractions for consuming services asynchronously.
  13. Also, I put together a post talking about getting started with Maven (and alternatives) and Spring

Spring XD 1.0.0.M7 Released

Releases | Mark Pollack | June 03, 2014 | ...

The Spring XD team is pleased to announce that Spring XD Milestone 7 is now available for download.

Highlights of this release

  • Transport Data Partitioning: By default, messages are delivered to multiple instances of a stream module in a round-robin manner. However, if a module performs operations such that it can not consume random messages from the stream, then you can partition the stream based on its content so that similar messages are always delivered to the same module instance. For example, if a processing module is performing stateful operations on a per-customer basis, the stream…

SpringOne2GX 2013 Replay: How Not to Measure Latency

News | Pieter Humphrey | June 03, 2014 | ...

Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speaker: Gil Tene, Azul

Time is Money. Understanding application responsiveness and latency is critical not only for delivering good application behavior. It is critical for maintaining profitability and containing risk. But good characterization of bad data is useless. When measurements of response time present false or misleading latency information, even the best analysis can lead to wrong operational decisions and poor application experience. In this presentation, Gil Tene (CTO, Azul Systems) discusses some common pitfalls encountered in measuring and characterizing latency. Gil demonstrates and discusses some false assumptions and measurement techniques that lead to dramatically incorrect reporting results, and covers simple ways to sanity check and correct these situations. He discusses the fallacy of using standard deviation measurements, the strongly multi-modal nature of latency, common discontinuities found in most computing platforms, and how back pressure and coordinated data omission issues can literally skew measurement results by orders of magnitude. Gil introduces and demonstrates how simple and recently open sourced tools can be used to improve and gain higher confidence in both latency measurement and reporting.

Learn more about Spring Framework at http://projects.spring.io/spring-framework

!{iframe width="560" height="315" src="//www.youtube.com/embed/0b3sR32m0nU" frameborder="0" allowfullscreen}{/iframe}

SpringOne2GX 2013 Replay: The Pitfalls Of Building Large Scale Applications

News | Pieter Humphrey | June 03, 2014 | ...

Recorded at SpringOne2GX 2013 in Santa Clara, CA

Speaker: Jeffery Sologov, ADP

Relying on network reliability and topology are just a few mistakes most engineers make. Common fallacies of distributed computing are one of the most important factors that engineers need to keep in mind when building enterprise software. We will cover each fallacy while showing mistakes most engineers make. We will then cover what coupling truly means and how to tell whether your current project is heading the wrong way. Finally, we will apply aspects of object orientation that held up to this day and learn how to apply them to the new age architectures. Don't learn from your mistakes, learn from others and come away with techniques that you can apply to your current project right away. This is the session that I wish I attended when I was a young lad.

Learn more about Spring Framework at http://projects.spring.io/spring-framework

!{iframe width="560" height="315" src="//www.youtube.com/embed/REgbIZn1F5g" frameborder="0" allowfullscreen}{/iframe}

Introducing Spring Cloud

Engineering | Ramnivas Laddad | June 03, 2014 | ...

Developing, deploying, and operating cloud applications should be as easy as (if not easier than) local applications. That is and should be a governing principle behind any cloud platform, library, or tool. Spring Cloud--an open-source library--makes it easy to develop JVM applications for the cloud. With it, applications can connect to services and discover information about the cloud environment easily in multiple clouds such as Cloud Foundry and Heroku. Further, you can extend it to other cloud platforms and new services.

In this blog (first in a series), I will introduce Spring Cloud and show its usage from the application developer point of view. We will develop a simple application and deploy to Cloud Foundry and Heroku

Using new when.js 3.2.2 to build a front end for Spring Data REST

Engineering | Greg L. Turnquist | June 02, 2014 | ...

Greetings Spring community!

Roy Clarkson and I are presenting a talk at this year's SpringOne 2014 conference called Spring Data REST - Data Meets Hypermedia. We will explore how to quickly bridge the gap between a powerful Spring Data backend and a hypermedia enabled, RESTful front end.

In one part of the talk, we will delve into a javascript front end that lets the user takes pictures and upload them to a website. The website turns around and fetches images from the back end. By itself, this isn't that difficult thanks to the fully loaded RESTful API provided by Spring Data REST.

But fetching multiple images straight up isn't very efficient and is prone to freeze the web browser. Thanks to the CujoJS guys on our team (Brian Cavalier and John Hann), I was able to use the recently released when.js module

Spring Boot 1.1.0.RC1 Available Now

Releases | Dave Syer | June 02, 2014 | ...

Spring Boot 1.1.0.RC1 is available now in the Spring repositories. There are some new features and some new documentation:

  • Autoconfiguration support for Spring Data Elastic Search, HornetQ messaging, Spring Social

  • Support for @IntegrationTest in the Groovy CLI

  • Upgrades to Tomcat, Spring Integration, Reactor and Groovy

We are on schedule for a GA release some time in the next 2 weeks, so please try out the RC1 and get feedback onto github as soon as you have time.

Spring Tool Suite and Groovy/Grails Tool Suite 3.6.0.M1 released

Releases | Martin Lippert | May 30, 2014 | ...

Dear Spring Community,

I am happy to announce the first milestone release 3.6.0.M1 of the Spring Tool Suite (STS) and the Groovy/Grails Tool Suite (GGTS).

Highlights from this milestone build include:

  • based on Eclipse Luna 4.4
  • support for Groovy 2.3
  • updated to Grails 2.4
  • updated to tc Server 2.9.6
  • minor improvements to the Gradle tooling
  • bugfixes, including fixes for endless build loops and memory leaks

To download the distributions, please go visit:

Detailed new and noteworthy notes can be found here: STS/GGTS 3.6.0.M1 New & Noteworthy.

NOTE: Both tool suites ship on top of the latest Eclipse Luna 4.4 release candidates as 64bit based zip files ONLY. We plan to no longer ship installers and 32bit distributions anymore. Update sites will be available for use with older Eclipse versions and 32bit installations.

We are very keen to hear any feedback on this change.

The 3.6.…

Get the Spring newsletter

Thank you!

Get ahead

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

Learn more

Get support

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