This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 2a1343b747fee21ef62b5761459e5bc1e02df62d Author: Francesco Chicchiriccò <[email protected]> AuthorDate: Fri May 9 14:59:06 2025 +0200 Temporarily upgrade to OpenSearch Java 3.0.0-SNAPSHOT to cope with OpenSearch 3.0 --- .../client/OpenSearchClientFactoryBean.java | 23 +++++++++++----------- .../opensearch/client/OpenSearchIndexManager.java | 8 ++++---- .../opensearch/client/OpenSearchProperties.java | 12 +++++------ .../opensearch/dao/OpenSearchRealmSearchDAO.java | 5 ++++- pom.xml | 17 +++++++++++++++- 5 files changed, 41 insertions(+), 24 deletions(-) diff --git a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java index 8bbefceda7..cfdb392a66 100644 --- a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java +++ b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchClientFactoryBean.java @@ -27,11 +27,10 @@ import org.apache.hc.core5.http.Header; import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.message.BasicHeader; -import org.opensearch.client.RestClient; -import org.opensearch.client.RestClientBuilder; import org.opensearch.client.json.jackson.JacksonJsonpMapper; import org.opensearch.client.opensearch.OpenSearchClient; -import org.opensearch.client.transport.rest_client.RestClientTransport; +import org.opensearch.client.transport.httpclient5.ApacheHttpClient5Transport; +import org.opensearch.client.transport.httpclient5.ApacheHttpClient5TransportBuilder; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.FactoryBean; @@ -52,7 +51,7 @@ public class OpenSearchClientFactoryBean implements FactoryBean<OpenSearchClient private String apiKeySecret; - private RestClient restClient; + private ApacheHttpClient5Transport transport; private OpenSearchClient client; @@ -96,7 +95,10 @@ public class OpenSearchClientFactoryBean implements FactoryBean<OpenSearchClient public OpenSearchClient getObject() { synchronized (this) { if (client == null) { - RestClientBuilder builder = RestClient.builder(hosts.toArray(HttpHost[]::new)); + ApacheHttpClient5TransportBuilder builder = ApacheHttpClient5TransportBuilder. + builder(hosts.toArray(HttpHost[]::new)). + setMapper(new JacksonJsonpMapper(JsonMapper.builder(). + findAndAddModules().disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build())); if (username != null && password != null) { String encodedAuth = Base64.getEncoder(). encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8)); @@ -112,11 +114,8 @@ public class OpenSearchClientFactoryBean implements FactoryBean<OpenSearchClient new Header[] { new BasicHeader(HttpHeaders.AUTHORIZATION, "ApiKey " + apiKeyAuth) }); } - restClient = builder.build(); - client = new OpenSearchClient(new RestClientTransport( - restClient, - new JacksonJsonpMapper(JsonMapper.builder(). - findAndAddModules().disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS).build()))); + transport = builder.build(); + client = new OpenSearchClient(transport); } } return client; @@ -129,8 +128,8 @@ public class OpenSearchClientFactoryBean implements FactoryBean<OpenSearchClient @Override public void destroy() throws Exception { - if (restClient != null) { - restClient.close(); + if (transport != null) { + transport.close(); } } } diff --git a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchIndexManager.java b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchIndexManager.java index f47d310315..d499b5c297 100644 --- a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchIndexManager.java +++ b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchIndexManager.java @@ -65,15 +65,15 @@ public class OpenSearchIndexManager { protected final OpenSearchUtils openSearchUtils; - protected final String numberOfShards; + protected final Integer numberOfShards; - protected final String numberOfReplicas; + protected final Integer numberOfReplicas; public OpenSearchIndexManager( final OpenSearchClient client, final OpenSearchUtils ppenSearchUtils, - final String numberOfShards, - final String numberOfReplicas) { + final Integer numberOfShards, + final Integer numberOfReplicas) { this.client = client; this.openSearchUtils = ppenSearchUtils; diff --git a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchProperties.java b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchProperties.java index 78bf78e641..d77d69e863 100644 --- a/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchProperties.java +++ b/ext/opensearch/client-opensearch/src/main/java/org/apache/syncope/ext/opensearch/client/OpenSearchProperties.java @@ -29,9 +29,9 @@ public class OpenSearchProperties { private int indexMaxResultWindow = 10000; - private String numberOfShards = "1"; + private int numberOfShards = 1; - private String numberOfReplicas = "1"; + private int numberOfReplicas = 1; public List<String> getHosts() { return hosts; @@ -49,19 +49,19 @@ public class OpenSearchProperties { this.indexMaxResultWindow = indexMaxResultWindow; } - public String getNumberOfShards() { + public int getNumberOfShards() { return numberOfShards; } - public void setNumberOfShards(final String numberOfShards) { + public void setNumberOfShards(final int numberOfShards) { this.numberOfShards = numberOfShards; } - public String getNumberOfReplicas() { + public int getNumberOfReplicas() { return numberOfReplicas; } - public void setNumberOfReplicas(final String numberOfReplicas) { + public void setNumberOfReplicas(final int numberOfReplicas) { this.numberOfReplicas = numberOfReplicas; } } diff --git a/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java b/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java index 21e88c9eed..5fa88bf2d7 100644 --- a/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java +++ b/ext/opensearch/persistence/src/main/java/org/apache/syncope/core/persistence/opensearch/dao/OpenSearchRealmSearchDAO.java @@ -31,7 +31,9 @@ import org.apache.syncope.core.persistence.api.entity.Realm; import org.apache.syncope.core.spring.security.AuthContextUtils; import org.apache.syncope.ext.opensearch.client.OpenSearchUtils; import org.opensearch.client.opensearch.OpenSearchClient; +import org.opensearch.client.opensearch._types.BuiltinScriptLanguage; import org.opensearch.client.opensearch._types.FieldValue; +import org.opensearch.client.opensearch._types.ScriptLanguage; import org.opensearch.client.opensearch._types.ScriptSortType; import org.opensearch.client.opensearch._types.SearchType; import org.opensearch.client.opensearch._types.SortOptions; @@ -53,7 +55,8 @@ public class OpenSearchRealmSearchDAO implements RealmSearchDAO { protected static final List<SortOptions> REALM_SORT_OPTIONS = List.of( new SortOptions.Builder(). script(s -> s.type(ScriptSortType.Number). - script(t -> t.inline(i -> i.lang("painless"). + script(t -> t.inline(i -> i.lang(ScriptLanguage.builder(). + builtin(BuiltinScriptLanguage.Painless).build()). source("doc['fullPath'].value.chars().filter(ch -> ch == '/').count()"))). order(SortOrder.Asc)). build()); diff --git a/pom.xml b/pom.xml index a568443910..b80dea20ef 100644 --- a/pom.xml +++ b/pom.xml @@ -431,7 +431,7 @@ under the License. <elasticsearch.version>9.0.1</elasticsearch.version> <opensearch.version>3.0.0</opensearch.version> - <opensearch-java.version>2.23.0</opensearch-java.version> + <opensearch-java.version>3.0.0-SNAPSHOT</opensearch-java.version> <openfga.version>v1</openfga.version> @@ -1427,6 +1427,18 @@ under the License. <enabled>false</enabled> </snapshots> </repository> + <!-- TMP --> + <repository> + <id>opensearch.snapshots</id> + <name>OpenSearch Snapshot Repository</name> + <url>https://aws.oss.sonatype.org/content/repositories/snapshots/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> <repository> <id>repository.spring.milestone</id> <name>Spring Milestone Repository</name> @@ -1438,6 +1450,7 @@ under the License. <enabled>false</enabled> </snapshots> </repository> + <!-- /TMP --> <!-- Excluding useless transitive repositories --> <repository> <id>couchbase</id> @@ -1462,6 +1475,7 @@ under the License. <enabled>true</enabled> </snapshots> </pluginRepository> + <!-- TMP --> <pluginRepository> <id>repository.spring.milestone</id> <name>Spring Milestone Repository</name> @@ -1473,6 +1487,7 @@ under the License. <enabled>false</enabled> </snapshots> </pluginRepository> + <!-- /TMP --> </pluginRepositories> <build>
