Add error handling for OSGi classes not found
[ccsdk/sli/adaptors.git] / sql-resource / provider / src / main / java / org / onap / ccsdk / sli / adaptors / resource / sql / SqlResource.java
index 69965d1..435bc5b 100755 (executable)
@@ -355,28 +355,36 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin {
             return(dblibSvc);
         }
         // Try to get dblib as an OSGI service
-        BundleContext bctx = null;
-        ServiceReference sref = null;
 
-        Bundle bundle = FrameworkUtil.getBundle(SqlResource.class);
-
-        if (bundle != null) {
-            bctx = bundle.getBundleContext();
-        }
-
-        if (bctx != null) {
-            sref = bctx.getServiceReference(DBLIB_SERVICE);
-        }
-
-        if (sref == null) {
-            LOG.warn("Could not find service reference for DBLIB service (" + DBLIB_SERVICE + ")");
-        } else {
-            dblibSvc = (DbLibService) bctx.getService(sref);
-            if (dblibSvc == null) {
+        try {
+            BundleContext bctx = null;
+            ServiceReference sref = null;
+    
+    
+    
+            Bundle bundle = FrameworkUtil.getBundle(SqlResource.class);
+    
+            if (bundle != null) {
+                bctx = bundle.getBundleContext();
+            }
+    
+            if (bctx != null) {
+                sref = bctx.getServiceReference(DBLIB_SERVICE);
+            }
+    
+            if (sref == null) {
                 LOG.warn("Could not find service reference for DBLIB service (" + DBLIB_SERVICE + ")");
+            } else {
+                dblibSvc = (DbLibService) bctx.getService(sref);
+                if (dblibSvc == null) {
+                    LOG.warn("Could not find service reference for DBLIB service (" + DBLIB_SERVICE + ")");
+                }
             }
+        } catch (NoClassDefFoundError ex) {
+            LOG.info("OSGI classes not found - must be running outside an OSGi container");
         }
 
+
         if (dblibSvc == null) {
             // Must not be running in an OSGI container. See if you can load it
             // as a
@@ -386,7 +394,8 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin {
             // be the properties passed to DBResourceManager constructor.
             // If not, as default just use system properties.
             Properties dblibProps = System.getProperties();
-            String cfgDir = System.getenv("SDNC_CONFIG_DIR");
+
+            String cfgDir = dblibProps.getProperty("sdnc.config.dir", System.getenv("SDNC_CONFIG_DIR"));
 
             if ((cfgDir == null) || (cfgDir.length() == 0)) {
                 cfgDir = "/opt/sdnc/data/properties";
@@ -395,10 +404,11 @@ public class SqlResource implements SvcLogicResource, SvcLogicJavaPlugin {
             File dblibPropFile = new File(cfgDir + "/dblib.properties");
             if (dblibPropFile.exists()) {
                 try {
+                    LOG.debug("Loading dblib properties from {}", dblibPropFile.getAbsolutePath());
                     dblibProps = new Properties();
                     dblibProps.load(new FileInputStream(dblibPropFile));
                 } catch (Exception e) {
-                    LOG.warn("Could not load properties file " + dblibPropFile.getAbsolutePath(), e);
+                    LOG.warn("Could not load properties file {}", dblibPropFile.getAbsolutePath(), e);
 
                     dblibProps = System.getProperties();
                 }