24
24
import io .opentracing .Tracer ;
25
25
import io .temporal .client .WorkflowClient ;
26
26
import io .temporal .common .Experimental ;
27
+ import io .temporal .common .metadata .POJOActivityImplMetadata ;
27
28
import io .temporal .common .metadata .POJOWorkflowImplMetadata ;
28
29
import io .temporal .common .metadata .POJOWorkflowMethodMetadata ;
29
30
import io .temporal .spring .boot .ActivityImpl ;
@@ -314,7 +315,10 @@ private void createWorkerFromAnExplicitConfig(
314
315
AopUtils .getTargetClass (bean ),
315
316
taskQueue );
316
317
worker .registerActivitiesImplementations (bean );
317
- addRegisteredActivityImpl (worker , beanName , bean .getClass ().getName ());
318
+ POJOActivityImplMetadata activityImplMetadata =
319
+ POJOActivityImplMetadata .newInstance (AopUtils .getTargetClass (bean ));
320
+ addRegisteredActivityImpl (
321
+ worker , beanName , bean .getClass ().getName (), activityImplMetadata );
318
322
});
319
323
}
320
324
}
@@ -328,7 +332,9 @@ private void configureActivityImplementationAutoDiscovery(
328
332
Workers workers ) {
329
333
try {
330
334
worker .registerActivitiesImplementations (bean );
331
- addRegisteredActivityImpl (worker , beanName , bean .getClass ().getName ());
335
+ POJOActivityImplMetadata activityImplMetadata =
336
+ POJOActivityImplMetadata .newInstance (AopUtils .getTargetClass (bean ));
337
+ addRegisteredActivityImpl (worker , beanName , bean .getClass ().getName (), activityImplMetadata );
332
338
if (log .isInfoEnabled ()) {
333
339
log .info (
334
340
"Registering auto-discovered activity bean '{}' of class {} on a worker {}with a task queue '{}'" ,
@@ -396,7 +402,8 @@ private <T> void configureWorkflowImplementation(Worker worker, Class<?> clazz)
396
402
(Class <T >) workflowMethod .getWorkflowInterface (),
397
403
() -> (T ) beanFactory .createBean (clazz ),
398
404
workflowImplementationOptions );
399
- addRegisteredWorkflowImpl (worker , workflowMethod .getWorkflowInterface ().getName ());
405
+ addRegisteredWorkflowImpl (
406
+ worker , workflowMethod .getWorkflowInterface ().getName (), workflowMetadata );
400
407
}
401
408
}
402
409
@@ -429,32 +436,42 @@ private Worker createNewWorker(
429
436
return worker ;
430
437
}
431
438
432
- private void addRegisteredWorkflowImpl (Worker worker , String workflowClass ) {
439
+ private void addRegisteredWorkflowImpl (
440
+ Worker worker , String workflowClass , POJOWorkflowImplMetadata metadata ) {
433
441
if (!registeredInfo .containsKey (worker .getTaskQueue ())) {
434
442
registeredInfo .put (
435
443
worker .getTaskQueue (),
436
444
new RegisteredInfo ()
437
- .addWorkflowInfo (new RegisteredWorkflowInfo ().addClassName (workflowClass )));
445
+ .addWorkflowInfo (
446
+ new RegisteredWorkflowInfo ().addClassName (workflowClass ).addMetadata (metadata )));
438
447
} else {
439
448
registeredInfo
440
449
.get (worker .getTaskQueue ())
441
450
.getRegisteredWorkflowInfo ()
442
- .add (new RegisteredWorkflowInfo ().addClassName (workflowClass ));
451
+ .add (new RegisteredWorkflowInfo ().addClassName (workflowClass ). addMetadata ( metadata ) );
443
452
}
444
453
}
445
454
446
- private void addRegisteredActivityImpl (Worker worker , String beanName , String beanClass ) {
455
+ private void addRegisteredActivityImpl (
456
+ Worker worker , String beanName , String beanClass , POJOActivityImplMetadata metadata ) {
447
457
if (!registeredInfo .containsKey (worker .getTaskQueue ())) {
448
458
registeredInfo .put (
449
459
worker .getTaskQueue (),
450
460
new RegisteredInfo ()
451
461
.addActivityInfo (
452
- new RegisteredActivityInfo ().addBeanName (beanName ).addClassName (beanClass )));
462
+ new RegisteredActivityInfo ()
463
+ .addBeanName (beanName )
464
+ .addClassName (beanClass )
465
+ .addMetadata (metadata )));
453
466
} else {
454
467
registeredInfo
455
468
.get (worker .getTaskQueue ())
456
469
.getRegisteredActivityInfo ()
457
- .add (new RegisteredActivityInfo ().addBeanName (beanName ).addClassName (beanClass ));
470
+ .add (
471
+ new RegisteredActivityInfo ()
472
+ .addBeanName (beanName )
473
+ .addClassName (beanClass )
474
+ .addMetadata (metadata ));
458
475
}
459
476
}
460
477
@@ -481,9 +498,11 @@ public List<RegisteredWorkflowInfo> getRegisteredWorkflowInfo() {
481
498
}
482
499
}
483
500
501
+ @ Experimental
484
502
public static class RegisteredActivityInfo {
485
503
private String beanName ;
486
504
private String className ;
505
+ private POJOActivityImplMetadata metadata ;
487
506
488
507
public RegisteredActivityInfo addClassName (String className ) {
489
508
this .className = className ;
@@ -495,26 +514,46 @@ public RegisteredActivityInfo addBeanName(String beanName) {
495
514
return this ;
496
515
}
497
516
517
+ public RegisteredActivityInfo addMetadata (POJOActivityImplMetadata metadata ) {
518
+ this .metadata = metadata ;
519
+ return this ;
520
+ }
521
+
498
522
public String getClassName () {
499
523
return className ;
500
524
}
501
525
502
526
public String getBeanName () {
503
527
return beanName ;
504
528
}
529
+
530
+ public POJOActivityImplMetadata getMetadata () {
531
+ return metadata ;
532
+ }
505
533
}
506
534
535
+ @ Experimental
507
536
public static class RegisteredWorkflowInfo {
508
537
private String className ;
538
+ private POJOWorkflowImplMetadata metadata ;
509
539
510
540
public RegisteredWorkflowInfo addClassName (String className ) {
511
541
this .className = className ;
512
542
return this ;
513
543
}
514
544
545
+ public RegisteredWorkflowInfo addMetadata (POJOWorkflowImplMetadata metadata ) {
546
+ this .metadata = metadata ;
547
+ return this ;
548
+ }
549
+
515
550
public String getClassName () {
516
551
return className ;
517
552
}
553
+
554
+ public POJOWorkflowImplMetadata getMetadata () {
555
+ return metadata ;
556
+ }
518
557
}
519
558
520
559
private static class Workers {
0 commit comments