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=f5aca7e6cb92dfddb6e691dc0d6cd7ff18101ed3;hb=e912ee4367d6a305ac038c86dec816b5ce71191b;hp=c5d2bec715cb7a40b08488ffa333115945fbee0b;hpb=803d48989d7824309602393763142320cdbbc0d2;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..f5aca7e6 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,8 +26,8 @@ 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; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -46,6 +46,10 @@ 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; + @Bean public ObjectMapper mapper() { return new ObjectMapper(); @@ -62,23 +66,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