/*---------------------*/
  private void readConfig(String adapterFileNameWithoutExt) {
    this.setAdapterFileNameWithoutExt(adapterFileNameWithoutExt);

    // First load the environments.properies file and store its information in this class
    if (loadEnvironmentProperties()) {
      // Load Service Property File
      adapterProperties = getProperties(adapterFileNameWithoutExt);
      if (adapterProperties != null) {
        boolean errors = false;
        String serviceName = getServiceName(adapterProperties);
        Boolean isConsumer = getIsConsumer(adapterProperties);
        if ((serviceName != null)
            && (isConsumer != null)) // error already logged if one of these is null
        {
          environment =
              (isConsumer)
                  ? new ConsumerEnvironment(serviceName)
                  : new ProviderEnvironment(serviceName);
          environment.setAdapterType(isConsumer ? AdapterType.CONSUMER : AdapterType.PROVIDER);
          environment.setCheckACL(adapterProperties.getPropertyAsBool("adapter.checkACL", true));
          //
          //	environment.setEventsSupported(adapterProperties.getPropertyAsBool("env.events.supported", false));
          environment.setRemoveEnvOnShutdown(
              adapterProperties.getPropertyAsBool("adapter.deleteEnvironment.onShutdown", false));
          environment.setGeneratorID(
              adapterProperties.getPropertyAsString("adapter.generator.id", null));
          environment.setEnvCreateConflictIsError(
              adapterProperties.getPropertyAsBool("env.create.conflictIsError", true));
          environment.setCompressionEnabled(
              adapterProperties.getPropertyAsBool("adapter.compression.enabled", false));

          // This is also set for providers in brokered environment
          environment.setSecureConnection(getSecureConnectionInfo(adapterProperties));

          environment.setEnvironmentType(getEnvironmentType(adapterProperties, isConsumer));
          errors = ((!isConsumer) && (environment.getEnvironmentType() == null));

          if (!errors) {
            // Check if required directories exist. Create them if they don't exist.
            if (!checkAndCreateDir(
                getFullTemplateDirName(isConsumer, environment.getEnvironmentType()))) {
              errors = true;
            }
          }

          // Media Type
          environment.setMediaType(
              convertMediaType(adapterProperties.getPropertyAsString("env.mediaType", null)));

          if (!loadExistingEnvInfo(adapterProperties)) {
            errors = true;
          }

          if (!errors) // Read specific info
          {
            if (getEnvironment().getAdapterType() == AdapterType.CONSUMER) {
              errors = loadConsumerInfo(adapterProperties, (ConsumerEnvironment) environment);
            } else {
              errors = loadProviderInfo(adapterProperties, (ProviderEnvironment) environment);
            }
          }
        } else // Error already logged.
        {
          errors = true;
        }

        // If we had any errors then the environment info cannot be relied upon. So we best null it
        // to avoid confusion.
        if (errors) {
          environment = null;
        }
      }
    }
  }