Mark Fisher

Mark Fisher

Functions as a Service tech lead, Spring Integration founder | Cambridge, MA

Mark has been a member of the Spring team for over a decade, contributing to the Spring Framework and several other projects. He founded Spring Integration in 2007 and is one of the authors of Spring Integration in Action, published by Manning in 2012. He contributes to Spring Cloud Stream, Spring Cloud Data Flow and Spring Cloud Function and is currently focused on Serverless and Functions as a Service.

Blog posts by Mark Fisher

Introducing Spring Cloud Function

Engineering | July 05, 2017 | ...

Spring Cloud Function is a new project with the following high-level goals:

  • Promote the implementation of business logic via functions.
  • Decouple the development lifecycle of business logic from any specific runtime target so that the same code can run as a web endpoint, a stream processor, or a task.
  • Support a uniform programming model across serverless providers, as well as the ability to run standalone (locally or in a PaaS).
  • Enable Spring Boot features (auto-configuration, dependency injection, metrics) on serverless providers.

Just as Spring has always promoted a plain old java object (POJO) based programming model, Spring Cloud Function promotes a programming model based on plain old functions. By that we mean the core interfaces defined in the java.util.function package: Function, Consumer, and Supplier

Spring Cloud Data Flow 1.0.0 M3 Released

Releases | April 29, 2016 | ...

On behalf of the team, I am pleased to announce the 1.0.0.M3 release of Spring Cloud Data Flow.

Over the last few months, we have added exciting new features and improvements to the overall orchestration of data microservices on a variety of platforms. We have also made some changes that significantly benefit developers, such as exposing Spring Boot Starters for all of the stream and task applications we publish. Following are some of the highlights from this release:

  • Provides the foundation for the following Data Flow Server implementations that have also been released today:
  • Introduces and builds upon the Spring Cloud Deployer Service Provider Interface
    • New multi-platform application deployment model factored out of Spring Cloud Data Flow itself for general purpose use, including AppDeployer and TaskLauncher to deploy long-running and short-lived microservices, respectively.
    • Improved application resolution strategy with support for maintaining a registry of applications as http, file, maven, docker, or hdfs artifacts
  • Builds upon Spring Cloud Stream 1.0.0.RC3
  • Builds upon Spring Cloud Task 1.0.0.M2
  • Improves DSL support for streaming and batch pipelines
  • Adds "tap" support for streaming and batch pipelines
  • Applications
    • Supports out-of-the-box stream applications built from the new Stream Application Starters project (auto-generated apps for both Kafka and RabbitMQ binders)
    • Supports out-of-the-box task applications built from the new Task Application Starters project
    • Adds several new out-of-the-box stream and task applications
    • Improves custom application registration mechanics from the Shell and Dashboard
  • Dashboard
    • New and improved Dashboard
    • Adds Batch and Task support
    • Adds "Apps" tab to monitor and manage out-of-the-box and custom applications
  • Flo for Spring Cloud Data Flow
    • Modern look and feel with several UX improvements around the palette, auto-layouts, auto-linking, canvas, nodes, node connectors, and many more
    • Adds support for a scriptable-transform processor that accepts ruby, groovy, python, or javascript code for runtime compute logic
    • Adds visual distinction between primary and tap’d pipelines
    • Adapts to Angular style tooltips
    • Graph layout optimizations
  • Improved IT and TCK tests

  • Adds new samples
  • Adds new logo

For the complete list of features, bug-fixes, and improvements, please refer to the closed 1.0.0.M3 GitHub…

Introducing Spring XD

Engineering | April 23, 2013 | ...

Today we are officially kicking off a new initiative called Spring XD whose theme is "tackling Big Data complexity"1.

The Spring Data team has been incredibly busy over the past few years, not only providing support for NoSQL datastores but also simplifying the development experience with Hadoop. With the creation of the Spring for Apache Hadoop project, we made it easier to get started developing Hadoop applications by providing a rich configuration model and a consistent programming model across Hadoop ecosystem projects such as Hive and Pig. As Spring users would expect, one can:

  1. Configure and run MapReduce jobs as container managed objects.
  2. Use template helper classes for HDFS, HBase, Pig and Hive to remove boilerplate code from your applications.

Spring…

Spring Integration 2.2.0 GA has been released

Releases | December 03, 2012 | ...

We are pleased to announce that Spring Integration 2.2 is now GA.

The artifacts are available in the SpringSource Repository as well as Maven Central, or you can download the zip here.

For a big picture view, please read the "what's new" section of the reference manual.

For more detail on some of the main additions, refer to the following blog series:

Part 1: MongoDB Adapters Part 2: Transaction Synchronization Part 3: JPA Support Part 4: Retry and More

Spring Integration 2.1 is now GA

Engineering | January 09, 2012 | ...

Spring Integration 2.1 has been released! You can download it here or configure your Maven POM. This version is the result of more than one full year of work, and the team has resolved hundreds of issues since Spring Integration 2.0 was released. Interestingly, it has been 4 years and a few days since the very first public release of Spring Integration (0.5, released on Jan 3rd 2008). In this post, I simply want to provide a quick overview of the main new features of 2.1.

RabbitMQ/AMQP support

In the 'spring-integration-amqp' module, we have Channel Adapters for one-way messaging as well as Gateways for request/reply. The adapters and gateways can be used for inbound and/or outbound integration with a RabbitMQ broker. We also have AMQP-backed Message Channel implementations - both point-to-point and publish/subscribe - that can be used anywhere in the middle of a flow. For more information, see this section

Spring Integration 2.1 Release Candidate 1 is now available

Releases | November 23, 2011 | ...

We are pleased to announce that Spring Integration 2.1 Release Candidate 1 is now available. Release Notes | Documentation | Download

If you would like to grab the artifacts via Maven, please use the following repository and dependency configuration (and replace 'core' with any other modules you want to use, e.g. 'amqp', 'gemfire', 'http'):

<repository>     <id>repository.springframework.maven.milestone</id>     <name>Spring Framework Maven Milestone Repository</name>     <url>http://maven.springframework.org/milestone&lt;/url> </repository>

<dependency>     <groupId>org.springframework…

Spring AMQP 1.0 GA released

Releases | August 25, 2011 | ...

We are pleased to announce that Spring AMQP 1.0 GA (for Java) has been released! You can find links to all of the resources (documentation, samples, source code, forum, issue tracker, etc) at the Spring AMQP Home Page. The artifacts are available in the SpringSource Maven repository as well as Maven Central.

This project has been extremely popular during its milestone and release-candidate phases, and we would like to thank those of you in the community who have provided valuable feedback and raised JIRA issues along the way. We are looking forward to watching the community grow even more now…

Chatting in the Cloud: Part 1

Engineering | August 16, 2011 | ...

Last week the availability of RabbitMQ as a service on Cloud Foundry was announced. Any application running on Cloud Foundry may now send and receive messages via a RabbitMQ broker that can be provisioned as a service with a single command (e.g. 'vmc create-service rabbitmq'). Instances of the messaging service may be shared between applications, and since RabbitMQ is a protocol-based broker, those applications may even be written in different languages. So, this is an exciting announcement for those interested in modular, polyglot, event-driven applications running in the cloud. I will be…

Cloud Foundry for Spring Developers

Engineering | 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…

Maven Configuration for Spring Integration

Releases | November 30, 2010 | ...

Dependencies

Add the following within the <dependencies> section of your POM:

<dependency>
   <groupId>org.springframework.integration</groupId>
   <artifactId>spring-integration-core</artifactId>
   <version>2.2.3.RELEASE</version>
</dependency>

That will make the "spring-integration-core" module available to your project (the "core" includes the Messaging API and Enterprise Integration Patterns support). If you want to use any of the adapters or support for XML, Groovy, and/or Spring Security, you can instead add one or more of the following as the "artifactId" value:

  • spring-integration-event
  • spring-integration-feed
  • spring-integration-file
  • spring-integration-ftp
  • spring-integration-groovy
  • spring-integration-http
  • spring-integration-ip
  • spring-integration-jdbc
  • spring-integration-jms
  • spring-integration-jmx
  • spring-integration-mail
  • spring-integration-rmi
  • spring-integration-security
  • spring-integration-sftp
  • spring-integration-stream
  • spring-integration-test
  • spring-integration-twitter
  • spring-integration-ws
  • spring-integration-xml
  • spring-integration-xmpp

NOTE: Any of the modules listed above will bring the "core" module in as a transitive dependency, so you do not need to include it in the POM if you are using at least one from that list. Also, some…

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