рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░реВрд╡реА рдФрд░ рдЬрд╛рд╡рд╛ рдХреЗ рд▓рд┐рдП рдбреАрдПрд╕рдПрд▓

рдХреНрдпреЛрдВ?


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

рд╕рдВрднрд╡рддрдГ рдРрд╕реЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рдЬреЛ рд╕рднреА рдиреЗ рдПрдХ рд░реВрдк рдореЗрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реЛ, рд╕рд╛рдзрд╛рд░рдг рдмреИрдЪ рдХреА рдлрд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ - рдмреИрдЯ рдпрд╛ рд╢ред

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

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

рдХреИрд╕реЗ?


рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдореИрдВ рдЖрдкрдХреЛ рдЧреНрд░реВрд╡реА рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рдирд╣реАрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реВрд╕реА рдореЗрдВ рднреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░рд┐рдпрд╛рдВ рд╣реИрдВред рдореИрдВ рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХреБрдЫ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред

рдЧреНрд░реВрд╡реА рд╣рдореЗрдВ рдЬрд╛рд╡рд╛ рдХреЛрдб рд╕реЗ рдЧреИрд░-рд╕рдВрдХрд▓рд┐рдд рдЧреНрд░реВрд╡реА рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЬреЛрдбрд╝реА рдЧрдИ рдпрд╛ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

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

рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Groovy рдХреЛрдб рдХреЛ x: \ GroovyScript.groovy рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВрдЧреЗ:
Println "рдЧреНрд░реВрд╡реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ"
рдмрд╣реБ = {
num1, num2 -> рд╕рдВрдЦреНрдпрд╛ 1 * num2
}
рдмрд╣реБ ( 4 , 4 )


рдЖрдкрдХреЗ рдЬрд╛рд╡рд╛ рдХреЛрдб рдореЗрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

GroovyShell рд╢реЗрд▓ = рдирдпрд╛ GroovyShell ( ) ;
рд╡рд╕реНрддреБ рдкрд░рд┐рдгрд╛рдо = рдЦреЛрд▓ред рдореВрд▓реНрдпрд╛рдВрдХрди ( рдирдИ рдлрд╝рд╛рдЗрд▓ ( "x: /GroovyScript.groovy" ) ) ;
рдкреНрд░рдгрд╛рд▓реАред рдмрд╛рд╣рд░ ред рдкреНрд░рд┐рдВрдЯреНрд▓рди ( "рдкрд░рд┐рдгрд╛рдо =" + рдкрд░рд┐рдгрд╛рдо ) ;


рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, 2 рд▓рд╛рдЗрдиреЗрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВрдЧреА, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдкрд╣рд▓реА, рджреВрд╕рд░реА рдЬрд╛рд╡рд╛ рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде:

Groovy script
result=16


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

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

рдбреАрдПрд╕рдПрд▓

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

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

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

// рдЖрдпрд╛рдд
...
// рдЪреЗрдХ рд╕реНрдЯреЗрдЯ
рдкреНрд░рдХреНрд░рд┐рдпрд╛ p = getProcess ( ... )
рдЗрдВрдЯ рд╕реНрдЯреЗрдЯ = рдкреАред getCompleteState ( ... )
рдЕрдЧрд░ ( рд░рд╛рдЬреНрдп == 1 ) {
// doSomeLogicForArchive
рдЬрд╝рд┐рдк z = рдирдпрд╛ рдЬрд╝рд┐рдк ( ... )
рдЬреЗрдбред рдореЗрдХрдЬрд┐рдк ( ... )
} {
// doAnotherLogic
рд╡рд╛рдкрд╕реА
}
// doSomeLogicForSendNotify
Smtp smtp = рдирдпрд╛ smtp ( ... )
рд╕рдВрджреЗрд╢ m = рдирдпрд╛ рд╕рдВрджреЗрд╢ ( ... )
smtpред рднреЗрдЬреЗрдВ ( рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореА ... )


рдХреЛрдб рдХрд╛рдлреА рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рд╕рдордЭрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдЗрдП рдЗрд╕реЗ рд╕рд░рд▓ рдХрд░реЗрдВ рдФрд░ рддреАрди рд╕рдВрдХреЗрддрд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реНрдЯреИрдЯрд┐рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд░реНрдХрд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдбрд╛рд▓реЗрдВред рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

рдЖрд░реНрдХрд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рдЕрдЧрд░ ( рдЖрд░реНрдХрд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ ред checkState ( ) ) {
ArchiveScriptред makeArchive ( .. )
} {
// doAnotherLogic
рд╡рд╛рдкрд╕реА
}
ArchiveScriptред sendNotify ( ... )


рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░? "рдмреЗрд╣рддрд░, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рд╣реИрдВ - рдЖрдпрд╛рдд рдФрд░ рд╡рд░реНрдЧ рдХреЗ рдирд╛рдо рдЬреЛ рд╣рдЯрд╛рдиреЗ рдпреЛрдЧреНрдп рднреА рд╣реЛрдВрдЧреЗред" рдФрд░ рдЧреНрд░реВрд╡реА рдореЗрдВ рдПрдХ рд╕рдорд╛рди рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ - рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╕ рдХреНрд▓рд╛рд╕ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдЖрд░реНрдХрд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рд╕ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рддрд░реАрдХреЗ рд╕реНрдЯреИрдЯрд┐рдХ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреЗред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдЕрднреА рднреА рд╕рд░рд▓реАрдХреГрдд рд╣реИ - рдЖрдпрд╛рдд рдФрд░ рд╡рд░реНрдЧ рдЙрдкрд╕рд░реНрдЧ рдЧрд╛рдпрдм:

рдЕрдЧрд░ ( checkState ( ) ) {
makeArchive ( .. )
} {
// doAnotherLogic
рд╡рд╛рдкрд╕реА
}
sendNotify ( ... )


рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред рдпрджрд┐ рд╕реНрдерд┐рддрд┐ рд╢рд╛рдЦрд╛ рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░ рдХреЛрдб рдПрдХрд▓-рдкрдВрдХреНрддрд┐ рд╣реИ, рддреЛ рдЖрдк рдШреБрдВрдШрд░рд╛рд▓реЗ рдмреНрд░реЗрд╕ рдХреЛ рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдФрд░ рдЧреНрд░реВрд╡реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдЕрдХреНрд╕рд░ рдХреЛрд╖реНрдардХ рд╕реЗ рд╡рд┐рдзрд┐ рдирд╛рдо рдХреЗ рджрд╛рдИрдВ рдУрд░ рдЖрддрд╛ рд╣реИред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛрдб рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реИ - рдЖрдкрдХреЛ рдПрдХ CompilerConfiguration рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЖрд░реНрдХрд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрд▓рд╛рд╕ рдХреЗ рдирд╛рдо рдХреЗ рдмрд░рд╛рдмрд░ ScriptBaseClass рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ GroovyShell рд╕реЗ рдкрд╛рд╕ рдХрд░реЗрдВ:

CompilerConfiguration conf = new CompilerConfiguration ( ) ;
confред setScriptBaseClass ( "package.ArchiveScript" ) ;
GroovyShell рд╢реЗрд▓ = рдирдпрд╛ GroovyShell ( conf ) ;


рдЕрдЧрд▓рд╛, рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдкреБрд░рд╛рд▓реЗрдЦ рд╡рд┐рдзрд┐ рдореЗрдВ рдореЗрдХрдЕрдк рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдбреАрдИрдПрдПрдХреНрд░рд╛рдЗрд╡рд┐рд╡ ( рд╕реЛрд░реНрд╕рдкрд╛рде, рдбреЗрд╕реНрдЯрдкреИрде, рдбрд┐рд▓реАрдЯрд╕реЛрд░реНрд╕ )


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рдХреЙрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

MakeArchive ( "x: / aaa /" , "x: /a.zip" , true )

// рдпрд╛ рддреЛ

MakeArchive "x: / aaa /" , "x: /a.zip" , рд╕рдЪ


рдФрд░ рдЕрдЧрд░ рд╣рдо рджреГрд╢реНрдпрддрд╛ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧреНрд░реВрд╡реА рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдирд╛рдорд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

MakeArchive sourcePath: 'x: / aaa /' ,
рдирд┐рдпрддрд┐рдкрде: 'x: /a.zip' ,
deleteSource: рд╕рдЪ


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

рдбреАрдИрдПрдХреЗрдЪрд┐рд╡ ( рдкрд░рдо ) {
MakeArchiveIntern рдкрд╛рд░рдоред sourcePath , params рдкреНрд░рд╛рд░рдмреНрдз , рдкрд░рдо ред deleteSource
}


рдпрджрд┐ рд╣рдо рдЕрдиреНрдп рдХреЙрд▓ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдВрдд рдореЗрдВ рд╣рдорд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:

рдЕрдЧрд░ ( checkState ( 'SomeData' ) ) {
MakeArchive sourcePath: 'c: / 1 /*.*' ,
рдирд┐рдпрддрд┐рдкрде: 'c: /testarch.zip' ,)
deleteSource: рд╕рдЪ
} {
// doAnotherLogic
рд╡рд╛рдкрд╕реА
}
sendNotify: 'aaa@gdsl.ru' , рд╕рд╛рдордЧреНрд░реА: 'рд╕рдВрджреЗрд╢'


рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЬрдЯрд┐рд▓ рдФрд░ рдкрдардиреАрдп рдкрд░реНрдпрд╛рдкреНрдд рдХреЛрдб рдирд╣реАрдВ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдордиреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХрдИ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдорд┐рдиреА-рдбреАрдПрд╕рдПрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рдФрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд╕реНрд░реЛрдд рднрд╛рд╖рд╛ рдХреА рдкреВрд░реА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИред

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

рдкрд░реАрдХреНрд╖рдг

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

рдмреЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрдЧрд╣

рд╣рдо рдПрдХ рдирдпрд╛ рд╡рд░реНрдЧ рдЖрд░реНрдХрд╛рдЗрд╡рд╕рд┐рдкреНрдЯрдореЙрдХ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрд░реНрдХрд╛рдЗрд╡рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдорд╛рди рдПрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдпрд╛ рдХреБрдЫ рдирд╣реАрдВ)ред CompilerConfiguration рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп, рд╣рдо рдЗрд╕рдХрд╛ рдирд╛рдо рдореВрд▓ рдХреЗ рдмрдЬрд╛рдп рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред

CompilerConfiguration conf = new CompilerConfiguration ( ) ;
confред setScriptBaseClass ( "package.ArchiveScriptMock" ) ;


рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдореЗрдВ рддрд░реАрдХреЛрдВ рдХреЛ рдмрджрд▓рдирд╛

рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдирдХрд▓реА рд╡рд░реНрдЧ рдмрдирд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдкреБрд░рд╛рд▓реЗрдЦ рдореЗрдВ рд╣реА рдирдХрд▓реА рдХреЗ рд╕рд╛рде рддрд░реАрдХреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред Groovy рдореЗрдВ, рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣ рд╕реЗ:

ArchiveScriptред рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ ред {рдХреЗ рд╕рд╛рде
checkState { t -> true }
рдореЗрдХрдЕрд░реНрдЪрд┐рд╡ { рдкрд░рдо -> }
sendNotify { params -> }
}
рд░рдирд╕реНрдХреНрд░рд┐рдкреНрдЯ ( )


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

рдбреАрдИрдПрдХреЗрдЪрд┐рд╡ ( рдкрд░рдо ) {
// MakeArchiveInternal params.sourcePath, params.destPath, params.deleteSource
}


рдпрджрд┐ рд╣рдо рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рдЪреБрдХреЗ рд╣реИрдВ рддреЛ рд╣рдо рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдЖрдкрдХреЛ рдРрд╕рд╛ рд╣реА рдХреБрдЫ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:

рдбреАрдИрдПрдХреЗрдЪрд┐рд╡ ( рдкрд░рдо ) {
MakeArchiveInternalMock рдкрд░рдоред sourcePath , params рдкреНрд░рд╛рд░рдмреНрдз , рдкрд░рдо ред deleteSource
}


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

рдЕрдореВрд░реНрдд рд╡рд░реНрдЧ рдкреБрд░рд╛рд▓реЗрдЦ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ {
рдЖрд░реНрдХ рдЖрд░реНрдХ = рдирдпрд╛ рдЖрд░реНрдХрд╛рдЗрд╡ ( )
рдбреАрдИрдПрдХреЗрдЪрд┐рд╡ ( рдкрд░рдо ) {
рдЪрд╛рдкред рдкреБрд░рд╛рд▓реЗрдЦ ред sourcePath , params рдкреНрд░рд╛рд░рдмреНрдз , рдкрд░рдо ред deleteSource
}
...


рдЕрдм, рдЖрдк рддрд░реНрдХ рдФрд░ рд▓рд┐рдкрд┐ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдкрд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдкреБрд░рд╛рд▓реЗрдЦ рдХреЛ рдЗрд╕рдХреЗ рдореЙрдХ рд╕реЗ рдмрджрд▓реЗрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

// рдирдХрд▓реА рддрд░реАрдХреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
mockedMethods = {
checkState { рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рдХрд╛рд░ -> рд╕рддреНрдп }
рдореЗрдХрдЕрд░реНрдЪрд┐рд╡ { рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЛрд░реНрд╕рдкрд╛рде, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдбреЗрд╕реНрдЯрдкрд╛рде, рдмреВрд▓рд┐рдпрди рдбрд┐рд▓реАрдЯрд╕реЛрд░реНрд╕ -> }
sendNotify { рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯреВ, рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрдВрдЯреЗрдВрдЯ -> }
}

// рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рдмрджрд▓реЗрдВ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдкреБрд░рд╛рд▓реЗрдЦред рдореЗрдЯрд╛рдХреНрд▓рд╛рд╕ ред рдХреЗ рд╕рд╛рде ( mockedMethods )
рд░рдирд╕реНрдХреНрд░рд┐рдкреНрдЯ ( )

// рдпрд╛ рддреЛ
StubFor stub = new StubFor ( рд╕рдВрдЧреНрд░рд╣ ) ;
рдареВрдВрдаред рдорд╛рдВрдЧ ред {рдХреЗ рд╕рд╛рде
mockedMethods
}
рдареВрдВрдаред рдЙрдкрдпреЛрдЧ {
рд░рдирд╕реНрдХреНрд░рд┐рдкреНрдЯ ( )
}


рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкреБрд░рд╛рд▓реЗрдЦ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЬрд╛рд╡рд╛ рдореЙрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдкрд░рд┐рдгрд╛рдо


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

рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдкрд░рд┐рдпреЛрдЬрдирд╛ groovydsl рд╣реИ ред рд░реИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдЧреНрд░реЗрдбред

рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдЧреНрд░реВрд╡реА рд╕реЗ рдбреЛрдореЗрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд▓реИрдВрдЧреНрд╡реЗрдЬреЗрдЬ, рдлрд░реНрдЧрд▓ рдбрд┐рдпрд░рд▓, 2010 рдХреЗ рд▓рд┐рдП рдЖрддреЗ рд╣реИрдВ

рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!

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


All Articles