@Override public void lifecycleStart(ILifecycleProgressMonitor monitor) { try { // Verify that component can be started. if (!canStart()) { return; } LifecycleStatus old = getLifecycleStatus(); setLifecycleStatus(LifecycleStatus.Starting); getLogger().info(getComponentName() + " state transitioned to STARTING."); if (old != LifecycleStatus.Paused) { start(monitor); } setLifecycleStatus(LifecycleStatus.Started); getLogger().info(getComponentName() + " state transitioned to STARTED."); } catch (SiteWhereException e) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(e); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(new SiteWhereException(t)); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
@Override public void lifecycleInitialize(ILifecycleProgressMonitor monitor) { try { // Verify that component can be initialized. if (!canInitialize()) { return; } setLifecycleStatus(LifecycleStatus.Initializing); getLogger().info(getComponentName() + " state transitioned to INITIALIZING."); initialize(monitor); setLifecycleStatus(LifecycleStatus.Stopped); getLogger().info(getComponentName() + " state transitioned to INITIALIZED."); } catch (SiteWhereException e) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(e); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(new SiteWhereException(t)); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
@Override public void lifecycleStop(ILifecycleProgressMonitor monitor, ILifecycleConstraints constraints) { try { // Verify that we are allowed to stop component. if (!canStop()) { return; } setLifecycleStatus(LifecycleStatus.Stopping); getLogger().info(getComponentName() + " state transitioned to STOPPING."); if (constraints == null) { stop(monitor); } else { stop(monitor, constraints); } setLifecycleStatus(LifecycleStatus.Stopped); getLogger().info(getComponentName() + " state transitioned to STOPPED."); } catch (SiteWhereException e) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(e); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(new SiteWhereException(t)); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
@Override public void lifecycleTerminate(ILifecycleProgressMonitor monitor) { setLifecycleStatus(LifecycleStatus.Terminating); getLogger().info(getComponentName() + " state transitioned to TERMINATING."); try { terminate(monitor); setLifecycleStatus(LifecycleStatus.Terminated); getLogger().info(getComponentName() + " state transitioned to TERMINATED."); } catch (SiteWhereException e) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(e); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(new SiteWhereException(t)); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
@Override public void lifecyclePause(ILifecycleProgressMonitor monitor) { setLifecycleStatus(LifecycleStatus.Pausing); getLogger().info(getComponentName() + " state transitioned to PAUSING."); try { pause(monitor); setLifecycleStatus(LifecycleStatus.Paused); getLogger().info(getComponentName() + " state transitioned to PAUSED."); } catch (SiteWhereException e) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(e); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleStatus(LifecycleStatus.Error); setLifecycleError(new SiteWhereException(t)); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
try { span = monitor.createTracerSpan("Initialize " + getComponentName()); initializeParameters(); validateParameters(); if (!canInitialize()) { return; setLifecycleStatus(LifecycleStatus.Initializing); getLogger().debug(getComponentName() + " state transitioned to INITIALIZING."); initialize(monitor); setLifecycleStatus(LifecycleStatus.Stopped); getLogger().debug(getComponentName() + " state transitioned to INITIALIZED."); } catch (SiteWhereException e) { setLifecycleError(e); setLifecycleStatus(LifecycleStatus.InitializationError); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); monitor.handleErrorInTracerSpan(span, e); } catch (Throwable t) { setLifecycleError(new SiteWhereException(t)); setLifecycleStatus(LifecycleStatus.InitializationError); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); monitor.handleErrorInTracerSpan(span, t); } finally {
@Override public void start(ILifecycleProgressMonitor monitor) throws SiteWhereException { super.start(monitor); getCacheManager().init(); }
@Override public List<ILifecycleComponent> findComponentsOfType(LifecycleComponentType type) throws SiteWhereException { List<ILifecycleComponent> matches = new ArrayList<ILifecycleComponent>(); findComponentsOfType(this, matches, type); return matches; }
/** * Build a component map by recursively navigating the component tree. * * @return */ protected Map<String, ILifecycleComponent> buildComponentMap() { Map<String, ILifecycleComponent> map = new HashMap<String, ILifecycleComponent>(); buildComponentMap(this, map); return map; }
@Override public void stop(ILifecycleProgressMonitor monitor) throws SiteWhereException { getCacheManager().close(); super.stop(monitor); }
@Override public void terminate(ILifecycleProgressMonitor monitor) throws SiteWhereException { super.terminate(monitor); ((IConfigurableMicroservice<?>) getMicroservice()).getConfigurationMonitor().getListeners().remove(this); }
@Override public void initialize(ILifecycleProgressMonitor monitor) throws SiteWhereException { super.initialize(monitor); ((IConfigurableMicroservice<?>) getMicroservice()).getConfigurationMonitor().getListeners().add(this); }
@Override public void setLifecycleStatus(LifecycleStatus lifecycleStatus) { super.setLifecycleStatus(lifecycleStatus); getLogger().info(MicroserviceMessages.LIFECYCLE_STATUS_SENDING, getLifecycleStatus().name()); sendChangedState(); }
@Override public void lifecycleTerminate(ILifecycleProgressMonitor monitor) { setLifecycleStatus(LifecycleStatus.Terminating); getLogger().debug(getComponentName() + " state transitioned to TERMINATING."); try { terminate(monitor); setLifecycleStatus(LifecycleStatus.Terminated); getLogger().debug(getComponentName() + " state transitioned to TERMINATED."); } catch (SiteWhereException e) { setLifecycleError(e); setLifecycleStatus(LifecycleStatus.LifecycleError); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleError(new SiteWhereException(t)); setLifecycleStatus(LifecycleStatus.LifecycleError); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
@Override public void lifecyclePause(ILifecycleProgressMonitor monitor) { setLifecycleStatus(LifecycleStatus.Pausing); getLogger().info(getComponentName() + " state transitioned to PAUSING."); try { pause(monitor); setLifecycleStatus(LifecycleStatus.Paused); getLogger().debug(getComponentName() + " state transitioned to PAUSED."); } catch (SiteWhereException e) { setLifecycleError(e); setLifecycleStatus(LifecycleStatus.LifecycleError); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); } catch (Throwable t) { setLifecycleError(new SiteWhereException(t)); setLifecycleStatus(LifecycleStatus.LifecycleError); getLogger().error(getComponentName() + " state transitioned to ERROR.", t); } }
@Override public void start(ILifecycleProgressMonitor monitor) throws SiteWhereException { super.start(monitor); // Copy all scipts from Zk to local. try { if (getMicroservice().getZookeeperManager().getCurator().checkExists() .forPath(getZkScriptRootPath()) != null) { ZkUtils.copyFolderRecursivelyFromZk(getMicroservice().getZookeeperManager().getCurator(), getZkScriptRootPath(), getFileSystemRoot(), getZkScriptRootPath()); } } catch (Exception e) { throw new SiteWhereException("Unable to copy scripts from Zookeeper.", e); } }
@Override public List<ILifecycleComponent> findComponentsOfType(LifecycleComponentType type) throws SiteWhereException { List<ILifecycleComponent> matches = new ArrayList<ILifecycleComponent>(); findComponentsOfType(this, matches, type); return matches; }
/** * Build a component map by recursively navigating the component tree. * * @return */ protected Map<UUID, ILifecycleComponent> buildComponentMap() { Map<UUID, ILifecycleComponent> map = new HashMap<>(); buildComponentMap(this, map); return map; }
span = monitor.createTracerSpan("Start " + getComponentName()); if (!canStart()) { return; LifecycleStatus old = getLifecycleStatus(); setLifecycleStatus(LifecycleStatus.Starting); getLogger().debug(getComponentName() + " state transitioned to STARTING."); start(monitor); for (UUID id : getLifecycleComponents().keySet()) { ILifecycleComponent sub = getLifecycleComponents().get(id); if ((sub.getLifecycleStatus() == LifecycleStatus.LifecycleError) || (sub.getLifecycleStatus() == LifecycleStatus.StartedWithErrors)) { setLifecycleStatus(status); if (status == LifecycleStatus.Started) { getLogger().debug(getComponentName() + " state transitioned to STARTED."); } else if (status == LifecycleStatus.StartedWithErrors) { getLogger().debug(getComponentName() + " state transitioned to STARTED WITH ERRORS."); setLifecycleError(e); setLifecycleStatus(LifecycleStatus.LifecycleError); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); monitor.handleErrorInTracerSpan(span, e); } catch (Throwable t) { setLifecycleError(new SiteWhereException(t)); setLifecycleStatus(LifecycleStatus.LifecycleError);
span = monitor.createTracerSpan("Stop " + getComponentName()); if (!canStop()) { return; setLifecycleStatus(LifecycleStatus.Stopping); getLogger().debug(getComponentName() + " state transitioned to STOPPING."); stop(monitor); } else { stop(monitor, constraints); for (UUID id : getLifecycleComponents().keySet()) { ILifecycleComponent sub = getLifecycleComponents().get(id); if ((sub.getLifecycleStatus() == LifecycleStatus.LifecycleError) || (sub.getLifecycleStatus() == LifecycleStatus.StoppedWithErrors)) { setLifecycleStatus(status); if (status == LifecycleStatus.Stopped) { getLogger().debug(getComponentName() + " state transitioned to STOPPED."); } else if (status == LifecycleStatus.StoppedWithErrors) { getLogger().debug(getComponentName() + " state transitioned to STOPPED WITH ERRORS."); setLifecycleError(e); setLifecycleStatus(LifecycleStatus.LifecycleError); getLogger().error(getComponentName() + " state transitioned to ERROR.", e); monitor.handleErrorInTracerSpan(span, e); } catch (Throwable t) { setLifecycleError(new SiteWhereException(t));