private Option loadProperties()

in src/main/java/com/awslabs/resultsiterator/implementations/BouncyCastleCertificateCredentialsProvider.java [85:122]


    private Option<Properties> loadProperties(File credentialProviderPropertiesFile, Properties properties) throws IOException {
        FileInputStream fileInputStream = new FileInputStream(credentialProviderPropertiesFile);
        properties.load(fileInputStream);

        String caCertFilenameString = properties.getProperty(AWS_CA_CERT_FILENAME);

        if (caCertFilenameString == null) {
            // Missing file, give up
            return Option.none();
        }

        String clientCertFilenameString = properties.getProperty(AWS_CLIENT_CERT_FILENAME);

        if (clientCertFilenameString == null) {
            // Missing file, give up
            return Option.none();
        }

        String clientPrivateKeyFilenameString = properties.getProperty(AWS_CLIENT_PRIVATE_KEY_FILENAME);

        if (clientPrivateKeyFilenameString == null) {
            // Missing file, give up
            return Option.none();
        }

        // All file names are present, make them relative to the properties file
        Path credentialProviderPropertiesPath = credentialProviderPropertiesFile.toPath().getParent();
        caCertFilenameString = credentialProviderPropertiesPath.resolve(caCertFilenameString).toAbsolutePath().toString();
        clientCertFilenameString = credentialProviderPropertiesPath.resolve(clientCertFilenameString).toAbsolutePath().toString();
        clientPrivateKeyFilenameString = credentialProviderPropertiesPath.resolve(clientPrivateKeyFilenameString).toAbsolutePath().toString();

        // Put them back into the properties object with their absolute paths
        properties.setProperty(AWS_CA_CERT_FILENAME, caCertFilenameString);
        properties.setProperty(AWS_CLIENT_CERT_FILENAME, clientCertFilenameString);
        properties.setProperty(AWS_CLIENT_PRIVATE_KEY_FILENAME, clientPrivateKeyFilenameString);

        return Option.of(properties);
    }