Forwardings Requests to static content in Spring Boot Webflux

The following WebFilter redirects incoming requests for / to a static HTML file, index.html. ToIndexPageRedirection.java package com.hascode.tutorial; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebFilter; import org.springframework.web.server.WebFilterChain; import reactor.core.publisher.Mono; @Component public class ToIndexPageRedirection implements WebFilter { @Override public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) { if (exchange.getRequest().getURI().getPath().equals("/")) { return chain.filter( exchange.mutate().request( exchange.getRequest().mutate().path("/index.html").build() ).build() ); } return chain.filter(exchange); } } Ressources: JavaDocs WebFilter

August 16, 2022 · 1 min · 59 words · Micha Kops

Transforming JSON Structures with Java and JOLT

When it comes to web-services (especially RESTful web-services), configuration files or other data-descriptors, the JavaScript Object Notation, short: JSON is often used as format of choice. As the task arises to transform these JSON structures, I have seen a variety of different approaches from converting JSON into XML using JAX-B, applying XSLT, transforming into JSON again on the one hand to loading JSON structures into Hash-maps of Hash-maps (..) and manually removing single elements from these collections on the other hand. ...

January 29, 2017 · 8 min · 1520 words · Micha Kops

Unix-like data pipelines with Java 8 Streams and UStream

We all love the simplicity when chaining commands and pipes in an Unix derivative environment. UStream takes this approach and extends Java 8′s stream API to mimic some of the well known commands and apply them on streams. In the following tutorial, I’d like to share some slim examples for using UStream. Figure 1. Data pipelines with UStream Dependencies We simply need to add one dependency to our pom.xml (using Maven): io.github.benas:ustream:0.2 ...

November 8, 2015 · 4 min · 659 words · Micha Kops

JAX-RS 2.0 REST Client Features by Example

JAX-RS 2.0 aka JSR 339 not also specifies the API to build up a RESTful webservice but also enhances the client side API to ease up the process of writing a client for a REST service. In the following tutorial we’re building up a client for a ready-to-play REST service and explore the different new options e.g. how to handle requests in a synchronous or asynchronous way, how to add callback handlers for a request, how to specify invocation targets to build up requests for a later execution or how to filter the client-server communication using client request filters and client response filters. ...

December 30, 2013 · 10 min · 1941 words · Micha Kops

Playing with Java 8 Lambda Expressions

Many articles have been written about JSR 335 aka Lambda Expressions for the JavaTM Programming Language but I like to try new things out for myself and that’s why I’d like to share my snippets here. Figure 1. Lambda Hacking using the NetBeans Developer Version Setup JDK and IDE It takes just some short steps to setup your environment … Download and install the Java 8 JDK with lambda support Download and install the NetBeans IDE Development version Configure NetBeans to use the Java 8 JDK (> Manage Platforms…) ...

September 22, 2013 · 5 min · 1012 words · Micha Kops

jq Snippets

Sample JSON File Sample JSON File containing well known programmers that we use for the following examples coders.json [ { "name": "Bjarne Stroustrup", "languages": [ { "name": "C++", "year_created": 1983 } ], "details": { "nationality": "Danish", "awards": ["IEEE Computer Society Computer Pioneer Award", "Charles Stark Draper Prize"] } }, { "name": "Guido van Rossum", "languages": [ { "name": "Python", "year_created": 1991 } ], "details": { "nationality": "Dutch", "awards": ["Free Software Foundation Award for the Advancement of Free Software", "NLUUG Award"] } }, { "name": "James Gosling", "languages": [ { "name": "Java", "year_created": 1995 } ], "details": { "nationality": "Canadian", "awards": ["Order of Canada", "The Economist Innovation Award"] } }, { "name": "Dennis Ritchie", "languages": [ { "name": "C", "year_created": 1972 }, { "name": "Unix", "year_created": 1969 } ], "details": { "nationality": "American", "awards": ["Turing Award", "National Medal of Technology"] } }, { "name": "Brendan Eich", "languages": [ { "name": "JavaScript", "year_created": 1995 } ], "details": { "nationality": "American", "awards": ["Webby Award"] } } ] ...

March 1, 2010 · 2 min · 223 words · Micha Kops