[jetty-dev] Jetty upgrade with ALPN

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

[jetty-dev] Jetty upgrade with ALPN

Neha Munjal
Hi,

We are currently using Jetty 9.4.7.v20170914 in our product. Essentially we use Jetty client libraries to be able to perform HTTP/2 communication.
With this version for ALPN to work, we start the JVM by setting Xbootclasspath argument as:
-Xbootclasspath/p:<path to alpn-boot-8.1.12.v20180117.jar> (we are on JDK 8)

Now we are in the process of upgrading to Jetty v9.4.15.v2019021 and I see the following notes in ALPN section on the Jetty prject page:

"To get ALPN working with the Jetty ALPN Boot library, you need:

to start the JVM with the Jetty ALPN Boot library in the boot classpath
to have the jetty-alpn-openjdk8-client artifact or the jetty-alpn-openjdk8-server artifact in the classpath"

I have some questions around this:

1. We definitely need the ALPN boot library in the boot class path?
2. Do we also need jetty-alpn-openjdk8-client artifact in the class path to be set?
3. We have test cases that use embedded Jetty server and so I assume that for the test cases to work, we would need jetty-alpn-openjdk8-server in the classpath.

Please confirm answers to above 3 questions, needed for this upgrade.

Thanks
Neha

_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev
Reply | Threaded
Open this post in threaded view
|

Re: [jetty-dev] Jetty upgrade with ALPN

Joakim Erdfelt-8
On Thu, Apr 25, 2019 at 6:43 PM Neha Munjal <[hidden email]> wrote:
Hi,

We are currently using Jetty 9.4.7.v20170914 in our product. Essentially we use Jetty client libraries to be able to perform HTTP/2 communication.
With this version for ALPN to work, we start the JVM by setting Xbootclasspath argument as:
-Xbootclasspath/p:<path to alpn-boot-8.1.12.v20180117.jar> (we are on JDK 8)

See alpn versions list to know what version of alpn-boot you need for the JVM you are running.
 

Now we are in the process of upgrading to Jetty v9.4.15.v2019021 and I see the following notes in ALPN section on the Jetty prject page:

"To get ALPN working with the Jetty ALPN Boot library, you need:

to start the JVM with the Jetty ALPN Boot library in the boot classpath
to have the jetty-alpn-openjdk8-client artifact or the jetty-alpn-openjdk8-server artifact in the classpath"

I have some questions around this:

1. We definitely need the ALPN boot library in the boot class path?

Yes, as that's how ALPN is added to Java 8.  (If you use Java 9+ then this requirement goes away)
 
2. Do we also need jetty-alpn-openjdk8-client artifact in the class path to be set?

Yes, as Java 8 does not have ALPN support built in. (ALPN support in java was introduced in Java 9)
 
3. We have test cases that use embedded Jetty server and so I assume that for the test cases to work, we would need jetty-alpn-openjdk8-server in the classpath.

Yes, and you'll need the correct alpn-boot for your version of Java.
If you are using maven, consider using the automatic profiles based on the running version of Java.

See Jetty's own pom.xml
Don't forget about the undefined default value in your <properties> section (see line 30)

You can also opt to run your builds with Conscrypt instead of alpn-boot boot classpath requirement.
Or you can run your builds with Java 9+ and skip the alpn-boot boot classpath requirement as well.

There's also an alpn-agent you can use to attempt to manage the boot classpath.
But that means you'll have a static java agent command line option for all versions of Java 8, instead of a dynamic boot classpath command line argument based on the runtime java version.


Please confirm answers to above 3 questions, needed for this upgrade.

Thanks
Neha
_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev

_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev
Reply | Threaded
Open this post in threaded view
|

Re: [jetty-dev] Jetty upgrade with ALPN

Neha Munjal
Hi Joakim,

Thanks for the update. I would still like to understand this a bit further for the following 2 questions:

2. Do we also need jetty-alpn-openjdk8-client artifact in the class path to be set?

Yes, as Java 8 does not have ALPN support built in. (ALPN support in java was introduced in Java 9)
Neha: We are currently using JDK 8 with Jetty v9.4.7.v20170914, but we never had to set the openjdk8 library in the class path. Now, it seems that with the upgrade, this needs to be done. Has this implementation changed in the newer version of Jetty i.e.v v9.4.15.v2019021 that we are trying to upgrade to?
 
3. We have test cases that use embedded Jetty server and so I assume that for the test cases to work, we would need jetty-alpn-openjdk8-server in the classpath.
Neha: We are currently using JDK 8 with Jetty v9.4.7.v20170914, but we never had to set the openjdk8 library in the class path. Now, it seems that with the upgrade, this needs to be done. Has this implementation changed in the newer version of Jetty i.e.v v9.4.15.v2019021 that we are trying to upgrade to?

Thanks
Neha 



On Thu, Apr 25, 2019 at 5:14 PM Joakim Erdfelt <[hidden email]> wrote:
On Thu, Apr 25, 2019 at 6:43 PM Neha Munjal <[hidden email]> wrote:
Hi,

We are currently using Jetty 9.4.7.v20170914 in our product. Essentially we use Jetty client libraries to be able to perform HTTP/2 communication.
With this version for ALPN to work, we start the JVM by setting Xbootclasspath argument as:
-Xbootclasspath/p:<path to alpn-boot-8.1.12.v20180117.jar> (we are on JDK 8)

See alpn versions list to know what version of alpn-boot you need for the JVM you are running.
 

Now we are in the process of upgrading to Jetty v9.4.15.v2019021 and I see the following notes in ALPN section on the Jetty prject page:

"To get ALPN working with the Jetty ALPN Boot library, you need:

to start the JVM with the Jetty ALPN Boot library in the boot classpath
to have the jetty-alpn-openjdk8-client artifact or the jetty-alpn-openjdk8-server artifact in the classpath"

I have some questions around this:

1. We definitely need the ALPN boot library in the boot class path?

Yes, as that's how ALPN is added to Java 8.  (If you use Java 9+ then this requirement goes away)
 
2. Do we also need jetty-alpn-openjdk8-client artifact in the class path to be set?

Yes, as Java 8 does not have ALPN support built in. (ALPN support in java was introduced in Java 9)
 
3. We have test cases that use embedded Jetty server and so I assume that for the test cases to work, we would need jetty-alpn-openjdk8-server in the classpath.

Yes, and you'll need the correct alpn-boot for your version of Java.
If you are using maven, consider using the automatic profiles based on the running version of Java.

See Jetty's own pom.xml
Don't forget about the undefined default value in your <properties> section (see line 30)

You can also opt to run your builds with Conscrypt instead of alpn-boot boot classpath requirement.
Or you can run your builds with Java 9+ and skip the alpn-boot boot classpath requirement as well.

There's also an alpn-agent you can use to attempt to manage the boot classpath.
But that means you'll have a static java agent command line option for all versions of Java 8, instead of a dynamic boot classpath command line argument based on the runtime java version.


Please confirm answers to above 3 questions, needed for this upgrade.

Thanks
Neha
_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev
_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev

_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev
Reply | Threaded
Open this post in threaded view
|

Re: [jetty-dev] Jetty upgrade with ALPN

Simone Bordet-3
Hi,

On Fri, Apr 26, 2019 at 8:50 PM Neha Munjal <[hidden email]> wrote:
> We are currently using JDK 8 with Jetty v9.4.7.v20170914, but we never had to set the openjdk8 library in the class path. Now, it seems that with the upgrade, this needs to be done. Has this implementation changed in the newer version of Jetty i.e.v v9.4.15.v2019021 that we are trying to upgrade to?

Yes.
Artifacts jetty-alpn-openjdk8-* have been introduced in Jetty 9.4.8,
to support also other ways to provide ALPN support (for example via
Conscrypt).

If you're upgrading to 9.4.15 then yes you need those artifacts in the
classpath.

--
Simone Bordet
----
http://cometd.org
http://webtide.com
Developer advice, training, services and support
from the Jetty & CometD experts.
_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev
Reply | Threaded
Open this post in threaded view
|

Re: [jetty-dev] Jetty upgrade with ALPN

Joakim Erdfelt-8
In reply to this post by Neha Munjal


2. Do we also need jetty-alpn-openjdk8-client artifact in the class path to be set?

Yes, as Java 8 does not have ALPN support built in. (ALPN support in java was introduced in Java 9)
 
Neha: We are currently using JDK 8 with Jetty v9.4.7.v20170914, but we never had to set the openjdk8 library in the class path. Now, it seems that with the upgrade, this needs to be done. Has this implementation changed in the newer version of Jetty i.e.v v9.4.15.v2019021 that we are trying to upgrade to?

This requirement was present on Jettty 9.4.7 as well

It's been a requirement for ALPN (and before that, NPN the precursor for ALPN) support on Java 8 since Jetty 9.0.0.

- Joakim

_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev
Reply | Threaded
Open this post in threaded view
|

Re: [jetty-dev] Jetty upgrade with ALPN

Neha Munjal
In reply to this post by Simone Bordet-3
Thanks Simone. This is understood now.

Regards
Neha

On Fri, Apr 26, 2019 at 11:59 AM Simone Bordet <[hidden email]> wrote:
Hi,

On Fri, Apr 26, 2019 at 8:50 PM Neha Munjal <[hidden email]> wrote:
> We are currently using JDK 8 with Jetty v9.4.7.v20170914, but we never had to set the openjdk8 library in the class path. Now, it seems that with the upgrade, this needs to be done. Has this implementation changed in the newer version of Jetty i.e.v v9.4.15.v2019021 that we are trying to upgrade to?

Yes.
Artifacts jetty-alpn-openjdk8-* have been introduced in Jetty 9.4.8,
to support also other ways to provide ALPN support (for example via
Conscrypt).

If you're upgrading to 9.4.15 then yes you need those artifacts in the
classpath.

--
Simone Bordet
----
http://cometd.org
http://webtide.com
Developer advice, training, services and support
from the Jetty & CometD experts.
_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev

_______________________________________________
jetty-dev mailing list
[hidden email]
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-dev