Skip to content

Commit 39afed3

Browse files
authored
Merge pull request #47 from oracle/release_2018-03-08
Releasing version 1.2.29
2 parents 1d2a680 + 6d44075 commit 39afed3

File tree

132 files changed

+12480
-439
lines changed

Some content is hidden

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

132 files changed

+12480
-439
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,19 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/).
1313
### Added
1414
- N/A
1515

16+
## 1.2.29 - 2018-03-08
17+
18+
### Added
19+
- Added support for the Email Service. An example on how to call this service can be found [here](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/EmailServiceExample.java)
20+
- Added support for SMTP credentials in the Identity Service. An example of managing SMTP credentials is available in the email service example [here](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/EmailServiceExample.java)
21+
- Added support for paravirtualized volume attachments in Core Services. An example can be found [here](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/VolumeAttachmentExample.java)
22+
- Added support for variable size boot volumes in Core Services
23+
24+
## Changed
25+
- Allowing additional client configurators, and starting builder pattern for clients
26+
- Added an explicit pagination example [here](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/PaginationExample.java)
27+
- Updated [ListAuditEventsExample](https://github.com/oracle/oci-java-sdk/blob/master/bmc-examples/src/main/java/ListAuditEventsExample.java) to show other pagination techniques
28+
1629
## 1.2.28 - 2018-02-22
1730

1831
### Added

bmc-audit/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</artifactId>
8-
<version>1.2.28</version>
8+
<version>1.2.29</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111

@@ -18,7 +18,7 @@
1818
<dependency>
1919
<groupId>com.oracle.oci.sdk</groupId>
2020
<artifactId>oci-java-sdk-common</artifactId>
21-
<version>1.2.28</version>
21+
<version>1.2.29</version>
2222
</dependency>
2323
</dependencies>
2424

bmc-audit/src/main/java/com/oracle/bmc/audit/AuditAsyncClient.java

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,36 @@ public AuditAsyncClient(
7777
com.oracle.bmc.ClientConfiguration configuration,
7878
com.oracle.bmc.http.ClientConfigurator clientConfigurator,
7979
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory) {
80+
this(
81+
authenticationDetailsProvider,
82+
configuration,
83+
clientConfigurator,
84+
requestSignerFactory,
85+
new java.util.ArrayList<com.oracle.bmc.http.ClientConfigurator>());
86+
}
87+
88+
/**
89+
* Creates a new service instance using the given authentication provider and client configuration. Additionally,
90+
* a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
91+
* <p>
92+
* This is an advanced constructor for clients that want to take control over how requests are signed.
93+
* @param authenticationDetailsProvider The authentication details provider, required.
94+
* @param configuration The client configuration, optional.
95+
* @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
96+
* @param requestSignerFactory The request signer factory used to create the request signer for this service.
97+
* @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
98+
*/
99+
public AuditAsyncClient(
100+
com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
101+
com.oracle.bmc.ClientConfiguration configuration,
102+
com.oracle.bmc.http.ClientConfigurator clientConfigurator,
103+
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory,
104+
java.util.List<com.oracle.bmc.http.ClientConfigurator> additionalClientConfigurators) {
80105
this.authenticationDetailsProvider = authenticationDetailsProvider;
81106
com.oracle.bmc.http.internal.RestClientFactory restClientFactory =
82107
com.oracle.bmc.http.internal.RestClientFactoryBuilder.builder()
83108
.clientConfigurator(clientConfigurator)
109+
.additionalClientConfigurators(additionalClientConfigurators)
84110
.build();
85111
com.oracle.bmc.http.signing.RequestSigner requestSigner =
86112
requestSignerFactory.createRequestSigner(
@@ -97,6 +123,108 @@ public AuditAsyncClient(
97123
}
98124
}
99125

126+
/**
127+
* Create a builder for this client.
128+
* @return builder
129+
*/
130+
public static Builder builder() {
131+
return new Builder();
132+
}
133+
134+
/**
135+
* Builder class for this client. The "authenticationDetailsProvider" is required and must be passed to the
136+
* {@link #build(AbstractAuthenticationDetailsProvider)} method.
137+
*/
138+
public static class Builder {
139+
protected com.oracle.bmc.ClientConfiguration configuration;
140+
protected com.oracle.bmc.http.ClientConfigurator clientConfigurator;
141+
protected java.util.List<com.oracle.bmc.http.ClientConfigurator>
142+
additionalClientConfigurators = new java.util.ArrayList<>();
143+
protected com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory =
144+
new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
145+
com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
146+
147+
private Builder() {}
148+
149+
private Builder(
150+
com.oracle.bmc.ClientConfiguration configuration,
151+
com.oracle.bmc.http.ClientConfigurator clientConfigurator,
152+
java.util.List<com.oracle.bmc.http.ClientConfigurator>
153+
additionalClientConfigurators,
154+
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory) {
155+
this.configuration = configuration;
156+
this.clientConfigurator = clientConfigurator;
157+
this.additionalClientConfigurators = additionalClientConfigurators;
158+
}
159+
160+
/**
161+
* Set the configuration. May be null.
162+
* @param configuration configuration. May be null.
163+
* @return this builder
164+
*/
165+
public Builder configuration(com.oracle.bmc.ClientConfiguration configuration) {
166+
this.configuration = configuration;
167+
return this;
168+
}
169+
170+
/**
171+
* Set the client configurator. May be null.
172+
* @param clientConfigurator client configurator. May be null.
173+
* @return this builder
174+
*/
175+
public Builder clientConfigurator(
176+
com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
177+
this.clientConfigurator = clientConfigurator;
178+
return this;
179+
}
180+
181+
/**
182+
* Add an additional client configurator to be run after the primary configurator.
183+
* @param additionalClientConfigurator the additional client configurator
184+
* @return this builder
185+
*/
186+
public Builder additionalClientConfigurator(
187+
@lombok.NonNull
188+
com.oracle.bmc.http.ClientConfigurator additionalClientConfigurator) {
189+
this.additionalClientConfigurators.add(additionalClientConfigurator);
190+
return this;
191+
}
192+
193+
/**
194+
* Set the request signer factory. May be null.
195+
* @param requestSignerFactory request signer factory. May be null.
196+
* @return this builder
197+
*/
198+
public Builder requestSignerFactory(
199+
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory) {
200+
if (requestSignerFactory == null) {
201+
this.requestSignerFactory =
202+
new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
203+
com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
204+
} else {
205+
this.requestSignerFactory = requestSignerFactory;
206+
}
207+
return this;
208+
}
209+
210+
/**
211+
* Build the client, with the authentication details provider.
212+
* @param authenticationDetailsProvider authentication details provider
213+
* @return the client
214+
*/
215+
public AuditAsyncClient build(
216+
@lombok.NonNull
217+
com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
218+
authenticationDetailsProvider) {
219+
return new AuditAsyncClient(
220+
authenticationDetailsProvider,
221+
configuration,
222+
clientConfigurator,
223+
requestSignerFactory,
224+
additionalClientConfigurators);
225+
}
226+
}
227+
100228
@Override
101229
public void setEndpoint(String endpoint) {
102230
LOG.info("Setting endpoint to {}", endpoint);

bmc-audit/src/main/java/com/oracle/bmc/audit/AuditClient.java

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,36 @@ public AuditClient(
8181
com.oracle.bmc.ClientConfiguration configuration,
8282
com.oracle.bmc.http.ClientConfigurator clientConfigurator,
8383
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory) {
84+
this(
85+
authenticationDetailsProvider,
86+
configuration,
87+
clientConfigurator,
88+
requestSignerFactory,
89+
new java.util.ArrayList<com.oracle.bmc.http.ClientConfigurator>());
90+
}
91+
92+
/**
93+
* Creates a new service instance using the given authentication provider and client configuration. Additionally,
94+
* a Consumer can be provided that will be invoked whenever a REST Client is created to allow for additional configuration/customization.
95+
* <p>
96+
* This is an advanced constructor for clients that want to take control over how requests are signed.
97+
* @param authenticationDetailsProvider The authentication details provider, required.
98+
* @param configuration The client configuration, optional.
99+
* @param clientConfigurator ClientConfigurator that will be invoked for additional configuration of a REST client, optional.
100+
* @param requestSignerFactory The request signer factory used to create the request signer for this service.
101+
* @param additionalClientConfigurators Additional client configurators to be run after the primary configurator.
102+
*/
103+
public AuditClient(
104+
com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider authenticationDetailsProvider,
105+
com.oracle.bmc.ClientConfiguration configuration,
106+
com.oracle.bmc.http.ClientConfigurator clientConfigurator,
107+
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory,
108+
java.util.List<com.oracle.bmc.http.ClientConfigurator> additionalClientConfigurators) {
84109
this.authenticationDetailsProvider = authenticationDetailsProvider;
85110
com.oracle.bmc.http.internal.RestClientFactory restClientFactory =
86111
com.oracle.bmc.http.internal.RestClientFactoryBuilder.builder()
87112
.clientConfigurator(clientConfigurator)
113+
.additionalClientConfigurators(additionalClientConfigurators)
88114
.build();
89115
com.oracle.bmc.http.signing.RequestSigner requestSigner =
90116
requestSignerFactory.createRequestSigner(
@@ -103,6 +129,108 @@ public AuditClient(
103129
}
104130
}
105131

132+
/**
133+
* Create a builder for this client.
134+
* @return builder
135+
*/
136+
public static Builder builder() {
137+
return new Builder();
138+
}
139+
140+
/**
141+
* Builder class for this client. The "authenticationDetailsProvider" is required and must be passed to the
142+
* {@link #build(AbstractAuthenticationDetailsProvider)} method.
143+
*/
144+
public static class Builder {
145+
protected com.oracle.bmc.ClientConfiguration configuration;
146+
protected com.oracle.bmc.http.ClientConfigurator clientConfigurator;
147+
protected java.util.List<com.oracle.bmc.http.ClientConfigurator>
148+
additionalClientConfigurators = new java.util.ArrayList<>();
149+
protected com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory =
150+
new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
151+
com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
152+
153+
private Builder() {}
154+
155+
private Builder(
156+
com.oracle.bmc.ClientConfiguration configuration,
157+
com.oracle.bmc.http.ClientConfigurator clientConfigurator,
158+
java.util.List<com.oracle.bmc.http.ClientConfigurator>
159+
additionalClientConfigurators,
160+
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory) {
161+
this.configuration = configuration;
162+
this.clientConfigurator = clientConfigurator;
163+
this.additionalClientConfigurators = additionalClientConfigurators;
164+
}
165+
166+
/**
167+
* Set the configuration. May be null.
168+
* @param configuration configuration. May be null.
169+
* @return this builder
170+
*/
171+
public Builder configuration(com.oracle.bmc.ClientConfiguration configuration) {
172+
this.configuration = configuration;
173+
return this;
174+
}
175+
176+
/**
177+
* Set the client configurator. May be null.
178+
* @param clientConfigurator client configurator. May be null.
179+
* @return this builder
180+
*/
181+
public Builder clientConfigurator(
182+
com.oracle.bmc.http.ClientConfigurator clientConfigurator) {
183+
this.clientConfigurator = clientConfigurator;
184+
return this;
185+
}
186+
187+
/**
188+
* Add an additional client configurator to be run after the primary configurator.
189+
* @param additionalClientConfigurator the additional client configurator
190+
* @return this builder
191+
*/
192+
public Builder additionalClientConfigurator(
193+
@lombok.NonNull
194+
com.oracle.bmc.http.ClientConfigurator additionalClientConfigurator) {
195+
this.additionalClientConfigurators.add(additionalClientConfigurator);
196+
return this;
197+
}
198+
199+
/**
200+
* Set the request signer factory. May be null.
201+
* @param requestSignerFactory request signer factory. May be null.
202+
* @return this builder
203+
*/
204+
public Builder requestSignerFactory(
205+
com.oracle.bmc.http.signing.RequestSignerFactory requestSignerFactory) {
206+
if (requestSignerFactory == null) {
207+
this.requestSignerFactory =
208+
new com.oracle.bmc.http.signing.internal.DefaultRequestSignerFactory(
209+
com.oracle.bmc.http.signing.SigningStrategy.STANDARD);
210+
} else {
211+
this.requestSignerFactory = requestSignerFactory;
212+
}
213+
return this;
214+
}
215+
216+
/**
217+
* Set the authentication details provider. Once this is called, the builder can build the client.
218+
* @param authenticationDetailsProvider authentication details provider
219+
* @return a builder that can build the client
220+
*/
221+
public AuditClient build(
222+
@lombok.NonNull
223+
com.oracle.bmc.auth.AbstractAuthenticationDetailsProvider
224+
authenticationDetailsProvider) {
225+
return new AuditClient(
226+
authenticationDetailsProvider,
227+
configuration,
228+
clientConfigurator,
229+
requestSignerFactory,
230+
additionalClientConfigurators);
231+
}
232+
}
233+
106234
@Override
107235
public void setEndpoint(String endpoint) {
108236
LOG.info("Setting endpoint to {}", endpoint);

bmc-audit/src/main/java/com/oracle/bmc/audit/AuditPaginators.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* These iterables abstract away the need to write code to manually handle pagination via looping and using the page tokens.
2020
* They will automatically fetch more data from the service when required.
2121
*
22-
* As an example, if we were using the ListUsers operation in IdentityService, then the {@link java.lang.Interable} returned by calling a
22+
* As an example, if we were using the ListUsers operation in IdentityService, then the {@link java.lang.Iterable} returned by calling a
2323
* ResponseIterator method would iterate over the ListUsersResponse objects returned by each ListUsers call, whereas the {@link java.lang.Iterable}
2424
* returned by calling a RecordIterator method would iterate over the User records and we don't have to deal with ListUsersResponse objects at all.
2525
* In either case, pagination will be automatically handled so we can iterate until there are no more responses or no more resources/records available.

0 commit comments

Comments
 (0)