lQeI EMF@I @   RpARIALY|@Xҏuw 7lDl@Dl  I@l-8I;lIXUw%wh2x-Ixdv% 6B6=B6=66h6u6u5 TdA Lpcd Plug-in diagram % ( RpARIALY|@|ҏDuw\ 7lDl@Dl@ I@l|;l{;lI;l-;lHARIALw @L5dv% '% &%  ! &%             % " ( '% &% 9 +1-.% ( % ( +.0+RpARIALY|@|LH*w-HH(-Uw@*ww-HHH0]wDl@ I@l-I;l-HHHUw%w 2x-HxHdv% TguAi'Labstracts::ServiceRunnable% .6+ TX1:A3LP# T\B%AD-LthreadRuntimeInfo: ServiceHandlerRuntimeInfo   .6+ @@TX1:A3LP+ T,BAD%LgetInfo() : ServiceHandlerRuntimeInfo TX1:A3LP+ TBADLpServiceRunnable()TX1:A3LP+ RpARIALY|@|LH*w-HH(-Uw@*ww-HH0]wDl@ I@l-I;l-HHHUw%w 2x-xHdv% TBtAD Ldrun() : void% %  TWMcAE L`"produces"TA Ld"implements"  &% '% V0 ""'% V( "% % TALpThis instance is T ALtexecuted in thread TALppool. It provides T ALtclient`s connection T|AL\handling( ( ( '% &% +xr% ( % ( RpARIALY|@|LI*w-II(-Uw@*ww-IIIHW| -<D\|$W|G}w-IIIUw%w 2x-IxIdv% % +uuT*=6A r Ldinterface% T:QDAbLtabstracts::IService% uU6U   @@TXxMYAzOLP+ % TMYAOLgetServiceName() : String% % TXxZfAzBLP+ % TZfABLtgetVersion() : long% % TXxgsAz5LP+ % TgsA5LlgetBuild() : int% % TXxtAz(LP+ % TtA(LisCompatible(long) : boolean% % TXxAzLP+ % TAALgetHandler(TaskMeta, InputStream, OutputStream) : ServiceRunnableo% % TXxAzLP+ % TALtinitialize() : void% % TXxAzLP+ % TALtstopService() : void% %  &% '% V0Y0l[~[0202r&~' % V($0*&~&r2r% % TP^,*8A`p+LAll services must be extended from Service   T`^9)EA`c.Labstract class. But IService interface allows TH^F"RA`V*Lyou to understand what functionallity you TD^S+_A`I)Lshould implement to make your own service   ( ( ( '% &% +R% ( % ( +U% TTPZAVLLpabstracts::Service% :6: TXf"rA6LP# T8*frA,6'LserviceRuntimeInfo: ServiceRuntimeInfo  TXsA)LP- T*sqA,)Llavail: booleanTXALP- T*A,Lrepository: Repository = null 6 @@TX"ALP+ T*SA, L`Service()TX"ALP+ T*A,L|isAvailable() : booleanTX"ALP+ T*A,LsetAvailable(boolean) : voidTX"ALP+ T,*A,%LgetRuntimeInfo() : ServiceRuntimeInfo  TX"ALP+ T0*A,&LsetParentRepository(Repository) : void &% '% V0=#I??S%S%' % V(#%% % T\BAD-LService instance produce ServiceRunnables to T,BAD%Lhandle incoming client's connection.  TTB AD,LServiceRunnable are to be put to HandleTask T0B"AD&Lto be executed by ThreadPool owned by TB#/ADy Lhservice groupT8B0<ADl'LSee also: Connection resolution diagram ( ( ( &% U6X[6^a6dg6jm6ps6vy6|6666666666666666666V(    % ( &% 6.    % ( &% m06j2g46d7a96^;[>6X@UB6REOG6LIIL6FNCP6@S=U6:W7Z64\1^6.a+c6(f%h6"jm6oq6tv6x {6 }66666666666666666666666}6zm0m06e=m06_5    % ( % ( ( % ( % (