close

Spring Tips: Manipulating the Platform with the Spring Cloud Cloud Foundry Java Client Autoconfiguration

Hi, Spring fans! Welcome to another installment of Spring Tip! In this installment, we look at something near and dear to my heart (and my @author tag!) - the Cloud Foundry Java client auto-configuration.

What is Cloud Foundry?

Cloud Foundry is an open-source PaaS. It has a lot of flexibility. I’m in love with it if I’m honest. It’s simple. I love things like it that give me flexibility without requiring too many sacrifices at the altar of the YAML deity. It’s an opinionated platform as a service. You give the platform an application, and it deploys them. You upload a spring boot app, and it figures out that the app is a standalone, self-contained, so-called “fat” .jar and it downloads the required JDK, configures the necessary amount of memory and then creates a filesystem with your app, the JDK, the right configuration, and then turns it all into a container.

Read more

This Week in Spring - March 31st, 2020

Hi, Spring fans! Welcome to another extra-meaty installment of This Week in Spring! This week, we’ve got a ton of stuff to look at so I won’t belabor it!

Read more

@DynamicPropertySource in Spring Framework 5.2.5 and Spring Boot 2.2.6

Recently, when talking about testing Spring Boot applications at Spring IO and SpringOne Platform, I’ve mentioned Testcontainers and discussed the boilerplate involved in configuring your tests to use the service running inside the container. I’m delighted to say that, with the recent Spring Framework 5.2.5 release, that boilerplate is no more.

Prior to the changes that we’ve just released, your integration test would look similar to the following:

@SpringBootTest
@Testcontainers
@ContextConfiguration(initializers = ExampleIntegrationTests.Initializer.class)
class ExampleIntegrationTests {

    @Container
    static Neo4jContainer<?> neo4j = new Neo4jContainer<>();

    static class Initializer implements
            ApplicationContextInitializer<ConfigurableApplicationContext> {

        @Override
        public void initialize(ConfigurableApplicationContext context) {
            TestPropertyValues.of("spring.data.neo4j.uri=" + neo4j.getBoltUrl())
                    .applyTo(context.getEnvironment());
        }

    }

}
Read more

Liveness and Readiness Probes with Spring Boot

The Spring Boot team is actively working on a Kubernetes theme for the next 2.3.0 release. After Docker images creation and Graceful Shutdown support, it’s now time to introduce Liveness and Readiness Probes support.

With our 2.2.0 release, Spring Boot shipped with the Health Groups support, allowing developers to select a subset of health indicators and group them under a single, correlated, health status.

Even with this new feature, we’ve found that we could provide more to the Spring community, with more opinions and guidance when it comes to Kubernetes.

Read more

Spring Tips: Spring Cloud Loadbalancer

speaker: Josh Long (@starbuxman)

Hi, Spring fans! Welcome to another installment of Spring Tips! In this installment, we’re going to look at a new feature in Spring Cloud, Spring Cloud Loadbalancer. Spring Cloud Loadbalancer is a generic abstraction that can do the work that we used to do with Netflix’s Ribbon project. Spring Cloud still supports Netflix Ribbon, but Netflix Ribbons days are numbered, like so much else of the Netflix microservices stack, so we’ve provided an abstraction to support an alternative.

Read more

This Week in Spring - March 24th, 2020

Hi, Spring fans! Welcome to another installment of This Week in Spring! It’s a beautiful Tuesday for any number of reasons. I presented in the DevDotNext digital edition show just a few hours ago - that was a lot of fun and I highly recommend you consider attending the next editions (online or - assuming we get past this pandemic - online).

Today is also the 16th birthday of Spring Framework 1.0 - released this day in 2004! What a journey! And of course, the person who announced that that version, the amazing Thomas Risberg (@trisberg), is one of many people who were there then and are still here on the Spring team now. Spring’s come a long way since then! Check out the blog itself. If you want to see the original blog in all of its early-2000s glory, it’s here on the Internet Wayback machine.

Read more

Getting Started With RSocket: Spring Boot Request-Stream

Time: about 15 minutes.

Previously in this series, you experimented with request-response and fire-and-forget messaging in Spring Boot with RSocket. This time you’ll try another of RSocket’s fresh new messaging models — request-stream.

In this exercise, you’ll learn how to stream data using the conventional ‘client-requests-a-server-stream’ approach.

One thing that I haven’t mentioned until now is that RSocket lets you use its messaging models in either direction. Therefore, if you wanted to use the less common ‘server-requests-a-client-stream’ model, that’s no problem for RSocket. Plus, there are lots of non-java RSocket implementations to choose from, including Go, Javascript, and .Net—ideal if your architecture includes platforms where Java isn’t perhaps the best fit.

Read more

Spring Cloud Data Flow 2.5.0.M1 Released

Spring Cloud Data Flow team is pleased to announce the first milestone release of 2.5.0.M1.

The first milestone release of 2.5.0 consists of performance improvements addressed at application status retrieval for streams in Cloud Foundry. This also involves revamping the runtime application view page along with better pagination for streams at the SCDF dashboard. You can see more information on these improvements on the recently released SCDF 2.4.2 GA.

This milestone release also consists of some important bug fixes mentioned in here

Read more