Support env variables in svclogic.properties
[ccsdk/apps.git] / services / src / main / java / org / onap / ccsdk / apps / services / SvcLogicFactory.java
index 8711e7e..44c56af 100644 (file)
@@ -24,10 +24,27 @@ import java.io.FileInputStream;
 import java.io.IOException;\r
 import java.util.List;\r
 import java.util.Properties;\r
+\r
+import org.onap.ccsdk.sli.adaptors.aai.AAIService;\r
+import org.onap.ccsdk.sli.adaptors.aai.AAIServiceProvider;\r
+import org.onap.ccsdk.sli.adaptors.messagerouter.publisher.api.PublisherApi;\r
+import org.onap.ccsdk.sli.adaptors.messagerouter.publisher.provider.impl.PublisherApiImpl;\r
+import org.onap.ccsdk.sli.adaptors.netbox.api.NetboxClient;\r
+import org.onap.ccsdk.sli.adaptors.netbox.impl.NetboxClientImpl;\r
+import org.onap.ccsdk.sli.adaptors.netbox.impl.NetboxHttpClient;\r
+import org.onap.ccsdk.sli.adaptors.netbox.property.NetboxProperties;\r
+import org.onap.ccsdk.sli.adaptors.resource.mdsal.ConfigResource;\r
+import org.onap.ccsdk.sli.adaptors.resource.mdsal.MdsalResourcePropertiesProviderImpl;\r
+import org.onap.ccsdk.sli.adaptors.resource.mdsal.OperationalResource;\r
+import org.onap.ccsdk.sli.adaptors.resource.sql.SqlResource;\r
+import org.onap.ccsdk.sli.core.dblib.DBLIBResourceProvider;\r
+import org.onap.ccsdk.sli.core.dblib.DBResourceManager;\r
+import org.onap.ccsdk.sli.core.dblib.DbLibService;\r
 import org.onap.ccsdk.sli.core.sli.ConfigurationException;\r
 import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;\r
 import org.onap.ccsdk.sli.core.sli.SvcLogicLoader;\r
 import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;\r
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;\r
 import org.onap.ccsdk.sli.core.sli.SvcLogicStore;\r
 import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;\r
 import org.onap.ccsdk.sli.core.sli.provider.base.HashMapResolver;\r
@@ -37,6 +54,7 @@ import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceImplBase;
 import org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder;\r
 import org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils;\r
 import org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils;\r
+import org.onap.ccsdk.sli.core.utils.common.EnvProperties;\r
 import org.onap.ccsdk.sli.plugins.prop.PropertiesNode;\r
 import org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode;\r
 import org.slf4j.Logger;\r
@@ -57,6 +75,9 @@ public class SvcLogicFactory {
   @Autowired\r
   List<SvcLogicJavaPlugin> plugins;\r
 \r
+  @Autowired\r
+  List<SvcLogicResource> svcLogicResources;\r
+\r
   @Bean\r
   public SvcLogicStore getStore() throws Exception {\r
     SvcLogicPropertiesProvider propProvider = new SvcLogicPropertiesProvider() {\r
@@ -78,7 +99,7 @@ public class SvcLogicFactory {
         }\r
         System.out.println(propPath);\r
         try (FileInputStream fileInputStream = new FileInputStream(propPath)) {\r
-          props = new Properties();\r
+          props = new EnvProperties();\r
           props.load(fileInputStream);\r
         } catch (final IOException e) {\r
           log.error("Failed to load properties for file: {}", propPath,\r
@@ -120,6 +141,10 @@ public class SvcLogicFactory {
       resolver.addSvcLogicSvcLogicJavaPlugin(plugin.getClass().getName(), plugin);\r
 \r
     }\r
+    for (SvcLogicResource svcLogicResource : svcLogicResources) {\r
+      resolver.addSvcLogicResource(svcLogicResource.getClass().getName(), svcLogicResource);\r
+    }\r
+\r
     return new SvcLogicServiceImplBase(getStore(), resolver);\r
   }\r
 \r
@@ -128,6 +153,8 @@ public class SvcLogicFactory {
     return new Slf4jRecorder();\r
   }\r
 \r
+  // Beans from sli/core\r
+\r
   @Bean\r
   public SliPluginUtils sliPluginUtil() {\r
     return new SliPluginUtils();\r
@@ -137,6 +164,40 @@ public class SvcLogicFactory {
   public SliStringUtils sliStringUtils() {\r
     return new SliStringUtils();\r
   }\r
+\r
+  // Beans from sli/adaptors\r
+\r
+  @Bean AAIService aaiService() {\r
+    return new AAIService(new AAIServiceProvider());\r
+  }\r
+  \r
+  @Bean\r
+  public ConfigResource configResource() {\r
+    return new ConfigResource(new MdsalResourcePropertiesProviderImpl());\r
+  }\r
+\r
+  @Bean\r
+  public OperationalResource operationalResource() {\r
+    return new OperationalResource(new MdsalResourcePropertiesProviderImpl());\r
+  }\r
+\r
+  @Bean \r
+  public PublisherApi publisherApi() {\r
+    return new PublisherApiImpl();\r
+  }\r
+  \r
+  \r
+  @Bean \r
+  public NetboxClient netboxClient() {\r
+    return new NetboxClientImpl();\r
+  }\r
+  \r
+  \r
+  @Bean\r
+  public SqlResource sqlResource() {\r
+    return new SqlResource();\r
+  }\r
+\r
   \r
   @Bean\r
   public RestapiCallNode restapiCallNode() {\r
@@ -148,4 +209,6 @@ public class SvcLogicFactory {
       return new PropertiesNode();\r
   }\r
 \r
+  \r
+\r
 }\r