packagefilters;importplay.mvc.EssentialAction;importplay.mvc.EssentialFilter;importjavax.inject.Inject;importjavax.inject.Singleton;importjava.util.concurrent.Executor;/** * This is a simple filter that adds a header to all requests. */@SingletonpublicclassExampleFilterextendsEssentialFilter{privatefinalExecutorexec;/** * @param exec This class is needed to execute code asynchronously. */@InjectpublicExampleFilter(Executorexec){this.exec=exec;}@OverridepublicEssentialActionapply(EssentialActionnext){returnEssentialAction.of(request->next.apply(request).map(result->result.withHeader("X-ExampleFilter","foo"),exec));}}