Skip to content

Instantly share code, notes, and snippets.

@norbert-gaulia
Forked from andreldm/AprConfiguration.java
Created October 24, 2017 11:45
Show Gist options
  • Save norbert-gaulia/e9b5ed1153fe9c56b51d79eec4d20624 to your computer and use it in GitHub Desktop.
Save norbert-gaulia/e9b5ed1153fe9c56b51d79eec4d20624 to your computer and use it in GitHub Desktop.

Revisions

  1. @andreldm andreldm created this gist Feb 1, 2017.
    28 changes: 28 additions & 0 deletions AprConfiguration.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,28 @@
    import org.apache.catalina.LifecycleListener;
    import org.apache.catalina.core.AprLifecycleListener;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
    import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    /**
    * NOTE: You also need to install APR on your system, on Arch Linux the package is called `tomcat-native`.
    */
    @Configuration
    public class AprConfiguration {
    @Value("${server.tomcat.apr.enabled:false}")
    private boolean enabled;

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory container = new TomcatEmbeddedServletContainerFactory();
    if (enabled) {
    LifecycleListener arpLifecycle = new AprLifecycleListener();
    container.setProtocol("org.apache.coyote.http11.Http11AprProtocol");
    container.addContextLifecycleListeners(arpLifecycle);
    }

    return container;
    }
    }