SDNC-11 merge
[sdnc/core.git] / sli / provider / src / main / java / org / openecomp / sdnc / sli / provider / SvcLogicActivator.java
index 691ad40..8996095 100644 (file)
-/*-
+/*-\r
  * ============LICENSE_START=======================================================
  * openECOMP : SDN-C
  * ================================================================================
  * Copyright (C) 2017 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
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ * \r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ * \r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
  * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.openecomp.sdnc.sli.provider;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.LinkedList;
-import java.util.Map;
-import java.util.Properties;
-
-import org.openecomp.sdnc.sli.ConfigurationException;
-import org.openecomp.sdnc.sli.SvcLogicAdaptor;
-import org.openecomp.sdnc.sli.SvcLogicException;
-import org.openecomp.sdnc.sli.SvcLogicStore;
-import org.openecomp.sdnc.sli.SvcLogicStoreFactory;
-import org.osgi.framework.BundleActivator;
-import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
-import org.osgi.framework.ServiceRegistration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.mysql.jdbc.Driver;
-
-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());
-            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);
-
-               }
-
-
-               if (registrations == null) {
-
-                       registrations = new LinkedList<ServiceRegistration>();
-               }
-
-               // Advertise SvcLogicService
-               svcLogicServiceImpl = new SvcLogicServiceImpl();
-
-               LOG.info("SLI: Registering service " + SvcLogicService.NAME
-                               + " in bundle " + ctx.getBundle().getSymbolicName());
-               ServiceRegistration reg = ctx.registerService(SvcLogicService.NAME,
-                               svcLogicServiceImpl, null);
-               registrations.add(reg);
-
-               // Initialize SvcLogicStore
-               try {
-                       SvcLogicStore store = getStore();
-                       registerNodeTypes(store);
-               } catch (ConfigurationException e) {
-                       LOG.warn("Could not initialize SvcLogicScore", e);
-               }
-
-               LOG.info("SLI - done registering services");
-       }
-
-       @Override
-       public void stop(BundleContext ctx) throws Exception {
-
-               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;
-               }
-       }
-       
-       public static SvcLogicStore getStore() throws SvcLogicException {
-               // Create and initialize SvcLogicStore object - used to access
-               // saved service logic.
-               
-               SvcLogicStore store = null;
-               
-               try {
-                       Driver dvr = new Driver();
-                       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));
-
-               }
-               
-       }
-
-}
+ * ============LICENSE_END=========================================================\r
+ */\r
+\r
+package org.openecomp.sdnc.sli.provider;\r
+\r
+import java.io.File;\r
+import java.io.FileInputStream;\r
+import java.net.URL;\r
+import java.util.HashMap;\r
+import java.util.Hashtable;\r
+import java.util.LinkedList;\r
+import java.util.Map;\r
+import java.util.Properties;\r
+\r
+import org.openecomp.sdnc.sli.ConfigurationException;\r
+import org.openecomp.sdnc.sli.SvcLogicAdaptor;\r
+import org.openecomp.sdnc.sli.SvcLogicException;\r
+import org.openecomp.sdnc.sli.SvcLogicStore;\r
+import org.openecomp.sdnc.sli.SvcLogicStoreFactory;\r
+import org.osgi.framework.BundleActivator;\r
+import org.osgi.framework.BundleContext;\r
+import org.osgi.framework.ServiceReference;\r
+import org.osgi.framework.ServiceRegistration;\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+import com.mysql.jdbc.Driver;\r
+\r
+public class SvcLogicActivator implements BundleActivator {\r
+\r
+       private static final String SVCLOGIC_PROP_VAR = "SDNC_SLI_PROPERTIES";\r
+       private static final String SDNC_CONFIG_DIR = "SDNC_CONFIG_DIR";\r
+\r
+       private static final Map<String, SvcLogicNodeExecutor> BUILTIN_NODES = new HashMap<String, SvcLogicNodeExecutor>() {\r
+               {\r
+                       put("block", new BlockNodeExecutor());\r
+                       put("call", new CallNodeExecutor());\r
+                       put("configure", new ConfigureNodeExecutor());\r
+                       put("delete", new DeleteNodeExecutor());\r
+                       put("execute", new ExecuteNodeExecutor());\r
+                       put("exists", new ExistsNodeExecutor());\r
+                       put("for", new ForNodeExecutor());\r
+                       put("get-resource", new GetResourceNodeExecutor());\r
+                       put("is-available", new IsAvailableNodeExecutor());\r
+                       put("notify", new NotifyNodeExecutor());\r
+                       put("record", new RecordNodeExecutor());\r
+                       put("release", new ReleaseNodeExecutor());\r
+                       put("reserve", new ReserveNodeExecutor());\r
+                       put("return", new ReturnNodeExecutor());\r
+                       put("save", new SaveNodeExecutor());\r
+                       put("set", new SetNodeExecutor());\r
+                       put("switch", new SwitchNodeExecutor());\r
+                       put("update", new UpdateNodeExecutor());\r
+            put("break", new BreakNodeExecutor());\r
+            put("while", new WhileNodeExecutor());\r
+               }\r
+       };\r
+\r
+       private static LinkedList<ServiceRegistration> registrations = new LinkedList<ServiceRegistration>();\r
+\r
+       private static HashMap<String, SvcLogicAdaptor> adaptorMap = null;\r
+       \r
+       private static final Logger LOG = LoggerFactory\r
+                       .getLogger(SvcLogicActivator.class);\r
+       \r
+       private static Properties props = null;\r
+\r
+       private static BundleContext bundleCtx = null;\r
+       \r
+       private static SvcLogicService svcLogicServiceImpl = null;\r
+       \r
+       @Override\r
+       public void start(BundleContext ctx) throws Exception {\r
+\r
+               LOG.info("Activating SLI");\r
+               \r
+               bundleCtx = ctx;\r
+\r
+               // Read properties\r
+               props = new Properties();\r
+               String propPath = System.getenv(SVCLOGIC_PROP_VAR);\r
+               \r
+               if (propPath == null) {\r
+                       String propDir = System.getenv(SDNC_CONFIG_DIR);\r
+                       if (propDir == null) {\r
+                               \r
+                               propDir = "/opt/sdnc/data/properties";\r
+                       }\r
+                       propPath = propDir + "/svclogic.properties";\r
+                       LOG.warn("Environment variable "+SVCLOGIC_PROP_VAR+" unset - defaulting to "+propPath);\r
+               }\r
+               \r
+               File propFile = new File(propPath);\r
+               \r
+               if (!propFile.exists()) {\r
+                       \r
+                       throw new ConfigurationException(\r
+                                       "Missing configuration properties file : "\r
+                                                       + propFile);\r
+               }\r
+               try {\r
+                       \r
+                       props.load(new FileInputStream(propFile));\r
+               } catch (Exception e) {\r
+                       throw new ConfigurationException(\r
+                                       "Could not load properties file " + propPath, e);\r
+\r
+               }\r
+\r
+\r
+               if (registrations == null) {\r
+\r
+                       registrations = new LinkedList<ServiceRegistration>();\r
+               }\r
+\r
+               // Advertise SvcLogicService\r
+               svcLogicServiceImpl = new SvcLogicServiceImpl();\r
+\r
+               LOG.info("SLI: Registering service " + SvcLogicService.NAME\r
+                               + " in bundle " + ctx.getBundle().getSymbolicName());\r
+               ServiceRegistration reg = ctx.registerService(SvcLogicService.NAME,\r
+                               svcLogicServiceImpl, null);\r
+               registrations.add(reg);\r
+\r
+               // Initialize SvcLogicStore\r
+               try {\r
+                       SvcLogicStore store = getStore();\r
+                       registerNodeTypes(store);\r
+               } catch (ConfigurationException e) {\r
+                       LOG.warn("Could not initialize SvcLogicScore", e);\r
+               }\r
+\r
+               LOG.info("SLI - done registering services");\r
+       }\r
+\r
+       @Override\r
+       public void stop(BundleContext ctx) throws Exception {\r
+\r
+               if (registrations != null) {\r
+                       for (ServiceRegistration reg : registrations) {\r
+                               ServiceReference regRef = reg.getReference();\r
+                               /* Don't bother to remove node types from table\r
+                               String nodeType = (String) regRef.getProperty("nodeType");\r
+                               if (nodeType != null) {\r
+                                       LOG.info("SLI - unregistering node type " + nodeType);\r
+                                       store.unregisterNodeType(nodeType);\r
+                               }\r
+                               */\r
+                               reg.unregister();\r
+                       }\r
+                       registrations = null;\r
+               }\r
+       }\r
+       \r
+       public static SvcLogicStore getStore() throws SvcLogicException {\r
+               // Create and initialize SvcLogicStore object - used to access\r
+               // saved service logic.\r
+               \r
+               SvcLogicStore store = null;\r
+               \r
+               try {\r
+                       Driver dvr = new Driver();\r
+                       store = SvcLogicStoreFactory.getSvcLogicStore(props);\r
+               } catch (Exception e) {\r
+                       throw new ConfigurationException(\r
+                                       "Could not get service logic store", e);\r
+\r
+               }\r
+\r
+               try {\r
+                       store.init(props);\r
+               } catch (Exception e) {\r
+                       throw new ConfigurationException(\r
+                                       "Could not get service logic store", e);\r
+               }\r
+               \r
+               return(store);\r
+       }\r
+       \r
+       private static void registerNodeTypes(SvcLogicStore store) throws SvcLogicException {\r
+               \r
+               if (store == null) {\r
+                       return;\r
+               }\r
+               // Advertise built-in node executors\r
+               LOG.info("SLI : Registering built-in node executors");\r
+               Hashtable propTable = new Hashtable();\r
+\r
+               for (String nodeType : BUILTIN_NODES.keySet()) {\r
+                       LOG.info("SLI - registering node type " + nodeType);\r
+                       propTable.clear();\r
+                       propTable.put("nodeType", nodeType);\r
+\r
+                       ServiceRegistration reg = bundleCtx.registerService(SvcLogicNodeExecutor.class.getName(),\r
+                                       BUILTIN_NODES.get(nodeType), propTable);\r
+                       registrations.add(reg);\r
+\r
+                       store.registerNodeType(nodeType);\r
+                       \r
+                       LOG.info("SLI - registering node executor");\r
+                       \r
+                       ((SvcLogicServiceImpl)svcLogicServiceImpl).registerExecutor(nodeType, BUILTIN_NODES.get(nodeType));\r
+\r
+               }\r
+               \r
+       }\r
+\r
+}\r