Storing EiJobs persistently
[nonrtric.git] / enrichment-coordinator-service / src / main / java / org / oransc / enrichment / BeanFactory.java
index 7b868f5..c5d2bec 100644 (file)
@@ -22,10 +22,15 @@ package org.oransc.enrichment;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
+import java.lang.invoke.MethodHandles;
+
 import org.apache.catalina.connector.Connector;
 import org.oransc.enrichment.configuration.ApplicationConfig;
 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;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
 import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
@@ -39,6 +44,7 @@ class BeanFactory {
     private int httpPort = 0;
 
     private final ApplicationConfig applicationConfig = new ApplicationConfig();
+    private final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
     @Bean
     public ObjectMapper mapper() {
@@ -56,7 +62,13 @@ class BeanFactory {
 
     @Bean
     public EiJobs eiJobs() {
-        return new EiJobs();
+        EiJobs jobs = new EiJobs(getApplicationConfig());
+        try {
+            jobs.restoreJobsFromDatabase();
+        } catch (Exception e) {
+            logger.error("Could not restore jobs from database: {}", e.getMessage());
+        }
+        return jobs;
     }
 
     @Bean
@@ -64,6 +76,11 @@ class BeanFactory {
         return new EiTypes();
     }
 
+    @Bean
+    public EiProducers eiProducers() {
+        return new EiProducers();
+    }
+
     @Bean
     public ApplicationConfig getApplicationConfig() {
         return this.applicationConfig;