test_class.declarator: expectedDefaultConfiguration =
        new HashMap<String, Object>() {
          {
            put(".auth.access.token.provider.impl", null);
            put(".auth.client.file", USER_HOME.value() + "/.credentials/storage.json");
            put(".auth.client.id", null);
            put(".client.id", null);
            put(".auth.client.secret", null);
            put(".client.secret", null);
            put(".auth.null.enable", false);
            put(".auth.service.account.email", null);
            put(".service.account.auth.email", null);
            put(".auth.service.account.enable", true);
            put(".enable.service.account.auth", true);
            put(".auth.service.account.json.keyfile", null);
            put(".auth.service.account.keyfile", null);
            put(".service.account.auth.keyfile", null);
            put(".auth.service.account.private.key", null);
            put(".auth.service.account.private.key.id", null);
            put(".token.server.url", "https://oauth2.googleapis.com/token");
            put(".http.transport.type", JAVA_NET);
            put(".proxy.address", null);
            put(".proxy.password", null);
            put(".proxy.username", null);
            put(".auth.impersonation.service.account", null);
            put(".auth.impersonation.service.account.for.user.", ImmutableMap.of());
            put(".auth.impersonation.service.account.for.group.", ImmutableMap.of());
          }
        }
test_class.modifier: @SuppressWarnings("DoubleBraceInitialization")
    private static final
test_class.original_string: @SuppressWarnings("DoubleBraceInitialization")
    private static final Map<String, Object> expectedDefaultConfiguration =
        new HashMap<String, Object>() {
          {
            put(".auth.access.token.provider.impl", null);
            put(".auth.client.file", USER_HOME.value() + "/.credentials/storage.json");
            put(".auth.client.id", null);
            put(".client.id", null);
            put(".auth.client.secret", null);
            put(".client.secret", null);
            put(".auth.null.enable", false);
            put(".auth.service.account.email", null);
            put(".service.account.auth.email", null);
            put(".auth.service.account.enable", true);
            put(".enable.service.account.auth", true);
            put(".auth.service.account.json.keyfile", null);
            put(".auth.service.account.keyfile", null);
            put(".service.account.auth.keyfile", null);
            put(".auth.service.account.private.key", null);
            put(".auth.service.account.private.key.id", null);
            put(".token.server.url", "https://oauth2.googleapis.com/token");
            put(".http.transport.type", JAVA_NET);
            put(".proxy.address", null);
            put(".proxy.password", null);
            put(".proxy.username", null);
            put(".auth.impersonation.service.account", null);
            put(".auth.impersonation.service.account.for.user.", ImmutableMap.of());
            put(".auth.impersonation.service.account.for.group.", ImmutableMap.of());
          }
        };
test_class.type: Map<String, Object>
test_class.var_name: expectedDefaultConfiguration
test_class.declarator: TEST_SCOPES = ImmutableList.of("scope1", "scope2")
test_class.modifier: private static final
test_class.original_string: private static final ImmutableList<String> TEST_SCOPES = ImmutableList.of("scope1", "scope2");
test_class.type: ImmutableList<String>
test_class.var_name: TEST_SCOPES
test_class.declarator: configuration
test_class.modifier: private
test_class.original_string: private Configuration configuration;
test_class.type: Configuration
test_class.var_name: configuration
test_class.file: util-hadoop/src/test/java/com/google/cloud/hadoop/util/HadoopCredentialConfigurationTest.java
test_class.identifier: HadoopCredentialConfigurationTest
test_case.body: @Test
    public void customTokenServerUrl() throws Exception {
      configuration.set(
          getConfigKey(SERVICE_ACCOUNT_JSON_KEYFILE_SUFFIX), getStringPath("test-credential.json"));
      configuration.set(getConfigKey(TOKEN_SERVER_URL_SUFFIX), "https://test.oauth.com/token");
  
      CredentialFactory credentialFactory = getCredentialFactory();
  
      GoogleCredentialWithRetry credential =
          (GoogleCredentialWithRetry) credentialFactory.getCredential(TEST_SCOPES);
  
      assertThat(credential.getTokenServerEncodedUrl()).isEqualTo("https://test.oauth.com/token");
    }
test_case.class_method_signature: HadoopCredentialConfigurationTest.customTokenServerUrl()
test_case.full_signature: @Test public void customTokenServerUrl()
test_case.identifier: customTokenServerUrl
test_case.invocations: set getConfigKey getStringPath set getConfigKey getCredentialFactory getCredential isEqualTo assertThat getTokenServerEncodedUrl
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void customTokenServerUrl()
focal_class.declarator: BASE_KEY_PREFIX = "google.cloud"
focal_class.modifier: public static final
focal_class.original_string: public static final String BASE_KEY_PREFIX = "google.cloud";
focal_class.type: String
focal_class.var_name: BASE_KEY_PREFIX
focal_class.declarator: ENABLE_SERVICE_ACCOUNTS_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.service.account.enable",
            CredentialOptions.SERVICE_ACCOUNT_ENABLED_DEFAULT,
            ".enable.service.account.auth")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<Boolean> ENABLE_SERVICE_ACCOUNTS_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.service.account.enable",
            CredentialOptions.SERVICE_ACCOUNT_ENABLED_DEFAULT,
            ".enable.service.account.auth");
focal_class.type: HadoopConfigurationProperty<Boolean>
focal_class.var_name: ENABLE_SERVICE_ACCOUNTS_SUFFIX
focal_class.declarator: SERVICE_ACCOUNT_EMAIL_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.service.account.email", /* defaultValue= */ null, ".service.account.auth.email")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> SERVICE_ACCOUNT_EMAIL_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.service.account.email", /* defaultValue= */ null, ".service.account.auth.email");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: SERVICE_ACCOUNT_EMAIL_SUFFIX
focal_class.declarator: SERVICE_ACCOUNT_PRIVATE_KEY_ID_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.service.account.private.key.id")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> SERVICE_ACCOUNT_PRIVATE_KEY_ID_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.service.account.private.key.id");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: SERVICE_ACCOUNT_PRIVATE_KEY_ID_SUFFIX
focal_class.declarator: SERVICE_ACCOUNT_PRIVATE_KEY_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.service.account.private.key")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> SERVICE_ACCOUNT_PRIVATE_KEY_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.service.account.private.key");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: SERVICE_ACCOUNT_PRIVATE_KEY_SUFFIX
focal_class.declarator: SERVICE_ACCOUNT_KEYFILE_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.service.account.keyfile",
            /* defaultValue= */ null,
            ".service.account.auth.keyfile")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> SERVICE_ACCOUNT_KEYFILE_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.service.account.keyfile",
            /* defaultValue= */ null,
            ".service.account.auth.keyfile");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: SERVICE_ACCOUNT_KEYFILE_SUFFIX
focal_class.declarator: SERVICE_ACCOUNT_JSON_KEYFILE_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.service.account.json.keyfile")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> SERVICE_ACCOUNT_JSON_KEYFILE_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.service.account.json.keyfile");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: SERVICE_ACCOUNT_JSON_KEYFILE_SUFFIX
focal_class.declarator: CLIENT_ID_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.client.id", /* defaultValue= */ null, ".client.id")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> CLIENT_ID_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.client.id", /* defaultValue= */ null, ".client.id");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: CLIENT_ID_SUFFIX
focal_class.declarator: CLIENT_SECRET_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.client.secret", /* defaultValue= */ null, ".client.secret")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> CLIENT_SECRET_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.client.secret", /* defaultValue= */ null, ".client.secret");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: CLIENT_SECRET_SUFFIX
focal_class.declarator: OAUTH_CLIENT_FILE_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.client.file", USER_HOME.value() + "/.credentials/storage.json")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> OAUTH_CLIENT_FILE_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.client.file", USER_HOME.value() + "/.credentials/storage.json");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: OAUTH_CLIENT_FILE_SUFFIX
focal_class.declarator: ENABLE_NULL_CREDENTIAL_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.null.enable", CredentialOptions.NULL_CREDENTIALS_ENABLED_DEFAULT)
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<Boolean> ENABLE_NULL_CREDENTIAL_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".auth.null.enable", CredentialOptions.NULL_CREDENTIALS_ENABLED_DEFAULT);
focal_class.type: HadoopConfigurationProperty<Boolean>
focal_class.var_name: ENABLE_NULL_CREDENTIAL_SUFFIX
focal_class.declarator: TOKEN_SERVER_URL_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".token.server.url", CredentialOptions.TOKEN_SERVER_URL_DEFAULT)
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> TOKEN_SERVER_URL_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".token.server.url", CredentialOptions.TOKEN_SERVER_URL_DEFAULT);
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: TOKEN_SERVER_URL_SUFFIX
focal_class.declarator: PROXY_ADDRESS_SUFFIX =
        new HadoopConfigurationProperty<>(".proxy.address")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> PROXY_ADDRESS_SUFFIX =
        new HadoopConfigurationProperty<>(".proxy.address");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: PROXY_ADDRESS_SUFFIX
focal_class.declarator: PROXY_USERNAME_SUFFIX =
        new HadoopConfigurationProperty<>(".proxy.username")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> PROXY_USERNAME_SUFFIX =
        new HadoopConfigurationProperty<>(".proxy.username");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: PROXY_USERNAME_SUFFIX
focal_class.declarator: PROXY_PASSWORD_SUFFIX =
        new HadoopConfigurationProperty<>(".proxy.password")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> PROXY_PASSWORD_SUFFIX =
        new HadoopConfigurationProperty<>(".proxy.password");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: PROXY_PASSWORD_SUFFIX
focal_class.declarator: HTTP_TRANSPORT_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".http.transport.type", CredentialOptions.HTTP_TRANSPORT_TYPE_DEFAULT)
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<HttpTransportType> HTTP_TRANSPORT_SUFFIX =
        new HadoopConfigurationProperty<>(
            ".http.transport.type", CredentialOptions.HTTP_TRANSPORT_TYPE_DEFAULT);
focal_class.type: HadoopConfigurationProperty<HttpTransportType>
focal_class.var_name: HTTP_TRANSPORT_SUFFIX
focal_class.declarator: ACCESS_TOKEN_PROVIDER_IMPL_SUFFIX =
            new HadoopConfigurationProperty<>(".auth.access.token.provider.impl")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<Class<? extends AccessTokenProvider>>
        ACCESS_TOKEN_PROVIDER_IMPL_SUFFIX =
            new HadoopConfigurationProperty<>(".auth.access.token.provider.impl");
focal_class.type: HadoopConfigurationProperty<Class<? extends AccessTokenProvider>>
focal_class.var_name: ACCESS_TOKEN_PROVIDER_IMPL_SUFFIX
focal_class.declarator: IMPERSONATION_SERVICE_ACCOUNT_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.impersonation.service.account")
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<String> IMPERSONATION_SERVICE_ACCOUNT_SUFFIX =
        new HadoopConfigurationProperty<>(".auth.impersonation.service.account");
focal_class.type: HadoopConfigurationProperty<String>
focal_class.var_name: IMPERSONATION_SERVICE_ACCOUNT_SUFFIX
focal_class.declarator: USER_IMPERSONATION_SERVICE_ACCOUNT_SUFFIX =
            new HadoopConfigurationProperty<>(
                ".auth.impersonation.service.account.for.user.", ImmutableMap.of())
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<Map<String, String>>
        USER_IMPERSONATION_SERVICE_ACCOUNT_SUFFIX =
            new HadoopConfigurationProperty<>(
                ".auth.impersonation.service.account.for.user.", ImmutableMap.of());
focal_class.type: HadoopConfigurationProperty<Map<String, String>>
focal_class.var_name: USER_IMPERSONATION_SERVICE_ACCOUNT_SUFFIX
focal_class.declarator: GROUP_IMPERSONATION_SERVICE_ACCOUNT_SUFFIX =
            new HadoopConfigurationProperty<>(
                ".auth.impersonation.service.account.for.group.", ImmutableMap.of())
focal_class.modifier: public static final
focal_class.original_string: public static final HadoopConfigurationProperty<Map<String, String>>
        GROUP_IMPERSONATION_SERVICE_ACCOUNT_SUFFIX =
            new HadoopConfigurationProperty<>(
                ".auth.impersonation.service.account.for.group.", ImmutableMap.of());
focal_class.type: HadoopConfigurationProperty<Map<String, String>>
focal_class.var_name: GROUP_IMPERSONATION_SERVICE_ACCOUNT_SUFFIX
focal_class.file: util-hadoop/src/main/java/com/google/cloud/hadoop/util/HadoopCredentialConfiguration.java
focal_class.identifier: HadoopCredentialConfiguration
focal_class.class_method_signature: HadoopCredentialConfiguration.getCredentialFactory(
        Configuration config, String... keyPrefixesVararg)
focal_class.full_signature: public static CredentialFactory getCredentialFactory(
        Configuration config, String... keyPrefixesVararg)
focal_class.identifier: getCredentialFactory
focal_class.modifiers: public static
focal_class.parameters: (
        Configuration config, String... keyPrefixesVararg)
focal_class.return: CredentialFactory
focal_class.signature: CredentialFactory getCredentialFactory(
        Configuration config, String... keyPrefixesVararg)
focal_class.class_method_signature: HadoopCredentialConfiguration.getAccessTokenProviderImplClass(
        Configuration config, String... keyPrefixes)
focal_class.full_signature: public static Class<? extends AccessTokenProvider> getAccessTokenProviderImplClass(
        Configuration config, String... keyPrefixes)
focal_class.identifier: getAccessTokenProviderImplClass
focal_class.modifiers: public static
focal_class.parameters: (
        Configuration config, String... keyPrefixes)
focal_class.return: Class<? extends AccessTokenProvider>
focal_class.signature: Class<? extends AccessTokenProvider> getAccessTokenProviderImplClass(
        Configuration config, String... keyPrefixes)
focal_class.class_method_signature: HadoopCredentialConfiguration.getConfigKeyPrefixes(String... keyPrefixes)
focal_class.full_signature: public static ImmutableList<String> getConfigKeyPrefixes(String... keyPrefixes)
focal_class.identifier: getConfigKeyPrefixes
focal_class.modifiers: public static
focal_class.parameters: (String... keyPrefixes)
focal_class.return: ImmutableList<String>
focal_class.signature: ImmutableList<String> getConfigKeyPrefixes(String... keyPrefixes)
focal_class.class_method_signature: HadoopCredentialConfiguration.HadoopCredentialConfiguration()
focal_class.full_signature: protected  HadoopCredentialConfiguration()
focal_class.identifier: HadoopCredentialConfiguration
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.signature:  HadoopCredentialConfiguration()
focal_method.body: public static CredentialFactory getCredentialFactory(
        Configuration config, String... keyPrefixesVararg) {
      List<String> keyPrefixes = getConfigKeyPrefixes(keyPrefixesVararg);
      CredentialOptions credentialOptions =
          CredentialOptions.builder()
              .setServiceAccountEnabled(
                  ENABLE_SERVICE_ACCOUNTS_SUFFIX
                      .withPrefixes(keyPrefixes)
                      .get(config, config::getBoolean))
              .setServiceAccountPrivateKeyId(
                  RedactedString.create(
                      SERVICE_ACCOUNT_PRIVATE_KEY_ID_SUFFIX
                          .withPrefixes(keyPrefixes)
                          .getPassword(config)))
              .setServiceAccountPrivateKey(
                  RedactedString.create(
                      SERVICE_ACCOUNT_PRIVATE_KEY_SUFFIX
                          .withPrefixes(keyPrefixes)
                          .getPassword(config)))
              .setServiceAccountEmail(
                  SERVICE_ACCOUNT_EMAIL_SUFFIX.withPrefixes(keyPrefixes).getPassword(config))
              .setServiceAccountKeyFile(
                  SERVICE_ACCOUNT_KEYFILE_SUFFIX.withPrefixes(keyPrefixes).get(config, config::get))
              .setServiceAccountJsonKeyFile(
                  SERVICE_ACCOUNT_JSON_KEYFILE_SUFFIX
                      .withPrefixes(keyPrefixes)
                      .get(config, config::get))
              .setClientId(
                  RedactedString.create(
                      CLIENT_ID_SUFFIX.withPrefixes(keyPrefixes).get(config, config::get)))
              .setClientSecret(
                  RedactedString.create(
                      CLIENT_SECRET_SUFFIX.withPrefixes(keyPrefixes).get(config, config::get)))
              .setOAuthCredentialFile(
                  OAUTH_CLIENT_FILE_SUFFIX.withPrefixes(keyPrefixes).get(config, config::get))
              .setNullCredentialEnabled(
                  ENABLE_NULL_CREDENTIAL_SUFFIX
                      .withPrefixes(keyPrefixes)
                      .get(config, config::getBoolean))
              .setTransportType(
                  HTTP_TRANSPORT_SUFFIX.withPrefixes(keyPrefixes).get(config, config::getEnum))
              .setTokenServerUrl(
                  TOKEN_SERVER_URL_SUFFIX.withPrefixes(keyPrefixes).get(config, config::get))
              .setProxyAddress(
                  PROXY_ADDRESS_SUFFIX.withPrefixes(keyPrefixes).get(config, config::get))
              .setProxyUsername(
                  RedactedString.create(
                      PROXY_USERNAME_SUFFIX.withPrefixes(keyPrefixes).getPassword(config)))
              .setProxyPassword(
                  RedactedString.create(
                      PROXY_PASSWORD_SUFFIX.withPrefixes(keyPrefixes).getPassword(config)))
              .build();
      return new CredentialFactory(credentialOptions);
    }
focal_method.class_method_signature: HadoopCredentialConfiguration.getCredentialFactory(
        Configuration config, String... keyPrefixesVararg)
focal_method.full_signature: public static CredentialFactory getCredentialFactory(
        Configuration config, String... keyPrefixesVararg)
focal_method.identifier: getCredentialFactory
focal_method.invocations: getConfigKeyPrefixes build setProxyPassword setProxyUsername setProxyAddress setTokenServerUrl setTransportType setNullCredentialEnabled setOAuthCredentialFile setClientSecret setClientId setServiceAccountJsonKeyFile setServiceAccountKeyFile setServiceAccountEmail setServiceAccountPrivateKey setServiceAccountPrivateKeyId setServiceAccountEnabled builder get withPrefixes create getPassword withPrefixes create getPassword withPrefixes getPassword withPrefixes get withPrefixes get withPrefixes create get withPrefixes create get withPrefixes get withPrefixes get withPrefixes get withPrefixes get withPrefixes get withPrefixes create getPassword withPrefixes create getPassword withPrefixes
focal_method.modifiers: public static
focal_method.parameters: (
        Configuration config, String... keyPrefixesVararg)
focal_method.return: CredentialFactory
focal_method.signature: CredentialFactory getCredentialFactory(
        Configuration config, String... keyPrefixesVararg)