code: public void startHawkularAgent(Configuration newConfig) {
          if (newConfig == null) {
              super.startHawkularAgent();
          } else {
              Configuration oldConfig = getConfigurationManager().getConfiguration();
              boolean doNotChangeConfig = (oldConfig != null && oldConfig.getSubsystem().getImmutable());
  
              AgentCoreEngineConfiguration agentConfig;
              try {
                  agentConfig = new ConfigConverter(doNotChangeConfig ? oldConfig : newConfig).convert();
              } catch (Exception e) {
                  throw new RuntimeException("Cannot start agent - config is invalid", e);
              }
  
              try {
                  if (!doNotChangeConfig) {
                      this.configurationManager.updateConfiguration(newConfig, true);
                  }
                  super.startHawkularAgent(agentConfig);
              } catch (RuntimeException re) {
                  throw re;
              } catch (Exception e) {
                  throw new RuntimeException(e);
              }
          }
      }
docs: This method allows you to start the agent using a Java Agent Engine Configuration ({@link Configuration})
  rather than a Agent Core Engine configuration ({@link AgentCoreEngineConfiguration}).
  
  If the original agent configuration indicated the agent should be immutable, this ignores
  the given configuration and restarts the agent using the old configuration.
  
  The new configuration will be persisted if the agent was mutable and allowed to change.
  
  @param newConfig the new configuration to use (may be null which means use the previous configuration).