private synchronized void configure(Configuration config) throws IOException {
    logger.atFine().log("GHFS.configure");
    logger.atFine().log("GHFS_ID = %s", GHFS_ID);

    overrideConfigFromFile(config);
    copyDeprecatedConfigurationOptions(config);
    // Set this configuration as the default config for this instance.
    setConf(config);

    enableFlatGlob = GCS_FLAT_GLOB_ENABLE.get(config, config::getBoolean);
    enableConcurrentGlob = GCS_CONCURRENT_GLOB_ENABLE.get(config, config::getBoolean);
    checksumType = GCS_FILE_CHECKSUM_TYPE.get(config, config::getEnum);
    defaultBlockSize = BLOCK_SIZE.get(config, config::getLong);
    reportedPermissions = new FsPermission(PERMISSIONS_TO_REPORT.get(config, config::get));

    if (gcsFsSupplier == null) {
      if (GCS_LAZY_INITIALIZATION_ENABLE.get(config, config::getBoolean)) {
        gcsFsSupplier =
            Suppliers.memoize(
                () -> {
                  try {
                    GoogleCloudStorageFileSystem gcsFs = createGcsFs(config);

                    pathCodec = gcsFs.getPathCodec();
                    configureBuckets(gcsFs);
                    configureWorkingDirectory(config);
                    gcsFsInitialized = true;

                    return gcsFs;
                  } catch (IOException e) {
                    throw new RuntimeException("Failed to create GCS FS", e);
                  }
                });
        pathCodec = getPathCodec(config);
      } else {
        setGcsFs(createGcsFs(config));
        configureBuckets(getGcsFs());
        configureWorkingDirectory(config);
      }
    } else {
      configureBuckets(getGcsFs());
      configureWorkingDirectory(config);
    }

    logger.atFine().log("GHFS.configure: done");
  }
private synchronized void configure ( Configuration config ) throws IOException { logger . atFine ( ) . log ( "GHFS.configure" ) ; logger . atFine ( ) . log ( "GHFS_ID = %s" , GHFS_ID ) ; overrideConfigFromFile ( config ) ; copyDeprecatedConfigurationOptions ( config ) ; setConf ( config ) ; enableFlatGlob = GCS_FLAT_GLOB_ENABLE . get ( config , config :: getBoolean ) ; enableConcurrentGlob = GCS_CONCURRENT_GLOB_ENABLE . get ( config , config :: getBoolean ) ; checksumType = GCS_FILE_CHECKSUM_TYPE . get ( config , config :: getEnum ) ; defaultBlockSize = BLOCK_SIZE . get ( config , config :: getLong ) ; reportedPermissions = new FsPermission ( PERMISSIONS_TO_REPORT . get ( config , config :: get ) ) ; if ( gcsFsSupplier == null ) { if ( GCS_LAZY_INITIALIZATION_ENABLE . get ( config , config :: getBoolean ) ) { gcsFsSupplier = Suppliers . memoize ( ( ) -> { try { GoogleCloudStorageFileSystem gcsFs = createGcsFs ( config ) ; pathCodec = gcsFs . getPathCodec ( ) ; configureBuckets ( gcsFs ) ; configureWorkingDirectory ( config ) ; gcsFsInitialized = true ; return gcsFs ; } catch ( IOException e ) { throw new RuntimeException ( "Failed to create GCS FS" , e ) ; } } ) ; pathCodec = getPathCodec ( config ) ; } else { setGcsFs ( createGcsFs ( config ) ) ; configureBuckets ( getGcsFs ( ) ) ; configureWorkingDirectory ( config ) ; } } else { configureBuckets ( getGcsFs ( ) ) ; configureWorkingDirectory ( config ) ; } logger . atFine ( ) . log ( "GHFS.configure: done" ) ; }
Configures GHFS using the supplied configuration.

@param config Hadoop configuration object.