SpringOne 2GX 2012 Web Track: Designing REST-ful API using Spring 3, IOC in Javascript

News | Pieter Humphrey | November 30, 2012 | ...


Designing a REST-ful API using Spring 3

In the course of creating VAS, we did a lot of work to design a useful REST API.

REST is generally a very loose collection of principals that can be interpreted in many ways, so this talk would describe a more concrete idea of what a REST-ful API should look like.

In addition, the implementation of this API was done with many of the new features in Spring 3 and are a good demonstration of the power it provides.

About Ben Hale

Ben Hale

Ben Hale is a senior software engineer with Springsource and a core developer on the SpringSource dm Server project. Ben specializes in middleware development with using technologies such as OSGi and Aspect Oriented Programming as well as directing the build and release processes for all products in the Spring and SpringSource portfolios.

His interests include middle-tier architecture and effective build and release management strategies.

Prior to joining SpringSource, Ben spent several years leading teams in architecture and development of large-scale enterprise management applications for the telecommunications industry.




IOC + Javascript

Thicker web clients and server-side JavaScript create complexity that must be managed through architectural patterns. JavaScript hasn't yet embraced lessons learned from other platforms, like Java+Spring. Existing JavaScript MVC frameworks are too rigid and lack sufficient architectural plumbing. Javascript needs flexible architectural infrastructure for building bigger, better apps.

In this talk, Brian and John will introduce several concepts, including JavaScript Modules and Inversion of Control, and demonstrate how they alleviate many of the dominant problems encountered when building large JavaScript apps. Attendees will gain a firmer understanding of new architectural patterns and witness tangible examples of how these patterns improve testability, refactorability, composability, division of work, and team scalability.

About Brian Cavalier

Brian Cavalier

Brian is a server-side Java guy turned front-end engineer, and open source fanatic. From collaborative aircraft maintenance systems for the US Navy, to Computer Assisted Surgery systems for Orthopedic surgery, to a global-scale content curation and personalization system, he loves building things that users love to use. He works at VMware on making the web more awesome, and is co-lead of the cujo.js architecture unframework (cujojs.com), a lover of Siberian huskies, family, and things with two wheels.

More about Brian: https://github.com/briancavalier http://blog.briancavalier.com/ http://www.slideshare.net/briancavalier http://lanyrd.com/profile/briancavalier/

More About Brian »

About John Hann

John Hann

John has been pushing the limits of the web since 1996 and has been totally engulfed in Javascript, HTML, and CSS since 2004. Of the 70+ enterprise-scale apps he's led, notable achievements include Ajax-ish and JSON-RPC-like browser apps way back in 1999 (US Patent 7,016,751), composable Javascript constructors for creating draggable modal dialogs in 2004, and a Javascript non-preemptive multi-tasking framework in 2007. When he's not working on his “top secret” project at VMWare or his latest side-project with his kids, John is sure to be coding tenaciously on the next generation of Javascript libraries at http://cujojs.github.com.

More about John: http://unscriptable.com/

More About John »



This Week in Spring - 27 November, 2012

Engineering | Josh Long | November 28, 2012 | ...

Welcome back to another installment of This Week in Spring! If you're in the states, then I hope you're well rested from a hopefully very pleasant holiday weekend, because we've got a lot to cover this week!

I hope you find this roundup useful. If you should ever want to peruse previous weeks' roundups, we've recently created a This Week in Spring hash tag for the blog archives.

Anyway, we've got a lot to cover this week, so let's get on with it!

  1. Chris Beams has announced that the Spring Framework 3.2 RC2 has been released, consisting largely of bugfixes and refactoring as the project nears GA.
  2. Andy Wilkinson has announced the release and availability of the Spring Migration Analyzer, a command-line utility that analyzes enterprise Java applications and produces a report describing the application and how it can be migrated to Spring. Input an EAR file, get a migration effort report. It supports WebLogic, WebSphere, Java EE and JBoss in the milestone release, but we are looking for community support to make it better for GA!
  3. Catch the latest in the Spring Data webinar series on Dec 13th -- Data Access and Processing with Spring Data, Hadoop, Batch, Integration. We are also have a webinar on Spring Data Gemfire on Dec 6th: The Data Renaissance: Going in-Memory with VMWare vFabric GemFire 7.0 and Spring.
  4. If you have missed the other webinars in the Spring Data Webinar series, check out the SpringSource Dev Youtube channel for recently published replays on: Data Access with Spring -- Getting the most out of JPA, JDBC and REST and Introducing Spring for Apache Hadoop.
  5. Gary Russell has announced that Spring Integration 2.2.0.RC3 has been released.
  6. Spring Social 1.1.0 has been released. The new release includes easier XML and Java configuration, tighter adherence to the latest OAuth 2 specification drafts, including HTTP Basic client authentication and support for Resource Owner Credentials Grant and Client Credentials Grant, and updates to the Facebook and Twitter API bindings.
  7. Jens Schauder has a nice post on creating new Spring beans on demand using the singleton scope.
  8. The Java How to Program blog has a nice roundup on
      <a href="http://www.hubberspot.com/2012/10/how-to-use-component-annotation-for.html">How to use <CODE>@Component</CODE> 
      annotation to automatically configure Spring beans</a>.
  9. This is a nice post on how to implement the chain-of-responsibility pattern using Spring and @Autowired (or alternatively @Inject).
  10. Viral Patel's back at it again, this time with a post on Spring 3 MVC interceptors.
  11. The Mkyong blog has another nice post up on Spring and Java threading example using the Spring thread scope.
  12. DZone has a nice post up on easy integration testing with Spring and the JUnit 4 support.
  13. I recently wrote up a version of a tutorial on getting started with SpringSource Tool Suite and Spring for beginners.

Introducing Spring Migration Analyzer

Engineering | Andy Wilkinson | November 27, 2012 | ...

It's my pleasure to announce that we've released the first milestone of Spring Migration Analyzer (SMA), a command-line utility that analyzes enterprise Java applications and produces a report describing the application and how it can be migrated to Spring.

Why migrate an application to Spring?

We see two main reasons when people choose to use Spring. Firstly, Spring offers the greatest range of deployment options including cloud and PaaS, allowing you to deploy your application to lighter-weight runtimes with lower operating costs. Secondly, as Adrian recently explained Spring provides access to a host of technologies that are at the forefront of enterprise Java.

When it comes to considering the migration of an existing application to Spring, it's typically the deployment flexibility that motivates the move as it can significantly reduce the application's operating costs.

Using SMA to analyze an application

To get started with SMA, download the distribution. Once it's downloaded, unzip it:
unzip spring-migration-analyzer-1.0.0.M1-dist.zip

With JAVA_HOME set, you can then run the migration-analysis script to…

Spring Social 1.1.0.M1 Released

Releases | Craig Walls | November 26, 2012 | ...

Dear Spring Community,

We are pleased to announce the first milestone release of Spring Social 1.1.0!

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.

Along with Spring Social 1.1.0, we are also releasing milestones for Spring Social Facebook 1.1.0 and Spring Social Twitter 1.1.0.

These 1.1.0.M1 releases include the following:

  • Easier XML and Java configuration.
  • Tighter adherence to the latest OAuth 2 specification drafts, including HTTP Basic client authentication and support for Resource Owner Credentials Grant and Client Credentials Grant.
  • Updates to both the Facebook and Twitter API bindings, including binding to version 1.1 of Twitter's API.
  • Support for OpenGraph operations in the Facebook API binding.
  • Support for Facebook Query Language (FQL).

In addition, several smaller enhancements and bug fixes were applied.

To get the software, download the release distribution (Core | Facebook | Twitter).

As always, the Spring Social community has been awesome at providing feedback and contributing pull requests to make this release possible. A special thanks to Jeremy Appel for contributing a rather large pull request to bring the Spring Social Twitter API binding in line with version 1.1 of Twitter's API.

These milestone releases mark the first step toward Spring Social 1.1.0. We plan to increase momentum on these milestone releases up to the 1.1.0 GA release, so expect another milestone release in the next few weeks. If you'd like to follow along or contribute, we encourage you to participate in the Spring Social Forum, report bugs or suggest enhancements, or to fork the code and contribute back via pull requests.

Spring Integration 2.2.0.RC3 is Released!

Releases | Gary Russell | November 21, 2012 | ...

We are pleased to announce that Spring Integration 2.2.0.RC3 is now available in the milestones repository.

Release notes can be found here.

Links to downloads and the documentation can be found on the project home page.

It is anticipated that this will be the final release candidate, with the GA release being available shortly.

Many thanks to the community members who have tried out the earlier milestones and provided valuable feedback.

This Week in Spring - 20 November, 2012

Engineering | Josh Long | November 20, 2012 | ...

Wow! Guys, can you believe we are again staring down the end of the year? Time sure flies! In the US, this is the week of Thanksgiving, a holiday where we're supposed to take a moment and reflect upon the things for which we're grateful. I am (and I'm sure I speak for the team in saying that we are..) eternally grateful for you guys, the wonderful, vibrant and engaging community surrounding Spring, RabbitMQ and Cloud Foundry that makes putting together this roundup such a pleasure every week.

With that, let's get on with the news:

  1. Thomas Risberg has announced that the Cloud Foundry Maven plugin 1.0.0.M4 is now available.
     <LI>Did you miss out at <A href="http://springone2gx.com/conference/washington/2012/10/home">SpringOneOne2GX 2012  in Washington D.C.</a>?  Don't fret. We'll release 2 sessions every week on <a href="http://www.springsource.org/SpringOne2012Recordings">springsource.org</a>. We've already released Day 1 and 2 Keynotes. Available now:  a talk from Rossen Stoyanchev on "What's New in Spring Mvc 3.2" and a talk from Roy Clarkson and Craig Walls on "Extending Spring Mvc With Spring Mobile and Javascript."
    <LI> Our friend Tobias Trelle is at it again! This week, he's   <A…

Dependency analysis in Scripted

Engineering | Kris De Volder | November 20, 2012 | ...

Scripted, a JavaScript editor from VMWare was announced on this blog last month. In this article we'll take a look under the hood at Scripted's Dependency Analysis Engine. But before diving into the details, lets motivate why we need it.

Main Motivation: Cross-file Content Assist

To provide a great JavaScript editing experience, Scripted needs to provide accurate suggestions about the functions, methods or identifiers you can use in your current editor context.

[caption id="attachment_12178" align="aligncenter" width="533" caption="Cross-file Content Assist"][/caption]

Two components work together to achieve this goal:

  • a fine-grained type inference analysis engine
  • a coarse-grained dependency analysis engine
The inference engine parses your code and walks every declaration, statement and expression. This allows it to determine what identifiers are valid in a given context, and make good guesses about the kinds of things that may be stored in these variables. This information is then used to make content assist suggestions.

If you wanted to simply put all your code into one big file, then a good quality inferencer alone would be sufficient to provide some pretty good content assist. In reality, projects will be divided…

SpringOne 2GX 2012 Web Track: What's New in Spring MVC 3.2 + Extending Spring MVC with Spring Mobile and JavaScript

News | Pieter Humphrey | November 16, 2012 | ...


What's New in Spring MVC 3.2

Following on Juergen's talk on the upcoming Spring 3.2 release, this presentation will focus on what's new specifically in the area of Spring MVC. The presentation will explain all noteworthy features and, as is usual with every new release, there will be a lot to discuss including Servlet-based async request support, content negotiation enhancements, REST error handling, @MVC test support, and much more. The talk does not provide an overview of Spring MVC but rather assumes a level of experience and focuses on covering what's new.

About Rossen Stoyanchev

Rossen Stoyanchev

Rossen is a Spring Framework developer focusing on Spring MVC as well as Spring Web Flow. His 17+ year background includes work on trading and risk management software, investment accounting, e-commerce web applications, directory services, among others. Prior to becoming a full-time Spring Framework developer, Rossen spent several years teaching and consulting clients building enterprise Java applications with Spring on a broad range of topics.

More About Rossen »

Extending Spring MVC with Spring Mobile and JavaScript

The modern web no longer is limited to desktop browsers. Smart phones and tablets have become an integral part of our daily lives. Web sites that may look good on a 22" monitor usually do not format and display well on a much smaller screen. Additionally, network speeds can limit the performance of a web site on mobile devices. Because of these reasons many developers and organizations are considering how to make their web sites accessible to all the various devices and screen sizes for which people are using. In this session, we will explore the functionality provided within the Spring Mobile project, and how you can use it to extend your Spring MVC application onto mobile and tablet devices. We'll then continue the discussion by demonstrating how you can leverage some of the popular mobile JavaScript frameworks in combination with Spring Mobile to provide a first class experience for your users on mobile devices.

Session Detail

About Craig Walls

Craig Walls

Craig Walls has been professionally developing software for almost 18 years (and longer than that for the pure geekiness of it). He is a senior engineer with SpringSource as the Spring Social project lead and is the author of Spring in Action and XDoclet in Action (both published by Manning) and Modular Java (published by Pragmatic Bookshelf). He's a zealous promoter of the Spring Framework, speaking frequently at local user groups and conferences and writing about Spring and OSGi on his blog. When he's not slinging code, Craig spends as much time as he can with his wife, two daughters, 4 birds and 3 dogs.

More About Craig »

About Roy Clarkson

Roy Clarkson

Roy Clarkson studied computer science at Georgia Tech before beginning his career as a software engineer. He has worked as a professional software developer for over fifteen years, with a variety of languages and technologies. He is currently working as an engineer with SpringSource, at VMware, where he is the lead on the Spring for Android project. He also participates on the Greenhouse project, and built it’s associated mobile clients. Roy has spent the last few years focusing on mobile application development, including iPhone, Android, and mobile web. Prior to that, he focused most of his time on web based application development.

More About Roy »

This Week in Spring - 13 November, 2012

Engineering | Josh Long | November 14, 2012 | ...

Welcome back to another installment of This Week in Spring! I started this week back in the lovely Sofia, Bulgaria for the Cloud Foundry Open Tour event, talking to a packed audience about building Spring applications on Cloud Foundry. Now, I'm in Antwerp, Belgium, at the Devoxx conference where I'll present on what's new in Spring 3.2, Cloud Foundry and more. If you're here, I invite you to come visit the SpringSource booth and see some of the talks on Spring that I - and others - will be giving.

  1. 		Roy Clarkson has announced not one, but two releases of Spring  Mobile this week! 

    Spring Android 1.0.1 has been released. This release includes a change to support BlackBerry 10 mobile devices. BlackBerry 10 mobile devices are now resolved as a mobile device when using the LiteDeviceResolver. Then, he released the
    1.1.0.M1 release, which folds in the 1.0.1 support as well as tablet support in site preference handling and site switching, support for Java-based container configuration, and support for servlet based configurations.

  2. Thomas Risberg has announced the GA release of Spring Data JDBC extensions with QueryDSL and Advanced Oracle support.
  3. There's a lot of interesting…

Spring Mobile 1.1.0.M1 Released

Releases | Roy Clarkson | November 13, 2012 | ...

Dear Spring Community,

We are happy to announce the release of Spring Mobile 1.1.0.M1!

Spring Mobile provides extensions to Spring MVC that aid in the development of cross-platform mobile web applications.

This release includes a number of new features, including BlackBerry 10 device detection, tablet support in site preference handling and site switching, support for Java-based container configuration, and support for servlet based configurations. See the changelog and reference manual for more information.

To retrieve the software, download the release distribution, or add the maven artifacts to your project. Sample apps are available at github.com/SpringSource/spring-mobile-samples

If you are building a mobile web app, we encourage you try out Spring Mobile 1.1.0.M1 and collaborate with us on the next iteration of the project.

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