l§l@œLш EMF [ @№т€Љ  џџџџ №џџџRpіџџџМARIALY|@јоѓXѕФѕвјоѓШѕџŒѕСuсwіџЄѕф’ё Œ7lЈИDl@ї˜ИDlˆѕ ї I@lџџї-їїїкFііїў;l зFXїUјw%јwџџџџhї2x-8зFџџџџЉxdv% ѓџџџ6ѓџџџЈјџџ6эЈјџџ6э6ѓџџџѓџџџўџџџ6xўџџџ6… 6…5јџџџ Tм†њAњСјџџџLџџџџџџџџ|od Key Abstracts diagram % €( RpіџџџARIAL§Y|@јоѓє|євјоѓ€єџDєСuсwМєџ\єф’ё Œ7lЈИDl@аѕ˜ИDl@єиѕ I@lџџРѕп|;lаѕаѕРѕ{;l№уFМєМєаѕў;l-Я;lМє0CARIALєwАФї @јL5dv% 'ќђу% &%  ! &%   џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ  џџџ% " џџџџ( 'РПР% &РПР% 9 +:MћџџћЁњџџ% ( % ( RpіџџџМARIALY|@јоѓє|єLѕ зF*јw-зF зF(ѕˆ-рѕUјw@*јwџџџџ№ѕЧќw- зFзF зF0CАѕћ’W|H4z юH4-аѕаѕѕ<іD\|€$W|џџџџG}єw- зF зF зFіUјw%јwџџџџ і2x-зFџџџџЉx зFdv% % +7PћџџјЄњџџTЧТгњAњС}Mћџџ LџџџџџџџџdЋinterfaceЛRpіџџџМARIALY|@јоѓє|єLѕШ№B*јw-Р№BШ№B(ѕˆ-рѕUјw@*јwџџџџ№ѕЧќw-Ш№Bј№BШ№B0]єw˜ИDl@єиѕ I@lџџРѕ-аѕаѕѕ№уFМєМєаѕў;l-Ш№BШ№BШ№BіUјw%јwџџџџ і2x-ј№BџџџџЉxШ№Bdv% TИ{зесњAњСk=ћџџLџџџџџџџџploader::Repository% 70ћџџ6ј0ћџџ ‹  @@TXLъUіњAњС<*ћџџLџџџџџџџџP+ RpіџџџARIALY|@јоѓє|єLѕј№B*јw-№№Bј№B(ѕˆ-рѕUјw@*јwџџџџ№ѕЧќw-ј№Bј№B0]єw˜ИDl@єиѕ I@lџџРѕ-аѕаѕѕ№уFМєМєаѕў;l-ј№Bј№Bј№BіUјw%јwџџџџ і2x-џџџџЉxј№Bdv% Tœ]ъіњAњСM*ћџџ Lџџџџџџџџhinit() : void% % TXLїUњAњС<ћџџLџџџџџџџџP+ % T]їўњAњСMћџџ!LџџџџџџџџisServiceLoaded(String) : boolean% % TXLUњAњС<ћџџLџџџџџџџџP+ % T]їњAњСMћџџ!LџџџџџџџџisServiceActive(String) : boolean% % TXLUњAњС<ћџџLџџџџџџџџP+ % Tш]ЮњAњСMћџџLџџџџџџџџ€initService(String) : void% % TXLU*њAњС<іњџџLџџџџџџџџP+ % Tш]г*њAњСMіњџџLџџџџџџџџ€stopService(String) : void% % TXL+U7њAњС<щњџџLџџџџџџџџP+ % Tи]+Ц7њAњСMщњџџLџџџџџџџџ|reloadServices() : void% % TXL8UDњAњС<мњџџLџџџџџџџџP+ % Tм]8ЩDњAњСMмњџџLџџџџџџџџ|stopAllServices() : void% % TXLEUQњAњС<ЯњџџLџџџџџџџџP+ % Tє]EрQњAњСMЯњџџLџџџџџџџџ„getServiceNames() : String[]% % TXLRU^њAњС<ТњџџLџџџџџџџџP+ % T$]R^њAњСMТњџџ$Lџџџџџџџџ”getServiceInstance(String) : Service% % TXL_UkњAњС<ЕњџџLџџџџџџџџP+ % T ]_™kњAњСMЕњџџLџџџџџџџџhclose() : void% %  'РПР% &РПР% +џџџ  ўџџ% ( % ( +!џџџ#ўџџT{љВњAњСkџџџ LџџџџџџџџdЋsingletonЛ% T06їњAњС&џџџ&Lџџџџџџџџ˜descriptors::SingletonServerDescriptor% TpњњAњСъџџџLџџџџџџџџX{leaf}яўџџ6яўџџ ‹  @@TX-"9њAњС чўџџLџџџџџџџџP+ TD*-щ9њAњСчўџџ)Lџџџџџџџџ getInstance() : SingletonServerDescriptor&@@% лўџџ6йлўџџ% ( TX:"FњAњС кўџџLџџџџџџџџP+ TH*:ѓFњAњСкўџџ*Lџџџџџџџџ initSafeMode() : SingletonServerDescriptor &@@% Юўџџ6уЮўџџ% ( TXG"SњAњС ЭўџџLџџџџџџџџP+ TP*GїSњAњСЭўџџ+LџџџџџџџџЄgetServiceGroups() : AbstractServiceGroup[]TXT"`њAњС РўџџLџџџџџџџџP+ Tt*T`њAњСРўџџ1LџџџџџџџџАregisterServiceGroup(AbstractServiceGroup) : voidTXa"mњAњС ГўџџLџџџџџџџџP+ T,*aзmњAњСГўџџ%Lџџџџџџџџ˜unregisterServiceGroup(String) : voidTXn"zњAњС ІўџџLџџџџџџџџP+ T`*n zњAњСІўџџ.LџџџџџџџџЈgetServiceGroup(String) : AbstractServiceGroupTX{"‡њAњС ™ўџџLџџџџџџџџP+ TР*{~‡њAњС™ўџџLџџџџџџџџtstopServer() : voidTXˆ"”њAњС ŒўџџLџџџџџџџџP+ Tш*ˆЂ”њAњСŒўџџLџџџџџџџџ€saveConfiguration() : voidTX•"ЁњAњС ўџџLџџџџџџџџP+ Tм*••ЁњAњСўџџLџџџџџџџџ|destroyServices() : void 'РПР% &РПР% +цЎџџџФлўџџ% ( % ( +уБџџџСоўџџTGi~uњAњС7Ћџџџ LџџџџџџџџdЋsingletonЛ% T$vНњAњСјžџџџ$Lџџџџџџџџ”descriptors::SingletonBootDescriptor% уŒџџџ6СŒџџџ ‹  @@TXјœњAњСш„џџџLџџџџџџџџP+ Tш œњAњСљ„џџџLџџџџџџџџ€getLaunchScheme() : String TXјЉњAњСшwџџџLџџџџџџџџP+ T  ЃЉњAњСљwџџџ LџџџџџџџџŒgetLaunchSchemeList() : String[] TXјЊЖњAњСшjџџџLџџџџџџџџP+ T Њ•ЖњAњСљjџџџLџџџџџџџџˆlaunch(String, boolean) : voidTXјЗУњAњСш]џџџLџџџџџџџџP+ T ЗЏУњAњСљ]џџџ!LџџџџџџџџgetDefaultLaunchScheme() : String TXјФањAњСшPџџџLџџџџџџџџP+ T ФЊањAњСљPџџџ"LџџџџџџџџgenerateClearConfig(String) : void&@@% љDџџџ6šDџџџ% ( TXјбнњAњСшCџџџLџџџџџџџџP+ T8 бРнњAњСљCџџџ'LџџџџџџџџœgetInstance() : SingletonBootDescriptor&@@% љ7џџџ6А7џџџ% ( TXјоўъњAњСш6џџџLџџџџџџџџP- Tф оъњAњСљ6џџџLџџџџџџџџ€SingletonBootDescriptor() 'РПР% &РПР% +'хќџџ§Цћџџ% ( % ( +$шќџџњЩћџџ% T$<5@њAњС,пќџџ$Lџџџџџџџџ”servicegroups::TcpSocketServiceGroup% $Эќџџ6њЭќџџ ‹  @@TX9OB[њAњС)ХќџџLџџџџџџџџP+ TJOя[њAњС:Хќџџ"LџџџџџџџџTcpSocketServiceGroup(int, String)TX9\BhњAњС)ИќџџLџџџџџџџџP+ T$J\hњAњС:Иќџџ$Lџџџџџџџџ”getServiceGroupFamilyName() : String  TX9iBuњAњС)ЋќџџLџџџџџџџџP+ TќJiЪuњAњС:ЋќџџLџџџџџџџџˆregisterClient(Socket) : voidTX9vB‚њAњС)žќџџLџџџџџџџџP+ TєJvЮ‚њAњС:žќџџLџџџџџџџџ„getFreeHandlersCount() : intTX9ƒBњAњС)‘ќџџLџџџџџџџџP+ TќJƒвњAњС:‘ќџџLџџџџџџџџˆgetTotalHandlersCount() : int;lTX9BœњAњС)„ќџџLџџџџџџџџP+ TмJОœњAњС:„ќџџLџџџџџџџџ|getTaskQueueSize() : intTX9BЉњAњС)wќџџLџџџџџџџџP+ TиJНЉњAњС:wќџџLџџџџџџџџ|getGroupName() : String TX9ЊBЖњAњС)jќџџLџџџџџџџџP+ TЈJЊ‡ЖњAњС:jќџџLџџџџџџџџlgetPort() : intTX9ЗBУњAњС)]ќџџLџџџџџџџџP+ TєJЗЭУњAњС:]ќџџLџџџџџџџџ„unloadService(String) : voidTX9ФBањAњС)PќџџLџџџџџџџџP+ TЬJФЏањAњС:PќџџLџџџџџџџџxisRunning() : booleanTX9бBнњAњС)CќџџLџџџџџџџџP+ TєJбЭнњAњС:CќџџLџџџџџџџџ„getServiceNames() : String[] TX9оBъњAњС)6ќџџLџџџџџџџџP+ TФJоЊъњAњС:6ќџџLџџџџџџџџtgetLogger() : LoggerTX9ыBїњAњС))ќџџLџџџџџџџџP+ TєJыЪїњAњС:)ќџџLџџџџџџџџ„getService(String) : ServiceTX9јBњAњС)ќџџLџџџџџџџџP+ TиJјЖњAњС:ќџџLџџџџџџџџ|runServices() : booleanTX9BњAњС)ќџџLџџџџџџџџP+ TДJšњAњС:ќџџLџџџџџџџџpshutDown() : voidTX9BњAњС)ќџџLџџџџџџџџP+ TфJНњAњС:ќџџLџџџџџџџџ€closePluginStore() : voidњATX9B+њAњС)ѕћџџLџџџџџџџџP+ TшJТ+њAњС:ѕћџџLџџџџџџџџ€getAddress() : InetAddress 'РПР% &РПР% +KШ§џџлќџџ% ( % ( % % +HЫ§џџоќџџTЄLйXњAњС”Ш§џџ LџџџџџџџџdЋinterfaceЛ% T a\fњAњСQИ§џџ#Lџџџџџџџџ”servicegroups::AbstractServiceGroup% HЋ§џџ6Ћ§џџ ‹  @@TX]of{њAњСMЅ§џџLџџџџџџџџP+ % Tмnoу{њAњС^Ѕ§џџLџџџџџџџџ|getTaskQueueSize() : int% % TX]|fˆњAњСM˜§џџLџџџџџџџџP+ % Tєn|ѓˆњAњС^˜§џџLџџџџџџџџ„getFreeHandlersCount() : int% % TX]‰f•њAњСM‹§џџLџџџџџџџџP+ % Tќn‰і•њAњС^‹§џџLџџџџџџџџˆgetTotalHandlersCount() : intџџ% % TX]–fЂњAњСM~§џџLџџџџџџџџP+ % Tиn–пЂњAњС^~§џџLџџџџџџџџ|getGroupName() : String% % TX]ЃfЏњAњСMq§џџLџџџџџџџџP+ % T$nЃ ЏњAњС^q§џџ$Lџџџџџџџџ”getServiceGroupFamilyName() : String% % TX]АfМњAњСMd§џџLџџџџџџџџP+ % TєnАёМњAњС^d§џџLџџџџџџџџ„unloadService(String) : void% % TX]НfЩњAњСMW§џџLџџџџџџџџP+ % TєnНёЩњAњС^W§џџLџџџџџџџџ„getServiceNames() : String[]% % TX]ЪfжњAњСMJ§џџLџџџџџџџџP+ % TєnЪюжњAњС^J§џџLџџџџџџџџ„getService(String) : Service% % TX]зfуњAњСM=§џџLџџџџџџџџP+ % TЈnзЋуњAњС^=§џџLџџџџџџџџlgetPort() : inte% % TX]фf№њAњСM0§џџLџџџџџџџџP+ % Tќnф№№њAњС^0§џџLџџџџџџџџˆregisterClient(Socket) : void% % TX]ёf§њAњСM#§џџLџџџџџџџџP+ % TЬnёд§њAњС^#§џџLџџџџџџџџxisRunning() : boolean% % TX]ўf њAњСM§џџLџџџџџџџџP+ % Tиnўл њAњС^§џџLџџџџџџџџ|runServices() : boolean% % TX] fњAњСM §џџLџџџџџџџџP+ % TДn РњAњС^ §џџLџџџџџџџџpshutDown() : voidi% % TX]f$њAњСMќќџџLџџџџџџџџP+ % Tфnт$њAњС^ќќџџLџџџџџџџџ€closePluginStore() : void% % TX]%f1њAњСMяќџџLџџџџџџџџP+ % Tшn%щ1њAњС^яќџџLџџџџџџџџ€getAddress() : InetAddress% %  Td`4r@њAњСPр§џџLџџџџџџџџT0..nTT(ц.ђњAњС.ўџџLџџџџџџџџP1T”!“`ŸњAњСќџџ Lџџџџџџџџd"implements"  T”f8ЅDњAњСVмќџџ Lџџџџџџџџd"implements"  Tˆр њAњСаўџџ Lџџџџџџџџ`"contains"&€€€% 'їѓї% V0Š§ozџzЅўэЅўэџсџ' дад% V(ё§сџсџэџ% % TˆРњAњСџџџ Lџџџџџџџџ`Singleton TФќ*њAњСіўџџLџџџџџџџџtBootManager launches Tа+№7њAњСщўџџLџџџџџџџџxserver with specified Tœ8жDњAњСмўџџ Lџџџџџџџџhlaunch scheme ( ( ( &€€€% 'їѓї% V0т(ВЁвьќвsќЂsќЂрќ–ьќ' дад% V(І(В4–ьќ–рќЂрќ% % TTч6ЃBњAњСзоќџџ,LџџџџџџџџЄService is a base class for all services in T8чCІOњAњСзбќџџ'Lџџџџџџџџœthis system. Developer MUST extend his џџ  TчP}\њAњСзФќџџ!Lџџџџџџџџown service from this base class. TPч]БiњAњСзЗќџџ+LџџџџџџџџЄYou can imagine, that Service is a Factory џџ TPчjВvњAњСзЊќџџ+LџџџџџџџџЄof ServiceRunnable instances. You`re right.T,чw–ƒњAњСзќџџ%Lџџџџџџџџ˜It produces Servicerunnable for each oTФч„MњAњСзќџџLџџџџџџџџtincoming connection. ( ( ( &€€€% 'їѓї% V0.s•№ц§№§c§cк§Wц§' дад% V(g.s:Wц§Wк§cк§% % Tм<mHњAњСѕи§џџLџџџџџџџџ|This is a key interface TаIeUњAњСѕЫ§џџLџџџџџџџџxof group of services. TРV\bњAњСѕО§џџLџџџџџџџџtAbstraction of any TРc]oњAњСѕБ§џџLџџџџџџџџtservice group type rTФpo|њAњСѕЄ§џџLџџџџџџџџtMUST implement this   Tˆ}1‰њAњСѕ—§џџ Lџџџџџџџџ`interface.( ( ( &€€€% 'їѓї% V0ѓМfWуXќуНћVНћVLќJXќ' дад% V(ZМfШJXќJLќVLќ% % TЌјЪ;жњAњСшJќџџLџџџџџџџџlThis is a class TијзfуњAњСш=ќџџLџџџџџџџџ|providing TCP services eTЌјфC№њAњСш0ќџџLџџџџџџџџlgroup. Multiple  Tмјёe§њAњСш#ќџџLџџџџџџџџ|services are allowed to TДјўG њAњСшќџџLџџџџџџџџpbe registered on Tиј dњAњСш ќџџLџџџџџџџџ|specified port number.  TЬјi$њAњСшќћџџLџџџџџџџџxTcpSocketServiceGroupsTФј%V1њAњСшяћџџLџџџџџџџџthave a reference to Tиј2f>њAњСштћџџLџџџџџџџџ|Repository to get some  TДј?IKњAњСшећџџLџџџџџџџџpService instancesP( ( ( &€€€% 'їѓї% V08ЕЦ$(_ў(№§Ж№§ЖSўЊ_ў' дад% V(КЕЦСЊ_ўЊSўЖSў% % T =УФЯњAњС-Qўџџ LџџџџџџџџŒThis is a server control class. T=аНмњAњС-DўџџLџџџџџџџџŒAll activity of server and its Tи=нЅщњAњС-7ўџџLџџџџџџџџ|services are controled Tќ=ъПіњAњС-*ўџџLџџџџџџџџˆthrough the instance of this LTЈ=їњAњС-ўџџLџџџџџџџџlsingleton class( ( ( &€€€% 'їѓї% V0Ћъй›•ќ›;ќк;ќк‰ќЮ•ќ' дад% V(оъ‹Ю•ќЮ‰ќк‰ќ% % TдАч™њAњС ‡ќџџALџџџџџџџџаIn fact, any service group should handle new connection and give TфАšшІњAњС zќџџDLџџџџџџџџдthis connection description, such as Input\Output Streams or client  TРАЇЯГњAњС mќџџ>LџџџџџџџџШIP-adress port number or anything else, to instance of Service ( ( ( 'РПР% &РПР% +|.ћџџyЪњџџ% ( % ( +y1ћџџvЭњџџ% TшФьLіњAњСД(ћџџLџџџџџџџџ€abstracts::ServiceRunnable% yћџџ6vћџџ ‹TXŽ—њAњС~ћџџLџџџџџџџџP# T\Ÿ‚њAњСћџџ-LџџџџџџџџЈthreadRuntimeInfo: ServiceHandlerRuntimeInfo   yќњџџ6vќњџџ @@TXŽ—(њAњС~јњџџLџџџџџџџџP+ T,ŸQ(њAњСјњџџ%Lџџџџџџџџ˜getInfo() : ServiceHandlerRuntimeInfo TXŽ)—5њAњС~ыњџџLџџџџџџџџP+ TДŸ)і5њAњСыњџџLџџџџџџџџpServiceRunnable()TXŽ6—BњAњС~оњџџLџџџџџџџџP+ % T”Ÿ6бBњAњСоњџџ Lџџџџџџџџdrun() : void% %  &€€€% 'їѓї% V0‹Ю…ћFћ{Fћ{yћo…ћ' дад% V(‹›o…ћoyћ{yћ% % Tи‡ЉњAњС wћџџLџџџџџџџџ|This instances used to TЌЊpЖњAњС jћџџLџџџџџџџџlhandle incoming  TРЗuУњAњС ]ћџџLџџџџџџџџtclient`s connection( ( ( TˆЉлњAњС™ ќџџ Lџџџџџџџџ`"produces"TˆМћюњAњСЌџџџ Lџџџџџџџџ`"launches"&€€€% 'їѓї% V0QzФжAšњA>њД>њДŽњЈšњ' дад% V(ИzФ†ЈšњЈŽњДŽњ% % TЌVˆ”њAњСFŒњџџLџџџџџџџџlRepository is a TмV•ОЁњAњСFњџџLџџџџџџџџ|container for services. TаVЂЙЎњAњСFrњџџLџџџџџџџџx(Instances of Service)TаVЏЖЛњAњСFeњџџLџџџџџџџџxIt provides access to TиVМТШњAњСFXњџџLџџџџџџџџ|them for service groups ( ( ( &€€€% 'їѓї% V0!!”XѓћМћ„Мћ„чћxѓћ' дад% V(ˆ!”-xѓћxчћ„чћ% % TИ&/y;њAњСхћџџLџџџџџџџџpEvery service has Tи&<’HњAњСићџџLџџџџџџџџ|reference to RepositoryџџTЌ&IqUњAњСЫћџџLџџџџџџџџlwhere it located( ( ( TdY kњAњСI ќџџLџџџџџџџџT0..nTTМYТeњAњСЌЛћџџLџџџџџџџџP1TT%џ+ њAњСћџџLџџџџџџџџP1TˆюdpњAњСоАћџџ Lџџџџџџџџ`"contains"TЬТЯ*лњAњСВEњџџLџџџџџџџџxFileSystemRepository  TЬТм,шњAњСВ8њџџLџџџџџџџџxhas number of loaded  T|ТщцѕњAњСВ+њџџLџџџџџџџџ\services 0`Tl#>/њAњСёџџџLџџџџџџџџXName: TЬW#П/њAњСGёџџџLџџџџџџџџxKey Abstracts diagram Tx0A<њAњСфџџџLџџџџџџџџ\Author:TˆW0<њAњСGфџџџ Lџџџџџџџџ`LocalStorm T|=EIњAњСзџџџLџџџџџџџџ\Version:T`W=fIњAњСGзџџџLџџџџџџџџT0.9T|JGVњAњСЪџџџLџџџџџџџџ\Created:TРWJКVњAњСGЪџџџLџџџџџџџџt05.03.2001 00:00:00T|WJcњAњСНџџџLџџџџџџџџ\Updated:TРWWКcњAњСGНџџџLџџџџџџџџt08.07.2005 18:14:51 'РПР% &РПР% +€HўџџоУ§џџ% ( % ( % % +}KўџџлЦ§џџT"ЬWињAњСHўџџ LџџџџџџџџdЋinterfaceЛ% TРмkцњAњСў8ўџџLџџџџџџџџtabstracts::IService % }+ўџџ6л+ўџџ ‹  @@TX’я›ћњAњС‚%ўџџLџџџџџџџџP+ % TфЃяћњAњС“%ўџџLџџџџџџџџ€getServiceName() : String% % TX’ќ›њAњС‚ўџџLџџџџџџџџP+ % TРЃќњњAњС“ўџџLџџџџџџџџtgetVersion() : long% % TX’ ›њAњС‚ ўџџLџџџџџџџџP+ % TЌЃ цњAњС“ ўџџLџџџџџџџџlgetBuild() : int% % TX’›"њAњС‚ў§џџLџџџџџџџџP+ % TєЃ+"њAњС“ў§џџLџџџџџџџџ„isCompatible(long) : boolean% % TX’#›/њAњС‚ё§џџLџџџџџџџџP+ % TдЃ#ч/њAњС“ё§џџALџџџџџџџџаgetHandler(TaskMeta, InputStream, OutputStream) : ServiceRunnable% % TX’0›<њAњС‚ф§џџLџџџџџџџџP+ % TРЃ0я<њAњС“ф§џџLџџџџџџџџtinitialize() : void% % TX’=›IњAњС‚з§џџLџџџџџџџџP+ % TФЃ=§IњAњС“з§џџLџџџџџџџџtstopService() : void% %  &€€€% 'їѓї% V0G>У7ж§7‡§Г‡§ГЪ§Їж§' дад% V(З>УJЇж§ЇЪ§ГЪ§% % TРLLЁXњAњС<Ш§џџLџџџџџџџџtIService is a base TфLYПeњAњС<Л§џџLџџџџџџџџ€Interface that developer TЬLfДrњAњС<Ў§џџLџџџџџџџџxhave to implement to   TЬLsБњAњС<Ё§џџLџџџџџџџџxmake his own servive. ( ( ( 'РПР% &РПР% +њџџаDљџџ% ( % ( +  њџџЭGљџџ% Tє5ФњAњС%њџџLџџџџџџџџ„loader::FileSystemRepository %  яљџџ6Эяљџџ ‹  @@TX!-*9њAњСчљџџLџџџџџџџџP+ Tє2-Й9њAњС"чљџџLџџџџџџџџ„FileSystemRepository(String) TX!:*FњAњСкљџџLџџџџџџџџP+ Tœ2:dFњAњС"кљџџ Lџџџџџџџџhinit() : voidTX!G*SњAњСЭљџџLџџџџџџџџP+ T2GвSњAњС"Эљџџ!LџџџџџџџџisServiceLoaded(String) : booleanTX!T*`њAњСРљџџLџџџџџџџџP+ T2TЫ`њAњС"Рљџџ!LџџџџџџџџisServiceActive(String) : booleancTX!a*mњAњСГљџџLџџџџџџџџP+ Tш2aЃmњAњС"ГљџџLџџџџџџџџ€initService(String) : voidTX!n*zњAњСІљџџLџџџџџџџџP+ Tш2nЇzњAњС"ІљџџLџџџџџџџџ€stopService(String) : voidTX!{*‡њAњС™љџџLџџџџџџџџP+ Tи2{š‡њAњС"™љџџLџџџџџџџџ|reloadServices() : voidTX!ˆ*”њAњСŒљџџLџџџџџџџџP+ Tм2ˆœ”њAњС"ŒљџџLџџџџџџџџ|stopAllServices() : voidTX!•*ЁњAњСљџџLџџџџџџџџP+ Tє2•ЕЁњAњС"љџџLџџџџџџџџ„getServiceNames() : String[] TX!Ђ*ЎњAњСrљџџLџџџџџџџџP+ T$2ЂйЎњAњС"rљџџ$Lџџџџџџџџ”getServiceInstance(String) : ServiceTX!Џ*ЛњAњСeљџџLџџџџџџџџP+ T 2ЏmЛњAњС"eљџџLџџџџџџџџhclose() : void &€€€% 'їѓї% V0Н [WљЙјњЙјњKљюWљ' дад% V(ўН ЩюWљюKљњKљ% % T”ЫФзњAњС„Iљџџ LџџџџџџџџdThis is an TИ”июфњAњС„<љџџLџџџџџџџџpimplementation of   Tа”хїёњAњС„/љџџLџџџџџџџџxRepository interface. Tф”ђўњAњС„"љџџLџџџџџџџџ€This class loads plugins њСTф”џ њAњС„љџџLџџџџџџџџ€from the file system and   Tм” њAњС„љџџLџџџџџџџџ|provides access to them  T№”%њAњС„ћјџџLџџџџџџџџ„for service groups. It use tTф”& 2њAњС„юјџџLџџџџџџџџ€inner FileClassLoader to џџTм”3?њAњС„сјџџLџџџџџџџџ|define class for loaded Tx”@ЕLњAњС„дјџџLџџџџџџџџ\plugin.( ( ( 'РПР% &РПР% +эКќџџЧќџџ% ( % ( +ъНќџџФќџџ% TИ:`”jњAњС*ДќџџLџџџџџџџџpabstracts::Service% ъЂќџџ6ФЂќџџ ‹TXџv‚њAњСяžќџџLџџџџџџџџP# T8vа‚њAњСžќџџ'LџџџџџџџџœserviceRuntimeInfo: ServiceRuntimeInfo  TXџƒњAњСя‘ќџџLџџџџџџџџP- TЈƒWњAњС‘ќџџLџџџџџџџџlavail: booleanTXџœњAњСя„ќџџLџџџџџџџџP- T•œњAњС„ќџџLџџџџџџџџˆrepository: Repository = null ъnќџџ6Фnќџџ @@TXџЊЖњAњСяjќџџLџџџџџџџџP+ T„Њ9ЖњAњСjќџџ Lџџџџџџџџ`Service()TXџЗУњAњСя]ќџџLџџџџџџџџP+ TиЗzУњAњС]ќџџLџџџџџџџџ|isAvailable() : booleanTXџФањAњСяPќџџLџџџџџџџџP+ TєФ”ањAњСPќџџLџџџџџџџџ„setAvailable(boolean) : voidTXџбнњAњСяCќџџLџџџџџџџџP+ T,бХнњAњСCќџџ%Lџџџџџџџџ˜getRuntimeInfo() : ServiceRuntimeInfo  TXџоъњAњСя6ќџџLџџџџџџџџP+ T0оСъњAњС6ќџџ&Lџџџџџџџџ˜setParentRepository(Repository) : void &% ѕќџџ6љKћџџљKћџџљKћџџ6YћџџљKћџџ6Oћџџ  џџџ% T З?УњAњСќ]ћџџ Lџџџџџџџџd+repository%   џџџ% ( &% Нќџџ6žРќџџ Уќџџ6ЁЦќџџЃЩќџџ6ЄЬќџџІЯќџџ6ЈвќџџЉеќџџ6ЋиќџџЌлќџџ6ЎоќџџАсќџџ6БфќџџГчќџџ6ДъќџџЖэќџџ6И№ќџџЙѓќџџ6ЛіќџџМљќџџ6ОќќџџРџќџџ6С§џџУ§џџ6Ф§џџЦ §џџ6Ч§џџЩ§џџ6Ы§џџЬ§џџ6Ю§џџЯ§џџ6б §џџг#§џџ6д&§џџж)§џџ6з,§џџй/§џџ6л2§џџм5§џџ6о8§џџп;§џџ6с>§џџуA§џџ6фD§џџцG§џџ6чJ§џџщM§џџ6ъP§џџьS§џџ6юV§џџяY§џџ6ё\§џџђ_§џџ6єb§џџіe§џџ6їh§џџљk§џџ6њn§џџќq§џџ6ўt§џџџw§џџ6z§џџ}§џџ6€§џџƒ§џџ6†§џџ ‰§џџ6 Œ§џџ §џџ6 ’§џџ•§џџ6˜§џџ›§џџ6ž§џџЁ§џџ6Є§џџЇ§џџ6Њ§џџ­§џџ6А§џџГ§џџ6!Ж§џџ"Й§џџ6$М§џџ%П§џџ6'Т§џџ)Х§џџ)Х§џџV(.O9^(Ж§Л§)Х§  џџџ  џџџ% ( &% <ќџџ6 њџџ'% V,œїЅ Œњ њ•њ“њ% ( <ќџџ<ќџџ62ќџџ<ќџџ6< ќџџ“њџџ  џџџ  џџџ% ( &% zќџџ6с1ћџџ  џџџ  џџџ% ( &% 7ћџџ6ВШћџџ'% V,ТLЮ[МФћВШћДОћОЙћ% ( ОЙћџџ  џџџ  џџџ% ( &% / њџџ6. њџџ,њџџ6*њџџ(њџџ6&њџџ$њџџ6"њџџ "њџџ6%њџџ(њџџ6+њџџ.њџџ61њџџ4њџџ67њџџ:њџџ6=њџџ @њџџ6 Cњџџ Fњџџ6IњџџLњџџ6OњџџRњџџ6UњџџўXњџџ6ќ[њџџњ^њџџ6јaњџџіdњџџ6ѕgњџџѓjњџџ6ёmњџџяpњџџ6эsњџџыvњџџ6щyњџџч|њџџ6хњџџу‚њџџ6т…њџџрˆњџџ6о‹њџџмŽњџџ6к‘њџџи”њџџ6ж—њџџдšњџџ6вњџџа њџџ6ЮЃњџџЮЃњџџV(оqы€л›њб”њЮЃњ  џџџ  џџџ% ( &% wпњџџ6wтњџџwхњџџ6xшњџџxыњџџ6xюњџџyёњџџ6yєњџџzїњџџ6zњњџџz§њџџ6{ћџџ{ћџџ6{ћџџ| ћџџ6| ћџџ}ћџџ6}ћџџ}ћџџ6~ћџџ~ћџџ6ћџџ!ћџџ6$ћџџ€'ћџџ6€*ћџџ€-ћџџ60ћџџ3ћџџ6‚6ћџџ‚9ћџџ6‚<ћџџƒ?ћџџ6ƒBћџџ„Eћџџ6„Hћџџ„Kћџџ6…Nћџџ…Qћџџ6…Tћџџ†Wћџџ6†Zћџџ‡]ћџџ6‡`ћџџ‡cћџџ6ˆfћџџˆiћџџ6‰lћџџ‰oћџџ6‰rћџџŠuћџџ6ŠxћџџŠ{ћџџ6‹~ћџџ‹ћџџ6Œ„ћџџŒ‡ћџџ6ŒŠћџџћџџ6ћџџŽ“ћџџ6Ž–ћџџŽ™ћџџ6œћџџŸћџџ6ЂћџџЅћџџ6Јћџџ‘Ћћџџ6‘Ўћџџ‘Бћџџ6’Дћџџ’Зћџџ6“Кћџџ“Нћџџ6“Рћџџ”Ућџџ6”Цћџџ”Щћџџ6•Ьћџџ•Яћџџ6–вћџџ–ећџџ6–ићџџ—лћџџ6—оћџџ˜сћџџ6˜фћџџ˜чћџџ6™ъћџџ™эћџџ6™№ћџџšѓћџџ6šіћџџ›љћџџ6›ќћџџ›џћџџ6œќџџœќџџ6ќџџ ќџџ6ќџџžќџџ6žќџџžќџџ6ŸќџџŸќџџ6  ќџџ #ќџџ6 &ќџџЁ)ќџџ6Ё,ќџџЂ/ќџџ6Ђ2ќџџЂ5ќџџ6Ѓ8ќџџЃ;ќџџ6Ѓ>ќџџЄAќџџ6ЄDќџџЅGќџџ6ЅJќџџЅMќџџ6ІPќџџІSќџџ6ЇVќџџЇYќџџ6Ї\ќџџЈ_ќџџ6ЈbќџџЈeќџџ6ЉhќџџЉkќџџ6ЊnќџџЊqќџџ6ЊtќџџЋwќџџ6ЋzќџџЌ}ќџџ6Ќ€ќџџЌƒќџџ6­†ќџџ­‰ќџџ6­ŒќџџЎќџџ6Ў’ќџџЏ•ќџџ6Џ˜ќџџЏ›ќџџ6АžќџџАЁќџџ6АЄќџџБЇќџџ6БЊќџџВ­ќџџ6ВАќџџВГќџџ6ГЖќџџГЙќџџ6ДМќџџДПќџџ6ДТќџџЕХќџџ6ЕШќџџЕЫќџџ6ЖЮќџџЖбќџџ6ЗдќџџЗзќџџ6ЗкќџџИнќџџ6ИрќџџЙуќџџ6ЙцќџџЙщќџџ6КьќџџКяќџџ6КђќџџЛѕќџџ6ЛјќџџМћќџџ6МўќџџМ§џџ6Н§џџН§џџ6О §џџО §џџ6О§џџП§џџ6П§џџП§џџ6Р§џџР§џџ6С"§џџС%§џџ6С(§џџТ+§џџ6Т.§џџУ1§џџ6У4§џџУ7§џџ6Ф:§џџФ=§џџ6Ф@§џџХC§џџ6ХF§џџЦI§џџ6ЦL§џџЦO§џџ6ЧR§џџЧU§џџ6ШX§џџШ[§џџ6Ш^§џџЩa§џџ6Щd§џџЩg§џџ6Ъj§џџЪm§џџ6Ыp§џџЫs§џџ6Ыv§џџЬy§џџ6Ь|§џџЭ§џџ6Э‚§џџЭ…§џџ6Юˆ§џџЮ‹§џџ6ЮŽ§џџЯ‘§џџ6Я”§џџа—§џџ6аš§џџа§џџ6б §џџбЃ§џџ6вІ§џџвЉ§џџ6вЌ§џџгЏ§џџ6гВ§џџгЕ§џџ6дИ§џџдЛ§џџ6еО§џџеС§џџ6еФ§џџwпњџџwпњџџ6}эњџџwпњџџ6tюњџџ  џџџ  џџџ% ( &% у5џџџ6 хўџџ  џџџ  џџџ% ( &% IЫ§џџ6"ўџџ'% V,ђ ў"ўўў% ( IЫ§џџIЫ§џџ6Eк§џџIЫ§џџ6;в§џџўџџ  џџџ  џџџ% ( &% ћ‰ќџџ6ў‹ќџџќџџ6ќџџ‘ќџџ6 “ќџџ •ќџџ6—ќџџ™ќџџ6›ќџџќџџ6ŸќџџЁќџџ6"Ѓќџџ%Ѕќџџ6(Їќџџ+Љќџџ6.Ћќџџ1­ќџџ64Џќџџ7Бќџџ6:Гќџџ=Еќџџ6@ЗќџџCЙќџџ6FЛќџџIНќџџ6LПќџџOСќџџ6RУќџџUХќџџ6XЧќџџ[Щќџџ6^ЫќџџaЭќџџ6dЯќџџgбќџџ6jгќџџmеќџџ6pзќџџsйќџџ6vлќџџyнќџџyнќџџV(z7‰Cqбќjкќyнќ  џџџ  џџџ% ( % €( ( % €( % €(