Skip to content

Commit 5535b10

Browse files
authored
Releasing version 1.5.9
Releasing version 1.5.9
2 parents a321e16 + 0d00685 commit 5535b10

File tree

1,631 files changed

+41383
-13003
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,631 files changed

+41383
-13003
lines changed

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
All notable changes to this project will be documented in this file.
33

44
The format is based on [Keep a Changelog](http://keepachangelog.com/).
5+
## 1.5.9 - 2019-06-11
6+
### Added
7+
- Support for specifying custom boot volume sizes on instance configurations in the Compute Autoscaling service
8+
- Support for 'Autonomous Transaction Processing - Dedicated' features, as well as maintenance run and backup operations on autonomous databases, autonomous container databases, and autonomous Exadata infrastructure in the Database service
9+
- Support for retries in the Java SDK. An example of how to do this is available [here](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/RetryExample.java)
10+
11+
### Fixed
12+
- Non-buffered responses are now closed to fix connection leaks
13+
514
## 1.5.8 - 2019-06-04
615
### Added
716
- Support for autoscaling autonomous databases and autonomous data warehouses in the Database service

bmc-addons/bmc-apache-connector-provider/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk-addons</artifactId>
8-
<version>1.5.8</version>
8+
<version>1.5.9</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

@@ -43,7 +43,7 @@
4343
<dependency>
4444
<groupId>com.oracle.oci.sdk</groupId>
4545
<artifactId>oci-java-sdk-common</artifactId>
46-
<version>1.5.8</version>
46+
<version>1.5.9</version>
4747
</dependency>
4848
</dependencies>
4949
</project>

bmc-addons/bmc-apache-connector-provider/src/main/java/com/oracle/bmc/http/ApacheConnectionPoolingClientConfigDecorator.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,25 @@
2424
@Slf4j
2525
public class ApacheConnectionPoolingClientConfigDecorator implements ClientConfigDecorator {
2626
private final ApacheConnectionPoolConfig config;
27+
private PoolingHttpClientConnectionManager poolConnectionManager;
2728

2829
/** Creates a new {@code ApacheConnectionPoolingClientConfigDecorator} object. */
2930
public ApacheConnectionPoolingClientConfigDecorator(
3031
@NonNull final ApacheConnectionPoolConfig config) {
3132
this.config = config;
3233
}
3334

35+
/**
36+
* Gets the underlying {@code PoolingHttpClientConnectionManager} for the
37+
* {@code ApacheConnectionPoolingClientConfigDecorator}. If the client has yet to be initialized and configured,
38+
* then the {@code PoolingHttpClientConnectionManager} can be {@code null}.
39+
*
40+
* @return the configured PoolingHttpClientConnectionManager
41+
*/
42+
public PoolingHttpClientConnectionManager getPoolingHttpClientConnectionManager() {
43+
return poolConnectionManager;
44+
}
45+
3446
@Override
3547
public void customizeClientConfig(ClientConfig clientConfig) {
3648
Validate.notNull(clientConfig, "ClientConfig must not be null");
@@ -47,13 +59,13 @@ public void customizeClientConfig(ClientConfig clientConfig) {
4759
LOG.info("ApacheConnectionPoolConfig: {}", config);
4860

4961
final Pair<Integer, TimeUnit> ttl = config.getTtl();
50-
final PoolingHttpClientConnectionManager connectionManager =
62+
poolConnectionManager =
5163
(ttl != null)
5264
? new PoolingHttpClientConnectionManager(ttl.getLeft(), ttl.getRight())
5365
: new PoolingHttpClientConnectionManager();
54-
connectionManager.setMaxTotal(config.getTotalOpenConnections());
55-
connectionManager.setDefaultMaxPerRoute(config.getDefaultMaxConnectionsPerRoute());
66+
poolConnectionManager.setMaxTotal(config.getTotalOpenConnections());
67+
poolConnectionManager.setDefaultMaxPerRoute(config.getDefaultMaxConnectionsPerRoute());
5668

57-
clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connectionManager);
69+
clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, poolConnectionManager);
5870
}
5971
}

bmc-addons/bmc-resteasy-client-configurator/pom.xml

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk-addons</artifactId>
8-
<version>1.5.8</version>
8+
<version>1.5.9</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

@@ -14,31 +14,29 @@
1414
<description>This project adds support for the RestEasyClientConfigurator for the Java SDK</description>
1515
<url>https://docs.us-phoenix-1.oraclecloud.com/Content/API/SDKDocs/javasdk.htm</url>
1616

17+
<properties>
18+
<resteasy.version>3.6.3.Final</resteasy.version>
19+
</properties>
20+
1721

1822
<dependencies>
1923
<!-- https://mvnrepository.com/artifact/org.jboss.resteasy/resteasy-client -->
2024
<dependency>
2125
<groupId>org.jboss.resteasy</groupId>
2226
<artifactId>resteasy-client</artifactId>
23-
<version>3.1.2.Final</version>
27+
<version>${resteasy.version}</version>
2428
</dependency>
2529

2630
<dependency>
2731
<groupId>org.jboss.resteasy</groupId>
2832
<artifactId>resteasy-jaxrs</artifactId>
29-
<version>3.1.2.Final</version>
30-
</dependency>
31-
32-
<dependency>
33-
<groupId>org.jboss.resteasy</groupId>
34-
<artifactId>jaxrs-api</artifactId>
35-
<version>3.0.12.Final</version>
33+
<version>${resteasy.version}</version>
3634
</dependency>
3735

3836
<dependency>
3937
<groupId>com.oracle.oci.sdk</groupId>
4038
<artifactId>oci-java-sdk-common</artifactId>
41-
<version>1.5.8</version>
39+
<version>1.5.9</version>
4240
</dependency>
4341
</dependencies>
4442
</project>

bmc-addons/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<groupId>com.oracle.oci.sdk</groupId>
77
<artifactId>oci-java-sdk</artifactId>
8-
<version>1.5.8</version>
8+
<version>1.5.9</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

bmc-announcementsservice/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>com.oracle.oci.sdk</groupId>
66
<artifactId>oci-java-sdk</artifactId>
7-
<version>1.5.8</version>
7+
<version>1.5.9</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010
<artifactId>oci-java-sdk-announcementsservice</artifactId>
@@ -17,7 +17,7 @@
1717
<dependency>
1818
<groupId>com.oracle.oci.sdk</groupId>
1919
<artifactId>oci-java-sdk-common</artifactId>
20-
<version>1.5.8</version>
20+
<version>1.5.9</version>
2121
</dependency>
2222
</dependencies>
2323
</project>

bmc-announcementsservice/src/main/java/com/oracle/bmc/announcementsservice/AnnouncementClient.java

Lines changed: 91 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ public class AnnouncementClient implements Announcement {
2828
private final com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
2929
authenticationDetailsProvider;
3030

31+
private final com.oracle.bmc.retrier.RetryConfiguration retryConfiguration;
32+
3133
/**
3234
* Creates a new service instance using the given authentication provider.
3335
* @param authenticationDetailsProvider The authentication details provider, required.
@@ -194,7 +196,15 @@ public AnnouncementClient(
194196
.createRequestSigner(SERVICE, authenticationDetailsProvider));
195197
}
196198
}
197-
this.client = restClientFactory.create(defaultRequestSigner, requestSigners, configuration);
199+
200+
final com.oracle.bmc.ClientConfiguration clientConfigurationToUse =
201+
(configuration != null)
202+
? configuration
203+
: com.oracle.bmc.ClientConfiguration.builder().build();
204+
this.retryConfiguration = clientConfigurationToUse.getRetryConfiguration();
205+
this.client =
206+
restClientFactory.create(
207+
defaultRequestSigner, requestSigners, clientConfigurationToUse);
198208

199209
if (this.authenticationDetailsProvider instanceof com.oracle.bmc.auth.RegionProvider) {
200210
com.oracle.bmc.auth.RegionProvider provider =
@@ -294,117 +304,120 @@ public void close() {
294304
@Override
295305
public GetAnnouncementResponse getAnnouncement(GetAnnouncementRequest request) {
296306
LOG.trace("Called getAnnouncement");
297-
request = GetAnnouncementConverter.interceptRequest(request);
307+
final GetAnnouncementRequest interceptedRequest =
308+
GetAnnouncementConverter.interceptRequest(request);
298309
com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
299-
GetAnnouncementConverter.fromRequest(client, request);
310+
GetAnnouncementConverter.fromRequest(client, interceptedRequest);
300311
com.google.common.base.Function<javax.ws.rs.core.Response, GetAnnouncementResponse>
301312
transformer = GetAnnouncementConverter.fromResponse();
302313

303-
int attempts = 0;
304-
while (true) {
305-
try {
306-
javax.ws.rs.core.Response response = client.get(ib, request);
307-
return transformer.apply(response);
308-
} catch (com.oracle.bmc.model.BmcException e) {
309-
if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
310-
&& canRetryRequestIfRefreshableAuthTokenUsed(e)) {
311-
continue;
312-
} else {
313-
throw e;
314-
}
315-
}
316-
}
314+
final com.oracle.bmc.retrier.BmcGenericRetrier retrier =
315+
com.oracle.bmc.retrier.Retriers.createPreferredRetrier(
316+
interceptedRequest.getRetryConfiguration(), retryConfiguration);
317+
return retrier.execute(
318+
interceptedRequest,
319+
retryRequest -> {
320+
final com.oracle.bmc.retrier.TokenRefreshRetrier tokenRefreshRetrier =
321+
new com.oracle.bmc.retrier.TokenRefreshRetrier(
322+
authenticationDetailsProvider);
323+
return tokenRefreshRetrier.execute(
324+
retryRequest,
325+
retriedRequest -> {
326+
javax.ws.rs.core.Response response = client.get(ib, retriedRequest);
327+
return transformer.apply(response);
328+
});
329+
});
317330
}
318331

319332
@Override
320333
public GetAnnouncementUserStatusResponse getAnnouncementUserStatus(
321334
GetAnnouncementUserStatusRequest request) {
322335
LOG.trace("Called getAnnouncementUserStatus");
323-
request = GetAnnouncementUserStatusConverter.interceptRequest(request);
336+
final GetAnnouncementUserStatusRequest interceptedRequest =
337+
GetAnnouncementUserStatusConverter.interceptRequest(request);
324338
com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
325-
GetAnnouncementUserStatusConverter.fromRequest(client, request);
339+
GetAnnouncementUserStatusConverter.fromRequest(client, interceptedRequest);
326340
com.google.common.base.Function<
327341
javax.ws.rs.core.Response, GetAnnouncementUserStatusResponse>
328342
transformer = GetAnnouncementUserStatusConverter.fromResponse();
329343

330-
int attempts = 0;
331-
while (true) {
332-
try {
333-
javax.ws.rs.core.Response response = client.get(ib, request);
334-
return transformer.apply(response);
335-
} catch (com.oracle.bmc.model.BmcException e) {
336-
if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
337-
&& canRetryRequestIfRefreshableAuthTokenUsed(e)) {
338-
continue;
339-
} else {
340-
throw e;
341-
}
342-
}
343-
}
344+
final com.oracle.bmc.retrier.BmcGenericRetrier retrier =
345+
com.oracle.bmc.retrier.Retriers.createPreferredRetrier(
346+
interceptedRequest.getRetryConfiguration(), retryConfiguration);
347+
return retrier.execute(
348+
interceptedRequest,
349+
retryRequest -> {
350+
final com.oracle.bmc.retrier.TokenRefreshRetrier tokenRefreshRetrier =
351+
new com.oracle.bmc.retrier.TokenRefreshRetrier(
352+
authenticationDetailsProvider);
353+
return tokenRefreshRetrier.execute(
354+
retryRequest,
355+
retriedRequest -> {
356+
javax.ws.rs.core.Response response = client.get(ib, retriedRequest);
357+
return transformer.apply(response);
358+
});
359+
});
344360
}
345361

346362
@Override
347363
public ListAnnouncementsResponse listAnnouncements(ListAnnouncementsRequest request) {
348364
LOG.trace("Called listAnnouncements");
349-
request = ListAnnouncementsConverter.interceptRequest(request);
365+
final ListAnnouncementsRequest interceptedRequest =
366+
ListAnnouncementsConverter.interceptRequest(request);
350367
com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
351-
ListAnnouncementsConverter.fromRequest(client, request);
368+
ListAnnouncementsConverter.fromRequest(client, interceptedRequest);
352369
com.google.common.base.Function<javax.ws.rs.core.Response, ListAnnouncementsResponse>
353370
transformer = ListAnnouncementsConverter.fromResponse();
354371

355-
int attempts = 0;
356-
while (true) {
357-
try {
358-
javax.ws.rs.core.Response response = client.get(ib, request);
359-
return transformer.apply(response);
360-
} catch (com.oracle.bmc.model.BmcException e) {
361-
if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
362-
&& canRetryRequestIfRefreshableAuthTokenUsed(e)) {
363-
continue;
364-
} else {
365-
throw e;
366-
}
367-
}
368-
}
372+
final com.oracle.bmc.retrier.BmcGenericRetrier retrier =
373+
com.oracle.bmc.retrier.Retriers.createPreferredRetrier(
374+
interceptedRequest.getRetryConfiguration(), retryConfiguration);
375+
return retrier.execute(
376+
interceptedRequest,
377+
retryRequest -> {
378+
final com.oracle.bmc.retrier.TokenRefreshRetrier tokenRefreshRetrier =
379+
new com.oracle.bmc.retrier.TokenRefreshRetrier(
380+
authenticationDetailsProvider);
381+
return tokenRefreshRetrier.execute(
382+
retryRequest,
383+
retriedRequest -> {
384+
javax.ws.rs.core.Response response = client.get(ib, retriedRequest);
385+
return transformer.apply(response);
386+
});
387+
});
369388
}
370389

371390
@Override
372391
public UpdateAnnouncementUserStatusResponse updateAnnouncementUserStatus(
373392
UpdateAnnouncementUserStatusRequest request) {
374393
LOG.trace("Called updateAnnouncementUserStatus");
375-
request = UpdateAnnouncementUserStatusConverter.interceptRequest(request);
394+
final UpdateAnnouncementUserStatusRequest interceptedRequest =
395+
UpdateAnnouncementUserStatusConverter.interceptRequest(request);
376396
com.oracle.bmc.http.internal.WrappedInvocationBuilder ib =
377-
UpdateAnnouncementUserStatusConverter.fromRequest(client, request);
397+
UpdateAnnouncementUserStatusConverter.fromRequest(client, interceptedRequest);
378398
com.google.common.base.Function<
379399
javax.ws.rs.core.Response, UpdateAnnouncementUserStatusResponse>
380400
transformer = UpdateAnnouncementUserStatusConverter.fromResponse();
381401

382-
int attempts = 0;
383-
while (true) {
384-
try {
385-
javax.ws.rs.core.Response response =
386-
client.put(ib, request.getStatusDetails(), request);
387-
return transformer.apply(response);
388-
} catch (com.oracle.bmc.model.BmcException e) {
389-
if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS
390-
&& canRetryRequestIfRefreshableAuthTokenUsed(e)) {
391-
continue;
392-
} else {
393-
throw e;
394-
}
395-
}
396-
}
397-
}
398-
399-
private boolean canRetryRequestIfRefreshableAuthTokenUsed(com.oracle.bmc.model.BmcException e) {
400-
if (e.getStatusCode() == 401
401-
&& this.authenticationDetailsProvider
402-
instanceof com.oracle.bmc.auth.RefreshableOnNotAuthenticatedProvider) {
403-
((com.oracle.bmc.auth.RefreshableOnNotAuthenticatedProvider)
404-
this.authenticationDetailsProvider)
405-
.refresh();
406-
return true;
407-
}
408-
return false;
402+
final com.oracle.bmc.retrier.BmcGenericRetrier retrier =
403+
com.oracle.bmc.retrier.Retriers.createPreferredRetrier(
404+
interceptedRequest.getRetryConfiguration(), retryConfiguration);
405+
return retrier.execute(
406+
interceptedRequest,
407+
retryRequest -> {
408+
final com.oracle.bmc.retrier.TokenRefreshRetrier tokenRefreshRetrier =
409+
new com.oracle.bmc.retrier.TokenRefreshRetrier(
410+
authenticationDetailsProvider);
411+
return tokenRefreshRetrier.execute(
412+
retryRequest,
413+
retriedRequest -> {
414+
javax.ws.rs.core.Response response =
415+
client.put(
416+
ib,
417+
retriedRequest.getStatusDetails(),
418+
retriedRequest);
419+
return transformer.apply(response);
420+
});
421+
});
409422
}
410423
}

bmc-announcementsservice/src/main/java/com/oracle/bmc/announcementsservice/internal/http/GetAnnouncementConverter.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*/
44
package com.oracle.bmc.announcementsservice.internal.http;
55

6+
import com.oracle.bmc.http.internal.ResponseHelper;
67
import com.oracle.bmc.announcementsservice.model.*;
78
import com.oracle.bmc.announcementsservice.requests.*;
89
import com.oracle.bmc.announcementsservice.responses.*;
@@ -87,6 +88,7 @@ public GetAnnouncementResponse apply(
8788

8889
GetAnnouncementResponse responseWrapper = builder.build();
8990

91+
ResponseHelper.closeResponseSilentlyIfNotBuffered(rawResponse);
9092
return responseWrapper;
9193
}
9294
};

0 commit comments

Comments
 (0)