aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java31
-rw-r--r--dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java3
-rw-r--r--sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java291
3 files changed, 158 insertions, 167 deletions
diff --git a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java
index 356f5ee8..d2331786 100755
--- a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/CachedDataSource.java
@@ -7,9 +7,9 @@
* 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.
@@ -33,7 +33,6 @@ import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.List;
import java.util.Observer;
import javax.sql.DataSource;
@@ -109,7 +108,7 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
throw new SQLException("Connection invalid");
}
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Obtained connection <" + connectionName + ">: " + connection.toString());
+ LOGGER.debug("Obtained connection <{}>: {}", connectionName, connection);
}
return executePreparedStatement(connection, statement, arguments, true);
} finally {
@@ -126,7 +125,7 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
throw new SQLException("Connection invalid");
}
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Obtained connection <" + connectionName + ">: " + connection.toString());
+ LOGGER.debug("Obtained connection <{}>: {}", connectionName, connection);
}
return executeUpdatePreparedStatement(connection, statement, arguments, true);
} finally {
@@ -140,9 +139,9 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
CachedRowSet data = null;
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("SQL Statement: " + statement);
+ LOGGER.debug("SQL Statement: {}", statement);
if (arguments != null && !arguments.isEmpty()) {
- LOGGER.debug("Argunments: " + Arrays.toString(arguments.toArray()));
+ LOGGER.debug("Argunments: {}", arguments);
}
}
@@ -158,7 +157,7 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
data.populate(rs);
// Point the rowset Cursor to the start
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("SQL SUCCESS. rows returned: " + data.size() + ", time(ms): " + (System.currentTimeMillis()
+ LOGGER.debug("SQL SUCCESS. rows returned: {}, time(ms): {}", data.size(), (System.currentTimeMillis()
- time));
}
} catch (SQLException exc) {
@@ -182,7 +181,7 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
}
if (arguments != null && !arguments.isEmpty()) {
LOGGER.error(String.format("<%s%s%s%s%s", connectionName, FAILED_TO_EXECUTE, statement, WITH_ARGUMENTS,
- arguments.toString()), exc);
+ arguments), exc);
} else {
LOGGER.error(String.format("<%s%s%s%s", connectionName, FAILED_TO_EXECUTE, statement, WITH_NO_ARGUMENTS),
exc);
@@ -221,7 +220,7 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
ps.executeUpdate();
// Point the rowset Cursor to the start
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("SQL SUCCESS. rows returned: " + data.size() + ", time(ms): " + (System.currentTimeMillis()
+ LOGGER.debug("SQL SUCCESS. rows returned: {}, time(ms): {}", data.size(), (System.currentTimeMillis()
- time));
}
ps.close();
@@ -465,12 +464,12 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
}
protected boolean isSlave() throws PoolExhaustedException {
- CachedRowSet rs = null;
- boolean isSlave = true;
+ CachedRowSet rs;
+ boolean isSlave;
String hostname = "UNDETERMINED";
try {
boolean localSlave = true;
- rs = this.getData("SELECT @@global.read_only, @@global.hostname", new ArrayList<Object>());
+ rs = this.getData("SELECT @@global.read_only, @@global.hostname", new ArrayList<>());
while (rs.next()) {
localSlave = rs.getBoolean(1);
hostname = rs.getString(2);
@@ -483,9 +482,9 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
isSlave = true;
}
if (isSlave) {
- LOGGER.debug(String.format("SQL SLAVE : %s on server %s", connectionName, hostname));
+ LOGGER.debug("SQL SLAVE : {} on server {}", connectionName, hostname);
} else {
- LOGGER.debug(String.format("SQL MASTER : %s on server %s", connectionName, hostname));
+ LOGGER.debug("SQL MASTER : {} on server {}", connectionName, hostname);
}
return isSlave;
}
@@ -524,7 +523,7 @@ public abstract class CachedDataSource implements DataSource, SQLExecutionMonito
boolean retValue;
try (Statement lock = conn.createStatement()) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Executing 'UNLOCK TABLES' on connection " + conn.toString());
+ LOGGER.debug("Executing 'UNLOCK TABLES' on connection {}", conn);
}
retValue = lock.execute("UNLOCK TABLES");
} catch (Exception exc) {
diff --git a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java
index b31de354..b30ad7bb 100644
--- a/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java
+++ b/dblib/provider/src/main/java/org/onap/ccsdk/sli/core/dblib/DbLibService.java
@@ -24,9 +24,10 @@ import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
+import javax.sql.DataSource;
import javax.sql.rowset.CachedRowSet;
-public interface DbLibService {
+public interface DbLibService extends DataSource {
/* (non-Javadoc)
* @see DataAccessor#getData(java.lang.String, java.util.ArrayList)
diff --git a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java
index a578dc6a..7c1fa8e4 100644
--- a/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java
+++ b/sli/provider/src/main/java/org/onap/ccsdk/sli/core/sli/provider/SvcLogicActivator.java
@@ -3,7 +3,7 @@
* ONAP : CCSDK
* ================================================================================
* Copyright (C) 2017 AT&T Intellectual Property. All rights
- * reserved.
+ * reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,7 +28,6 @@ import java.util.Hashtable;
import java.util.LinkedList;
import java.util.Map;
import java.util.Properties;
-
import org.onap.ccsdk.sli.core.sli.ConfigurationException;
import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
import org.onap.ccsdk.sli.core.sli.SvcLogicException;
@@ -44,180 +43,172 @@ import org.slf4j.LoggerFactory;
public class SvcLogicActivator implements BundleActivator {
- private static final String SVCLOGIC_PROP_VAR = "SDNC_SLI_PROPERTIES";
- private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR";
-
- private static final Map<String, SvcLogicNodeExecutor> BUILTIN_NODES = new HashMap<String, SvcLogicNodeExecutor>() {
- {
- put("block", new BlockNodeExecutor());
- put("call", new CallNodeExecutor());
- put("configure", new ConfigureNodeExecutor());
- put("delete", new DeleteNodeExecutor());
- put("execute", new ExecuteNodeExecutor());
- put("exists", new ExistsNodeExecutor());
- put("for", new ForNodeExecutor());
- put("get-resource", new GetResourceNodeExecutor());
- put("is-available", new IsAvailableNodeExecutor());
- put("notify", new NotifyNodeExecutor());
- put("record", new RecordNodeExecutor());
- put("release", new ReleaseNodeExecutor());
- put("reserve", new ReserveNodeExecutor());
- put("return", new ReturnNodeExecutor());
- put("save", new SaveNodeExecutor());
- put("set", new SetNodeExecutor());
- put("switch", new SwitchNodeExecutor());
- put("update", new UpdateNodeExecutor());
+ private static final String SVCLOGIC_PROP_VAR = "SDNC_SLI_PROPERTIES";
+ private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR";
+
+ private static final Map<String, SvcLogicNodeExecutor> BUILTIN_NODES = new HashMap<String, SvcLogicNodeExecutor>() {
+ {
+ put("block", new BlockNodeExecutor());
+ put("call", new CallNodeExecutor());
+ put("configure", new ConfigureNodeExecutor());
+ put("delete", new DeleteNodeExecutor());
+ put("execute", new ExecuteNodeExecutor());
+ put("exists", new ExistsNodeExecutor());
+ put("for", new ForNodeExecutor());
+ put("get-resource", new GetResourceNodeExecutor());
+ put("is-available", new IsAvailableNodeExecutor());
+ put("notify", new NotifyNodeExecutor());
+ put("record", new RecordNodeExecutor());
+ put("release", new ReleaseNodeExecutor());
+ put("reserve", new ReserveNodeExecutor());
+ put("return", new ReturnNodeExecutor());
+ put("save", new SaveNodeExecutor());
+ put("set", new SetNodeExecutor());
+ put("switch", new SwitchNodeExecutor());
+ put("update", new UpdateNodeExecutor());
put("break", new BreakNodeExecutor());
- }
- };
-
- private static LinkedList<ServiceRegistration> registrations = new LinkedList<ServiceRegistration>();
-
- private static HashMap<String, SvcLogicAdaptor> adaptorMap = null;
-
- private static final Logger LOG = LoggerFactory
- .getLogger(SvcLogicActivator.class);
-
- private static Properties props = null;
-
- private static BundleContext bundleCtx = null;
-
- private static SvcLogicService svcLogicServiceImpl = null;
-
- @Override
- public void start(BundleContext ctx) throws Exception {
-
- LOG.info("Activating SLI");
-
- bundleCtx = ctx;
-
- // Read properties
- props = new Properties();
- String propPath = System.getenv(SVCLOGIC_PROP_VAR);
-
- if (propPath == null) {
- String propDir = System.getenv(SDNC_CONFIG_DIR);
- if (propDir == null) {
-
- propDir = "/opt/sdnc/data/properties";
- }
- propPath = propDir + "/svclogic.properties";
- LOG.warn("Environment variable "+SVCLOGIC_PROP_VAR+" unset - defaulting to "+propPath);
- }
-
- File propFile = new File(propPath);
-
- if (!propFile.exists()) {
-
- throw new ConfigurationException(
- "Missing configuration properties file : "
- + propFile);
- }
- try {
-
- props.load(new FileInputStream(propFile));
- } catch (Exception e) {
- throw new ConfigurationException(
- "Could not load properties file " + propPath, e);
+ }
+ };
- }
+ private static final Logger LOG = LoggerFactory.getLogger(SvcLogicActivator.class);
+ private static LinkedList<ServiceRegistration> registrations = new LinkedList<>();
- if (registrations == null) {
+ private static HashMap<String, SvcLogicAdaptor> adaptorMap;
- registrations = new LinkedList<ServiceRegistration>();
- }
+ private static Properties props;
- // Advertise SvcLogicService
- svcLogicServiceImpl = new SvcLogicServiceImpl();
+ private static BundleContext bundleCtx;
- LOG.info("SLI: Registering service " + SvcLogicService.NAME
- + " in bundle " + ctx.getBundle().getSymbolicName());
- ServiceRegistration reg = ctx.registerService(SvcLogicService.NAME,
- svcLogicServiceImpl, null);
- registrations.add(reg);
+ private static SvcLogicService svcLogicServiceImpl;
- // Initialize SvcLogicStore
- try {
- SvcLogicStore store = getStore();
- registerNodeTypes(store);
- } catch (ConfigurationException e) {
- LOG.warn("Could not initialize SvcLogicScore", e);
- }
+ @Override
+ public void start(BundleContext ctx) throws Exception {
- LOG.info("SLI - done registering services");
- }
+ LOG.info("Activating SLI");
- @Override
- public void stop(BundleContext ctx) throws Exception {
+ synchronized (SvcLogicActivator.class) {
+ bundleCtx = ctx;
+ props = new Properties();
+ }
- if (registrations != null) {
- for (ServiceRegistration reg : registrations) {
- ServiceReference regRef = reg.getReference();
- /* Don't bother to remove node types from table
- String nodeType = (String) regRef.getProperty("nodeType");
- if (nodeType != null) {
- LOG.info("SLI - unregistering node type " + nodeType);
- store.unregisterNodeType(nodeType);
- }
- */
- reg.unregister();
- }
- registrations = null;
- }
- }
+ // Read properties
+ String propPath = System.getenv(SVCLOGIC_PROP_VAR);
- public static SvcLogicStore getStore() throws SvcLogicException {
- // Create and initialize SvcLogicStore object - used to access
- // saved service logic.
+ if (propPath == null) {
+ String propDir = System.getenv(SDNC_CONFIG_DIR);
+ if (propDir == null) {
- SvcLogicStore store = null;
+ propDir = "/opt/sdnc/data/properties";
+ }
+ propPath = propDir + "/svclogic.properties";
+ LOG.warn("Environment variable {} unset - defaulting to {}", SVCLOGIC_PROP_VAR, propPath);
+ }
- try {
- store = SvcLogicStoreFactory.getSvcLogicStore(props);
- } catch (Exception e) {
- throw new ConfigurationException(
- "Could not get service logic store", e);
+ File propFile = new File(propPath);
- }
+ if (!propFile.exists()) {
+ throw new ConfigurationException("Missing configuration properties file : " + propFile);
+ }
- try {
- store.init(props);
- } catch (Exception e) {
- throw new ConfigurationException(
- "Could not get service logic store", e);
- }
+ try {
+ props.load(new FileInputStream(propFile));
+ } catch (Exception e) {
+ throw new ConfigurationException("Could not load properties file " + propPath, e);
- return(store);
- }
+ }
- private static void registerNodeTypes(SvcLogicStore store) throws SvcLogicException {
+ synchronized (SvcLogicActivator.class) {
+ if (registrations == null) {
+ registrations = new LinkedList<>();
+ }
+ // Advertise SvcLogicService
+ svcLogicServiceImpl = new SvcLogicServiceImpl();
+ }
- if (store == null) {
- return;
- }
- // Advertise built-in node executors
- LOG.info("SLI : Registering built-in node executors");
- Hashtable propTable = new Hashtable();
+ LOG.info("SLI: Registering service {} in bundle {}", SvcLogicService.NAME, ctx.getBundle().getSymbolicName());
+ ServiceRegistration reg = ctx.registerService(SvcLogicService.NAME, svcLogicServiceImpl, null);
+ registrations.add(reg);
- for (String nodeType : BUILTIN_NODES.keySet()) {
- LOG.info("SLI - registering node type " + nodeType);
- propTable.clear();
- propTable.put("nodeType", nodeType);
+ // Initialize SvcLogicStore
+ try {
+ SvcLogicStore store = getStore();
+ registerNodeTypes(store);
+ } catch (ConfigurationException e) {
+ LOG.warn("Could not initialize SvcLogicScore", e);
+ }
- ServiceRegistration reg = bundleCtx.registerService(SvcLogicNodeExecutor.class.getName(),
- BUILTIN_NODES.get(nodeType), propTable);
- registrations.add(reg);
+ LOG.info("SLI - done registering services");
+ }
- store.registerNodeType(nodeType);
+ @Override
+ public void stop(BundleContext ctx) throws Exception {
- LOG.info("SLI - registering node executor");
+ if (registrations != null) {
+ for (ServiceRegistration reg : registrations) {
+ ServiceReference regRef = reg.getReference();
+ /* Don't bother to remove node types from table
+ String nodeType = (String) regRef.getProperty("nodeType");
+ if (nodeType != null) {
+ LOG.info("SLI - unregistering node type " + nodeType);
+ store.unregisterNodeType(nodeType);
+ }
+ */
+ reg.unregister();
+ }
+ synchronized (SvcLogicActivator.class) {
+ registrations = null;
+ }
+ }
+ }
- ((SvcLogicServiceImpl)svcLogicServiceImpl).registerExecutor(nodeType, BUILTIN_NODES.get(nodeType));
+ public static SvcLogicStore getStore() throws SvcLogicException {
+ // Create and initialize SvcLogicStore object - used to access
+ // saved service logic.
- }
+ SvcLogicStore store;
- }
+ try {
+ store = SvcLogicStoreFactory.getSvcLogicStore(props);
+ } catch (Exception e) {
+ throw new ConfigurationException("Could not get service logic store", e);
+ }
+
+ try {
+ store.init(props);
+ } catch (Exception e) {
+ throw new ConfigurationException("Could not get service logic store", e);
+ }
+
+ return(store);
+ }
+
+ private static void registerNodeTypes(SvcLogicStore store) throws SvcLogicException {
+
+ if (store == null) {
+ return;
+ }
+ // Advertise built-in node executors
+ LOG.info("SLI : Registering built-in node executors");
+ Hashtable propTable = new Hashtable();
+
+ for (String nodeType : BUILTIN_NODES.keySet()) {
+ LOG.info("SLI - registering node type {}", nodeType);
+ propTable.clear();
+ propTable.put("nodeType", nodeType);
+
+ ServiceRegistration reg = bundleCtx.registerService(SvcLogicNodeExecutor.class.getName(),
+ BUILTIN_NODES.get(nodeType), propTable);
+ registrations.add(reg);
+
+ store.registerNodeType(nodeType);
+
+ LOG.info("SLI - registering node executor");
+
+ ((SvcLogicServiceImpl)svcLogicServiceImpl).registerExecutor(nodeType, BUILTIN_NODES.get(nodeType));
+
+ }
+ }
}