+ String executionName = ci.nextArgument();
+
+ launch(firstArg, executionName);
+ /*
+ * String moduleName = null;
+ *
+ * // First check whether we have a bundleId Long bundleId = null; try {
+ * bundleId = Long.parseLong(firstArg); } catch (NumberFormatException
+ * e) { // silent }
+ *
+ * // Look for bundle names containing pattern Bundle bundle = null; if
+ * (bundleId != null) { bundle = bundleContext.getBundle(bundleId); }
+ * else { for (Bundle b : bundleContext.getBundles()) { if
+ * (b.getSymbolicName().contains(firstArg)) { bundle = b; break; } } }
+ *
+ * if (bundle != null) { moduleName = bundle.getSymbolicName();
+ * lastModuleName = moduleName; lastExecutionName = executionName; }
+ * else { log
+ * .warn("Could not find any execution module matching these requirements."
+ * ); return null; }
+ *
+ * // Find module ExecutionModule module = null; ServiceReference
+ * serviceRef = null; try { bundlesManager.stopSynchronous(bundle);
+ * bundlesManager.updateSynchronous(bundle); // Refresh in case there
+ * are fragments bundlesManager.refreshSynchronous(bundle);
+ * bundlesManager.startSynchronous(bundle);
+ *
+ * String filter = "(Bundle-SymbolicName=" + moduleName + ")"; // Wait
+ * for application context to be ready
+ * bundlesManager.getServiceRefSynchronous(ApplicationContext.class
+ * .getName(), filter);
+ *
+ * if (log.isDebugEnabled()) log.debug("Bundle " +
+ * bundle.getSymbolicName() + " ready to be used at latest version.");
+ *
+ * ServiceReference[] sfs = bundlesManager.getServiceRefSynchronous(
+ * ExecutionModule.class.getName(), filter);
+ *
+ * if (sfs.length > 1) log
+ * .warn("More than one execution module service found in module " +
+ * moduleName);
+ *
+ * if (sfs.length > 0) { serviceRef = sfs[0]; module = (ExecutionModule)
+ * bundleContext.getService(serviceRef); }
+ *
+ * if (module != null) { ExecutionFlowDescriptor descriptor = new
+ * ExecutionFlowDescriptor(); descriptor.setName(executionName);
+ * module.execute(descriptor); log.info("Executed " + executionName +
+ * " from " + moduleName); }
+ *
+ * } catch (Exception e) { throw new
+ * SlcException("Cannot find or update module.", e); } finally { if
+ * (serviceRef != null) bundleContext.ungetService(serviceRef); }
+ */
+
+ return "COMMAND COMPLETED";
+ }
+
+ protected void launch(String firstArg, String executionName) {
+ lastLaunch = executionLauncher.findLaunch(firstArg, executionName);
+ if (lastLaunch == null)
+ throw new SlcException("Cannot find launch for " + firstArg + " "
+ + executionName);
+
+ executionLauncher.launch(lastLaunch);