code: @Override
      public void start(StartContext startContext) throws StartException {
          Path loc = location == null ? null : resolveLocation();
          try {
              ROOT_LOGGER.tracef("starting CredentialStore:  name = %s", name);
              credentialStoreAttributes.put(CS_LOCATION_ATTRIBUTE, loc == null ? null : loc.toAbsolutePath().toString());
              CredentialStore cs = getCredentialStoreInstance();
              Provider[] otherProvidersArr = otherProviders.getOptionalValue();
              if (ROOT_LOGGER.isTraceEnabled()) {
                  ROOT_LOGGER.tracef(
                          "initializing CredentialStore:  name = %s  type = %s  provider = %s  otherProviders = %s  attributes = %s",
                          name, type, provider, Arrays.toString(otherProvidersArr), credentialStoreAttributes
                  );
              }
              synchronized (EmptyProvider.getInstance()) {
                  cs.initialize(credentialStoreAttributes, resolveCredentialStoreProtectionParameter(), otherProvidersArr);
              }
              if (credentialStoreAttributes.get(ElytronDescriptionConstants.CREATE).equals("true") && loc != null && !loc.toFile().exists()){
                  ROOT_LOGGER.tracef("CredentialStore %s does not exist, creating", name);
                  cs.flush();
              }
              credentialStore.set(cs);
              ROOT_LOGGER.tracef("CredentialStore started:  name = %s  credentialStore = %s", name, cs);
          } catch (Exception e) {
              throw ElytronSubsystemMessages.ROOT_LOGGER.unableToStartService(e);
          }
      }
docs: /*
  Service Lifecycle Related Methods