okhttp

Форк
0
/
AlpnVersions.kt 
52 строки · 1.8 Кб
1
/*
2
 * Copyright (C) 2021 Square, Inc.
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *    https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16

17
// https://www.eclipse.org/jetty/documentation/current/alpn-chapter.html#alpn-versions
18
private fun alpnBootVersionForPatchVersion(patchVersion: Int): String? {
19
  return when (patchVersion) {
20
    in 0..24 -> "8.1.0.v20141016"
21
    in 25..30 -> "8.1.2.v20141202"
22
    in 31..50 -> "8.1.3.v20150130"
23
    in 51..59 -> "8.1.4.v20150727"
24
    in 60..64 -> "8.1.5.v20150921"
25
    in 65..70 -> "8.1.6.v20151105"
26
    in 71..77 -> "8.1.7.v20160121"
27
    in 78..101 -> "8.1.8.v20160420"
28
    in 102..111 -> "8.1.9.v20160720"
29
    in 112..120 -> "8.1.10.v20161026"
30
    in 121..160 -> "8.1.11.v20170118"
31
    in 161..181 -> "8.1.12.v20180117"
32
    in 191..242 -> "8.1.13.v20181017"
33
    else -> null
34
  }
35
}
36

37
/**
38
 * Returns the alpn-boot version specific to this OpenJDK 8 JVM, or null if this is not a Java 8 VM.
39
 * https://github.com/xjdr/xio/blob/master/alpn-boot.gradle
40
 */
41
fun alpnBootVersion(): String? {
42
  val version = System.getProperty("alpn.boot.version")
43

44
  if (version != null) {
45
    return version
46
  }
47

48
  val javaVersion = System.getProperty("java.version")
49
  val match = "1\\.8\\.0_(\\d+)(-.*)?".toRegex().find(javaVersion) ?: return null
50

51
  return alpnBootVersionForPatchVersion(match.groupValues.first().toInt())
52
}
53

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.