рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб BPMN2.0 рдпрд╛ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХрд╛ рдкрд░рд┐рдЪрдп

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



" рдПрдХреНрдЯреАрд╡рд┐рдЯреА " рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ (рдмрд┐рдЬрдиреЗрд╕ рдкреНрд░реЛрд╕реЗрд╕ рдореИрдиреЗрдЬрдореЗрдВрдЯ) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд▓реНрдХрд╛ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИ, рдЬреЛ рд╡реНрдпрд╛рдкрд╛рд░рд┐рдХ рд▓реЛрдЧреЛрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИред рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо BPMN2 рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рддреЗрдЬ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдЬрд╛рд╡рд╛ рдЗрдВрдЬрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ ред OpenSource рдкреНрд░реЛрдЬреЗрдХреНрдЯ Apache рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХреНрдЯреАрд╡рд┐рдЯреА рдХреЛ рдЖрдкрдХреЗ рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рд╕рд░реНрд╡рд░, рдХреНрд▓рд╕реНрдЯрд░ рдпрд╛ рдХреНрд▓рд╛рдЙрдб рдкрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╡рд╕рдВрдд рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИред



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



рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ



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



<!--

Activiti

-->

< dependency >

< groupId > org.activiti </ groupId >

< artifactId > activiti-engine </ artifactId >

< version > 5.1 </ version >

</ dependency >

< dependency >

< groupId > org.activiti </ groupId >

< artifactId > activiti-spring </ artifactId >

< version > 5.1 </ version >

</ dependency >





<!--

DataBase

-->

< dependency >

< groupId > com.h2database </ groupId >

< artifactId > h2 </ artifactId >

< version > 1.2.132 </ version >

</ dependency >

< dependency >

< groupId > commons-dbcp </ groupId >

< artifactId > commons-dbcp </ artifactId >

< version > 1.2.2 </ version >

</ dependency >





* This source code was highlighted with Source Code Highlighter .








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



Activiti рдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ, рдЙрдирдХреА рд╕реНрдерд┐рддрд┐, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рдЗрддрд┐рд╣рд╛рд╕ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рд╡реНрдпрд╡рд╕рд╛рдп рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛



рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рддрд░реНрдХрд╕рдВрдЧрдд рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рд╡рд░рдг рдХреА рдЗрдХрд╛рдЗрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХреНрдЯреАрд╡рд┐рдЯреА рд╣рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдмреАрдкреАрдПрдордПрди 2.0 рд╕рдВрдХреЗрддрди)ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдкрдиреА рдЦреБрдж рдХреА рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:



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



рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд┐рддреНрд░ рдорд┐рд▓рд╛:



рдЖрд░реЗрдЦ



ServiceTask "GenerateData" рдЫрджреНрдо рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдбреЗрдЯрд╛ (JavaDelegate рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ GenerateDataService рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди) рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ



@Service

public class GenerateDataService implements JavaDelegate {



public void execute(DelegateExecution execution) throws Exception {

Long someData = Calendar.getInstance().getTimeInMillis() % 2;

execution.setVariable( "someData" , someData);

}

}




* This source code was highlighted with Source Code Highlighter .








рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╛ рддреЛ ServiceTask "SayHelloA" рдпрд╛ ServiceTask "SayHelloB" рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрди рджреЛрдиреЛрдВ ServiceTask рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд SayHelloService рд╕реЗрд╡рд╛ рдкрджреНрдзрддрд┐ ( UEL рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди "$ {sayHelloService.printMessageB (рдирд┐рд╖реНрдкрд╛рджрди)") рдХрд╣рддреЗ рд╣реИрдВ:



@Service

public class SayHelloService {



public void printMessageA(ActivityExecution execution) {

System. out .println( "Hello world: variant A" );

}



public void printMessageB(ActivityExecution execution) {

System. out .println( "Hello world: variant B" );

}

}




* This source code was highlighted with Source Code Highlighter .








рдПрдХреНрд╕рдПрдордПрд▓ рдлреЙрд░реНрдо рдореЗрдВ (рдпрд╛рдиреА, рдмреАрдкреАрдПрдордПрди 2.0 рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ), рдЕрд░реНрдерд╛рддреН, рдпрд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХреНрдЯреАрд╡рд┐рдЯреА рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:



<? xml version ="1.0" encoding ="UTF-8" ? >

< definitions xmlns ="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti ="http://activiti.org/bpmn" xmlns:bpmndi ="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc ="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi ="http://www.omg.org/spec/DD/20100524/DI" typeLanguage ="http://www.w3.org/2001/XMLSchema" expressionLanguage ="http://www.w3.org/1999/XPath" targetNamespace ="http://www.activiti.org/test" >



< process id ="helloWorldProcess" name ="Hello World" >

< documentation > Simple "Hello World" process </ documentation >

< startEvent id ="startevent1" name ="Start" ></ startEvent >

< serviceTask id ="servicetask1" name ="GenerateData" activiti:class ="name.krestjaninoff.activiti.hello.process.GenerateDataService" ></ serviceTask >

< endEvent id ="endevent1" name ="End" ></ endEvent >

< sequenceFlow id ="flow1" name ="" sourceRef ="startevent1" targetRef ="servicetask1" ></ sequenceFlow >

< serviceTask id ="servicetask3" name ="SayHelloB" activiti:expression ="${sayHelloService.printMessageB(execution)}" ></ serviceTask >

< serviceTask id ="servicetask4" name ="SayHelloA" activiti:expression ="${sayHelloService.printMessageA(execution)}" ></ serviceTask >

< exclusiveGateway id ="exclusivegateway2" name ="Exclusive Gateway" ></ exclusiveGateway >

< sequenceFlow id ="flow4" name ="" sourceRef ="servicetask1" targetRef ="exclusivegateway2" ></ sequenceFlow >

< sequenceFlow id ="flow5" name ="${someData != 0}" sourceRef ="exclusivegateway2" targetRef ="servicetask3" >

< conditionExpression xsi:type ="tFormalExpression" ><! [CDATA[${someData != 0}]] ></ conditionExpression >

</ sequenceFlow >

< sequenceFlow id ="flow6" name ="${someData == 0}" sourceRef ="exclusivegateway2" targetRef ="servicetask4" >

< conditionExpression xsi:type ="tFormalExpression" ><! [CDATA[${someData == 0}]] ></ conditionExpression >

</ sequenceFlow >

< exclusiveGateway id ="exclusivegateway3" name ="Exclusive Gateway" ></ exclusiveGateway >

< sequenceFlow id ="flow7" name ="" sourceRef ="servicetask3" targetRef ="exclusivegateway3" ></ sequenceFlow >

< sequenceFlow id ="flow8" name ="" sourceRef ="servicetask4" targetRef ="exclusivegateway3" ></ sequenceFlow >

< sequenceFlow id ="flow9" name ="" sourceRef ="exclusivegateway3" targetRef ="endevent1" ></ sequenceFlow >

</ process >



< bpmndi:BPMNDiagram id ="BPMNDiagram_helloWorldProcess" >

< bpmndi:BPMNPlane bpmnElement ="helloWorldProcess" id ="BPMNPlane_helloWorldProcess" >

< bpmndi:BPMNShape bpmnElement ="startevent1" id ="BPMNShape_startevent1" >

< omgdc:Bounds height ="55" width ="55" x ="273" y ="10" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNShape bpmnElement ="servicetask1" id ="BPMNShape_servicetask1" >

< omgdc:Bounds height ="55" width ="105" x ="248" y ="120" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNShape bpmnElement ="endevent1" id ="BPMNShape_endevent1" >

< omgdc:Bounds height ="55" width ="55" x ="273" y ="460" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNShape bpmnElement ="servicetask3" id ="BPMNShape_servicetask3" >

< omgdc:Bounds height ="55" width ="105" x ="390" y ="304" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNShape bpmnElement ="servicetask4" id ="BPMNShape_servicetask4" >

< omgdc:Bounds height ="55" width ="105" x ="109" y ="304" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNShape bpmnElement ="exclusivegateway2" id ="BPMNShape_exclusivegateway2" >

< omgdc:Bounds height ="60" width ="60" x ="270" y ="210" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNShape bpmnElement ="exclusivegateway3" id ="BPMNShape_exclusivegateway3" >

< omgdc:Bounds height ="60" width ="60" x ="270" y ="370" ></ omgdc:Bounds >

</ bpmndi:BPMNShape >

< bpmndi:BPMNEdge bpmnElement ="flow1" id ="BPMNEdge_flow1" >

< omgdi:waypoint x ="328" y ="37" ></ omgdi:waypoint >

< omgdi:waypoint x ="248" y ="147" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

< bpmndi:BPMNEdge bpmnElement ="flow4" id ="BPMNEdge_flow4" >

< omgdi:waypoint x ="353" y ="147" ></ omgdi:waypoint >

< omgdi:waypoint x ="270" y ="240" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

< bpmndi:BPMNEdge bpmnElement ="flow5" id ="BPMNEdge_flow5" >

< omgdi:waypoint x ="330" y ="240" ></ omgdi:waypoint >

< omgdi:waypoint x ="390" y ="331" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

< bpmndi:BPMNEdge bpmnElement ="flow6" id ="BPMNEdge_flow6" >

< omgdi:waypoint x ="330" y ="240" ></ omgdi:waypoint >

< omgdi:waypoint x ="109" y ="331" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

< bpmndi:BPMNEdge bpmnElement ="flow7" id ="BPMNEdge_flow7" >

< omgdi:waypoint x ="495" y ="331" ></ omgdi:waypoint >

< omgdi:waypoint x ="270" y ="400" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

< bpmndi:BPMNEdge bpmnElement ="flow8" id ="BPMNEdge_flow8" >

< omgdi:waypoint x ="214" y ="331" ></ omgdi:waypoint >

< omgdi:waypoint x ="270" y ="400" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

< bpmndi:BPMNEdge bpmnElement ="flow9" id ="BPMNEdge_flow9" >

< omgdi:waypoint x ="330" y ="400" ></ omgdi:waypoint >

< omgdi:waypoint x ="273" y ="487" ></ omgdi:waypoint >

</ bpmndi:BPMNEdge >

</ bpmndi:BPMNPlane >

</ bpmndi:BPMNDiagram >

</ definitions >



* This source code was highlighted with Source Code Highlighter .








рд╕реЗрдЯрд┐рдВрдЧреНрд╕



рдЕрдм, рд╣рдореЗрдВ рд╕рдХреНрд░рд┐рдпрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдореВрд▓ рддрддреНрд╡реЛрдВ рдХреЗ рдореВрд▓ рддрддреНрд╡реЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЖрд░рдВрдн рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЪреВрдБрдХрд┐ рд╣рдо рд╕реНрдкреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдорд╛рд░реЗ рд▓рд┐рдП, рд╡рд┐рдиреНрдпрд╛рд╕ рд╕рдВрдмрдВрдзрд┐рдд рдлрд▓рд┐рдпреЛрдВ рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдХрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛:



< beans xmlns ="http://www.springframework.org/schema/beans"

xmlns:context ="http://www.springframework.org/schema/context"

xmlns:tx ="http://www.springframework.org/schema/tx"

xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation ="http://www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd

www.springframework.org/schema/context www.springframework.org/schema/context/spring-context-3.0.xsd

www.springframework.org/schema/tx www.springframework.org/schema/tx/spring-tx-3.0.xsd"


>

<!-- Configuration -->

< context:property-placeholder location ="classpath*:*.properties" />



<!-- Annotation based configuration -->

< context:annotation-config />

< context:component-scan base-package ="name.krestjaninoff" />





<!-- Data -->

< bean id ="dataSource"

class ="org.apache.commons.dbcp.BasicDataSource" destroy-method ="close" >

< property name ="driverClassName" value ="org.h2.Driver" />

< property name ="url" value ="jdbc:h2:mem:activiti;DB_CLOSE_DELAY=1000" />

< property name ="username" value ="sa" />

< property name ="password" value ="" />

</ bean >



< bean id ="transactionManager"

class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" >

< property name ="dataSource" ref ="dataSource" />

</ bean >

< tx:annotation-driven transaction-manager ="transactionManager" />





<!--

Activiti

-->

< bean id ="processEngineConfiguration" class ="org.activiti.spring.SpringProcessEngineConfiguration" >

< property name ="databaseType" value ="h2" />

< property name ="dataSource" ref ="dataSource" />

< property name ="transactionManager" ref ="transactionManager" />

< property name ="databaseSchemaUpdate" value ="true" />

< property name ="jobExecutorActivate" value ="false" />

< property name ="deploymentResources" value ="classpath*:/process/*.bpmn20.xml" />

</ bean >



< bean id ="processEngine" class ="org.activiti.spring.ProcessEngineFactoryBean" >

< property name ="processEngineConfiguration" ref ="processEngineConfiguration" />

</ bean >



< bean id ="repositoryService" factory-bean ="processEngine"

factory-method ="getRepositoryService" />

< bean id ="runtimeService" factory-bean ="processEngine"

factory-method ="getRuntimeService" />

< bean id ="taskService" factory-bean ="processEngine"

factory-method ="getTaskService" />

< bean id ="historyService" factory-bean ="processEngine"

factory-method ="getHistoryService" />

< bean id ="managementService" factory-bean ="processEngine"

factory-method ="getManagementService" />

</ beans >




* This source code was highlighted with Source Code Highlighter .








рдпрд╣ рдзреНрдпрд╛рди рджреЗрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ processEngineConfiguration рдмреАрди рдХреА рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд╕реНрд░реЛрдд рд╕рдВрдкрддреНрддрд┐ - рдпрд╣ рд╡рд┐рдиреНрдпрд╛рд╕рдХрд░реНрддрд╛ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╡рд░рдг рдлрд╛рдЗрд▓реЗрдВ рдХрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИрдВред рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдПрдХреНрдЯреАрд╡рд┐рдЯреА рдЗрдВрдЬрди рдореЗрдВ "рддреИрдирд╛рдд" рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдзрд┐рдХ рддреИрдирд╛рддреА рдпрд╣рд╛рдБ рд╡рд░реНрдгрд┐рдд рд╣реИ ред



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ



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



public class Main {

public static void main( String [] args) {



// Create Spring context

ClassPathXmlApplicationContext applicationContext =

new ClassPathXmlApplicationContext( "applicationContext.xml" );



// Start process

RuntimeService runtimeService = (RuntimeService) applicationContext.

getBean( "runtimeService" );

runtimeService.startProcessInstanceByKey( "helloWorldProcess" );

}

}




* This source code was highlighted with Source Code Highlighter .








рдЙрджрд╛рд╣рд░рдг



рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдХреЛрдб GitHub рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИ ред



All Articles