2424import io .opentracing .Tracer ;
2525import io .temporal .client .WorkflowClient ;
2626import io .temporal .common .Experimental ;
27+ import io .temporal .common .metadata .POJOActivityImplMetadata ;
2728import io .temporal .common .metadata .POJOWorkflowImplMetadata ;
2829import io .temporal .common .metadata .POJOWorkflowMethodMetadata ;
2930import io .temporal .spring .boot .ActivityImpl ;
@@ -314,7 +315,10 @@ private void createWorkerFromAnExplicitConfig(
314315 AopUtils .getTargetClass (bean ),
315316 taskQueue );
316317 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 );
318322 });
319323 }
320324 }
@@ -328,7 +332,9 @@ private void configureActivityImplementationAutoDiscovery(
328332 Workers workers ) {
329333 try {
330334 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 );
332338 if (log .isInfoEnabled ()) {
333339 log .info (
334340 "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)
396402 (Class <T >) workflowMethod .getWorkflowInterface (),
397403 () -> (T ) beanFactory .createBean (clazz ),
398404 workflowImplementationOptions );
399- addRegisteredWorkflowImpl (worker , workflowMethod .getWorkflowInterface ().getName ());
405+ addRegisteredWorkflowImpl (
406+ worker , workflowMethod .getWorkflowInterface ().getName (), workflowMetadata );
400407 }
401408 }
402409
@@ -429,32 +436,42 @@ private Worker createNewWorker(
429436 return worker ;
430437 }
431438
432- private void addRegisteredWorkflowImpl (Worker worker , String workflowClass ) {
439+ private void addRegisteredWorkflowImpl (
440+ Worker worker , String workflowClass , POJOWorkflowImplMetadata metadata ) {
433441 if (!registeredInfo .containsKey (worker .getTaskQueue ())) {
434442 registeredInfo .put (
435443 worker .getTaskQueue (),
436444 new RegisteredInfo ()
437- .addWorkflowInfo (new RegisteredWorkflowInfo ().addClassName (workflowClass )));
445+ .addWorkflowInfo (
446+ new RegisteredWorkflowInfo ().addClassName (workflowClass ).addMetadata (metadata )));
438447 } else {
439448 registeredInfo
440449 .get (worker .getTaskQueue ())
441450 .getRegisteredWorkflowInfo ()
442- .add (new RegisteredWorkflowInfo ().addClassName (workflowClass ));
451+ .add (new RegisteredWorkflowInfo ().addClassName (workflowClass ). addMetadata ( metadata ) );
443452 }
444453 }
445454
446- private void addRegisteredActivityImpl (Worker worker , String beanName , String beanClass ) {
455+ private void addRegisteredActivityImpl (
456+ Worker worker , String beanName , String beanClass , POJOActivityImplMetadata metadata ) {
447457 if (!registeredInfo .containsKey (worker .getTaskQueue ())) {
448458 registeredInfo .put (
449459 worker .getTaskQueue (),
450460 new RegisteredInfo ()
451461 .addActivityInfo (
452- new RegisteredActivityInfo ().addBeanName (beanName ).addClassName (beanClass )));
462+ new RegisteredActivityInfo ()
463+ .addBeanName (beanName )
464+ .addClassName (beanClass )
465+ .addMetadata (metadata )));
453466 } else {
454467 registeredInfo
455468 .get (worker .getTaskQueue ())
456469 .getRegisteredActivityInfo ()
457- .add (new RegisteredActivityInfo ().addBeanName (beanName ).addClassName (beanClass ));
470+ .add (
471+ new RegisteredActivityInfo ()
472+ .addBeanName (beanName )
473+ .addClassName (beanClass )
474+ .addMetadata (metadata ));
458475 }
459476 }
460477
@@ -481,9 +498,11 @@ public List<RegisteredWorkflowInfo> getRegisteredWorkflowInfo() {
481498 }
482499 }
483500
501+ @ Experimental
484502 public static class RegisteredActivityInfo {
485503 private String beanName ;
486504 private String className ;
505+ private POJOActivityImplMetadata metadata ;
487506
488507 public RegisteredActivityInfo addClassName (String className ) {
489508 this .className = className ;
@@ -495,26 +514,46 @@ public RegisteredActivityInfo addBeanName(String beanName) {
495514 return this ;
496515 }
497516
517+ public RegisteredActivityInfo addMetadata (POJOActivityImplMetadata metadata ) {
518+ this .metadata = metadata ;
519+ return this ;
520+ }
521+
498522 public String getClassName () {
499523 return className ;
500524 }
501525
502526 public String getBeanName () {
503527 return beanName ;
504528 }
529+
530+ public POJOActivityImplMetadata getMetadata () {
531+ return metadata ;
532+ }
505533 }
506534
535+ @ Experimental
507536 public static class RegisteredWorkflowInfo {
508537 private String className ;
538+ private POJOWorkflowImplMetadata metadata ;
509539
510540 public RegisteredWorkflowInfo addClassName (String className ) {
511541 this .className = className ;
512542 return this ;
513543 }
514544
545+ public RegisteredWorkflowInfo addMetadata (POJOWorkflowImplMetadata metadata ) {
546+ this .metadata = metadata ;
547+ return this ;
548+ }
549+
515550 public String getClassName () {
516551 return className ;
517552 }
553+
554+ public POJOWorkflowImplMetadata getMetadata () {
555+ return metadata ;
556+ }
518557 }
519558
520559 private static class Workers {
0 commit comments