Apache Ambari meets Spring XD

We’re pleased to announce the first version of the Apache Ambari plugin for Spring XD.

Ambari is a cluster provisioning tool to install and manage various Apache projects like HDFS, YARN, Zookeeper or Kafka. Ambari has a concept of a stack definition which is used by both Pivotal and Hortonworks. The stack definition is usually made up of components supported by the maintainer.

This Ambari integration adds support for provisioning Spring XD with Pivotal HD 3.0 and Hortonworks HDP 2.2.

Spring XD is not part of the main Ambari distribution for PHD or HDP. However, it is easy to extend an existing Ambari installation via a simple RPM installation which modifies existing stack definitions.


Spring XD 1.2 RC1 Released

On behalf of the Spring XD team, I am very pleased to announce that the Spring XD 1.2 Release Candidate is now available for download. You can also install using rpm

The 1.2 RC1 release includes bug fixes as well as several new features and enhancements.

  • Apache Ambari plugin to automate the deployment of Spring XD to a Hadoop cluster. Read more in the release blog for the plugin.
  • A new Analytics tab in the UI that allows you to easily view gauges, counters, field-value counters and aggregate counters.
  • Performance improvements for the Kafka Message Bus that places it on par with the performance benchmark applications that ship with Kafka. An upcoming blog will discuss XD performance in more detail
  • Improved HA support for the Rabbit Message Bus, XD containers connect to the Rabbit Broker that hosts the queue that is being consumed
  • Support for the Sqoop metastore and other Sqoop integration improvements
  • Support for multiple topics in the Kafka source.
  • Add rolloverTime option to HDFS sink
  • Support incremental data import with jdbchdfs job
  • Ability to tap Spark streaming processors
  • Support arbitrary JavaMail properties in the mail source
  • Several new source/sink modules
  • The gpfdist sink is now included in the XD distribution
  • Performance improvements for reactor based processor
  • Support for Oracle as a batch repository
  • Change from log4j to Logback logging framework

Spring 4 and Java 8 adoption

As Josh mentioned in “This Week in Spring” already, Eugen Paraschiv recently did a noteworthy survey on the adoption of Spring 4 and Java 8 as well as Spring Boot:

Those are interesting numbers for us. Within the Spring universe, Java 8 adoption seems to be approaching 40%! And in terms of Spring Framework versions, Spring 4 is at 65% already, which I’m really happy to see. Even taking into account that a large part of the corporate use of Spring might not be represented in those numbers, that’s a great trend. And Pivotal’s early production support for Spring 4 on JDK 8 certainly helped in the corporate world as well.


This Week in Spring - June 2, 2015

Welcome to another installment of This Week in Spring! This week I’m in New York City in advance of QCon NYC next week talking to customers and working with the local Pivotal Labs team. If you’re around be sure to say hi and let’s talk code.

So, as usual, we’ve got a lot to cover so let’s get to it.

  1. Our pal Nicolas Frankel’s put together an awesome post on modularizing configuration for integration testing with Spring

First Milestone of Spring Data Release Train Gosling Available

On behalf of the Spring Data team, I am happy to announce the first milestone of the Spring Data release train Gosling. The release ships with 164 tickets fixed as well as Spring Data KeyValue joining the Spring Data release train with an initial milestone. The highlights of the release include:

  • Spring 4.1 as a new minimum baseline.
  • Simplified support for adding custom methods to all repositories throughout the individual modules (see this example).
  • Declarative ad-hoc JPA 2.1 fetch graph declarations via @EntityGraph on repository methods.
  • Gemfire 8.1 support including multi-index definition operations.
  • SpEL expressions in @Query as well as support for $geoIntersects for MongoDB.
  • Enhanced ZSET support for Spring Data Redis including ZRANGEBYLEX.
  • A Spring Data REST module shipping the HAL browser as well as support for conditional GETs.
  • Map-backed repositories (see this example)
  • Support for Neo4J 2.2.
  • Support for derived deleteBy... queries and bulk updates in Spring Data Elasticsearch.

Spring Statemachine 1.0.0.M2 Released

We’re pleased to announce a second milestone release of Spring Statemachine 1.0.0.M2.

With this milestone we focused on features in regions and pseudostates. Regions provide more sophisticated functionality for a parallel execution of a states machines and pseudostates will bring more functionality for working with initial, terminate, history, choice, fork and join states.

One might ask what is a region and how it works with a state machine. A state machine is a specialization of a region where orthogonal regions are composed of a multiple independent state machines. This is a difficult concept to understand so we did a sample to demonstrate this feature.