aboutsummaryrefslogtreecommitdiffstats
path: root/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java
diff options
context:
space:
mode:
authorSmokowski, Kevin (ks6305) <ks6305@us.att.com>2018-11-30 18:00:42 +0000
committerSmokowski, Kevin (ks6305) <kevin.smokowski@att.com>2018-12-03 17:03:26 +0000
commit7f8fd751c9272c33be0b74f02cd962dd615b63d3 (patch)
tree226b421ffe5d8972f472614d5a64ead0b27b105f /sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java
parenta8ba189dac17a5627e6e1cf102e63e7f9f29e8e1 (diff)
refactor sli-provider
split sli-provider into sli-provider and sli-provider-base Change-Id: I7b7edb767c04c9a6caf72a9172f49518655e33b7 Issue-ID: CCSDK-778 Signed-off-by: Smokowski, Kevin (ks6305) <kevin.smokowski@att.com>
Diffstat (limited to 'sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java')
-rw-r--r--sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java81
1 files changed, 57 insertions, 24 deletions
diff --git a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java
index d2b733fc..f10976a5 100644
--- a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicClassResolver.java
@@ -1,5 +1,10 @@
package org.onap.ccsdk.sli.core.sli.provider;
+import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
+import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
+import org.onap.ccsdk.sli.core.sli.SvcLogicRecorder;
+import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
+import org.onap.ccsdk.sli.core.sli.provider.base.SvcLogicResolver;
import org.osgi.framework.Bundle;
import org.osgi.framework.BundleContext;
import org.osgi.framework.FrameworkUtil;
@@ -7,35 +12,63 @@ import org.osgi.framework.ServiceReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-public class SvcLogicClassResolver {
- private static final Logger LOG = LoggerFactory.getLogger(SvcLogicClassResolver.class);
+public class SvcLogicClassResolver implements SvcLogicResolver {
+ private static final Logger LOG = LoggerFactory.getLogger(SvcLogicClassResolver.class);
+ private static SvcLogicClassResolver instance = new SvcLogicClassResolver();
- public static Object resolve(String className) {
+ private SvcLogicClassResolver() {
+ }
- Bundle bundle = FrameworkUtil.getBundle(SvcLogicClassResolver.class);
+ public static SvcLogicClassResolver getInstance() {
+ return instance;
+ }
- if (bundle == null) {
- // Running outside OSGi container (e.g. jUnit). Use Reflection
- // to resolve class
- try {
- return(Class.forName(className).newInstance());
- } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
+ public Object resolve(String className) {
- LOG.error("Could not resolve class "+className, e);
- return null;
- }
+ Bundle bundle = FrameworkUtil.getBundle(SvcLogicClassResolver.class);
- } else {
- BundleContext bctx = bundle.getBundleContext();
- ServiceReference sref = bctx.getServiceReference(className);
- if (sref != null) {
- return bctx.getService(sref);
- } else {
+ if (bundle == null) {
+ // Running outside OSGi container (e.g. jUnit). Use Reflection
+ // to resolve class
+ try {
+ return (Class.forName(className).newInstance());
+ } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
- LOG.warn("Could not find service reference object for class " + className);
- return null;
- }
- }
- }
+ LOG.error("Could not resolve class " + className, e);
+ return null;
+ }
+
+ } else {
+ BundleContext bctx = bundle.getBundleContext();
+ ServiceReference sref = bctx.getServiceReference(className);
+ if (sref != null) {
+ return bctx.getService(sref);
+ } else {
+
+ LOG.warn("Could not find service reference object for class " + className);
+ return null;
+ }
+ }
+ }
+
+ @Override
+ public SvcLogicResource getSvcLogicResource(String resourceName) {
+ return (SvcLogicResource) resolve(resourceName);
+ }
+
+ @Override
+ public SvcLogicRecorder getSvcLogicRecorder(String recorderName) {
+ return (SvcLogicRecorder) resolve(recorderName);
+ }
+
+ @Override
+ public SvcLogicJavaPlugin getSvcLogicJavaPlugin(String pluginName) {
+ return (SvcLogicJavaPlugin) resolve(pluginName);
+ }
+
+ @Override
+ public SvcLogicAdaptor getSvcLogicAdaptor(String adaptorName) {
+ return SvcLogicAdaptorFactory.getInstance(adaptorName);
+ }
}