docs: @Override
      public void start(StartContext startContext) throws StartException {
          try {
              AtomicLoadKeyStore keyStore = null;
  
              if (type != null) {
                  Provider provider = resolveProvider();
                  keyStore = AtomicLoadKeyStore.newInstance(type, provider);
              }
  
              if (path != null) {
                  pathResolver = pathResolver();
                  resolvedPath = getResolvedPath(pathResolver, path, relativeTo);
              }
  
              synched = System.currentTimeMillis();
              if (resolvedPath != null && ! resolvedPath.exists()) {
                  if (required || type == null) {
                      throw ROOT_LOGGER.keyStoreFileNotExists(resolvedPath.getAbsolutePath());
                  } else {
                      ROOT_LOGGER.keyStoreFileNotExistsButIgnored(resolvedPath.getAbsolutePath());
                  }
              }
  
              try (FileInputStream is = (resolvedPath != null && resolvedPath.exists()) ? new FileInputStream(resolvedPath) : null) {
                  char[] password = resolvePassword();
  
                  ROOT_LOGGER.tracef(
                          "starting:  type = %s  provider = %s  path = %s  resolvedPath = %s  password = %b  aliasFilter = %s",
                          type, provider, path, resolvedPath, password != null, aliasFilter
                  );
  
                  if (is != null) {
                      if (type != null) {
                          keyStore.load(is, password);
                      } else {
                          Provider[] resolvedProviders = providers.getOptionalValue();
                          if (resolvedProviders == null) {
                              resolvedProviders = Security.getProviders();
                          }
                          final Provider[] finalProviders = resolvedProviders;
                          KeyStore detected = KeyStoreUtil.loadKeyStore(() -> finalProviders, this.provider, is, resolvedPath.getPath(), password);
  
                          if (detected == null) {
                              throw ROOT_LOGGER.unableToDetectKeyStore(resolvedPath.getPath());
                          }
  
                          keyStore = AtomicLoadKeyStore.atomize(detected);
                      }
                  } else {
                      synchronized (EmptyProvider.getInstance()) {
                          keyStore.load(null, password);
                      }
                  }
                  checkCertificatesValidity(keyStore);
              }
  
              this.keyStore = keyStore;
              KeyStore intermediate = aliasFilter != null ? FilteringKeyStore.filteringKeyStore(keyStore, AliasFilter.fromString(aliasFilter)) :  keyStore;
              this.trackingKeyStore = ModifyTrackingKeyStore.modifyTrackingKeyStore(intermediate);
              this.unmodifiableKeyStore = UnmodifiableKeyStore.unmodifiableKeyStore(intermediate);
          } catch (Exception e) {
              throw ROOT_LOGGER.unableToStartService(e);
          }
      }