Skip to content

Commit f38eeb6

Browse files
committed
Fixes in project update / added CompanyValidationWorker.
1 parent 1899a56 commit f38eeb6

File tree

11 files changed

+100
-49
lines changed

11 files changed

+100
-49
lines changed

00-docs/src/docs/company/03-worker.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,10 @@ import scala.reflect.ClassTag
112112
*/
113113
trait CompanyWorkerHandler extends C7WorkerHandler
114114

115+
trait CompanyValidationWorkerDsl[
116+
In <: Product: InOutCodec
117+
] extends CompanyWorkerHandler, ValidationWorkerDsl[In]
118+
115119
trait CompanyInitWorkerDsl[
116120
In <: Product: InOutCodec,
117121
Out <: Product: InOutCodec,

00-docs/src/docs/development/createProject.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ subProjects: [
4848
// subProject1
4949
// subProject2
5050
]
51-
dependencies: {
52-
// mastercompany-services: 1.2.4
53-
// mycompany-commons: 1.0.3
54-
}
51+
dependencies: [
52+
// example-helper
53+
// example-accounts
54+
]
5555
```
5656

5757
@:callout(info)

00-docs/src/docs/development/projectDev.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,11 @@ Example:
244244
This creates the following files:
245245
```
246246
// the domain In -> NoOutput
247-
02-bpmn - main -> mycompany.myproject.bpmn.myProcess.v1.MySignalEvent
247+
02-bpmn - main -> mycompany.myproject.bpmn.myProcess.v1.MySignalEvent
248+
// the ValidationWorker
249+
03-worker - main -> mycompany.myproject.worker.myProcess.v1.MySignalEventWorker
250+
- test -> mycompany.myproject.worker.myProcess.v1.MySignalEventWorkerTest
251+
248252
```
249253

250254
### messageEvent
@@ -263,7 +267,10 @@ Example:
263267
This creates the following files:
264268
```
265269
// the domain In -> NoOutput
266-
02-bpmn - main -> mycompany.myproject.bpmn.myProcess.v1.MyMessageEvent
270+
02-bpmn - main -> mycompany.myproject.bpmn.myProcess.v1.MyMessageEvent
271+
// the ValidationWorker
272+
03-worker - main -> mycompany.myproject.worker.myProcess.v1.MyMessageEventWorker
273+
- test -> mycompany.myproject.worker.myProcess.v1.MyMessageEventWorkerTest
267274
```
268275

269276
### timerEvent

03-api/src/main/scala/camundala/api/ApiProjectConfig.scala

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,16 @@ object ApiProjectConfig:
2222
os.write(
2323
newPackageFile,
2424
s"""
25-
|org = "${projectName.split("-").head}"
26-
|name = "$projectName"
27-
|version = "${DocProjectConfig.defaultVersion}"
28-
|dependencies: {
29-
|
30-
|}
25+
|projectName: $projectName
26+
|projectVersion: ${DocProjectConfig.defaultVersion}
27+
|subProjects: [
28+
| // subProject1
29+
| // subProject2
30+
|]
31+
|dependencies: [
32+
| // example-helper
33+
| // example-accounts
34+
|]
3135
|""".stripMargin
3236
)
3337
end if

04-helper/src/main/scala/camundala/helper/dev/DevCompanyHelper.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,13 +59,13 @@ object DevCompanyHelper:
5959
|projectName: $projectName
6060
|projectVersion: 0.1.0-SNAPSHOT
6161
|subProjects: [
62-
| // subProject1,
62+
| // subProject1
6363
| // subProject2
6464
|]
65-
|dependencies: {
66-
| // mastercompany-services: 1.2.4
67-
| // mycompany-commons: 1.0.3
68-
|}
65+
|dependencies: [
66+
| // mastercompany-services
67+
| // mycompany-commons
68+
|]
6969
|""".stripMargin
7070

7171
end DevCompanyHelper

04-helper/src/main/scala/camundala/helper/dev/DevHelper.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,9 @@ trait DevHelper:
201201
processName.asProcessName,
202202
bpmnName.asElemName,
203203
version
204-
))
204+
),
205+
withWorker = false
206+
)
205207

206208
extension (name: String)
207209
private def asProcessName: String =

04-helper/src/main/scala/camundala/helper/dev/company/CompanyWrapperGenerator.scala

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,10 @@ case class CompanyWrapperGenerator()(using config: DevConfig):
111111
| */
112112
|trait CompanyWorkerHandler extends C7WorkerHandler
113113
|
114+
|trait CompanyValidationWorkerDsl[
115+
| In <: Product: InOutCodec
116+
|] extends CompanyWorkerHandler, ValidationWorkerDsl[In]
117+
|
114118
|trait CompanyInitWorkerDsl[
115119
| In <: Product: InOutCodec,
116120
| Out <: Product: InOutCodec,

04-helper/src/main/scala/camundala/helper/dev/update/SetupGenerator.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,22 @@ case class SetupGenerator()(using config: DevConfig):
2121
BpmnGenerator().createProcess(setupElement)
2222
BpmnProcessGenerator().createBpmn(setupElement)
2323
SimulationGenerator().createProcess(setupElement)
24-
WorkerGenerator().createProcess(setupElement)
24+
WorkerGenerator().createProcessWorker(setupElement)
2525
end createProcess
2626

2727
def createProcessElement(setupObject: SetupElement): Unit =
2828
BpmnGenerator().createProcessElement(setupObject)
29-
WorkerGenerator().createProcessElement(setupObject)
29+
WorkerGenerator().createWorker(setupObject)
3030

3131
def createUserTask(setupObject: SetupElement): Unit =
3232
BpmnGenerator().createProcessElement(setupObject)
3333

3434
def createDecision(setupObject: SetupElement): Unit =
3535
BpmnGenerator().createProcessElement(setupObject)
3636

37-
def createEvent(setupObject: SetupElement): Unit =
38-
BpmnGenerator().createEvent(setupObject)
37+
def createEvent(setupElement: SetupElement, withWorker: Boolean = true): Unit =
38+
BpmnGenerator().createEvent(setupElement)
39+
if withWorker then WorkerGenerator().createEventWorker(setupElement)
40+
3941

4042
end SetupGenerator

04-helper/src/main/scala/camundala/helper/dev/update/WorkerGenerator.scala

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,24 @@ case class WorkerGenerator()(using config: DevConfig):
1111
createOrUpdate(workerConfigPath / "banner.txt", banner)
1212
end generate
1313

14-
def createProcess(setupElement: SetupElement): Unit =
15-
os.write.over(
16-
workerPath(Some(setupElement)),
17-
processWorker(setupElement)
18-
)
19-
os.write.over(
20-
workerTestPath(Some(setupElement)),
21-
processWorkerTest(setupElement)
22-
)
23-
end createProcess
14+
def createProcessWorker(setupElement: SetupElement): Unit =
15+
createWorker(setupElement, processWorker, processWorkerTest)
16+
17+
def createEventWorker(setupElement: SetupElement): Unit =
18+
createWorker(setupElement, eventWorker, eventWorkerTest)
2419

25-
def createProcessElement(setupElement: SetupElement): Unit =
26-
os.write.over(
20+
def createWorker(setupElement: SetupElement,
21+
worker: SetupElement => String = processElement,
22+
workerTest: SetupElement => String = processElementTest): Unit =
23+
createIfNotExists(
2724
workerPath(Some(setupElement)),
28-
processElement(setupElement)
25+
worker(setupElement)
2926
)
30-
os.write.over(
27+
createIfNotExists(
3128
workerTestPath(Some(setupElement)),
32-
processElementTest(setupElement)
29+
workerTest(setupElement)
3330
)
34-
end createProcessElement
31+
end createWorker
3532

3633
private lazy val companyName = config.companyName
3734
private lazy val workerApp =
@@ -87,12 +84,28 @@ case class WorkerGenerator()(using config: DevConfig):
8784
|
8885
| lazy val inOutExample = example
8986
|
90-
| override def customInit(in: In): InitIn =
87+
| def customInit(in: In): InitIn =
9188
| InitIn() //TODO add variable initialisation (to simplify the process expressions) or remove function
9289
| // NoInput() // if no initialization is needed
9390
|
9491
|end ${workerName}Worker""".stripMargin
95-
end processWorker
92+
93+
private def eventWorker(setupElement: SetupElement) =
94+
val SetupElement(_, processName, workerName, version) = setupElement
95+
s"""package ${config.projectPackage}
96+
|package worker.$processName${version.versionPackage}
97+
|
98+
|import ${config.projectPackage}.bpmn.$processName${version.versionPackage}.$workerName.*
99+
|
100+
|@SpringConfiguration
101+
|class ${workerName}Worker extends CompanyValidationWorkerDsl[In]:
102+
|
103+
| lazy val inOutExample = example
104+
|
105+
| // remove it if not needed
106+
| override def validate(in: In): Either[CamundalaWorkerError.ValidatorError, In] = super.validate(in)
107+
|
108+
|end ${workerName}Worker""".stripMargin
96109

97110
private def processElement(
98111
setupElement: SetupElement
@@ -148,20 +161,31 @@ case class WorkerGenerator()(using config: DevConfig):
148161
private def processWorkerTest(setupElement: SetupElement) =
149162
workerTest(setupElement):
150163
s"""
151-
| test("customInit ${setupElement.bpmnName}"):
164+
| test("customInit"):
152165
| val in = In()
153166
| val out = InitIn()
154167
| assertEquals(
155168
| worker.customInit(in),
156169
| out
157170
| )""".stripMargin
171+
172+
private def eventWorkerTest(setupElement: SetupElement) =
173+
workerTest(setupElement):
174+
s"""
175+
| test("validate"):
176+
| val in = In()
177+
| assertEquals(
178+
| worker.validate(in),
179+
| Right(in)
180+
| )
181+
|""".stripMargin
158182

159183
private def processElementTest(setupElement: SetupElement) =
160184
workerTest(setupElement):
161185
if setupElement.label == "CustomTask"
162186
then
163187
s"""
164-
| test("runWork ${setupElement.bpmnName}"):
188+
| test("runWork"):
165189
| val in = In()
166190
| val out = Right(Out())
167191
| assertEquals(

04-helper/src/main/scala/camundala/helper/util/DevConfig.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ object DevConfig:
7979
)
8080

8181
def projectDir(projectName: String, baseDir: os.Path): os.Path =
82-
if baseDir.toString.endsWith(projectName) then baseDir else baseDir / projectName
82+
println(s"baseDir: $baseDir - projectName: $projectName -${if baseDir.toString.endsWith(projectName) then baseDir else baseDir / projectName}")
83+
if baseDir.toString.toLowerCase.endsWith(projectName.toLowerCase) then baseDir else baseDir / projectName
8384

8485
import ModuleConfig.*
8586

0 commit comments

Comments
 (0)