responseFuture =
client.put(
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditClient.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditClient.java
index c4c13a17903..1d9ec18e83b 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditClient.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditPaginators.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditPaginators.java
index 4ff2a5183bd..997dbdb6774 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditPaginators.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/AuditPaginators.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/GetConfigurationConverter.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/GetConfigurationConverter.java
index 44d8217039b..5f4e6d9b342 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/GetConfigurationConverter.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/GetConfigurationConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.internal.http;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/ListEventsConverter.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/ListEventsConverter.java
index eb555214b5e..9e735501dd7 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/ListEventsConverter.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/ListEventsConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.internal.http;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/UpdateConfigurationConverter.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/UpdateConfigurationConverter.java
index 966f5c69b62..57c53262a11 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/UpdateConfigurationConverter.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/internal/http/UpdateConfigurationConverter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.internal.http;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/model/AuditEvent.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/model/AuditEvent.java
index ea0970eba96..8dbc12f8b85 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/model/AuditEvent.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/model/AuditEvent.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.model;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/model/Configuration.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/model/Configuration.java
index fec9734655b..c6e4c4ce179 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/model/Configuration.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/model/Configuration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.model;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/model/UpdateConfigurationDetails.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/model/UpdateConfigurationDetails.java
index ef43765dccc..f04057dfc39 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/model/UpdateConfigurationDetails.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/model/UpdateConfigurationDetails.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.model;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/GetConfigurationRequest.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/GetConfigurationRequest.java
index 6d8ac1bc5ed..77d0140f1b1 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/GetConfigurationRequest.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/GetConfigurationRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.requests;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/ListEventsRequest.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/ListEventsRequest.java
index 0edc9a85637..701965529b8 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/ListEventsRequest.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/ListEventsRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.requests;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/UpdateConfigurationRequest.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/UpdateConfigurationRequest.java
index 3836314e2ca..77c8dc81d62 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/UpdateConfigurationRequest.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/requests/UpdateConfigurationRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.requests;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/GetConfigurationResponse.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/GetConfigurationResponse.java
index 70b4fefb93b..b294f8be2ba 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/GetConfigurationResponse.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/GetConfigurationResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.responses;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/ListEventsResponse.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/ListEventsResponse.java
index d25a12ad045..14fa613c11e 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/ListEventsResponse.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/ListEventsResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.responses;
diff --git a/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/UpdateConfigurationResponse.java b/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/UpdateConfigurationResponse.java
index 5cec5183ac3..7b7c6c5e72f 100644
--- a/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/UpdateConfigurationResponse.java
+++ b/bmc-audit/src/main/java/com/oracle/bmc/audit/responses/UpdateConfigurationResponse.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.audit.responses;
diff --git a/bmc-bom/pom.xml b/bmc-bom/pom.xml
index 1aa45de2c4f..edae04ddcc3 100644
--- a/bmc-bom/pom.xml
+++ b/bmc-bom/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 1.3.3
+ 1.3.4
../pom.xml
oci-java-sdk-bom
@@ -19,86 +19,91 @@
com.oracle.oci.sdk
oci-java-sdk-common
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-audit
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-containerengine
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-core
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-database
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-dns
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-email
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-filestorage
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-identity
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-loadbalancer
- 1.3.3
+ 1.3.4
false
com.oracle.oci.sdk
oci-java-sdk-objectstorage
- 1.3.3
+ 1.3.4
false
+
+ com.oracle.oci.sdk
+ oci-java-sdk-addons-resteasy-client-configurator
+ 1.3.4
+
com.oracle.oci.sdk
oci-java-sdk-resourcesearch
false
- 1.3.3
+ 1.3.4
com.oracle.oci.sdk
false
oci-java-sdk-addons-apache
- 1.3.3
+ 1.3.4
com.oracle.oci.sdk
oci-java-sdk-keymanagement
- 1.3.3
+ 1.3.4
false
diff --git a/bmc-common/pom.xml b/bmc-common/pom.xml
index 54bb899c346..69c6f8d137d 100644
--- a/bmc-common/pom.xml
+++ b/bmc-common/pom.xml
@@ -5,7 +5,7 @@
com.oracle.oci.sdk
oci-java-sdk
- 1.3.3
+ 1.3.4
../pom.xml
diff --git a/bmc-common/src/main/java/com/oracle/bmc/ClientConfiguration.java b/bmc-common/src/main/java/com/oracle/bmc/ClientConfiguration.java
index f69cba9922f..c4fc0863c13 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/ClientConfiguration.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/ClientConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/ClientRuntime.java b/bmc-common/src/main/java/com/oracle/bmc/ClientRuntime.java
index 67d900d01b6..fa3f3e0ca39 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/ClientRuntime.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/ClientRuntime.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/ConfigFileReader.java b/bmc-common/src/main/java/com/oracle/bmc/ConfigFileReader.java
index 48fde03a505..cb487f1be25 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/ConfigFileReader.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/ConfigFileReader.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/InternalSdk.java b/bmc-common/src/main/java/com/oracle/bmc/InternalSdk.java
index 55af64d3548..deeda1e38eb 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/InternalSdk.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/InternalSdk.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/OCID.java b/bmc-common/src/main/java/com/oracle/bmc/OCID.java
index e5816b48fb1..86c9d0499bd 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/OCID.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/OCID.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/Realm.java b/bmc-common/src/main/java/com/oracle/bmc/Realm.java
index d0e2cf8380f..6a3f7c38225 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/Realm.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/Realm.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/Region.java b/bmc-common/src/main/java/com/oracle/bmc/Region.java
index a032b907895..2f37e4a42e7 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/Region.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/Region.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/Service.java b/bmc-common/src/main/java/com/oracle/bmc/Service.java
index 849b8183dbc..5fb573dad75 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/Service.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/Service.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/Services.java b/bmc-common/src/main/java/com/oracle/bmc/Services.java
index 16c6ad81bcd..d8b80c49221 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/Services.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/Services.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractAuthenticationDetailsProvider.java
index db6783e1f6f..86930b2e518 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractFederationClientAuthenticationDetailsProviderBuilder.java b/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractFederationClientAuthenticationDetailsProviderBuilder.java
new file mode 100644
index 00000000000..2368212961a
--- /dev/null
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractFederationClientAuthenticationDetailsProviderBuilder.java
@@ -0,0 +1,168 @@
+/**
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.auth;
+
+import com.google.common.base.Optional;
+import com.oracle.bmc.Region;
+import com.oracle.bmc.auth.internal.AuthUtils;
+import com.oracle.bmc.auth.internal.X509FederationClient;
+import lombok.Getter;
+
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashSet;
+
+/**
+ * Abstract builder base class for authentication details provider extending
+ * {@link AbstractRequestingAuthenticationDetailsProvider}
+ * @param builder class
+ * @param provider class
+ */
+public abstract class AbstractFederationClientAuthenticationDetailsProviderBuilder<
+ B extends AbstractFederationClientAuthenticationDetailsProviderBuilder,
+ P extends AbstractAuthenticationDetailsProvider>
+ extends AbstractRequestingAuthenticationDetailsProvider.Builder {
+
+ /**
+ * Service instance for auth.
+ */
+ protected static final com.oracle.bmc.Service SERVICE =
+ com.oracle.bmc.Services.serviceBuilder()
+ .serviceName("AUTH")
+ .serviceEndpointPrefix("auth")
+ .build();
+
+ /**
+ * Base url of metadata service.
+ */
+ protected static final String METADATA_SERVICE_BASE_URL = "http://169.254.169.254/opc/v1/";
+
+ /**
+ * The federation endpoint url.
+ */
+ @Getter protected String federationEndpoint;
+
+ /**
+ * The leaf certificate.
+ */
+ @Getter protected X509CertificateSupplier leafCertificateSupplier;
+
+ /**
+ * Tenancy OCI, or null to detect from
+ */
+ @Getter protected String tenancyId;
+
+ /**
+ * Detected region.
+ */
+ protected Region region = null;
+
+ /**
+ * Configures the custom federationEndpoint to use.
+ */
+ public B federationEndpoint(String federationEndpoint) {
+ this.federationEndpoint = federationEndpoint;
+ return (B) this;
+ }
+
+ /**
+ * Configures the custom leafCertificateSupplier to use.
+ */
+ public B leafCertificateSupplier(X509CertificateSupplier leafCertificateSupplier) {
+ this.leafCertificateSupplier = leafCertificateSupplier;
+ return (B) this;
+ }
+
+ public B tenancyId(String tenancyId) {
+ this.tenancyId = tenancyId;
+ return (B) this;
+ }
+
+ /**
+ * Build a new AuthenticationDetailsProvider that uses the FederationCLient.
+ *
+ * @return A new provider instance.
+ */
+ public P build() {
+ SessionKeySupplier sessionKeySupplierToUse =
+ sessionKeySupplier != null
+ ? sessionKeySupplier
+ : new AbstractRequestingAuthenticationDetailsProvider
+ .SessionKeySupplierImpl();
+
+ this.federationClient =
+ new X509FederationClient(
+ federationEndpoint,
+ tenancyId,
+ leafCertificateSupplier,
+ sessionKeySupplierToUse,
+ intermediateCertificateSuppliers,
+ federationClientConfigurator,
+ additionalFederationClientConfigurators);
+
+ return buildProvider(sessionKeySupplierToUse);
+ }
+
+ protected void autoDetectUsingMetadataUrl() {
+ if (federationEndpoint == null) {
+ Client client = ClientBuilder.newClient();
+ WebTarget base = client.target(METADATA_SERVICE_BASE_URL + "instance/");
+ String regionStr = base.path("region").request(MediaType.TEXT_PLAIN).get(String.class);
+
+ // TODO: we should start using 'canonicalRegionName' instead of 'region' and call
+ // Region.fromRegionId, and fall back to 'region' only for backwards compat.
+ region = Region.fromRegionCodeOrId(regionStr);
+
+ Optional endpoint = region.getEndpoint(SERVICE);
+
+ if (!endpoint.isPresent()) {
+ throw new IllegalArgumentException(
+ "Endpoint for " + SERVICE + " is not known in region " + region);
+ } else {
+ federationEndpoint = endpoint.get();
+ }
+ }
+
+ try {
+ if (leafCertificateSupplier == null) {
+ leafCertificateSupplier =
+ new URLBasedX509CertificateSupplier(
+ new URL(METADATA_SERVICE_BASE_URL + "identity/cert.pem"),
+ new URL(METADATA_SERVICE_BASE_URL + "identity/key.pem"),
+ (char[]) null);
+ }
+
+ if (tenancyId == null) {
+ tenancyId =
+ AuthUtils.getTenantIdFromCertificate(
+ leafCertificateSupplier
+ .getCertificateAndKeyPair()
+ .getCertificate());
+ }
+
+ if (intermediateCertificateSuppliers == null) {
+ intermediateCertificateSuppliers = new HashSet<>();
+
+ intermediateCertificateSuppliers.add(
+ new URLBasedX509CertificateSupplier(
+ new URL(METADATA_SERVICE_BASE_URL + "identity/intermediate.pem"),
+ null,
+ (char[]) null));
+ }
+ } catch (MalformedURLException ex) {
+ throw new IllegalArgumentException("The metadata service url is invalid.", ex);
+ }
+ }
+
+ /**
+ * Build the actual provider.
+ * @param sessionKeySupplierToUse
+ * @return authentication details provider
+ */
+ protected abstract P buildProvider(SessionKeySupplier sessionKeySupplierToUse);
+}
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractRequestingAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractRequestingAuthenticationDetailsProvider.java
index be91f486b91..073969c7a0c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractRequestingAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/AbstractRequestingAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
@@ -15,6 +15,8 @@
import java.security.NoSuchAlgorithmException;
import java.security.interfaces.RSAPrivateKey;
import java.security.interfaces.RSAPublicKey;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
/**
@@ -40,6 +42,8 @@ protected abstract static class Builder> {
protected SessionKeySupplier sessionKeySupplier;
protected ClientConfigurator federationClientConfigurator;
protected FederationClient federationClient;
+ protected List additionalFederationClientConfigurators =
+ new ArrayList<>();
/**
* Configures the custom SessionKeySupplier to use.
@@ -67,6 +71,17 @@ public B federationClientConfigurator(ClientConfigurator clientConfigurator) {
return (B) this;
}
+ /**
+ * Add an additional client configurator to be run after the primary configurator.
+ * @param additionalClientConfigurator the additional client configurator
+ * @return this builder
+ */
+ public B additionalFederationClientConfigurator(
+ @lombok.NonNull ClientConfigurator additionalClientConfigurator) {
+ this.additionalFederationClientConfigurators.add(additionalClientConfigurator);
+ return (B) this;
+ }
+
protected SessionKeySupplier getSessionKeySupplier() {
return sessionKeySupplier != null ? sessionKeySupplier : new SessionKeySupplierImpl();
}
@@ -82,7 +97,8 @@ protected void buildFederationClient(
leafCertificateSupplier,
getSessionKeySupplier(),
intermediateCertificateSuppliers,
- federationClientConfigurator);
+ federationClientConfigurator,
+ additionalFederationClientConfigurators);
}
}
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/AuthCachingPolicy.java b/bmc-common/src/main/java/com/oracle/bmc/auth/AuthCachingPolicy.java
index f8361364ac5..99d0120b866 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/AuthCachingPolicy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/AuthCachingPolicy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/AuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/AuthenticationDetailsProvider.java
index 092f76947d2..96d831c6d90 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/AuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/AuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/BasicAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/BasicAuthenticationDetailsProvider.java
index d6e9dc3c9ee..46360813c72 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/BasicAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/BasicAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/ConfigFileAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/ConfigFileAuthenticationDetailsProvider.java
index 9c526fbfe3a..72818d6a0b0 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/ConfigFileAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/ConfigFileAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerAuthenticationDetailsProvider.java
index cfceda06bda..ee28f8b9e86 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerKeyIdFormatter.java b/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerKeyIdFormatter.java
index 9ad284d36e5..e778298fa99 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerKeyIdFormatter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/CustomerKeyIdFormatter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/InstancePrincipalsAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/InstancePrincipalsAuthenticationDetailsProvider.java
index bb9ba39dd5d..9186bca231b 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/InstancePrincipalsAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/InstancePrincipalsAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
@@ -30,7 +30,8 @@ public class InstancePrincipalsAuthenticationDetailsProvider
extends AbstractRequestingAuthenticationDetailsProvider
implements RegionProvider, RefreshableOnNotAuthenticatedProvider {
- @Getter private final Region region;
+ @Getter(onMethod = @__({@Override}))
+ private final Region region;
private InstancePrincipalsAuthenticationDetailsProvider(
FederationClient federationClient,
@@ -69,118 +70,34 @@ public String refresh() {
* Builder for InstancePrincipalsAuthenticationDetailsProviderBuilder.
*/
public static class InstancePrincipalsAuthenticationDetailsProviderBuilder
- extends Builder {
- /**
- * Service instance for auth.
- */
- private static final com.oracle.bmc.Service SERVICE =
- com.oracle.bmc.Services.serviceBuilder()
- .serviceName("AUTH")
- .serviceEndpointPrefix("auth")
- .build();
-
- /**
- * Base url of metadata service.
- */
- private static final String METADATA_SERVICE_BASE_URL = "http://169.254.169.254/opc/v1/";
+ extends AbstractFederationClientAuthenticationDetailsProviderBuilder<
+ InstancePrincipalsAuthenticationDetailsProviderBuilder,
+ InstancePrincipalsAuthenticationDetailsProvider> {
+
+ @Override
+ protected InstancePrincipalsAuthenticationDetailsProvider buildProvider(
+ SessionKeySupplier sessionKeySupplierToUse) {
+ return new InstancePrincipalsAuthenticationDetailsProvider(
+ federationClient, sessionKeySupplierToUse, region);
+ }
- /**
- * The federation endpoint url.
- */
- private String federationEndpoint;
+ @Override
+ public InstancePrincipalsAuthenticationDetailsProvider build() {
+ autoDetectUsingMetadataUrl();
- /**
- * The leaf certificate.
- */
- private X509CertificateSupplier leafCertificateSupplier;
+ return super.build();
+ }
- /**
- * Configures the custom federationEndpoint to use.
- */
+ @Override
public InstancePrincipalsAuthenticationDetailsProviderBuilder federationEndpoint(
String federationEndpoint) {
- this.federationEndpoint = federationEndpoint;
- return this;
+ return super.federationEndpoint(federationEndpoint);
}
- /**
- * Configures the custom leafCertificateSupplier to use.
- */
+ @Override
public InstancePrincipalsAuthenticationDetailsProviderBuilder leafCertificateSupplier(
X509CertificateSupplier leafCertificateSupplier) {
- this.leafCertificateSupplier = leafCertificateSupplier;
- return this;
- }
-
- /**
- * Build a new InstancePrincipalsAuthenticationDetailsProvider.
- *
- * @return A new provider instance.
- */
- public InstancePrincipalsAuthenticationDetailsProvider build() {
-
- Region region = null;
-
- if (federationEndpoint == null) {
- Client client = ClientBuilder.newClient();
- WebTarget base = client.target(METADATA_SERVICE_BASE_URL + "instance/");
- String regionStr =
- base.path("region").request(MediaType.TEXT_PLAIN).get(String.class);
-
- // TODO: we should start using 'canonicalRegionName' instead of 'region' and call
- // Region.fromRegionId, and fall back to 'region' only for backwards compat.
- region = Region.fromRegionCodeOrId(regionStr);
-
- Optional endpoint = region.getEndpoint(SERVICE);
-
- if (!endpoint.isPresent()) {
- throw new IllegalArgumentException(
- "Endpoint for " + SERVICE + " is not known in region " + region);
- } else {
- federationEndpoint = endpoint.get();
- }
- }
-
- try {
- if (leafCertificateSupplier == null) {
- leafCertificateSupplier =
- new URLBasedX509CertificateSupplier(
- new URL(METADATA_SERVICE_BASE_URL + "identity/cert.pem"),
- new URL(METADATA_SERVICE_BASE_URL + "identity/key.pem"),
- (char[]) null);
- }
-
- if (intermediateCertificateSuppliers == null) {
- intermediateCertificateSuppliers = new HashSet<>();
-
- intermediateCertificateSuppliers.add(
- new URLBasedX509CertificateSupplier(
- new URL(
- METADATA_SERVICE_BASE_URL
- + "identity/intermediate.pem"),
- null,
- (char[]) null));
- }
-
- SessionKeySupplier sessionKeySupplierToUse =
- sessionKeySupplier != null
- ? sessionKeySupplier
- : new SessionKeySupplierImpl();
-
- this.federationClient =
- new X509FederationClient(
- federationEndpoint,
- leafCertificateSupplier,
- sessionKeySupplierToUse,
- intermediateCertificateSuppliers,
- federationClientConfigurator);
-
- return new InstancePrincipalsAuthenticationDetailsProvider(
- federationClient, sessionKeySupplierToUse, region);
-
- } catch (MalformedURLException ex) {
- throw new IllegalArgumentException("The metadata service url is invalid.", ex);
- }
+ return super.leafCertificateSupplier(leafCertificateSupplier);
}
}
}
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/RefreshableOnNotAuthenticatedProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/RefreshableOnNotAuthenticatedProvider.java
index a606f59e46f..44a6a9aa3be 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/RefreshableOnNotAuthenticatedProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/RefreshableOnNotAuthenticatedProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/RegionProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/RegionProvider.java
index 726484bc102..a64d2ac0274 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/RegionProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/RegionProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/SessionKeySupplier.java b/bmc-common/src/main/java/com/oracle/bmc/auth/SessionKeySupplier.java
index 5d259992eb1..378cbc02c4d 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/SessionKeySupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/SessionKeySupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/SimpleAuthenticationDetailsProvider.java b/bmc-common/src/main/java/com/oracle/bmc/auth/SimpleAuthenticationDetailsProvider.java
index 3aea7e833d2..d5a39d488fa 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/SimpleAuthenticationDetailsProvider.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/SimpleAuthenticationDetailsProvider.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/SimplePrivateKeySupplier.java b/bmc-common/src/main/java/com/oracle/bmc/auth/SimplePrivateKeySupplier.java
index 1fc6e64d0fb..bda45a99e6c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/SimplePrivateKeySupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/SimplePrivateKeySupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/StringPrivateKeySupplier.java b/bmc-common/src/main/java/com/oracle/bmc/auth/StringPrivateKeySupplier.java
index 0d3e8d7867f..35feb8cdab1 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/StringPrivateKeySupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/StringPrivateKeySupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/URLBasedX509CertificateSupplier.java b/bmc-common/src/main/java/com/oracle/bmc/auth/URLBasedX509CertificateSupplier.java
index 493bdb3b56b..ff2ea2f6faa 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/URLBasedX509CertificateSupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/URLBasedX509CertificateSupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
@@ -137,8 +137,8 @@ public boolean isCurrent() {
}
/**
- * Read the certificate from url.
- * @param certificateUrl the certificate url
+ * Read the certificate from a raw string.
+ * @param certificate the certificate
* @return the certificate
*/
private static X509Certificate readCertificate(String certificate) {
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/X509CertificateSupplier.java b/bmc-common/src/main/java/com/oracle/bmc/auth/X509CertificateSupplier.java
index eb80c982d3e..df0656d71f9 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/X509CertificateSupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/X509CertificateSupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientException.java b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientException.java
index 2e80d6842df..75a0f74ea2c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.exception;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientForbiddenException.java b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientForbiddenException.java
index 59362a3184c..9a30c8fb1c5 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientForbiddenException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientForbiddenException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.exception;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientNotAuthorizedException.java b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientNotAuthorizedException.java
index ab87d781fd7..db9ed65d9a3 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientNotAuthorizedException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthClientNotAuthorizedException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.exception;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerException.java b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerException.java
index 9a80b39304f..9ad0185f008 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.exception;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerUnavailableException.java b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerUnavailableException.java
index c574e169814..51068727494 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerUnavailableException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/AuthServerUnavailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.exception;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/InstancePrincipalUnavailableException.java b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/InstancePrincipalUnavailableException.java
index 3ca36b50698..81bd623674b 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/exception/InstancePrincipalUnavailableException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/exception/InstancePrincipalUnavailableException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.exception;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/AuthUtils.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/AuthUtils.java
index da2354d5ea2..3e01cc5b371 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/AuthUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/AuthUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/FederationClient.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/FederationClient.java
index f08ec26c920..23cf43944d7 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/FederationClient.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/FederationClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/ForwardingX509Certificate.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/ForwardingX509Certificate.java
index 19f3616879f..4bbc56e234c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/ForwardingX509Certificate.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/ForwardingX509Certificate.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/JWK.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/JWK.java
index 57ca8e01a53..a8534c46f5c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/JWK.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/JWK.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/RestClientUtils.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/RestClientUtils.java
index 844bc7a4de6..9d04fd0c0f0 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/RestClientUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/RestClientUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
@@ -30,6 +30,7 @@ public class RestClientUtils {
static RestClient createRestClient(
String endpoint,
ClientConfigurator clientConfigurator,
+ List additionalClientConfigurators,
final String tenancyId,
final X509CertificateSupplier leafCertificateSupplier) {
// load the leaf certificate details dynamically on each invocation in case it has changed, ex, rotated.
@@ -56,12 +57,18 @@ public String get() {
}
};
- return createRestClient(endpoint, clientConfigurator, keySupplier, keyIdSupplier);
+ return createRestClient(
+ endpoint,
+ clientConfigurator,
+ additionalClientConfigurators,
+ keySupplier,
+ keyIdSupplier);
}
static RestClient createRestClient(
String endpoint,
ClientConfigurator clientConfigurator,
+ List additionalClientConfigurators,
final X509FederationClient federationClient) {
// load the leaf certificate details dynamically on each invocation in case it has changed, ex, rotated.
// NOTE: because the signer calls both of these independently, there is an edge case where the certificate
@@ -91,12 +98,18 @@ public String get() {
}
};
- return createRestClient(endpoint, clientConfigurator, keySupplier, keyIdSupplier);
+ return createRestClient(
+ endpoint,
+ clientConfigurator,
+ additionalClientConfigurators,
+ keySupplier,
+ keyIdSupplier);
}
private static RestClient createRestClient(
String endpoint,
ClientConfigurator clientConfigurator,
+ List additionalClientConfigurators,
KeySupplier keySupplier,
Supplier keyIdSupplier) {
@@ -120,7 +133,10 @@ private static RestClient createRestClient(
new RequestSignerImpl(keySupplier, signingConfiguration, keyIdSupplier);
RestClientFactory restClientFactory =
- RestClientFactoryBuilder.builder().clientConfigurator(clientConfigurator).build();
+ RestClientFactoryBuilder.builder()
+ .clientConfigurator(clientConfigurator)
+ .additionalClientConfigurators(additionalClientConfigurators)
+ .build();
RestClient restClient =
restClientFactory.create(
requestSigner, Collections.emptyMap());
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/SecurityTokenAdapter.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/SecurityTokenAdapter.java
index 86ab61f741a..48351cff86e 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/SecurityTokenAdapter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/SecurityTokenAdapter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509CertificateWithOriginalPem.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509CertificateWithOriginalPem.java
index 7d721012e6c..cb80d760578 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509CertificateWithOriginalPem.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509CertificateWithOriginalPem.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509FederationClient.java b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509FederationClient.java
index dc13016a80f..ef37f8ba8d2 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509FederationClient.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/auth/internal/X509FederationClient.java
@@ -1,8 +1,9 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
+import java.util.List;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.annotations.VisibleForTesting;
@@ -66,6 +67,7 @@ public class X509FederationClient implements FederationClient {
* @param sessionKeySupplier the temporary public key, whose corresponding private key will be used to sign actual API calls
* @param intermediateCertificateSuppliers intermediate certificates, if there is any
* @param clientConfigurator client configurator used to configure the federation rest client, if any (else null)
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
*/
public X509FederationClient(
String federationEndpoint,
@@ -73,14 +75,18 @@ public X509FederationClient(
X509CertificateSupplier leafCertificateSupplier,
SessionKeySupplier sessionKeySupplier,
Set intermediateCertificateSuppliers,
- ClientConfigurator clientConfigurator) {
-
+ ClientConfigurator clientConfigurator,
+ List additionalClientConfigurators) {
this.leafCertificateSupplier = Preconditions.checkNotNull(leafCertificateSupplier);
this.sessionKeySupplier = Preconditions.checkNotNull(sessionKeySupplier);
this.intermediateCertificateSuppliers = intermediateCertificateSuppliers;
this.tenancyId = Preconditions.checkNotNull(tenancyId);
this.federationHttpClient =
- RestClientUtils.createRestClient(federationEndpoint, clientConfigurator, this);
+ RestClientUtils.createRestClient(
+ federationEndpoint,
+ clientConfigurator,
+ additionalClientConfigurators,
+ this);
this.securityTokenAdapter = new SecurityTokenAdapter(null, sessionKeySupplier);
}
@@ -91,13 +97,15 @@ public X509FederationClient(
* @param sessionKeySupplier the temporary public key, whose corresponding private key will be used to sign actual API calls
* @param intermediateCertificateSuppliers intermediate certificates, if there are any (else null)
* @param clientConfigurator client configurator used to configure the federation rest client, if any (else null)
+ * @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
*/
public X509FederationClient(
String federationEndpoint,
X509CertificateSupplier leafCertificateSupplier,
SessionKeySupplier sessionKeySupplier,
Set intermediateCertificateSuppliers,
- ClientConfigurator clientConfigurator) {
+ ClientConfigurator clientConfigurator,
+ List additionalClientConfigurators) {
this(
federationEndpoint,
AuthUtils.getTenantIdFromCertificate(
@@ -105,7 +113,8 @@ public X509FederationClient(
leafCertificateSupplier,
sessionKeySupplier,
intermediateCertificateSuppliers,
- clientConfigurator);
+ clientConfigurator,
+ additionalClientConfigurators);
}
/**
diff --git a/bmc-common/src/main/java/com/oracle/bmc/common/ClientBuilderBase.java b/bmc-common/src/main/java/com/oracle/bmc/common/ClientBuilderBase.java
index 0f53fc1b359..43b0a87d00b 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/common/ClientBuilderBase.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/common/ClientBuilderBase.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.common;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/common/RegionalClientBuilder.java b/bmc-common/src/main/java/com/oracle/bmc/common/RegionalClientBuilder.java
index ccfce855ed0..6576a8b28ec 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/common/RegionalClientBuilder.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/common/RegionalClientBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.common;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigDecorator.java b/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigDecorator.java
index 6efcc3c7f10..7a10ab07c53 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigDecorator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigDecorator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigurator.java b/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigurator.java
index 66b8614945d..d860fcce89d 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigurator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/ClientConfigurator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/CompositeClientConfigurator.java b/bmc-common/src/main/java/com/oracle/bmc/http/CompositeClientConfigurator.java
index f579a32e280..96081939a83 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/CompositeClientConfigurator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/CompositeClientConfigurator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/DefaultConfigurator.java b/bmc-common/src/main/java/com/oracle/bmc/http/DefaultConfigurator.java
index dcee3bb8bca..3021f6a5ad7 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/DefaultConfigurator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/DefaultConfigurator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/AuthnClientFilter.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/AuthnClientFilter.java
index bdc3d29555e..b2284794a05 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/AuthnClientFilter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/AuthnClientFilter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
@@ -41,7 +41,7 @@ public void filter(@NonNull ClientRequestContext clientRequestContext) throws IO
&& requestSigners.containsKey(perOperationSigningStrategy)) {
chosenRequestSigner = requestSigners.get(perOperationSigningStrategy);
// removing this property from the context, now that we have processed it
- clientRequestContext.setProperty(SIGNING_STRATEGY_PROPERTY_NAME, null);
+ clientRequestContext.removeProperty(SIGNING_STRATEGY_PROPERTY_NAME);
}
MultivaluedMap stringHeaders = clientRequestContext.getStringHeaders();
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ClientIdFilter.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ClientIdFilter.java
index abede26bf14..d94ce28b618 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ClientIdFilter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ClientIdFilter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ContentLengthFilter.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ContentLengthFilter.java
new file mode 100644
index 00000000000..ee50478623e
--- /dev/null
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ContentLengthFilter.java
@@ -0,0 +1,41 @@
+/**
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
+ */
+package com.oracle.bmc.http.internal;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.client.ClientRequestFilter;
+
+/**
+ * A client request filter to remove content-length.
+ * It is required for calls to only allow Apache and Resteasy to set the content-length header.
+ */
+@Slf4j
+public class ContentLengthFilter implements ClientRequestFilter {
+ @Override
+ public void filter(ClientRequestContext requestContext) {
+ String contentLengthHeader = null;
+ for (String key : requestContext.getHeaders().keySet()) {
+ if (StringUtils.equalsIgnoreCase("content-length", key)) {
+ contentLengthHeader = key;
+ }
+ }
+
+ final String method = requestContext.getMethod();
+ final String uri = requestContext.getUri().toString();
+ final Object existingContentLengthValue =
+ requestContext.getHeaders().remove(contentLengthHeader);
+ if (existingContentLengthValue != null) {
+ LOG.debug(
+ "Removed existing content-length header for Method [{}], URI [{}], Existing Value [{}]",
+ method,
+ uri,
+ existingContentLengthValue);
+ } else {
+ LOG.debug("content-length not found for Method [{}], URI [{}]", method, uri);
+ }
+ }
+}
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/EntityFactory.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/EntityFactory.java
index 9b3750016fd..dbf85dffcb2 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/EntityFactory.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/EntityFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ErrorConsumer.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ErrorConsumer.java
index 630f2f198a4..55fd810cd93 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ErrorConsumer.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ErrorConsumer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ExplicitlySetFilter.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ExplicitlySetFilter.java
index e859cafa7e7..6bdb8cd9a9a 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ExplicitlySetFilter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ExplicitlySetFilter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ForwardingInvocationBuilder.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ForwardingInvocationBuilder.java
index 0c518af8aaf..b56589ed731 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ForwardingInvocationBuilder.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ForwardingInvocationBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/HeaderUtils.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/HeaderUtils.java
index 5765312e23e..766c259a9c3 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/HeaderUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/HeaderUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/HttpDateUtils.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/HttpDateUtils.java
index 81aa350aa5d..d40fa13bbe1 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/HttpDateUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/HttpDateUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/LogHeadersFilter.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/LogHeadersFilter.java
index e1b25ee248b..65262804879 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/LogHeadersFilter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/LogHeadersFilter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RFC3339DateFormat.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RFC3339DateFormat.java
index b4c3dd2c576..0b43d1f6d86 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RFC3339DateFormat.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RFC3339DateFormat.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseConversionFunctionFactory.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseConversionFunctionFactory.java
index 64f731b2a8b..073781a7355 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseConversionFunctionFactory.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseConversionFunctionFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseHelper.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseHelper.java
index fee25cf091a..45b90409866 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseHelper.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/ResponseHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
@@ -209,7 +209,9 @@ public static T readEntity(@NonNull final Response response, Class entity
}
return (T) inputStream;
} finally {
- response.getHeaders().addAll(HttpHeaders.CONTENT_TYPE, contentType);
+ if (contentType != null) {
+ response.getHeaders().addAll(HttpHeaders.CONTENT_TYPE, contentType);
+ }
}
}
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClient.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClient.java
index 5ea866a4169..d64a639fc61 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClient.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClient.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
@@ -31,7 +31,9 @@
import java.util.concurrent.Future;
/**
- * A REST client that can make synchronous and asynchronous calls.
+ * A REST client that can make synchronous and asynchronous calls.
+ * For asynchronous call, please refer to https://dennis-xlc.gitbooks.io/restful-java-with-jax-rs-2-0-2rd-edition/en/part1/chapter13/async_invoker_client_api.html
+ * to understand why we'd better not mix to using callback or Java Future.
*/
@Slf4j
public class RestClient implements AutoCloseable {
@@ -121,7 +123,12 @@ public Future get(
@Nullable Consumer onSuccess,
@Nullable Consumer onError) {
InvocationInformation info = preprocessRequest(ib, request);
- return ib.async().get(new Callback(baseTarget, info, onSuccess, onError));
+
+ if (onSuccess == null && onError == null) {
+ return ib.async().get();
+ } else {
+ return ib.async().get(new Callback(baseTarget, info, onSuccess, onError));
+ }
}
/**
@@ -188,7 +195,12 @@ public Future post(
@Nullable Consumer onError) {
InvocationInformation info = preprocessRequest(ib, request);
Entity> requestBody = this.entityFactory.forPost(request, attemptToSerialize(body));
- return ib.async().post(requestBody, new Callback(baseTarget, info, onSuccess, onError));
+
+ if (onSuccess == null && onError == null) {
+ return ib.async().post(requestBody);
+ } else {
+ return ib.async().post(requestBody, new Callback(baseTarget, info, onSuccess, onError));
+ }
}
/**
@@ -313,11 +325,15 @@ public Future patch(
InvocationInformation info = preprocessRequest(ib, request);
Entity> requestBody = this.entityFactory.forPatch(request, attemptToSerialize(body));
- return ib.async()
- .method(
- PATCH_VERB,
- requestBody,
- new Callback(baseTarget, info, onSuccess, onError));
+ if (onSuccess == null && onError == null) {
+ return ib.async().method(PATCH_VERB, requestBody);
+ } else {
+ return ib.async()
+ .method(
+ PATCH_VERB,
+ requestBody,
+ new Callback(baseTarget, info, onSuccess, onError));
+ }
}
/**
@@ -417,7 +433,12 @@ public Future put(
@Nullable Consumer onError) {
InvocationInformation info = preprocessRequest(ib, request);
Entity> requestBody = this.entityFactory.forPut(request, attemptToSerialize(body));
- return ib.async().put(requestBody, new Callback(baseTarget, info, onSuccess, onError));
+
+ if (onSuccess == null && onError == null) {
+ return ib.async().put(requestBody);
+ } else {
+ return ib.async().put(requestBody, new Callback(baseTarget, info, onSuccess, onError));
+ }
}
/**
@@ -466,7 +487,12 @@ public Future delete(
@Nullable Consumer onSuccess,
@Nullable Consumer onError) {
InvocationInformation info = preprocessRequest(ib, request);
- return ib.async().delete(new Callback(baseTarget, info, onSuccess, onError));
+
+ if (onSuccess == null && onError == null) {
+ return ib.async().delete();
+ } else {
+ return ib.async().delete(new Callback(baseTarget, info, onSuccess, onError));
+ }
}
/**
@@ -516,7 +542,12 @@ public Future head(
@Nullable Consumer onSuccess,
@Nullable Consumer onError) {
InvocationInformation info = preprocessRequest(ib, request);
- return ib.async().head(new Callback(baseTarget, info, onSuccess, onError));
+
+ if (onSuccess == null && onError == null) {
+ return ib.async().head();
+ } else {
+ return ib.async().head(new Callback(baseTarget, info, onSuccess, onError));
+ }
}
/**
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactory.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactory.java
index f9e42fee9f2..6569d26428c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactory.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactoryBuilder.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactoryBuilder.java
index efe37179bb8..1375fdbeedf 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactoryBuilder.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/RestClientFactoryBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/SuccessConsumer.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/SuccessConsumer.java
index 078bebc8b1b..7440a01d0df 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/SuccessConsumer.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/SuccessConsumer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/WithHeaders.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/WithHeaders.java
index a11a989dd1f..8a489491586 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/WithHeaders.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/WithHeaders.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedInvocationBuilder.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedInvocationBuilder.java
index 750e441c58a..c811f733f30 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedInvocationBuilder.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedInvocationBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedWebTarget.java b/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedWebTarget.java
index b4c113597b9..ccf9a38af6d 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedWebTarget.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/internal/WrappedWebTarget.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/DefaultRequestSigner.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/DefaultRequestSigner.java
index 58e398cf61e..9e4edfe9b1c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/DefaultRequestSigner.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/DefaultRequestSigner.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSigner.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSigner.java
index 238ac0ad778..1a3a71ef6a0 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSigner.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSigner.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerException.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerException.java
index 2da2327a7e5..b822abff02e 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerFactory.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerFactory.java
index a6170428be3..d681599a6cb 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerFactory.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/RequestSignerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/SigningStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/SigningStrategy.java
index bd6966eae25..9a6b70d3348 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/SigningStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/SigningStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Algorithm.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Algorithm.java
index 647f0d245e4..197fb652f3d 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Algorithm.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Algorithm.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/BouncyCastleHelper.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/BouncyCastleHelper.java
index 43b8a438217..2eba9930de6 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/BouncyCastleHelper.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/BouncyCastleHelper.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Constants.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Constants.java
index 3019ff1ccca..62c126efa0c 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Constants.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Constants.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/DefaultRequestSignerFactory.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/DefaultRequestSignerFactory.java
index aa775830a54..96d27a542ea 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/DefaultRequestSignerFactory.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/DefaultRequestSignerFactory.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeyIdType.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeyIdType.java
index 41dfe47cab6..13a1c2ee1b9 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeyIdType.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeyIdType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeySupplier.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeySupplier.java
index 5ada75cf970..66876735897 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeySupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/KeySupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/PEMFileRSAPrivateKeySupplier.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/PEMFileRSAPrivateKeySupplier.java
index 6a80d8f039c..bd8264a30e6 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/PEMFileRSAPrivateKeySupplier.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/PEMFileRSAPrivateKeySupplier.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/RequestSignerImpl.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/RequestSignerImpl.java
index a524bd49ed4..2825936e2dc 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/RequestSignerImpl.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/RequestSignerImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignatureSigner.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignatureSigner.java
index d7ca33f384b..23efeb98868 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignatureSigner.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignatureSigner.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestException.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestException.java
index 6199c4bd76a..545f699e35e 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestVersion.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestVersion.java
index cc74262d7ee..7763d953b3d 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestVersion.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/SignedRequestVersion.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Version.java b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Version.java
index f92708106c1..e6365db9bb8 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Version.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/http/signing/internal/Version.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.signing.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/internal/DefaultEndpointConfiguration.java b/bmc-common/src/main/java/com/oracle/bmc/internal/DefaultEndpointConfiguration.java
index 1e410cdb785..fe5fc4a5c8e 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/internal/DefaultEndpointConfiguration.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/internal/DefaultEndpointConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/internal/EndpointBuilder.java b/bmc-common/src/main/java/com/oracle/bmc/internal/EndpointBuilder.java
index b3ac07ab8a9..2d4e702ca63 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/internal/EndpointBuilder.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/internal/EndpointBuilder.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/io/DuplicatableInputStream.java b/bmc-common/src/main/java/com/oracle/bmc/io/DuplicatableInputStream.java
index 951992e39ad..5d717dfe2e0 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/io/DuplicatableInputStream.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/io/DuplicatableInputStream.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.io;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/io/internal/ContentLengthVerifyingInputStream.java b/bmc-common/src/main/java/com/oracle/bmc/io/internal/ContentLengthVerifyingInputStream.java
index f0fca9f857b..c6c11281370 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/io/internal/ContentLengthVerifyingInputStream.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/io/internal/ContentLengthVerifyingInputStream.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.io.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedByteArrayInputStream.java b/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedByteArrayInputStream.java
index 2cb408afc55..7dc59ff0b49 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedByteArrayInputStream.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedByteArrayInputStream.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.io.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedFileInputStream.java b/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedFileInputStream.java
index 111b9145cec..da9fdc63af7 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedFileInputStream.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/io/internal/WrappedFileInputStream.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.io.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/model/BmcException.java b/bmc-common/src/main/java/com/oracle/bmc/model/BmcException.java
index 87aff5126c5..be22478eadd 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/model/BmcException.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/model/BmcException.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.model;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/model/Range.java b/bmc-common/src/main/java/com/oracle/bmc/model/Range.java
index c310be328a9..4a8af117709 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/model/Range.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/model/Range.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.model;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/AbstractResponseIterator.java b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/AbstractResponseIterator.java
index 07da49a6e91..e97eee168fe 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/AbstractResponseIterator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/AbstractResponseIterator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.paginator.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/RequestBuilderAndToken.java b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/RequestBuilderAndToken.java
index 85465a8e681..68fe76c7e80 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/RequestBuilderAndToken.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/RequestBuilderAndToken.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.paginator.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterable.java b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterable.java
index c927571980a..cdaabef29cf 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterable.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterable.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.paginator.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterator.java b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterator.java
index 09d1d597aa4..8096b5f5790 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseIterator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.paginator.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterable.java b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterable.java
index 68d0de3c152..8591e5e4dc1 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterable.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterable.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.paginator.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterator.java b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterator.java
index d4031eb266d..fd412bc9b35 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterator.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/paginator/internal/ResponseRecordIterator.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.paginator.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/requests/BmcRequest.java b/bmc-common/src/main/java/com/oracle/bmc/requests/BmcRequest.java
index 667057bc878..fdb021bb9a3 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/requests/BmcRequest.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/requests/BmcRequest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.requests;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/responses/AsyncHandler.java b/bmc-common/src/main/java/com/oracle/bmc/responses/AsyncHandler.java
index e0b9db476f9..36de6564dc0 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/responses/AsyncHandler.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/responses/AsyncHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.responses;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/JavaRuntimeUtils.java b/bmc-common/src/main/java/com/oracle/bmc/util/JavaRuntimeUtils.java
index ef56255943d..0417c40fd31 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/JavaRuntimeUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/JavaRuntimeUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/StreamUtils.java b/bmc-common/src/main/java/com/oracle/bmc/util/StreamUtils.java
index f0305fe9540..686aebe51de 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/StreamUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/StreamUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/CollectionFormatType.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/CollectionFormatType.java
index ffaefaf727a..795736c741b 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/CollectionFormatType.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/CollectionFormatType.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/Consumer.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/Consumer.java
index 18263cfea9f..1a8fb66c887 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/Consumer.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/Consumer.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/FileUtils.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/FileUtils.java
index bb73eaa24a5..a1f9b9cb710 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/FileUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/FileUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/HttpUtils.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/HttpUtils.java
index bdf5672e6dc..a1d2f870e43 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/HttpUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/HttpUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/ReflectionUtils.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/ReflectionUtils.java
index 77c5a62ae55..d13788eb4b5 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/ReflectionUtils.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/ReflectionUtils.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenTransformingFuture.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenTransformingFuture.java
index 43b26ba42c3..69b6412f34f 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenTransformingFuture.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenTransformingFuture.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenWrappingAsyncHandler.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenWrappingAsyncHandler.java
index 11c616be01e..50c8acec72b 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenWrappingAsyncHandler.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/RefreshAuthTokenWrappingAsyncHandler.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/util/internal/TransformingFuture.java b/bmc-common/src/main/java/com/oracle/bmc/util/internal/TransformingFuture.java
index af8917e58f0..7b7c3d0d8b5 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/util/internal/TransformingFuture.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/util/internal/TransformingFuture.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.util.internal;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/BmcGenericWaiter.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/BmcGenericWaiter.java
index 013d400fb2b..6e5a43ce0dd 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/BmcGenericWaiter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/BmcGenericWaiter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/DelayStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/DelayStrategy.java
index ccbe01e762f..57ab4ad1edd 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/DelayStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/DelayStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/ExponentialBackoffDelayStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/ExponentialBackoffDelayStrategy.java
index 23ce44b9d93..11d7336635e 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/ExponentialBackoffDelayStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/ExponentialBackoffDelayStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/FixedTimeDelayStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/FixedTimeDelayStrategy.java
index afa5553f11e..e00908b5d98 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/FixedTimeDelayStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/FixedTimeDelayStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/GenericWaiter.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/GenericWaiter.java
index 55127ab4463..cfcf01e0443 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/GenericWaiter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/GenericWaiter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxAttemptsTerminationStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxAttemptsTerminationStrategy.java
index 900937676b9..ff873e713a7 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxAttemptsTerminationStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxAttemptsTerminationStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxTimeTerminationStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxTimeTerminationStrategy.java
index 45408505f0c..217f5f64cd6 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxTimeTerminationStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/MaxTimeTerminationStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/TerminationStrategy.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/TerminationStrategy.java
index af3a6e9e769..444a59d08ec 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/TerminationStrategy.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/TerminationStrategy.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiter.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiter.java
index 6fb7e40f4c2..47ab5f26e63 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiter.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiter.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/WaiterConfiguration.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/WaiterConfiguration.java
index ffc9827a5a1..feeb9c6c1fd 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/WaiterConfiguration.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/WaiterConfiguration.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiters.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiters.java
index 3d5bc32123e..baade31548a 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiters.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/Waiters.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter;
diff --git a/bmc-common/src/main/java/com/oracle/bmc/waiter/internal/SimpleWaiterImpl.java b/bmc-common/src/main/java/com/oracle/bmc/waiter/internal/SimpleWaiterImpl.java
index a5729ed4ee3..ee354e06ae1 100644
--- a/bmc-common/src/main/java/com/oracle/bmc/waiter/internal/SimpleWaiterImpl.java
+++ b/bmc-common/src/main/java/com/oracle/bmc/waiter/internal/SimpleWaiterImpl.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.waiter.internal;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/ClientRuntimeTest.java b/bmc-common/src/test/java/com/oracle/bmc/ClientRuntimeTest.java
index ba064331eac..d3cf66eda7b 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/ClientRuntimeTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/ClientRuntimeTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/ConfigFileReaderTest.java b/bmc-common/src/test/java/com/oracle/bmc/ConfigFileReaderTest.java
index 7a09351b6fc..62462e13ab5 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/ConfigFileReaderTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/ConfigFileReaderTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/OCIDTest.java b/bmc-common/src/test/java/com/oracle/bmc/OCIDTest.java
index 7848d0b0196..9663570bda1 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/OCIDTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/OCIDTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/RealmTest.java b/bmc-common/src/test/java/com/oracle/bmc/RealmTest.java
index 88d085fc478..1a4854c9dd2 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/RealmTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/RealmTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/RegionTest.java b/bmc-common/src/test/java/com/oracle/bmc/RegionTest.java
index faa6ea960ba..19f5b99ebf3 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/RegionTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/RegionTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/ServicesTest.java b/bmc-common/src/test/java/com/oracle/bmc/ServicesTest.java
index 41adc79ded4..5c398bf4b48 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/ServicesTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/ServicesTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/auth/internal/X509FederationClientTest.java b/bmc-common/src/test/java/com/oracle/bmc/auth/internal/X509FederationClientTest.java
index fc25bc6deee..6dc0aa02627 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/auth/internal/X509FederationClientTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/auth/internal/X509FederationClientTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.auth.internal;
@@ -59,6 +59,7 @@ public void setUp() {
RestClientUtils.createRestClient(
anyString(),
any(ClientConfigurator.class),
+ any(List.class),
any(X509FederationClient.class)))
.thenReturn(mockFederationClient);
@@ -71,7 +72,8 @@ public void setUp() {
mock(X509CertificateSupplier.class),
mock(SessionKeySupplier.class),
intermediateCertificateSuppliers,
- mock(ClientConfigurator.class));
+ mock(ClientConfigurator.class),
+ mock(List.class));
// Speed up the tests to mock out the sleep call between retries
mockStatic(Thread.class);
diff --git a/bmc-common/src/test/java/com/oracle/bmc/http/CompositeClientConfiguratorTest.java b/bmc-common/src/test/java/com/oracle/bmc/http/CompositeClientConfiguratorTest.java
index ec3c6f30914..e7afff459cc 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/http/CompositeClientConfiguratorTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/http/CompositeClientConfiguratorTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/http/DefaultConfiguratorTest.java b/bmc-common/src/test/java/com/oracle/bmc/http/DefaultConfiguratorTest.java
index d71f0db532b..5608e80edd7 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/http/DefaultConfiguratorTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/http/DefaultConfiguratorTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/http/internal/EntityFactoryTest.java b/bmc-common/src/test/java/com/oracle/bmc/http/internal/EntityFactoryTest.java
index c531481067e..90c8a103e4a 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/http/internal/EntityFactoryTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/http/internal/EntityFactoryTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/http/internal/ExplicitlySetFilterTest.java b/bmc-common/src/test/java/com/oracle/bmc/http/internal/ExplicitlySetFilterTest.java
index a33fe9cd7b0..1b121788846 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/http/internal/ExplicitlySetFilterTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/http/internal/ExplicitlySetFilterTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/http/internal/HttpDateUtilsTest.java b/bmc-common/src/test/java/com/oracle/bmc/http/internal/HttpDateUtilsTest.java
index 531ed0b05a7..60287971e74 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/http/internal/HttpDateUtilsTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/http/internal/HttpDateUtilsTest.java
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
diff --git a/bmc-common/src/test/java/com/oracle/bmc/http/internal/ResponseHelperTest.java b/bmc-common/src/test/java/com/oracle/bmc/http/internal/ResponseHelperTest.java
index 63de586cdc8..82c043ab66e 100644
--- a/bmc-common/src/test/java/com/oracle/bmc/http/internal/ResponseHelperTest.java
+++ b/bmc-common/src/test/java/com/oracle/bmc/http/internal/ResponseHelperTest.java
@@ -1,14 +1,16 @@
/**
- * Copyright (c) 2016, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved.
*/
package com.oracle.bmc.http.internal;
import com.google.common.collect.ImmutableList;
import com.oracle.bmc.model.BmcException;
+import org.glassfish.jersey.internal.util.collection.MultivaluedStringMap;
import org.junit.Test;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedHashMap;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.Response;
@@ -83,7 +85,7 @@ public void test_throwIfNotSuccessful_InvalidJsonResponse() {
public void testReadEntity_streamWithConentType() {
Response response = mock(Response.class);
Response.StatusType statusInfo = mock(Response.StatusType.class);
- MultivaluedMap headers = mock(MultivaluedMap.class);
+ MultivaluedMap headers = new MultivaluedHashMap<>();
List