Export SvcLogicFactory as service
Expose SvcLogicFactory bean as a service so it can be reused in other
microservices.
Change-Id: I55a6e08ad2a4fa81a91151a3b437514fab70c96a
Issue-ID: CCSDK-2096
Signed-off-by: Dan Timoney <dtimoney@att.com>
diff --git a/ms/sliboot/pom.xml b/ms/sliboot/pom.xml
index b5e4fe8..2d15080 100644
--- a/ms/sliboot/pom.xml
+++ b/ms/sliboot/pom.xml
@@ -77,6 +77,11 @@
<version>2.9.2</version>
</dependency>
<dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>services</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
<groupId>org.onap.ccsdk.sli.core</groupId>
<artifactId>dblib-provider</artifactId>
<version>${ccsdk.sli.core.version}</version>
diff --git a/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/controllers/RestconfApiController.java b/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/controllers/RestconfApiController.java
index 11d713a..4b78b2d 100644
--- a/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/controllers/RestconfApiController.java
+++ b/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/controllers/RestconfApiController.java
@@ -50,7 +50,7 @@
@javax.annotation.Generated(value = "io.swagger.codegen.languages.SpringCodegen", date = "2020-02-20T12:50:11.207-05:00")
@Controller
-@ComponentScan(basePackages = {"org.onap.ccsdk.apps.ms.sliboot.*"})
+@ComponentScan(basePackages = {"org.onap.ccsdk.apps.ms.sliboot.*", "org.onap.ccsdk.apps.services"})
@EntityScan("org.onap.ccsdk.apps.ms.sliboot.*")
public class RestconfApiController implements ConfigApi, OperationalApi, OperationsApi {
diff --git a/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/core/SvcLogicFactory.java b/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/core/SvcLogicFactory.java
deleted file mode 100644
index e264baa..0000000
--- a/ms/sliboot/src/main/java/org/onap/ccsdk/apps/ms/sliboot/core/SvcLogicFactory.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - CCSDK
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.ccsdk.apps.ms.sliboot.core;
-
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.util.List;
-import java.util.Properties;
-import org.onap.ccsdk.sli.core.sli.ConfigurationException;
-import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
-import org.onap.ccsdk.sli.core.sli.SvcLogicLoader;
-import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
-import org.onap.ccsdk.sli.core.sli.SvcLogicStore;
-import org.onap.ccsdk.sli.core.sli.SvcLogicStoreFactory;
-import org.onap.ccsdk.sli.core.sli.provider.base.HashMapResolver;
-import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicPropertiesProvider;
-import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceBase;
-import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicServiceImplBase;
-import org.onap.ccsdk.sli.core.sli.recording.Slf4jRecorder;
-import org.onap.ccsdk.sli.core.slipluginutils.SliPluginUtils;
-import org.onap.ccsdk.sli.core.slipluginutils.SliStringUtils;
-import org.onap.ccsdk.sli.plugins.prop.PropertiesNode;
-import org.onap.ccsdk.sli.plugins.restapicall.RestapiCallNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-@Configuration
-public class SvcLogicFactory {
- private static final Logger log = LoggerFactory.getLogger(SvcLogicFactory.class);
-
- @Autowired
- List<SvcLogicRecorder> recorders;
-
- @Autowired
- List<SvcLogicJavaPlugin> plugins;
-
- @Bean
- public SvcLogicStore getStore() throws Exception {
- SvcLogicPropertiesProvider propProvider = new SvcLogicPropertiesProvider() {
-
- @Override
- public Properties getProperties() {
- Properties props = new Properties();
-
-
- String propPath = System.getProperty("serviceLogicProperties", "");
-
- if ("".equals(propPath)) {
- propPath = System.getenv("SVCLOGIC_PROPERTIES");
- }
-
-
- if ((propPath == null) || propPath.length() == 0) {
- propPath = "src/main/resources/svclogic.properties";
- }
- System.out.println(propPath);
- try (FileInputStream fileInputStream = new FileInputStream(propPath)) {
- props = new Properties();
- props.load(fileInputStream);
- } catch (final IOException e) {
- log.error("Failed to load properties for file: {}", propPath,
- new ConfigurationException("Failed to load properties for file: " + propPath, e));
- }
- return props;
- }
- };
- SvcLogicStore store = SvcLogicStoreFactory.getSvcLogicStore(propProvider.getProperties());
- return store;
- }
-
- @Bean
- public SvcLogicLoader createLoader() throws Exception {
- String serviceLogicDirectory = System.getProperty("serviceLogicDirectory");
- if (serviceLogicDirectory == null) {
- serviceLogicDirectory = "src/main/resources";
- }
-
- System.out.println("serviceLogicDirectory is " + serviceLogicDirectory);
- SvcLogicLoader loader = new SvcLogicLoader(serviceLogicDirectory, getStore());
-
- try {
- loader.loadAndActivate();
- } catch (IOException e) {
- log.error("Cannot load directed graphs", e);
- }
- return loader;
- }
-
- @Bean
- public SvcLogicServiceBase createService() throws Exception {
- HashMapResolver resolver = new HashMapResolver();
- for (SvcLogicRecorder recorder : recorders) {
- resolver.addSvcLogicRecorder(recorder.getClass().getName(), recorder);
-
- }
- for (SvcLogicJavaPlugin plugin : plugins) {
- resolver.addSvcLogicSvcLogicJavaPlugin(plugin.getClass().getName(), plugin);
-
- }
- return new SvcLogicServiceImplBase(getStore(), resolver);
- }
-
- @Bean
- public Slf4jRecorder slf4jRecorderNode() {
- return new Slf4jRecorder();
- }
-
- @Bean
- public SliPluginUtils sliPluginUtil() {
- return new SliPluginUtils();
- }
-
- @Bean
- public SliStringUtils sliStringUtils() {
- return new SliStringUtils();
- }
-
- @Bean
- public RestapiCallNode restapiCallNode() {
- return new RestapiCallNode();
- }
-
- @Bean
- public PropertiesNode propertiesNode() {
- return new PropertiesNode();
- }
-
-}