Skip to content

Commit 342b6e6

Browse files
Releasing version
Releasing version
2 parents a82aa96 + 0ba1af7 commit 342b6e6

File tree

255 files changed

+11351
-1119
lines changed

Some content is hidden

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

255 files changed

+11351
-1119
lines changed

CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,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/).
55

6+
## 3.63.0 - 2025-04-08
7+
### Added
8+
- Support for connector source and targets with private endpoints in the Resource Scheduler service
9+
- Support for Cross Region Replication(XRR) for external key managers in the Key Management service
10+
- Support for dry run of function invocation in the Functions service
11+
- Support for collecting diagnostics for ZeroETL pipelines in the GoldenGate service
12+
- Support for adding, removing and switchover to local peers of deployment in different availability and fault domains within in the same region in the GoldenGate service
13+
- Support for creating standby deployments in the GoldenGate service
14+
15+
### Breaking Changes
16+
- Return type of method `public com.oracle.bmc.sch.model.SourceDetails getSource()` in the model `com.oracle.bmc.sch.model.ServiceConnector` has been changed to `com.oracle.bmc.sch.model.SourceDetailsResponse` in the Resource Scheduler service
17+
- Return type of method `public com.oracle.bmc.sch.model.TargetDetails getTarget()` has been changed to `com.oracle.bmc.sch.model.TargetDetailsResponse` in the model `com.oracle.bmc.sch.model.ServiceConnector` in the Resource Scheduler service
18+
- Removed field `UnknownEnumValue` in the enum `Kind` in model `com.oracle.bmc.sch.model.SourceDetails` in the Resource Scheduler service
19+
- Removed field `UnknownEnumValue` in the enum `Kind` in model `com.oracle.bmc.sch.model.TargetDetails` in the Resource Scheduler service
20+
- Removed field `UnknownEnumValue` in the enum `Kind` in the model `com.oracle.bmc.sch.model.TaskDetails` in the Resource Scheduler service
21+
622
## 3.62.1 - 2025-04-02
723
### Added
824
- Support for the Lustre File service

bmc-accessgovernancecp/pom.xml

+2-2
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>3.62.1</version>
7+
<version>3.63.0</version>
88
<relativePath>../pom.xml</relativePath>
99
</parent>
1010
<artifactId>oci-java-sdk-accessgovernancecp</artifactId>
@@ -15,7 +15,7 @@
1515
<dependency>
1616
<groupId>com.oracle.oci.sdk</groupId>
1717
<artifactId>oci-java-sdk-common</artifactId>
18-
<version>3.62.1</version>
18+
<version>3.63.0</version>
1919
</dependency>
2020
</dependencies>
2121
</project>

bmc-addons/bmc-aispeech-realtime/pom.xml

+4-4
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>3.62.1</version>
8+
<version>3.63.0</version>
99
<relativePath>../pom.xml</relativePath>
1010
</parent>
1111
<modelVersion>4.0.0</modelVersion>
@@ -36,7 +36,7 @@
3636
<dependency>
3737
<groupId>org.eclipse.jetty.websocket</groupId>
3838
<artifactId>websocket-server</artifactId>
39-
<version>9.4.56.v20240826</version>
39+
<version>9.4.57.v20241219</version>
4040
</dependency>
4141
<dependency>
4242
<groupId>org.slf4j</groupId>
@@ -53,12 +53,12 @@
5353
<dependency>
5454
<groupId>com.oracle.oci.sdk</groupId>
5555
<artifactId>oci-java-sdk-aispeech</artifactId>
56-
<version>3.62.1</version>
56+
<version>3.63.0</version>
5757
</dependency>
5858
<dependency>
5959
<groupId>com.oracle.oci.sdk</groupId>
6060
<artifactId>oci-java-sdk-common-httpclient-jersey</artifactId>
61-
<version>3.62.1</version>
61+
<version>3.63.0</version>
6262
<scope>compile</scope>
6363
</dependency>
6464
<dependency>

bmc-addons/bmc-aispeech-realtime/src/main/java/com/oracle/bmc/aispeech/realtimespeech/RealtimeSpeechClient.java

+66-39
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,14 @@
1717
import com.oracle.bmc.aispeech.model.RealtimeMessageResult;
1818
import com.oracle.bmc.aispeech.model.RealtimeMessageSendFinalResult;
1919
import com.oracle.bmc.aispeech.model.RealtimeParameters;
20+
import com.oracle.bmc.aispeech.model.RealtimeParameters.Punctuation;
2021
import com.oracle.bmc.auth.BasicAuthenticationDetailsProvider;
2122
import com.oracle.bmc.http.signing.DefaultRequestSigner;
2223
import com.oracle.bmc.http.signing.RequestSigner;
2324
import com.oracle.bmc.serialization.jackson.JacksonSerializer;
2425
import com.oracle.bmc.util.VisibleForTesting;
2526
import com.oracle.bmc.util.internal.StringUtils;
27+
import org.apache.http.client.utils.URIBuilder;
2628
import org.eclipse.jetty.websocket.api.Session;
2729
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
2830
import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect;
@@ -33,9 +35,9 @@
3335
import org.eclipse.jetty.websocket.client.WebSocketClient;
3436

3537
import java.io.IOException;
38+
import java.io.UnsupportedEncodingException;
3639
import java.net.ConnectException;
3740
import java.net.URI;
38-
import java.net.URLEncoder;
3941
import java.nio.ByteBuffer;
4042
import java.util.HashMap;
4143
import java.util.List;
@@ -72,7 +74,20 @@ public class RealtimeSpeechClient {
7274
.addFilter("explicitlySetFilter", SimpleBeanPropertyFilter.serializeAll());
7375

7476
private final ObjectMapper objectMapper =
75-
JacksonSerializer.getDefaultObjectMapper().setFilterProvider(filters);
77+
JacksonSerializer.getDefaultObjectMapper().copy().setFilterProvider(filters);
78+
79+
private static final String shoudIgnoreInvalidCustomizationsParamString =
80+
"shouldIgnoreInvalidCustomizations";
81+
private static final String isAckEnabledParamString = "isAckEnabled";
82+
private static final String encodingParamString = "encoding";
83+
private static final String partialSilenceThresholdInMsParamString =
84+
"partialSilenceThresholdInMs";
85+
private static final String finalSilenceThresholdInMsParamString = "finalSilenceThresholdInMs";
86+
private static final String stabilizePartialResultsParamString = "stabilizePartialResults";
87+
private static final String languageCodeParamString = "languageCode";
88+
private static final String modelDomainParamString = "modelDomain";
89+
private static final String punctuationParamString = "punctuation";
90+
private static final String customizationsParamString = "customizations";
7691

7792
/**
7893
* Constructor.
@@ -267,64 +282,72 @@ public void open(String realtimeSpeechEndpoint, RealtimeParameters parameters)
267282

268283
final String customizationsJson =
269284
objectMapper.writeValueAsString(parameters.getCustomizations());
270-
String queryParameter = "";
285+
286+
final URIBuilder queryParameterStringBuilder =
287+
new URIBuilder(realtimeSpeechEndpoint + "/ws/transcribe/stream");
288+
271289
if (parameters.getIsAckEnabled() != null) {
272-
queryParameter +=
273-
"isAckEnabled=" + (parameters.getIsAckEnabled() ? "true" : "false") + "&";
290+
queryParameterStringBuilder.addParameter(
291+
isAckEnabledParamString, parameters.getIsAckEnabled().toString());
274292
}
293+
294+
if (parameters.getEncoding() != null && !parameters.getEncoding().isEmpty()) {
295+
queryParameterStringBuilder.addParameter(
296+
encodingParamString, parameters.getEncoding());
297+
}
298+
275299
if (parameters.getShouldIgnoreInvalidCustomizations() != null) {
276-
queryParameter +=
277-
"shouldIgnoreInvalidCustomizations="
278-
+ (parameters.getShouldIgnoreInvalidCustomizations()
279-
? "true"
280-
: "false")
281-
+ "&";
300+
queryParameterStringBuilder.addParameter(
301+
shoudIgnoreInvalidCustomizationsParamString,
302+
parameters.getShouldIgnoreInvalidCustomizations().toString());
282303
}
304+
283305
if (parameters.getPartialSilenceThresholdInMs() != null) {
284-
queryParameter +=
285-
"partialSilenceThresholdInMs="
286-
+ parameters.getPartialSilenceThresholdInMs()
287-
+ "&";
306+
queryParameterStringBuilder.addParameter(
307+
partialSilenceThresholdInMsParamString,
308+
parameters.getPartialSilenceThresholdInMs().toString());
288309
}
310+
289311
if (parameters.getFinalSilenceThresholdInMs() != null) {
290-
queryParameter +=
291-
"finalSilenceThresholdInMs="
292-
+ parameters.getFinalSilenceThresholdInMs()
293-
+ "&";
312+
queryParameterStringBuilder.addParameter(
313+
finalSilenceThresholdInMsParamString,
314+
parameters.getFinalSilenceThresholdInMs().toString());
294315
}
316+
295317
if (parameters.getStabilizePartialResults() != null) {
296-
queryParameter +=
297-
"stabilizePartialResults="
298-
+ parameters.getStabilizePartialResults().getValue()
299-
+ "&";
318+
queryParameterStringBuilder.addParameter(
319+
stabilizePartialResultsParamString,
320+
parameters.getStabilizePartialResults().getValue());
300321
}
322+
301323
if (parameters.getLanguageCode() != null) {
302-
queryParameter += "languageCode=" + parameters.getLanguageCode() + "&";
324+
queryParameterStringBuilder.addParameter(
325+
languageCodeParamString, parameters.getLanguageCode());
303326
}
327+
304328
if (parameters.getModelDomain() != null) {
305-
queryParameter += "modelDomain=" + parameters.getModelDomain().getValue() + "&";
329+
queryParameterStringBuilder.addParameter(
330+
modelDomainParamString, parameters.getModelDomain().getValue());
331+
}
332+
333+
if (parameters.getPunctuation() != null
334+
&& !parameters.getPunctuation().equals(Punctuation.None)) {
335+
queryParameterStringBuilder.addParameter(
336+
punctuationParamString, parameters.getPunctuation().getValue());
306337
}
338+
307339
if (parameters.getCustomizations() != null
308340
&& !parameters.getCustomizations().isEmpty()) {
309-
queryParameter +=
310-
"customizations=" + URLEncoder.encode(customizationsJson, "UTF-8");
341+
queryParameterStringBuilder.addParameter(
342+
customizationsParamString, customizationsJson);
311343
}
312-
if (queryParameter.length() > 0
313-
&& queryParameter.charAt(queryParameter.length() - 1) == '&') {
314-
queryParameter = queryParameter.substring(0, queryParameter.length() - 1);
315-
}
316-
// The server should contain ws or wss
317-
destUri =
318-
new URI(
319-
realtimeSpeechEndpoint
320-
+ "/ws/transcribe/stream?"
321-
+ queryParameter); // TODO
344+
345+
destUri = queryParameterStringBuilder.build();
322346

323347
LOG.info("Connecting to {} \n", destUri);
324348

325349
final ClientUpgradeRequest request = new ClientUpgradeRequest();
326-
LOG.info("Content-Type: {}", parameters.getEncoding());
327-
request.setHeader("Content-Type", parameters.getEncoding());
350+
LOG.debug("Content-Type: {}", parameters.getEncoding());
328351

329352
if (!webSocketClient.isStarted()) {
330353
LOG.info("Client not started, starting it now");
@@ -333,6 +356,10 @@ public void open(String realtimeSpeechEndpoint, RealtimeParameters parameters)
333356

334357
this.session =
335358
webSocketClient.connect(this, destUri, request).get(10, TimeUnit.SECONDS);
359+
} catch (UnsupportedEncodingException e) {
360+
status = Status.ERROR;
361+
LOG.error("Unable to construct the request {}", e);
362+
throw new RealtimeSpeechConnectException(e);
336363
} catch (Exception e) {
337364
status = Status.ERROR;
338365
LOG.error("Open connection exception {}", e);

0 commit comments

Comments
 (0)