in tools/templates/JBR.java [46:75]
static {
ServiceApi a = null;
Throwable exception = null;
try {
MethodHandles.Lookup lookup = MethodHandles.lookup();
try { // New version of bootstrap method
Class<?> bootstrap = Class.forName("com.jetbrains.exported.JBRApiSupport");
a = (ServiceApi) (Object) lookup
.findStatic(bootstrap, "bootstrap", MethodType.methodType(Object.class, Class.class,
Class.class, Class.class, Class.class, Map.class, Function.class))
.invokeExact(ServiceApi.class, Service.class, Provided.class, Provides.class,
Metadata.KNOWN_EXTENSIONS, Metadata.EXTENSION_EXTRACTOR);
} catch (IllegalAccessException | ClassNotFoundException | NoSuchMethodException | NoSuchMethodError ignore) {
// Old version of bootstrap method
Class<?> bootstrap = Class.forName("com.jetbrains.bootstrap.JBRApiBootstrap");
a = (ServiceApi) (Object) lookup
.findStatic(bootstrap, "bootstrap", MethodType.methodType(Object.class, MethodHandles.Lookup.class))
.invokeExact(lookup);
}
} catch (IllegalAccessException | ClassNotFoundException | NoSuchMethodException | NoSuchMethodError e) {
exception = e;
} catch (Throwable e) {
Throwable t = e.getCause();
if (t instanceof Error) throw (Error) t;
else throw new Error(t);
}
api = a;
bootstrapException = exception;
IMPL_VERSION = api == null ? "UNKNOWN" : api.getImplVersion();
}