|
@@ -1,22 +1,18 @@
|
|
|
package benchmark.filter;
|
|
|
|
|
|
-import io.micronaut.core.async.publisher.Publishers;
|
|
|
-import io.micronaut.http.HttpRequest;
|
|
|
import io.micronaut.http.MutableHttpResponse;
|
|
|
import io.micronaut.http.annotation.Filter;
|
|
|
-import io.micronaut.http.filter.HttpServerFilter;
|
|
|
-import io.micronaut.http.filter.ServerFilterChain;
|
|
|
+import io.micronaut.http.annotation.ResponseFilter;
|
|
|
+import io.micronaut.http.annotation.ServerFilter;
|
|
|
import io.micronaut.scheduling.annotation.Scheduled;
|
|
|
-import org.reactivestreams.Publisher;
|
|
|
|
|
|
import java.time.ZonedDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.function.Function;
|
|
|
|
|
|
-@Filter(Filter.MATCH_ALL_PATTERN)
|
|
|
-public class ServerHeaderFilter implements HttpServerFilter {
|
|
|
+@ServerFilter(Filter.MATCH_ALL_PATTERN)
|
|
|
+public class ServerHeaderFilter {
|
|
|
|
|
|
- private volatile Function<MutableHttpResponse<?>, MutableHttpResponse<?>> addHeader;
|
|
|
+ String dateHeader;
|
|
|
|
|
|
ServerHeaderFilter() {
|
|
|
setDateHeader();
|
|
@@ -24,20 +20,12 @@ public class ServerHeaderFilter implements HttpServerFilter {
|
|
|
|
|
|
@Scheduled(fixedRate = "1s")
|
|
|
public void setDateHeader() {
|
|
|
- addHeader = new Function<>() {
|
|
|
-
|
|
|
- private final String dateHeader = DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now());
|
|
|
-
|
|
|
- @Override
|
|
|
- public MutableHttpResponse<?> apply(MutableHttpResponse<?> mutableHttpResponse) {
|
|
|
- return mutableHttpResponse.header("Date", dateHeader);
|
|
|
- }
|
|
|
- };
|
|
|
+ dateHeader = DateTimeFormatter.RFC_1123_DATE_TIME.format(ZonedDateTime.now());
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public Publisher<MutableHttpResponse<?>> doFilter(HttpRequest<?> request, ServerFilterChain chain) {
|
|
|
- return Publishers.map(chain.proceed(request), addHeader);
|
|
|
+ @ResponseFilter
|
|
|
+ public void addDateHeader(MutableHttpResponse<?> mutableHttpResponse) {
|
|
|
+ mutableHttpResponse.header("Date", dateHeader);
|
|
|
}
|
|
|
|
|
|
}
|