рдПрдиреЗрд╕реНрдереАрд╕рд┐рдпрд╛ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдкрд╛рджрди рдкрд░ рдЬрд╛рд╡рд╛ рдХреЛрдб рдкреИрдЪрд┐рдВрдЧ

рдЫрд╡рд┐

рдпрд╣рд╛рдВ рдореИрдВ рдЙрди рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдЙрдкрдХрд░рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдУрдбрдиреЛрдХреНрд▓рд╛рд╕реНрдирд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред рдХрдВрдкрдиреА рдХреЗ рдЕрдВрджрд░, рд╣рдо рдЗрд╕реЗ "рд╣реЙрдЯ рдХреЛрдб рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ" (HCR) рдХрд╣рддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕ рдЯреВрд▓ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд░реЛрдХ-рдЯреЛрдХ рдХреЗ рд╡рд░реНрдХрд┐рдВрдЧ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд░реНрд╡рд┐рд╕реЗрдЬ рдореЗрдВ рдХреНрд░рд┐рдЯрд┐рдХрд▓ рдФрд░ рдЕрдирдЪрд╛рд╣реА рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рдХрдмрд╛рдбрд╝ рд╕реЗрд╡рд╛ рдХреЗ рдПрдХ рдирдП - рд╕рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЙрдмрд╛рдК рдФрд░ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдореЗрдЬрдмрд╛рди рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдореЗрдВ рдкрд░рд┐рдЪрд░ рдкрд░реНрдпрд╛рдкреНрдд рд▓рдВрдмреЗ рдард╣рд░рд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдирд┐рд╕реНрддрдмреНрдзрддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдПред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдмрд╣реБрдд рд╕рдордп рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдХреНрд╖рдг рд╕реЗ рдЕрдВрддрд░рд╛рд▓ рдХреЛ рдХрдо рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрдм рддреНрд░реБрдЯрд┐ рдХреЛ рдШрдВрдЯреЗ рд╕реЗ рдорд┐рдирдЯ рддрдХ рд╕реБрдзрд╛рд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рдХреЛрдб рдореЗрдВ рдорд╛рдореВрд▓реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рддрдп рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдФрд░ рдХреБрдЫ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ рдкрд░ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реБрдИред рдпрд╣реА рд╣реИ, рдЬрдм рд╡рд┐рдзрд┐ рдХреЗ рднреАрддрд░ рдХрдИ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдмрджрд▓рдХрд░ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕рд╣рдпреЛрдЧрд┐рдпреЛрдВ рдХреЛ рд╡рд┐рдЪрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдШрдВрдЯреЛрдВ рдЗрдВрддрдЬрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдЫрд╡рд┐
рдЖрдк рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

рдЫрд╡рд┐
рдмреЗрд╢рдХ, рдЖрдк рдмрд╣реБрдд рдЕрдзрд┐рдХ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдирдИ рдХрдХреНрд╖рд╛рдПрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд▓реНрджреА рд╕реЗ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреНрд░рдмрдВрдзрдХ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреВрдЫрддрд╛ рд╣реИ, рдЕрдЧрд▓реЗ рдЕрдкрдбреЗрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛ред рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИ, рдЕрдЧрд░ рдорд╣рд╛рд╢рдп рдХреЛ рд╡рд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдкрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдФрд░ рдЕрдирдиреНрддрддрд╛ рдХреЗ рд▓рд┐рдП "рдкреИрдЪ" рдбрд╛рд▓рдирд╛ рд╕рдВрднрд╡ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдкрдХрд░рдг рд╕рд░реНрд╡рд╡реНрдпрд╛рдкреА рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬрд╛рд╡рд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реА рдорд╛рдирдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ: java.lang.instrument.Instrumentation рдФрд░ рдЗрд╕рдХрд╛ рддрд░реАрдХрд╛ рд╢реВрдиреНрдп redefineClasses (ClassDefinition ... рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ) рдмрддрд╛рддрд╛ рд╣реИ ред

Instrumentation.redefineClasses рдирдП рдмрд╛рдЗрдЯ рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИред рдЖрдк рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдирд┐рд░реНрднрд░рддрд╛ рд╡рд╛рд▓реЗ рдХрдИ рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЕрдзрд┐рднрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдореМрдЬреВрджрд╛ рдХреНрд▓рд╛рд╕ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рдЗрдирд╣реЗрд░рд┐рдЯреЗрдВрд╕ рдХреЛ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рдФрд░ рдЗрдВрд╕реНрдЯреЗрдВрд╕ рдпрд╛ рдХреНрд▓рд╛рд╕ рдлреАрд▓реНрдбреНрд╕ рдХреЛ рдирд╣реАрдВ рдЫреВрддреА рд╣реИред рдЖрдк рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐, рд╕реНрдерд┐рд░рд╛рдВрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдкреВрд▓ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдирдИ рдХрдХреНрд╖рд╛рдПрдВ рдпрд╛ рдЙрдкрд╡рд░реНрдЧ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░, рдЙрджрд╛рд╣рд░рдг рдлрд╝реАрд▓реНрдб рдФрд░ рдХреНрд▓рд╛рд╕ рдлрд╝реАрд▓реНрдб рдирд╣реАрдВ рдмрджрд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ RedefineClasses рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ред рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬрдм рдХрдХреНрд╖рд╛рдПрдВ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИрдВ, рддреЛ рдХреЛрдб рдХреЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд▓реА рдмрд╛рд░ рдЙрд╕реА рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрдм рдирдпрд╛ рдмрд╛рдпрдЯреЗрдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдПрдХ рдРрд╕реА рд╡рд┐рдзрд┐ рдХреЗ рдХреЛрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЕрдирдВрдд рд▓рдВрдмрд╛ рдЪрдХреНрд░ рд╣реИ, рддреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЗрд╕ рдЪрдХреНрд░ рдХреЗ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдмрд╣реБрдд рд╕рд░рд▓рддрд╛ рд╕реЗ: рдЖрдк рдХреЛрдб рдХреЛ рдХреЗрд╡рд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдмрд┐рдВрджреБ рдХреЗ рдЕрдВрджрд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдФрд░ рдпрд╣рд╛рдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓реВрдк рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ, рдЬреЛ рдХрд┐ рдЬрдм рддрдХ рд╡рд┐рдзрд┐ рдкреВрд░реА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддрдм рддрдХ рддрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЫрд╡рд┐

рдореБрдЦреНрдп рдХрдард┐рдирд╛рдИ рдПрдХ рдЙрдкрдХрд░рдг рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдереА рдЬреЛ рдУрдбрдиреЛрдХреНрд▓рд╛рд╕рдирд┐рдХ рдЗрдХреЛрд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЙрдкрдХрд░рдг рдЬреЛ рд╕рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдЬреЛ рд▓рдЧрд╛рддрд╛рд░ рдФрд░ рдкрд╛рд░рджрд░реНрд╢реА рд░реВрдк рд╕реЗ рд╕реИрдХрдбрд╝реЛрдВ рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рд╕рднреА рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░реЗрдЧрд╛, рд╕рд╛рде рд╣реА рд▓рдЪреАрд▓рд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ рдЙрддреНрдкрд╛рджрди рдкрд░ рд▓рдЧрд╛рддрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рджрд░реНрдЬрдиреЛрдВ рдкреНрд░рдпреЛрдЧреЛрдВ, рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдЕрдкрдбреЗрдЯ рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреИрд╕реЗ рдПрдХ рдкреИрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рдбреЗрд╡рд▓рдкрд░ / рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рд╕реЗ рдЙрддреНрдкрд╛рджрди рдкрд░ рдПрдХ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐ рджрд░реНрдЬрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдкрд░ рдХреБрдЫ рдорд╛рдирдХ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдХреЛрдб рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рдареАрдХ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

1. рдХреЛрдб рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП GIT рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдмреНрд░рдВрдЪ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рди рдХреЗрд╡рд▓ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдХрд╛рд░рдг, рдмрд▓реНрдХрд┐ рдмрд╛рдж рдХреА рд╕рдВрднрд╛рд╡рд┐рдд рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рднреА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

2. TeamCity рдиреЗ рдкреИрдЪ рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреАред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдмреНрд░рдВрдЪ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдирдП рдЕрд╕реЗрдВрдмрд▓реА рдХреА рддреБрд▓рдирд╛ рдЙрддреНрдкрд╛рджрди рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдПрдХ рдХреЗ рд╕рд╛рде рдХреА рдЬрд╛рддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдмрд┐рд▓реНрдб рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рд▓рд┐рдЦрд╛, рдЬреЛ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рд╕реЗ рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ, рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрджрд▓ рдЧрдП рд╣реИрдВ рдпрд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреЛрдиреЛрдВ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдореЗрдВ рдЬрд╛рд╡рд╛ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдХрдВрдкрд╛рдЗрд▓рд░ рдХрд╛ рдПрдХ рдФрд░ рд╕рдВрд╕реНрдХрд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдЧрд╛ рдФрд░ рд▓рдЧрднрдЧ рд╕рднреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреИрдЪ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреЗрд╡рд▓ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдВрдЧреНрд░рд╣ рдмрдирд╛рдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЗрдВ рдорд┐рд▓реЗрдВрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рджрд░реНрдЬрдиреЛрдВ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдкреИрдЪ рджреЗрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рд▓рд╛рдПрдЧрд╛ред рдмрд┐рд▓реНрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рди рдХреЗрд╡рд▓ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛрдб рдХреЗ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ, рдмрд▓реНрдХрд┐ рдЖрдк рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреИрдЪреЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рднреА рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рджреЛ рд╡рд┐рдзрд╛рдирд╕рднрд╛рдУрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╕рдордп, рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ (рдЬрд╛рд░-рдлрд╛рдЗрд▓реЗрдВ) рдореЗрдВ рдЕрдВрддрд░ рдкрд╛рдП рдЬрд╛рдПрдВрдЧреЗред

3. рд╕рдлрд▓ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрдЪ рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рднрдВрдбрд╛рд░ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╡рд┐рдВрдбреЛ рдореЗрдВ рдПрдХ рдХреБрдВрдЬреА (рдпрд╛ рд╣реИрд╢) рдЬрд╛рд░реА рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ рдкреИрдЪ рдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд╣рдЪрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдХреБрдЫ рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреЛрдб рдЙрддреНрдкрд╛рджрди рдХреЛ рдорд┐рд▓реЗрдЧрд╛ред

рдЫрд╡рд┐

рдЦреИрд░, рдФрд░ рдлрд┐рд░ рд╕реЗ - рдЖрдк рдЕрд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рд░-рдмрд╛рд░ рдкреИрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реА рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рд╣реИрд╢ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рд╣реЛрдЧрд╛ред

4. рдЗрд╕рдХреЗ рдмрд╛рдж, рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрд╡рд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рдпреВрдЖрдИ рдореЗрдВ рдЖрдк рдХрд┐рд╕ рд╕реЗрд╡рд╛ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХрд┐рд╕ рдореЗрдЬрдмрд╛рдиреЛрдВ рдкрд░ рдФрд░ рдХрд┐рди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкреИрдЪ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЫрд╡рд┐

рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдЗрддрдиреА рдмрд╣реБрддрд╛рдпрдд рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рдЪреАрд▓реЗрдкрди рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рд╕реНрддрд░ рджреЗрддреА рд╣реИ, рдЬреЛ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рд╕реЗ рдПрдХ рдмрдбрд╝реЗ рдЪрд┐рдбрд╝рд┐рдпрд╛рдШрд░ рдореЗрдВ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╕рд░реНрд╡рд░ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ рдЕрд▓рдЧ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкреИрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╛, рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП, рд╣реЙрдЯ рдХреЛрдб Rreplace рдХреЛ рдкрд╣рд▓реЗ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░, рдпрд╛ рд╕рд░реНрд╡рд░ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдкрд░ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЖрд╡реЗрджрди рдХреЗ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

5. рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЪрдпрдирд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓рддреА рд╣реИ рдХрд┐ рдкреИрдЪ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рд╣реИрд╢ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рд╕рднреА рд╕реЗрд╡рд╛рдПрдВ "рдкреИрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ" рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рддреА рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИрдВред рд╡реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЗрд╡рд▓ рддрднреА рдЬрдм рд╕рдВрд╕реНрдХрд░рдг рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдкреИрдЪ рдХрд╛ рд╣реИрд╢ рдЧрд╛рдпрдм рдпрд╛ рдЕрд▓рдЧ рд╣реИ, рд╡реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдкреИрдЪ рдЕрд╕реЗрдВрдмрд▓реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддреА рд╣реИ, рдФрд░ рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдПрдбреНрд░реЗрд╕, рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд░рд┐рдЯреНрд░реАрдЯ рдХреЗ рдмреАрдЪ рдкреНрд░рддреАрдХреНрд╖рд╛ рдЕрд╡рдзрд┐ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред

6. рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд╣реИрд╢ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рдЕрдирдкреИрдХ рдХрд░рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди.getAllLoadedClasses () рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рд▓реЛрдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рд░рдгреА рдореЗрдВ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ, рд╕рднреА рдирдП рд╡рд░реНрдЧреЛрдВ рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдирдпрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдХреНрд▓рд╛рд╕рдкреИрде, рдФрд░ рдЗрд╕ рдХреНрд▓рд╛рд╕рдкреИрде рдХреЛ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред RedefineClasses рд╡рд┐рдзрд┐ рд╕реЗ рдЧреБрдЬрд░реЗрдВред

7. рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛: рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕рдВрдХреЗрдд рдХрд╛ рдЖрдЧрдорди, рдЗрд╕рдХреЗ рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ, рд╕рддреНрдпрд╛рдкрди, рдЕрдирдкреИрдХрд┐рдВрдЧ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдЧ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЕрдкрдиреЗ рдЖрдк рд╕реЗ, рддрд╛рдХрд┐ рдЖрдк рдЬрд▓реНрджреА рдФрд░ рдмрд┐рдирд╛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЗрд╢рд╛рд░реЛрдВ рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд╕рдХреЗрдВред

8. рдкреИрдЪ рдХреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреИрдЪ рд╣реИрд╢ рд╕рд╣рд┐рдд рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░рдЪрд┐рдд рдкрдВрдХреНрддрд┐ рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рдкреИрдЪ рдХреЗ рд▓рд┐рдП рдмрджрд▓рдХрд░ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдХрд┐ рдХреБрдЫ рд╣реЛрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ, рд╣рдо рдЙрд╕ рд╣реЛрд╕реНрдЯ рдХреЗ рд╣реЙрдЯ рдХреЛрдб рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рд▓реЙрдЧ рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реБрдЖ рд╣реИред рдпрджрд┐ рдпреЗ рд╕рдВрдЪрд╛рд░ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ, рддреЛ рдЖрдк рдкреИрдЪ рдХрдорд╛рдВрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрд╕реНрдЯ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред

рдХреНрдпрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреИрдЪрд┐рдВрдЧ рд╕реЗ рд░реЛрдХ рд╕рдХрддреА рд╣реИрдВ? рдЙрдирдореЗрдВ рд╕реЗ рдХрд╛рдлреА рдХреБрдЫ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреНрд▓рд╛рд╕ рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореИрдВ рдЕрдВрддрд┐рдо рд╕реНрдерд╛рди рдкрд░ рд░рдЦреВрдВрдЧрд╛ред рдЕрдм рддрдХ, рдЯреЗрдврд╝реЗ рдХреЛрдб рдЬреЛ рдХрд┐ redefineClasses рдХреА рд╕рдЦреНрдд рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдореЗрд╢рд╛ JVM рджреНрд╡рд╛рд░рд╛ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкрд░рд┐рдгрд╛рдо рдХреЗ рдмрд┐рдирд╛ рдлреНрд▓реИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред RedefineClasses рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, JVM рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЛрдХ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рджреВрд╕рд░реЗ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рддреА рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдбрд░рд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рд╕рдмрд╕реЗ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рдХреНрд╖рдг рд╕рд░реНрд╡рд░ рдХреЛ рдкреИрдЪ рдХреА рдбрд┐рд▓реАрд╡рд░реА рд╣реИ, рдЬреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реЗрдЯреНрд░рд┐рди рджреНрд╡рд╛рд░рд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд░рд┐рдЯреНрд░реЗрд╕реЗрдЬ рдорджрдж рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреИрдЪ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдЬрдмрд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдкреИрдЪ рдХреЛ рдХреЗрд╡рд▓ рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рддреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдЕрд░реНрдерд╛рддред рдкреИрдЪ рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдпрджрд┐ рд╣реИрд╢ рдХреБрдВрдЬреА рдмрджрд▓ рдЧрдИ рд╣реИред

рдПрдХ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдЬрдм рдлрд┐рдХреНрд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдирдпрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдкрд╣рд▓реЗ рдкреИрдЪ рдХреЛ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рд▓реЙрдЧреНрд╕, рдЪрд╛рд░реНрдЯреНрд╕ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╣рдо рдЕрдиреНрдп рдореЗрдЬрдмрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдпрд╣ рд╕рднреА рд╕рд╣рдкрд╛рдареА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рддрд░реНрдХ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╣реИ: рдХрд┐рд╕реА рднреА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдПрдЪрд╕реАрдЖрд░ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреИрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдкреИрдЪ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдФрд░ рдЕрдм рд╣реЙрдЯ рдХреЛрдб рд░рд┐рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдкрддрд╛ рд╣реИред

  1. рд╣рдорд╛рд░реЗ JavaAgentред JavaAgent, рдЕрдЧрд░ рдХреЛрдИ рднреВрд▓ рдЧрдпрд╛ рд╣реИ , рддреЛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЧрдард┐рдд * .jar рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ JVM рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: -Javaagent: /path/to/lib.my-agent.jar рдЬрд╛рд╡рд╛рдЧреЗрдВрдЯ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдФрд░ рдХреЛрдб рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЬрд╛рджреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣ рдПрдЬреЗрдВрдЯ рдореЗрдВ рд╣реИ рдХрд┐ java.lang.instrument.Instrumentation рдХреНрд▓рд╛рд╕ рдЙрдкрд▓рдмреНрдз рд╣реИред рд▓реЗрдХрд┐рди, рдореИрдВрдиреЗ рдЙрд╕реЗ (рдПрдЬреЗрдВрдЯ) рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрдВрдж рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдПрдЬреЗрдВрдЯ рдЕрдкрдбреЗрдЯ рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╕ рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдХреНрд▓рд╛рд╕ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╡рд░реНрдЧ рдХреЗ рд╕реНрдерд┐рд░ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдЖрд╡реЗрджрди рдореЗрдВ рдХрд╣реАрдВ рд╕реЗ рднреА рд╢реБрд░реВ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╕реЗрд╡рд╛ - рд╣рдорд╛рд░реЗ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╣рд╛рдБ рд╣реИ рдХрд┐ рд╣реЙрдЯ рдХреЛрдб рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреА рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЫрд┐рдкреА рд╣реБрдИ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдпрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП HCR рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдмрджрд▓рддреЗ рд╕рдордп, рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЧрддрддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  3. рдЯреАрдорд╕рд┐рдЯреА рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг - рдЖрд╕рд╛рдиреА рд╕реЗ "рдкреИрдЪ" рдмрдирд╛рдиреЗ рдФрд░ рдЙрдирдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрд╢реЛрдзрд┐рдд рдпрд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЗрд╕ рдЙрдкрдХрд░рдг рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рдлрд╛рдпрджреЗ рд╣реИрдВ? рдкрд╣рд▓реЗ рдареЗрд╕ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЧрддрд┐ рд╣реИред рд▓реЙрдЧ рд╕реЗ, рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рд╕рд╣рдХрд░реНрдореА рдзреАрд░реЗ-рдзреАрд░реЗ рдПрдЪрд╕реАрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдмрдЬрд╛рдп рд░рд┐рд▓реАрдЬ рдХреЗ рдЗрдВрддрдЬрд╛рд░ рдХреЗред рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрд╡реЗрджрди рдХреА рдЧрддрд┐ рд╣реИред рдЖрд╡реЗрджрди рдХреЛ рд░реЛрдХрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЬреЗрд╡реАрдПрдо рдХреЗрд╡рд▓ рдПрдХ рджреВрд╕рд░реЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред

рдФрд░ рд╣рдорд╛рд░реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдФрд░ рдЦреБрд╢реА рд╕реЗ рдЪрдВрдЧрд╛ рдХрд┐рдпрд╛ рдФрд░ рд╕рд░реНрд╡рд░ рдФрд░ рд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд┐рдирд╛ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рд╕реАрдзреЗ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдЧрд▓рддрд┐рдпреЛрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред

Source: https://habr.com/ru/post/hi429040/


All Articles