The Spring Blog

Engineering
Releases
News and Events

This Week in Spring - December 6th, 2016

Welcome to another installment of This Week in Spring! This week I’m in Brisbane, Australia, on the second leg of the YOW! conference circuit. If you’re around, please say hi or find me when YOW! moves to Sydney in a few days.

We’ve got a lot to cover so let’s get to it!

Read more...

Webinar Replay: Bootiful CQRS with Axon - Nov 16

Speakers: Josh Long, Allard Buijze

We get it already! Microservices let you decompose your application into small, singly-focused, reusable and internally consistent bounded contexts - services - deployed over a network.

Great, but that still doesn’t help me get these systems to agree on the worldview of my domain! And that’s because…there is no world view of the model that is correct for all services involved.

Join Axon framework founder and lead, Allard Buijze at Trifork and Spring Developer Advocate Josh Long, for a look at how to integrate different systems with different read and write characteristics using Axon, a CQRS (Command Query Responsibility Segregation) framework that builds on Spring and Spring Boot.

Read more...

Spring Integration 5.0 Milestone 1 Available

We are pleased to announce that the first milestone for the 5.0 version of Spring Integration is now available.

This is a new major version, based on Spring Framework 5.0 and requires Java 8; this is the biggest change so far, but the following are also included:

  • The Java DSL is now rolled into the framework itself; there are some minor changes to the DSL, such as the removal of the .handleWithAdapter() methods and some general Factory classes. A complete discussion of the DSL changes can be found in the Migration Guide.

  • Upgrade to Spring Data Kay.

  • Upgrade to Spring AMQP 2.0.

  • First class support for TCP/UDP has been added to the DSL.

  • Spring Integration is now based on Reactor 3.0 and Messaging Gateway Promise methods now have to be changed to return Mono.

  • You can now configure mid-flow transactions via TransactionHandleMessageAdvice for adviceChain Messaging Annotations attribute and <transactional> sub-element when using XML configuration.

Read more...

Spring Statemachine 1.2.0.RC1 Released

We’re pleased to announce a release candicate of Spring Statemachine 1.2.0.RC1. Artifacts are available from Spring Repository.

What we got into this release:

  • Usual bug fixes and small enhancements
  • New api’s for tracing and monitoring
  • New monitoring sample
  • Full repository config support for Redis, MongoDB and JPA
  • Boot auto-config enhacements
  • Lot of documentation enhacements

Full changes as usual are available from changelog. We’re planning to fire up 1.2.0.RELEASE before xmas and possibly do a second release candicate if any major issues are found.

Read more...

Webinar Dec 8th: Awesome tools to level up your Spring Cloud architecture

Getting up and running with Spring Cloud is a breeze. But once the initial setup is done, it needs to be complemented with an ecosystem that can cope with the extra operational complexity and quality concerns. While running Spring Cloud in production for over a year, Pivotal has integrated some interesting tools for documentation, operations and testing. During this talk you will see a demo of an integrated platform based on Spring Cloud, including tools like Spring Cloud Contract, wiremock, saboteur, ELK, Spinnaker, Spring Boot Admin and more. One of these tools is a dashboard for visualising Pivotal’s Spring Cloud microservice architecture, which has recently been open sourced. Documenting, testing, troubleshooting, and monitoring highly distributed systems in microservice architectures are hard. Finding quality, complementary tools in the wilds of open source can be even harder. Join this webinar for a pragmatic look at taming some of the challenges of running microservices in production.

Read more...

SpringOne Platform 2016 Replay: Building Modern Web Applications with Angular2

Recorded at SpringOne Platform 2016.
Speaker: Sergi Almar
Slides: http://www.slideshare.net/SpringCentral/building-modern-web-applications-with-angular2

Web development has become more complex in the last few years with a plethora of frameworks to choose from and no clear direction. Join Sergi Almar in this presentation to learn why Angular2 is a good fit for Spring developers. We’ll review the Angular2 architecture and see how TypeScript allows us to build more maintable and clean applications having the benefits of a typed language. We’ll look at the Angular2 component based model, dependency injection, data binding, routing, templates…to build modern web applications.

Read more...

SpringOne Platform 2016 Replay: Netflix's Edge Gateway Using Zuul

Recorded at SpringOne Platform 2016.
Speaker: Mikey Cohen, Netflix
Slides: http://www.slideshare.net/SpringCentral/netflixs-edge-gateway-using-zuul

An edge gateway is an essential piece of infrastructure for large scale cloud based services. This presentation details the purpose, benefits and use cases for an edge gateway to provide security, traffic management and cloud cross region resiliency. How a gateway can be used to enhance continuous deployment, and help testing of new service versions and get service insights and more are discussed. Philosophical and architectural approaches to what belongs in a gateway vs what should be in services will be discussed. Real examples of how gateway services, built on top of Netflix’s Open source project, Zuul, are used in front of nearly all of Netflix’s consumer facing traffic will show how gateway infrastructure is used in real highly available, massive scale services.

Read more...

Spring AMQP 2.0 Milestone 1 Available

We are pleased to announce the first milestone of Spring AMQP 2.0 is now available.

For a complete list of changes; see the what’s new in the reference manual and the release notes.

Here are some highlights of this release

  • The framework is now fully Java 8 based; several functional interfaces are provided for convenient Lambda implementations (callbacks, ReplyingMessageListener etc). Java 8 is now a requirement. It is also based on Spring Framework 5.0.

  • The framework uses the new 4.0 amqp-client library.

  • A new DirectMessageListenerContainer is now available alongside the existing SimpleMessageListenerContainer. The new container actually has a simpler architecture and the listener is called directly on the amqp-client thread (hence the name Direct…​). See Choosing a Container to help you decide which container is appropriate for your application.

  • A subclass - DirectReplyToMessageLisenerContainer - is also provided, specifically for using the RabbitMQ Direct ReplyTo feature for request/reply messaging. This is now used by the RabbitTemplate (by default) rather than creating a consumer per request/reply as was the case previously. Consumers are cached for reuse.

  • The AsyncRabbitTemplate now supports direct replyTo, utilizing the new container; previously the async template did not support direct replyTo.

  • @RabbitListener annotations can now be configured with an error handler and the ability to send exceptions to the sender when request/reply messaging is being used.

  • Connection and channel listeners now receive shutdown signals.

  • You can now assign names to connections created by Spring AMQP - the name appears on the RabbitMQ Admin UI.

  • Limited stateful retry (1 redelivery attempt) is now available (when an inbound message does not have a message id) without the need to configure a MissingMessageIdAdvice which has now been removed from the framework. Spring Retry 1.2 is required to support this feature.

  • The log4j appender is no longer provided due to the EOL of log4j (the log4j2 and logback appenders remain available).

Read more...

SpringOne Platform 2016 Replay: Intro to Spring Boot

Recorded at SpringOne Platform 2016.
Speaker: Eddú Meléndez Gonzales
Slides: http://www.slideshare.net/SpringCentral/intro-to-spring-boot

Spring Boot, the new convention-over-configuration centric framework from the Spring team at Pivotal, marries Spring’s flexibility with conventional, common sense defaults to make application development move swiftly and enjoyable. It’s ideally suited for building microservices and distributed systems and makes streamlining devops practices simple. Join Spring Boot contributor Eddú Meléndez Gonzales for a look at what Spring Boot is, why it’s turning heads, why you should consider it for your next application (REST, web, batch, big-data, integration, whatever!) and how to get started.

Read more...