This Week in Spring - 16 October, 2012

Engineering | Josh Long | October 17, 2012 | ...

Welcome to This Week in Spring, SpringOne2GX 2012 edition! I'm putting this together from day 2 of the SpringOne2GX conference in Washington D.C.!

Last night, we kicked off the event with a great keynote by Juergen Hoeller (pictured above), Dr. Mark Pollack, Graeme Rocher, and Adrian Colyer, some amazing break dancing by international dancer Agame, and a mysterious kangaroo (see below)!

This is the premier event for JVM developers, featuring great speakers from VMWare, SpringSource, TypeSafe, Neo4j, and many others speaking on all manner of topics. The week is just kicking off. While the conference is running, there's also going to be a contest to find the best applications built using SpringSource technologies (Spring, Grails) and deployed to Cloud Foundry. I've seen the prizes (above), and I would enter too if I could!

<P> If you're at the show, be sure to stop by the SpringSource and Cloud Foundry booths in the expo hall and pick up shwag and answers to your lingering questions. I'll be there tomorrow, in the evening.</p><P> Anyway, I won't linger <EM>too</EM> much on what you're missing! Let's move on to this week's roundup because, as usual, there's a lot to cover! </p> 
	
	<OL> 
		<LI>Want to learn about what else has happened at SpringOne2GX? Check <a href= "http://www.springsource.org/node/3704">out this fantastic wrap up of day 1</a></LI>
		<LI> The Spring Data release train has finally arrived…

Spring Data release train arrived

Engineering | Oliver Drotbohm | October 15, 2012 | ...

It's a pleasure to announce that we have just released the GA versions of a variety of Spring Data modules. With this release we continue to manifest the commitment of SpringSource to provide Java developers with tools to work with state-of-the-art persistence technologies. In this blog post I'd like to give you detailed insight into what the release includes, why we decided for a release train and a brief outlook into what the next steps on the Spring Data roadmap are.

The release train

Looking back at the way Spring Data modules were developed, release cycles were usually managed by the individual module leads. Given the different pace and maturity of the modules this caused some issues when trying to work with multiple modules at once. Especially the projects depending on Spring Data Commons were suffering from this problem.

We were working hard on minimizing these issues but eventually came to the conclusion that it makes sense to coordinate the…

Scripted: A JavaScript editor from VMware

Engineering | Andy Clement | October 11, 2012 | ...

The first version of the Scripted code editor has been released this week on github: https://github.com/scripted-editor/scripted.

Although Scripted is a general purpose code editor, the initial focus is building a great JavaScript editing experience. Scripted itself is built entirely in JavaScript and HTML/CSS. It is a browser-based editor that runs locally on a developer's machine with a Node.js instance being used to serve the editor code and perform the editor operations. The only pre-req for running Scripted is that you have a recent version of Node.js installed (we are testing with Node 0.8.11 right now). Scripted reuses the editor component from Eclipse Orion

This Week in Spring - 9th October, 2012

Engineering | Josh Long | October 10, 2012 | ...

Welcome back to another installation of This week in Spring!. There's been a flurry of activity this week at SpringSource as we begin the final leg of the march to SpringOne! We're just a week away, and the show is shaping up every day to be the best show ever! We hope to see you there! Don't miss the day 1 and 2 keynotes from Adrian Colyer, Jurgen Hoeller, Mark Pollack, Graeme Rocher, as well as exciting sessions we've highlighted on SpringSource.org in the last 4 weeks: Going Async - Push Notifications, Client-Side UI Smackdown, Decomposing Applications for Deployability and Scalability, How to build Big Data Pipelines for Hadoop using OSS.

  1. Alvin J Rayes put together a nice post on using Spring MVC 3 with Apache Tiles, the templating engine.
  2. Tool Suites lead Martin Lippert has announced that Spring Tool Suite and Groovy/Grails Tool Suite 3.1.0 have been released! Nice job, Martin!
  3. Spring Security lead Rob Winch has announced that Spring Security 2.0.8, 3.0.8, and 3.1.3 have been released! This brings the total number of outstanding bugs down to 0. Excellent work, Rob!
  4. Have you been following the exciting new blogs from the Spring Integration team on the upcoming Spring Integration 2.2 release's new features?
    	 <A href = "http://blog.springsource.org/2012/10/09/spring-integration-2-2-retry-and-more/">Gary Russell has put together a nice blog on the new support for retry in Spring Integration</A>.  The support for retry capabilities originally comes from Spring Batch's support for retrying  
    	 operations, and was then factored out to the <a href="http://www.github.com/springsource/spring-retry">Spring Retry</A> project. Now, you can take advantage of it in Spring Integration flows!
    
  5. Gunnar Hillert has a nice post on how to use the new adapters in Spring Integration 2.2 to work with JPA.
  6. Learning OAuth? Want to know about the scenarios in which OAuth can help better secure your RESTful APIs? Join Spring ninja Dr. David Syer for his article introducing OAuth, in terms of how Cloud Foundry uses it for the UAA service.
  7. 	<LI> Krishna Prasad has put together some very cool posts recently.  I liked his post on connecting systems using…

What's New in Spring Integration 2.2 (Part 4 - Retry and More)

Engineering | Gary Russell | October 09, 2012 | ...

Introduction

This is the fourth part in a series of blog posts highlighting some of the new features available in Spring Integration 2.2 following the recent release of Release Candidate 1. The first part talks about the MongoDB adapters, the second part talks about transaction synchronization; the third part talks about JPA support.

Spring Integration 2.2 introduces the ability to apply one or more localized AOP Advice elements to a message handler. A number of standard Advice classes has also been provided as well as a sample application that explores the features they provide.

Background

For a general introduction to Aspect Oriented Programming (AOP), see the Spring Documentation

With Spring Integration, to-date, it has been possible to apply an <advice-chain/> to a poller. Assuming Direct channels are being used, an AOP Advice in such a chain applies to the entire flow, encompassing all downstream components. There are times, however, when it would be advantageous to advise just an individual endpoint to, say, retry an…

What's New in Spring Integration 2.2 (Part 3 – JPA Support)

Engineering | Gunnar Hillert | October 05, 2012 | ...

This is the third part in a series of blog posts highlighting some of the new features available in Spring Integration 2.2 following the recent release of Release Candidate 1. The first part described the new set of MongoDB adapters. In part two we highlighted the new extended support for synchronizing non-transactional resources with transactions.

In this third part today, we would like to introduce the new Java Persistence API (JPA) support that is provided starting with Spring Integration 2.2. The JPA module is persistence-provider-agnostic and has been tested using:

As part of the new JPA module, we provide several components for retrieving and persisting JPA entity objects:
  • JPA Inbound Channel Adapter
  • JPA Outbound Channel Adapter
  • JPA Updating Outbound Gateway
  • JPA Retrieving Outbound Gateway
Using these components, you can select, create, update and delete entities in your database. Besides persisting data using the entity classes directly, you can also execute queries using the Java Persistence Query Language (JPQL) as well as using native SQL queries. Additionally, named queries are supported as well.

The JPA Sample

In our Spring Integration Samples repository, we provide a sample application demonstrating the JPA support, which we want to use in this blog post to show you how to easily get started.

The provided sample is using an embedded H2 database which contains a single table called PEOPLE. This table is mapped to the Person entity class in package org.springframework.integration.samples.jpa

Spring Remains at the Forefront of Enterprise Java: BigData, NoSQL, and Cloud Portability

Engineering | Adrian Colyer | October 01, 2012 | ...

It’s JavaOne time again and this year you’ll find sessions on how Spring works with Java SE to address Big Data, NoSQL, and enterprise integration challenges. We’ve always worked hard to ensure that Spring remains at the forefront of enterprise Java by providing timely support for emerging trends and technologies. The numbers suggest that our users appreciate this. A recent report from Evans Data ("Spring Source Usage Study," Evans Data Corporation, September 2011) shows:

  • Spring is the framework of choice among expert Java developers. More than two thirds of Java developers are either using Spring today or planning to do so
  • Spring usage continues to grow. More than half of existing Spring users expect to grow or significantly grow their use of Spring.
  • Spring is delivering results. 70% of Spring users indicate at least a 50% productivity gain by using Spring and 73% indicate at least a 50% time reduction to deliver a completed project.
  • Spring users are at the forefront of enterprise Java. Spring users are more cloud ready, and Spring adopters are more likely to have already deployed applications to the cloud.

Spring has always offered deployment flexibility. In the early days this meant a choice of application servers, but now this extends to choice of cloud platforms including our own Cloud Foundry. Spring has always provided strong data access support. In the early days this meant a choice of approaches for accessing a relational database, today this extends to a range of Big Data and NoSQL stores, data processing, and in-memory data grid capabilities. Spring has always valued developer productivity and provided first class support for writing server-side web applications. Today this extends to meet the modern requirements of HATEOAS-based REST APIs.

These are real and pressing concerns within the enterprise today. Cloud is everywhere, and now Big Data is firmly on the enterprise project radar too, creating a range of new requirements:

  • Big Data: the need to store and get analytics from gigabytes, terabytes or petabytes of unstructured or semi-structured data
  • Fast Data: the increasing need for low latency interactions with large sets of data, often driven by today’s mobile and social apps
  • Flexible Data: the need to adapt data access to the most appropriate model for each application
  • Cloud Delivery: the growing demand to access data as a service, provisioned on the cloud of your choice.

The latest Harvard Business Review survey indicates that 85% of organizations have Big Data initiatives planned or in progress. Application developers need to deliver capable, high quality solutions that integrate with this new world and can be deployed anywhere, on or off premise. NoSQL and NewSQL are also being used to address a wide range of use cases including:

  • Managing large data streams of non-transactional data (logs, clickstreams)
  • Fraud detection
  • Timelines (a la Twitter)
  • Synching offline and online data
  • Online gaming
  • Document, catalog and content management
  • Archiving - storing a large continual stream of data that is still accessible on-line
  • Embedded systems (small footprint databases in devices)

See this High Scalability blog entry for more details.

451 Research’s recent survey data highlights the changing shape of the data landscape. One size no longer fits all.

Enterprise developers can start taking advantage of these new technologies today with Spring and the familiar Spring programming model. Spring offers:

The thriving open source community around NoSQL, together with Spring, makes developing for the next generation of data stores and data processing more productive today. We don’t provide a single Java API for all persistence stores; this is not realistic given the fundamental differences between them. But we do provide a common and familiar programming model based on the concepts of templates and, where available, repositories. See Tobias Trelle’s recent InfoQ article for more details.

All in all, JavaOne 2012 is sure to be an action packed week, full of great Java tech talks, keynotes, and sessions including coverage of our own Big Data, NoSQL, and integration initiatives. Developers who want to get hands on with these technologies now also won't want to miss SpringOne 2GX in Washington DC October 15-18, 2012. We have a packed technical agenda covering all aspects of modern enterprise application development.

What's New in Spring Integration 2.2 (Part 2 - Transaction Synchronization)

Engineering | Gary Russell | September 26, 2012 | ...

Introduction

This is the second part in a series of blog posts highlighting some of the new features available in Spring Integration 2.2 following the recent release of Release Candidate 1. The first part talks about the MongoDB adapters.

Spring Integration 2.2 introduces extended support for synchronizing non-transactional resources with transactions.

Background

Spring has provided first class support for synchronizing resources with transactions for many years. In many cases, this facility is used to synchronize transactions managed by multiple transaction managers, in order to implement the 'Best Efforts 1PC' pattern described in Dave Syer's excellent JavaWorld article.

It is often used, for example, to synchronize a JMS commit with a JDBC commit.

Spring Integration has long supported this feature, by defining a <transactional/> element on a poller. This release takes this feature one step further, by allowing synchronization of non-transactional resources with a transaction.

For example, consider a <file:inbound-channel-adapter/> and an Integration application that reads a file when it appears in a directory, and updates a database. This…

This Week in Spring - 25th September, 2012

Engineering | Josh Long | September 26, 2012 | ...

Welcome back to another installment of This Week in Spring! There's so much good stuff to look at this week. Can you believe we're already staring down October?

It's time to think about who or what you are going to be for halloween!

With October comes SpringOne2GX, the premier event for Spring developers. Check out the final schedule of speakers and sessions for this year's event! SpringOne 2GX is your opportunity to learn from development leads and published authors on the Spring, Groovy/Grails, Tomcat and Cloud technologies.

  1. The video from Spring Security lead Rob Winch's webinar introducing Spring Security is now available.
  2. Oleg Zhurakousky kicks off the march to Spring Integration 2.2 with a blog introducing the new MongoDB features in 2.2.
  3. Gary Russell has announced release candidate 1 of Spring Integration 2.2.
          This is intended to be the final release before GA, so users are encouraged to give feedback on this release.  
    
    </LI>
    
  4. Costin Leau has announced the 1.0.0.RC1 release of Spring Shell, which is an extraction of the shell used in Spring Roo and made available through the Spring programming model.
       </LI>
    
  5. Roger Hughes is back at it again, this time with a look at Spring 3.1 caching and configuration options, specifically focusing on setting up a CacheManager.
  6. The vFabric blog has an interesting look at the "split-agent" architecture behind Spring Insight, that allows the separation of the collection stage from the analysis one.
  7. Krishna Prasad has a nice post on obtaining test coverage information for Spring Web Flow applications.
  8. Mattias Severson has a nice post on handling errors in Spring MVC-based RESTful application.
  9. Ronillo Ang's put together a very brief deck on the fundamental pieces of a Spring MVC application.
  10. The JavaCode Geeks blog has a nice post on writing persistence layers with the Spring framework.
  11. L'Artech blog has a cool post on creating the login form for a web application using Spring MVC, in part 3 of a series.

What's New in Spring Integration 2.2.RC1 (Part 1 - MongoDb)

Engineering | Oleg Zhurakousky | September 24, 2012 | ...

Introduction

Spring Integration 2.2.RC1 is out and we will be coming out with a set of blogs in the coming days discussing some of its new features. In this first blog we'll talk about MongoDb Inbound and Outbound Channel Adapters. Full set of discussed samples is available here

MongoDb Outbound Channel Adapter

MongoDb Outbound Channel Adapter allows you to write the Message payload to a MongoDb document store.

You can see the simplest configuration of the MongoDb Channel Adapter below:

<int-mongodb:outbound-channel-adapter id="deafultAdapter"/>

It will be initialized with the default instance of the MongoDbFactory (the default bean name is 'mongoDbFactory') otherwise you can provide its reference via mongodb-factory attribute.

Now you can run the MongoDbOutboundAdapterDemo. After running it open terminal window and start MongoDb CLI

$> mongo

Once in MongoDb CLI type a query:

> db.data.find({})

And you should see the 3 document entries we just created:

{ "_id" : ObjectId("505ff83d03649ed6881d…

Get the Spring newsletter

Thank you for your interest. Someone will get back to you shortly.

Get ahead

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

Learn more

Get support

Tanzu 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