Update third party versions in ccsdk/apps
[ccsdk/apps.git] / services / src / main / java / org / onap / ccsdk / apps / services / SvcLogicFactory.java
index 54d612f..973f241 100644 (file)
@@ -76,6 +76,9 @@ public class SvcLogicFactory {
     private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR";\r
     private static final String CONTRAIL_PROPERTIES = "contrail-adaptor.properties";\r
 \r
+ /*    \r
+  * In Springboot 2.6, these autowired lists become a circular dependency with the RestconfApiController.\r
+  * For now, comment these out and instead just explicitly add wiring for the sli classes\r
     @Autowired\r
     List<SvcLogicRecorder> recorders;\r
 \r
@@ -85,6 +88,10 @@ public class SvcLogicFactory {
     @Autowired\r
     List<SvcLogicResource> svcLogicResources;\r
 \r
+ */\r
+\r
\r
+\r
 \r
     @Bean\r
     public SvcLogicStore getStore() throws Exception {\r
@@ -139,24 +146,68 @@ public class SvcLogicFactory {
     @Bean\r
     public SvcLogicServiceBase createService() throws Exception {\r
         HashMapResolver resolver = new HashMapResolver();\r
-        for (SvcLogicRecorder recorder : recorders) {\r
-            log.info("Registering SvcLogicRecorder {}", recorder.getClass().getName());\r
-            resolver.addSvcLogicRecorder(recorder.getClass().getName(), recorder);\r
 \r
-        }\r
+        /**\r
+         * See comment above re: autowired lists. Need to explicitly register\r
+         * SLI features to avoid circular dependency issue in springboot 2.6\r
+         * \r
+         * for (SvcLogicRecorder recorder : recorders) {\r
+         * log.info("Registering SvcLogicRecorder {}", recorder.getClass().getName());\r
+         * resolver.addSvcLogicRecorder(recorder.getClass().getName(), recorder);\r
+         * \r
+         * }\r
+         * \r
+         * for (SvcLogicJavaPlugin plugin : plugins) {\r
+         * log.info("Registering SvcLogicJavaPlugin {}", plugin.getClass().getName());\r
+         * resolver.addSvcLogicSvcLogicJavaPlugin(plugin.getClass().getName(), plugin);\r
+         * \r
+         * }\r
+         * for (SvcLogicResource svcLogicResource : svcLogicResources) {\r
+         * log.info("Registering SvcLogicResource {}",\r
+         * svcLogicResource.getClass().getName());\r
+         * resolver.addSvcLogicResource(svcLogicResource.getClass().getName(),\r
+         * svcLogicResource);\r
+         * }\r
+         */\r
 \r
-        for (SvcLogicJavaPlugin plugin : plugins) {\r
-            log.info("Registering SvcLogicJavaPlugin {}", plugin.getClass().getName());\r
-            resolver.addSvcLogicSvcLogicJavaPlugin(plugin.getClass().getName(), plugin);\r
+        Slf4jRecorder slf4jRecorder = slf4jRecorderNode();\r
 \r
-        }\r
-        for (SvcLogicResource svcLogicResource : svcLogicResources) {\r
-            log.info("Registering SvcLogicResource {}", svcLogicResource.getClass().getName());\r
-            resolver.addSvcLogicResource(svcLogicResource.getClass().getName(), svcLogicResource);\r
-        }\r
+        SliPluginUtils sliPluginUtils = sliPluginUtil();\r
+\r
+        SliStringUtils sliStringUtils = sliStringUtils();\r
+\r
+        AAIService aaiService = aaiService();\r
+\r
+        ConfigResource configResource = configResource();\r
+\r
+        OperationalResource operationalResource = operationalResource();\r
+\r
+        NetboxClient netboxClient = netboxClient();\r
+\r
+        SqlResource sqlResource = sqlResource();\r
+\r
+        RestapiCallNode restapiCallNode = restapiCallNode();\r
+\r
+        PropertiesNode propertiesNode = propertiesNode();\r
+        // Register recorder (there is only one)\r
+        resolver.addSvcLogicRecorder(Slf4jRecorder.class.getName(), new Slf4jRecorder());\r
+\r
+        // Register plugins\r
+        resolver.addSvcLogicSvcLogicJavaPlugin(sliPluginUtils.getClass().getName(), sliPluginUtils);\r
+        resolver.addSvcLogicSvcLogicJavaPlugin(sliStringUtils.getClass().getName(), sliStringUtils);\r
+        resolver.addSvcLogicSvcLogicJavaPlugin(restapiCallNode.getClass().getName(), restapiCallNode);\r
+        resolver.addSvcLogicSvcLogicJavaPlugin(propertiesNode.getClass().getName(), propertiesNode);\r
+        resolver.addSvcLogicSvcLogicJavaPlugin(netboxClient.getClass().getName(), netboxClient);\r
+\r
+        // Register resources\r
+        resolver.addSvcLogicResource(aaiService.getClass().getName(), aaiService);\r
+        resolver.addSvcLogicResource(configResource.getClass().getName(), configResource);\r
+        resolver.addSvcLogicResource(operationalResource.getClass().getName(), operationalResource);\r
+        resolver.addSvcLogicResource(sqlResource.getClass().getName(), sqlResource);\r
 \r
         return new SvcLogicServiceImplBase(getStore(), resolver);\r
     }\r
+    \r
 \r
     @Bean\r
     public Slf4jRecorder slf4jRecorderNode() {\r