jetty-alpn-agent
is a JVM agent that enables TLS ALPN (or NPN) extension
support for Java 7 and 8 by loading the correct Jetty alpn-boot
(or npn-boot
) JAR file for the current Java version.
Specify the path to the agent JAR file with a -javaagent
option:
java -javaagent:<path/to/jetty-alpn-agent.jar> ...
To use NPN instead of ALPN, specify the forceNpn=true
option:
java -javaagent:<path/to/jetty-alpn-agent.jar=forceNpn=true ...
Use maven-dependency-plugin
to fetch the agent JAR and add the path to
the downloaded agent JAR to the command line arguments:
<project>
<properties>
<jetty.alpnAgent.version>2.0.0</jetty.alpnAgent.version>
<jetty.alpnAgent.path>${settings.localRepository}/org/mortbay/jetty/alpn/jetty-alpn-agent/${jetty.alpnAgent.version}/jetty-alpn-agent-${jetty.alpnAgent.version}.jar</jetty.alpnAgent.path>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>get-jetty-alpn-agent</id>
<phase>validate</phase>
<goals>
<goal>get</goal>
</goals>
<configuration>
<groupId>org.mortbay.jetty.alpn</groupId>
<artifactId>jetty-alpn-agent</artifactId>
<version>${jetty.alpnAgent.version}</version>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<argLine>-javaagent:${jetty.alpnAgent.path}</argLine>
</configuration>
</plugin>
</plugins>
</build>
</project>
For more information, please refer to the following resources:
- Jetty documentation: ALPN and NPN
- Java API documentation:
java.lang.instrument
This product is licensed under Apache License 2.0.
This product redistributes the original alpn-boot
and npn-boot
JARs, which are licensed under GPLv2 with classpath exception, whose source code is located at:
This library has been initially created by Trustin Lee. The Jetty Project took ownership in February 2016. Version 2.0.0 was the first release under the Jetty Project stewardship.