code: public final List<Throwable> validate() {
          List<Throwable> validationErrors = new ArrayList<>();
          this.accessAssertion.validate(validationErrors, this);
  
          for (String jdbcDriver: this.jdbcDrivers) {
              try {
                  Class.forName(jdbcDriver);
              } catch (ClassNotFoundException e) {
                  try {
                      Configuration.class.getClassLoader().loadClass(jdbcDriver);
                  } catch (ClassNotFoundException e1) {
                      validationErrors.add(new ConfigurationException(String.format(
                              "Unable to load JDBC driver: %s ensure that the web application has the jar " +
                                      "on its classpath", jdbcDriver)));
                  }
              }
          }
  
          if (this.configurationFile == null) {
              validationErrors.add(new ConfigurationException("Configuration file is field on configuration " +
                                                                      "object is null"));
          }
          if (this.templates.isEmpty()) {
              validationErrors.add(new ConfigurationException("There are not templates defined."));
          }
          for (Template template: this.templates.values()) {
              template.validate(validationErrors, this);
          }
  
          for (HttpProxy proxy: this.proxies) {
              proxy.validate(validationErrors, this);
          }
  
          try {
              ColorParser.toColor(this.opaqueTileErrorColor);
          } catch (RuntimeException ex) {
              validationErrors.add(new ConfigurationException("Cannot parse opaqueTileErrorColor", ex));
          }
  
          try {
              ColorParser.toColor(this.transparentTileErrorColor);
          } catch (RuntimeException ex) {
              validationErrors.add(new ConfigurationException("Cannot parse transparentTileErrorColor", ex));
          }
  
          if (smtp != null) {
              smtp.validate(validationErrors, this);
          }
  
          return validationErrors;
      }
docs: Validate that the configuration is valid.
  
  @return any validation errors.