Spring Integration Java DSL Goes Live
Pivotal Software and the Spring Community recently announced the general availability release of the Spring Integration Java DSL. Version 1.0 is available now via the Release Repository with Maven or Gradle. There's also a distributed archive. And a reference guide is available on GitHub here.
Spring Integration is an extension of the Spring programming model designed to supports Enterprise Integration Patterns. The "patterns" are from a programming model laid out in Gregor Hohpe and Bobby Woolf's Google eBook, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions, as well as the author's ideas about channels, adapters, filters, and transformers.
The project page describes the Java DSL (domain-specific language) as "essentially a facade for Spring Integration." It goes on to explain, "The DSL provides a simple way to embed Spring Integration Message Flows into your application using the fluent Builder pattern together with existing Java and Annotation configurations from Spring Framework and Spring Integration as well."
The goal of the Spring Integration project is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code, explained Pieter Humphrey, consulting product marketing manager at Pivotal. The idea is to take the essential advantage of the Spring Framework -- that it encourages devs to code using interfaces and dependency injection to provide Plain Old Java Objects (POJOs) with the dependencies they need to perform their tasks -- another step, by wiring fine-grained components together using a messaging model. It also provides a range of channel adapters and gateways for communicating with external systems.
Spring Integration is one component of the evolving Spring IO Platform, which is a superset of all the projects in the Spring ecosystem. The Platform pulls together the core Spring APIs into "a cohesive and versioned foundational platform for modern applications," Humphrey explained in an earlier interview. He likened it to the Eclipse Release Train, which is an annual, synchronized release of open source Eclipse project updates. Among other things, Spring IO will provide a similarly consistent release cadence for Spring products, he said.
The Spring Integration Java DSL is primarily positioned for Java 8 and its Lambda support, Spring Integration team member Artem Bilan explained in a blog post. The Release Candidate of has been available since late October, so the final GA version included only a few bug fixes.
The Spring Framework is one of the most popular Java application frameworks on the market today. It is a layered Java/J2EE framework based on code published in Rod Johnson's book, Expert One-on-One Java EE Design and Development (Wrox Press, October 2002). Johnson also wrote the first version of the framework.