Cloud Foundry for Spring Developers

Engineering | Mark Fisher | April 12, 2011 | ...

By now, many of you have probably seen the Cloud Foundry webinar and Rod's blog from earlier today. I'd like to provide a quick follow-up that features a "hello-spring" sample application deployed in the cloud. Thanks to Cloud Foundry, there's practically no learning curve at all.

Before we get started, let's consider three goals that have driven Spring from day one:

  1. focus on simplicity and productivity to make developers lives easier
  2. support innovative technologies in a consistent way
  3. ensure portability of applications across deployment environments

Then, consider those same three goals in relation to Cloud Foundry:

  1. Simplicity and Productivity: Deploying a Spring application to the cloud is as simple as dragging and dropping within SpringSource Tool Suite, and even when building an application to run in the cloud, developers can take advantage of the productivity gains enabled by Roo and Grails exactly as they normally would.
  2. Consistent Innovation: Projects like Spring Social and Spring Data embrace innovative technologies such as Twitter and non-relational data stores that are increasingly popular for cloud-based applications, and they do so in ways that are consistent with the existing Spring platform. Cloud Foundry provides services to support such applications. RabbitMQ will be available as a cloud service soon, so the same applies to applications that rely on RabbitMQ for messaging via Spring AMQP and Spring Integration.
  3. Portability: The cloud is first and foremost a new deployment environment, and yet it's easy to create an application that can run in and out of the cloud without even swapping configuration files.

With those goals in mind, we've designed a sample application that provides an introduction to Cloud Foundry for Spring developers. This is the first of many…

Launching Cloud Foundry, The Industry’s First Open PaaS

Engineering | Rod Johnson | April 12, 2011 | ...

Today, we have exciting news for developers: the launch of Cloud Foundry: an open source “Platform as a Service” (PaaS) from VMware allowing easy deployment of applications written using Spring, Rails and other modern frameworks. Cloud Foundry breaks new ground in PaaS through supporting a choice of programming models; a choice of services from VMware and third parties; a choice of clouds for deployment; and being delivered in open source.

Since the creation of Spring, we’ve remained faithful to a few core values: notably, Productivity and Portability. Today, these proven values extend beyond Spring and Java into VMware’s broader cloud computing strategy. Spring makes developers more productive by reducing time spent away from business logic; Cloud Foundry eliminates time spent installing and configuring infrastructure such as application servers and JVMs. Spring facilitates portability between deployment destinations; Cloud Foundry is both a key deployment destination itself and a layer that…

Spring Data Document with MongoDB Support 1.0.0.M2 Released

Releases | Thomas Risberg | April 09, 2011 | ...

Dear Spring Community,

I am pleased to announce that the second milestone release of the Spring Data Document 1.0 project with MongoDB support is now available!

The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.

The Spring Data MongoDB subproject provides integration with the MongoDB document database.

Downloads | JavaDocs | Reference Documentation | Changelog

To learn more about the project, visit the Spring Data Spring Data MongoDB Page

Spring.NET Visual Studio 2010 Extension 1.0.0 is now available

Releases | sbohlen | April 07, 2011 | ...

Dear Spring Community,

We are pleased to announce that the Spring.NET Visual Studio 2010 Extension 1.0.0 is now available.

Download | Support | DocumentationCommunity

This release of the Spring.NET Visual Studio 2010 Extension provides Intellisense support in the following areas for editing Spring XML configuration files:

  • Type completion
  • Property name completion
  • Constructor argument name completion
  • Property value completion for property of type 'Type', 'Enum' and 'Boolean'


In addition, this release also provides for the following enhancements to the Visual Studio 2010 XML Editor experience:
  • Snippets integration (inline or by menu)
  • Quickinfo tooltip for properties and types

A brief screencast of this tool in action can be watched here.

This project is hosted at GitHub.

As always, we encourage feedback from the community on this and all aspects of Spring.NET!

Spring CodeConfig for .NET 1.0.0 is now available

Releases | sbohlen | April 07, 2011 | ...

Dear Spring Community,

We are pleased to announce that Spring CodeConfig for .NET 1.0.0 is now available.

Download | NuGet Package | Support | DocumentationCommunity

		<p>Note also that Spring CodeConfig for .NET is also available as <a href="http://nuget.org/List/Packages/Spring.CodeConfig" target="_new">a NuGet Package</a>.</p>

This release contains the following major features:

  • Code-based configuration similar to the @Configuration support in Spring Java
  • Declarative Assembly Scanning to detect Configuration Classes
  • Support for mixing and matching Code-based and XML-based configuration metadata
  • Extension Methods to support Code-Based Configuration on existing Application Contexts
  • Bootstrapping the Context configuration from either Code-First or XML-First approaches

Spring Data Key Value (Redis + Riak) 1.0.0.M3 Released

Releases | Costin Leau | April 06, 2011 | ...

Dear Spring Community,

I am pleased to announce the third milestone release of the Spring Data Key Value 1.0 project, with support for Redis and Riak, is now available!

Downloads | JavaDocs | Reference Documentation | Changelog

This release introduces several new features for Redis, such as:

  • Support for a new Redis client, RJC bringing the number of Redis connectors to three
  • New object-hash (and vice-versa) mapping
  • Improved exception hierarchy
  • Dedicated support for SORT, SORT/GET pattern and returned bulk values

Additionally, a new sample is now available that showcases the various Spring Data features: RetwisJ a Twitter-clone based entirely on Redis.

We look forward to your feedback on this forum or in the issue tracker.

This week in Spring: April 5th, 2011

Engineering | Josh Long | April 05, 2011 | ...

This year is moving along at a very quick clip!

We've already seen a torrent of new and exciting releases for Spring users and just today news of perhaps the most exciting thing yet went out. If you didn't get it because you aren't, for example, a registered SpringSource Tool Suite user, then here are the salient bits:

Next Tuesday - April 12th - VMware is hosting a webinar - "Spring into the cloud!" - with the provocative explanation, "Spring has already simplified enterprise Java development. Next up is cloud development."

The webinar will be presented for both Europe and North America timezones. See this page for details, and don't…

Spring Data Graph - Neo4j Support 1.0.0.RC1 Released

Releases | Thomas Risberg | April 05, 2011 | ...

Dear Spring Community,

We are pleased to announce that the first release candidate (1.0.0.RC1) of the Spring Data Graph 1.0 project with Neo4j support is now available!

The primary goal of the Spring Data project is to make it easier to build Spring-powered applications that use new data access technologies such as non-relational databases, map-reduce frameworks, and cloud based data services.

The Graph Neo4j module provides integration with the Neo4j graph database.

Downloads | JavaDocs | Reference Documentation | Changelog

To learn more about the project, visit the Spring Neo4j Homepage.

The…

Spring Data JDBC Extensions with Oracle Database Support 1.0.0.M1 Released

Releases | Thomas Risberg | April 01, 2011 | ...

Dear Spring Community,

We are pleased to announce that the first milestone release (1.0.0.M1) of the Spring Data JDBC Extensions 1.0 project with Oracle Database support is now available!

The new Spring Data JDBC Extensions project was created to provide additional support for vendor specific JDBC extensions. The bulk of the support is made up of code ported from the SpringSource project "Advanced Pack for Oracle Database" that was available for support subscription customers. We are now making this code available to all Spring users and any new developments will be made in the Spring Data…

Routing Topologies for Performance and Scalability with RabbitMQ

Engineering | Helena Edelson | April 01, 2011 | ...

Designing a good routing topology for a highly-scalable system can be like mapping a graph. Many things need to be considered, for instance the problem, constraints of the environment, those of the messaging implementation, and performance strategies. What we often run up against is a lack of flexibility and expressivity in fitting routing to our needs. Here is where RabbitMQ stands out.

Basic Concepts

Anyone familiar with messaging in general knows the concept of routing messages from A to B. Routing can be simplistic or quite complex, and when designing a routing topology for a scalable, complex system it must be elegant. Kept clean and decoupled, components can throttle nicely with varying loads. This can be expressed as a simple map or complex graph. In its simplest form a routing topology can be expressed as nodes, for instance hierarchical nodes:

Hierarchical nodes in message routing topology

For those new to RabbitMQ or AMQP (note that Rabbit works with many protocols including STOMP, HTTP, HTTPS, XMPP, and SMTP), here are some basic component descriptions:
  • Exchange The entity within the server which receives messages from producer applications and optionally routes these to message queues within the server
  • Exchange type The algorithm and implementation of a particular model of exchange. In contrast to the "exchange instance", which is the entity that receives and routes messages within the server
  • Message queue A named entity that holds messages and forwards them to consumer applications
  • Binding An entity that creates a relationship between a message queue and an exchange
  • Routing key A virtual address that an exchange may use to decide how to route a specific message
For point-to-point routing, the routing key is usually the name of a message queue. For topic pub-sub routing the routing key is usually hierarchical in nature:

api.agents.agent-{id}.operations.{operationName}

In more complex cases the routing key may be combined with routing on message header fields and/or its content. An exchange examines a message's properties, header fields, body content, and possibly data from other sources, then decides how to route the message. A binding pattern derived from the above routing key idea might look like api.agents..operations. where we bind exchange E1 to queue Q1 with binding pattern api.agents..operations. so that any messages sent to E1 route to Q1

Get the Spring newsletter

Stay connected with the Spring newsletter

Subscribe

Get ahead

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

Learn more

Get support

Tanzu Spring 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