class org.glassfish.grizzly.http.AplnExtensionCompatibility extends java.lang.Object
{
private static final java.util.logging.Logger LOG;
private static final java.lang.String IMPL_CLASS_NAME;
private static final java.lang.String METHOD_NAME;
private static org.glassfish.grizzly.http.AplnExtensionCompatibility INSTANCE;
private final boolean alpnExtensionGrizzly;
private final boolean protocolSelectorSetterInApi;
private final boolean protocolSelectorSetterInImpl;
public static synchronized org.glassfish.grizzly.http.AplnExtensionCompatibility getInstance()
{
org.glassfish.grizzly.http.AplnExtensionCompatibility v, v, v;
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: org.glassfish.grizzly.http.AplnExtensionCompatibility INSTANCE>;
if v != null goto label;
v = new org.glassfish.grizzly.http.AplnExtensionCompatibility;
specialinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: void <init>()>();
<org.glassfish.grizzly.http.AplnExtensionCompatibility: org.glassfish.grizzly.http.AplnExtensionCompatibility INSTANCE> = v;
label:
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: org.glassfish.grizzly.http.AplnExtensionCompatibility INSTANCE>;
return v;
}
public boolean isAlpnExtensionAvailable()
{
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
boolean v, v, v, v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isAlpnExtensionGrizzly()>();
if v != 0 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isProtocolSelectorSetterInApi()>();
if v != 0 goto label;
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isProtocolSelectorSetterInImpl()>();
if v == 0 goto label;
label:
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public boolean isAlpnExtensionGrizzly()
{
boolean v;
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
v = v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean alpnExtensionGrizzly>;
return v;
}
public boolean isProtocolSelectorSetterInApi()
{
boolean v;
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
v = v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean protocolSelectorSetterInApi>;
return v;
}
public boolean isProtocolSelectorSetterInImpl()
{
boolean v;
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
v = v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean protocolSelectorSetterInImpl>;
return v;
}
public java.lang.reflect.Method getProtocolSelectorSetter(javax.net.ssl.SSLEngine)
{
java.lang.NoSuchMethodException v;
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
java.lang.Class[] v;
java.lang.IllegalArgumentException v;
javax.net.ssl.SSLEngine v;
java.lang.Class v, v;
java.lang.String v, v;
java.lang.reflect.Method v;
boolean v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
v := @parameter: javax.net.ssl.SSLEngine;
staticinvoke <java.util.Objects: java.lang.Object requireNonNull(java.lang.Object,java.lang.String)>(v, "engine");
label:
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isHandshakeSetterInApi()>();
if v == 0 goto label;
v = class "Ljavax/net/ssl/SSLEngine;";
goto label;
label:
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
label:
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/util/function/BiFunction;";
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("setHandshakeApplicationProtocolSelector", v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.IllegalArgumentException;
v = virtualinvoke v.<java.lang.Object: java.lang.Class getClass()>();
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The method public void setHandshakeApplicationProtocolSelector(BiFunction<SSLEngine, List<String>, String> selector) is not declared by the \u.");
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.NoSuchMethodException from label to label with label;
}
private void <init>()
{
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
boolean v, v, v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isClassAvailableOnBootstrapClasspath(java.lang.String)>("sun.security.ssl.GrizzlyNPN");
v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean alpnExtensionGrizzly> = v;
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isHandshakeSetterInApi()>();
v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean protocolSelectorSetterInApi> = v;
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isHandshakeSetterInImpl()>();
v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean protocolSelectorSetterInImpl> = v;
return;
}
private static boolean isClassAvailableOnBootstrapClasspath(java.lang.String)
{
java.lang.ClassNotFoundException v;
java.lang.ClassLoader v;
java.lang.String v, v;
java.util.logging.Logger v;
v := @parameter: java.lang.String;
label:
v = staticinvoke <java.lang.ClassLoader: java.lang.ClassLoader getSystemClassLoader()>();
virtualinvoke v.<java.lang.ClassLoader: java.lang.Class loadClass(java.lang.String)>(v);
label:
return 1;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: java.util.logging.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The class with the name \'\u0001\' is not available on the bootstrap classpath.");
virtualinvoke v.<java.util.logging.Logger: void config(java.lang.String)>(v);
return 0;
catch java.lang.ClassNotFoundException from label to label with label;
}
private static boolean isHandshakeSetterInImpl()
{
java.lang.Throwable v;
java.lang.NoSuchMethodException v;
java.lang.Class[] v;
java.util.logging.Logger v, v, v;
java.util.function.Supplier v, v, v;
java.lang.IllegalAccessError v;
java.lang.Class v;
label:
v = staticinvoke <java.lang.Class: java.lang.Class forName(java.lang.String)>("sun.security.ssl.SSLEngineImpl");
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/util/function/BiFunction;";
virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("setHandshakeApplicationProtocolSelector", v);
label:
return 1;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: java.util.logging.Logger LOG>;
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility$lambda_isHandshakeSetterInImpl_0__147: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<java.util.logging.Logger: void config(java.util.function.Supplier)>(v);
return 0;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: java.util.logging.Logger LOG>;
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility$lambda_isHandshakeSetterInImpl_1__146: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<java.util.logging.Logger: void config(java.util.function.Supplier)>(v);
return 0;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: java.util.logging.Logger LOG>;
v = staticinvoke <org.glassfish.grizzly.http.AplnExtensionCompatibility$lambda_isHandshakeSetterInImpl_2__145: java.util.function.Supplier bootstrap$()>();
virtualinvoke v.<java.util.logging.Logger: void config(java.util.function.Supplier)>(v);
return 0;
catch java.lang.IllegalAccessError from label to label with label;
catch java.lang.ClassNotFoundException from label to label with label;
catch java.lang.NoClassDefFoundError from label to label with label;
catch java.lang.NoSuchMethodException from label to label with label;
}
private static boolean isHandshakeSetterInApi()
{
java.lang.NoSuchMethodException v;
java.lang.Class[] v;
java.lang.Class v, v;
java.lang.String v, v;
java.util.logging.Logger v;
label:
v = class "Ljavax/net/ssl/SSLEngine;";
v = newarray (java.lang.Class)[1];
v[0] = class "Ljava/util/function/BiFunction;";
virtualinvoke v.<java.lang.Class: java.lang.reflect.Method getMethod(java.lang.String,java.lang.Class[])>("setHandshakeApplicationProtocolSelector", v);
label:
return 1;
label:
v := @caughtexception;
v = <org.glassfish.grizzly.http.AplnExtensionCompatibility: java.util.logging.Logger LOG>;
v = class "Ljavax/net/ssl/SSLEngine;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("The method public void setHandshakeApplicationProtocolSelector(BiFunction<SSLEngine, List<String>, String> selector) is not declared by the \u.");
virtualinvoke v.<java.util.logging.Logger: void config(java.lang.String)>(v);
return 0;
catch java.lang.NoSuchMethodException from label to label with label;
}
public java.lang.String toString()
{
org.glassfish.grizzly.http.AplnExtensionCompatibility v;
java.lang.String v, v;
boolean v, v, v, v;
v := @this: org.glassfish.grizzly.http.AplnExtensionCompatibility;
v = specialinvoke v.<java.lang.Object: java.lang.String toString()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isAlpnExtensionAvailable()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isAlpnExtensionGrizzly()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isProtocolSelectorSetterInApi()>();
v = virtualinvoke v.<org.glassfish.grizzly.http.AplnExtensionCompatibility: boolean isProtocolSelectorSetterInImpl()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,boolean,boolean,boolean,boolean)>(v, v, v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001ALPN available: \u, ALPN is Grizzly: \u, setHandshakeApplicationProtocolSelector in API: \u, setHandshakeApplicationProtocolSelector in impl: \u0001");
return v;
}
static void <clinit>()
{
java.lang.Class v;
java.lang.String v;
java.util.logging.Logger v;
v = class "Lorg/glassfish/grizzly/http2/AplnExtensionCompatibility;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = staticinvoke <java.util.logging.Logger: java.util.logging.Logger getLogger(java.lang.String)>(v);
<org.glassfish.grizzly.http.AplnExtensionCompatibility: java.util.logging.Logger LOG> = v;
return;
}
}