/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġorg . jetbrains . project or . server . core . class loader Ċ Ċ import Ġorg . jetbrains . project or . server . core . ij . Ij Injector Agent Initializer Ċ import Ġorg . jetbrains . project or . server . core . ij . invoke When Ide a IsInitialized Ċ import Ġorg . jetbrains . project or . server . core . ij . md . Panel Updater Ċ import Ġorg . jetbrains . project or . util . loading . Project or ClassLoader Ċ Ċ @ Suppress (" Red undant Visibility Modifier ") Ġ// ĠAc cessed Ġin Ġproject or - server , Ġdon 't Ġtrigger Ġlinter Ġthat Ġdoesn 't Ġknow Ġit Ċ public Ġobject ĠProject or ClassLoader Setup Ġ{ ĊĊĠ Ġinternal Ġvar Ġidea ClassLoader Initialized Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġset ĊĊĠ Ġ@ Suppress (" unused ", Ġ" Red undant Visibility Modifier ") Ġ// ĠCalled Ġfrom Ġproject or - server , Ġdon 't Ġtrigger Ġlinter Ġthat Ġdoesn 't Ġknow Ġit ĊĠ Ġpublic Ġfun Ġinit ClassLoader ( class Loader : ĠClassLoader ): ĠProject or ClassLoader Ġ{ ĊĠĠĠ Ġval Ġpr j ClassLoader Ġ= Ġif Ġ( class Loader Ġis ĠProject or ClassLoader ) Ġclass Loader Ġelse ĠProject or ClassLoader . instance ĊĊĠĠĠ Ġ// Ġaccessed Ġin Ġagent Ġto Ġget Ġide Ġand Ġproject or Ġclass loaders Ġin Ġplatform Ġclass loader Ġcontext ĊĠĠĠ Ġpr j ClassLoader . force Load By Platform ( Ij Injector Agent Initializer . Ij Injector Agent Class Lo aders :: class . java . name ) ĊĠĠĠ Ġ// Ġaccessed Ġin Ġclient Ġside Ġmarkdown Ġpre viewer Ġin Ġplatform Ġclass loader Ġcontext ĊĠĠĠ Ġpr j ClassLoader . force Load By Platform ( Panel Updater :: class . java . name ) ĊĠĠĠ Ġ// Ġwithout Ġthis Ġserver Ġnot Ġworks ... ĊĠĠĠ Ġpr j ClassLoader . force Load By Platform (" org . jetbrains . project or . server . core . websocket .") ĊĠĠĠ Ġ// Ġwe Ġneed Ġonly Ġversion Ġof Ġthis Ġclass Ġloaded Ġby Ġplatform ĊĠĠĠ Ġpr j ClassLoader . force Load By Platform (" com . intellij . ide . Windows CommandLine Processor ") ĊĠĠĠ Ġ// Ġto Ġaccess Ġidea ClassLoader Initialized Ġfield Ġonly Ġfrom ĠApp ClassLoader Ġcontext ĊĠĠĠ Ġpr j ClassLoader . force Load By Platform ( Project or ClassLoader Setup :: class . java . name ) ĊĊĠĠĠ Ġ// Ġto Ġprevent Ġproblems Ġcaused Ġby Ġloading Ġclasses Ġlike Ġkotlin . jvm . functions . Function 0 Ġby Ġboth ĠProject or ClassLoader Ġand ĠIDE ĠClassLoader ĊĠĠĠ Ġpr j ClassLoader . force Load By Project or ClassLoader (" com . intellij . openapi . application . Actions Kt ") ĊĊĠĠĠ Ġinvoke When Ide a IsInitialized (" Init ĠProject or ClassLoader ", Ġon ClassLoader F etched Ġ= Ġ{ ĊĠĠĠĠĠ Ġpr j ClassLoader . idea ClassLoader Ġ= Ġit ĊĠĠĠĠĠ Ġidea ClassLoader Initialized Ġ= Ġtrue ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġreturn Ġpr j ClassLoader ĊĠ Ġ} Ċ } Ċ