X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=enrichment-coordinator-service%2Fsrc%2Fmain%2Fjava%2Forg%2Foransc%2Fenrichment%2FBeanFactory.java;h=785ddfc799c04e9d8cc47dc68a519108866f398f;hb=f0019c8168b9d59f132ba47e939e8aa3ef324b7d;hp=c5d2bec715cb7a40b08488ffa333115945fbee0b;hpb=b65d77a754c356931b82c8edf6b29759d294ea51;p=nonrtric.git diff --git a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java index c5d2bec7..785ddfc7 100644 --- a/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java +++ b/enrichment-coordinator-service/src/main/java/org/oransc/enrichment/BeanFactory.java @@ -26,6 +26,7 @@ import java.lang.invoke.MethodHandles; import org.apache.catalina.connector.Connector; import org.oransc.enrichment.configuration.ApplicationConfig; +import org.oransc.enrichment.controllers.producer.ProducerCallbacks; import org.oransc.enrichment.repository.EiJobs; import org.oransc.enrichment.repository.EiProducers; import org.oransc.enrichment.repository.EiTypes; @@ -46,6 +47,11 @@ class BeanFactory { private final ApplicationConfig applicationConfig = new ApplicationConfig(); private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + private ProducerCallbacks producerCallbacks; + private EiTypes eiTypes; + private EiJobs eiJobs; + private EiProducers eiProducers; + @Bean public ObjectMapper mapper() { return new ObjectMapper(); @@ -62,23 +68,36 @@ class BeanFactory { @Bean public EiJobs eiJobs() { - EiJobs jobs = new EiJobs(getApplicationConfig()); - try { - jobs.restoreJobsFromDatabase(); - } catch (Exception e) { - logger.error("Could not restore jobs from database: {}", e.getMessage()); + if (eiJobs == null) { + eiJobs = new EiJobs(getApplicationConfig(), producerCallbacks()); + try { + eiJobs.restoreJobsFromDatabase(); + } catch (Exception e) { + logger.error("Could not restore jobs from database: {}", e.getMessage()); + } } - return jobs; + return eiJobs; } @Bean public EiTypes eiTypes() { - return new EiTypes(); + if (this.eiTypes == null) { + eiTypes = new EiTypes(getApplicationConfig()); + try { + eiTypes.restoreTypesFromDatabase(); + } catch (Exception e) { + logger.error("Could not restore EI types from database: {}", e.getMessage()); + } + } + return eiTypes; } @Bean - public EiProducers eiProducers() { - return new EiProducers(); + public ProducerCallbacks producerCallbacks() { + if (this.producerCallbacks == null) { + producerCallbacks = new ProducerCallbacks(getApplicationConfig()); + } + return this.producerCallbacks; } @Bean