This is an automated email from the ASF dual-hosted git repository.

apolovtsev pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new e4fb45e1313 IGNITE-28291 Update ScaleCube to 2.7.7 (Java11-compatible) 
(#7816)
e4fb45e1313 is described below

commit e4fb45e13130e576367cd74a45fc8081b0e85287
Author: Alexander Polovtcev <[email protected]>
AuthorDate: Thu Mar 19 11:57:23 2026 +0200

    IGNITE-28291 Update ScaleCube to 2.7.7 (Java11-compatible) (#7816)
---
 build.gradle                                         |  4 ++++
 gradle/libs.versions.toml                            |  4 ++--
 .../network/scalecube/ScaleCubeClusterService.java   | 20 +++++---------------
 .../ScaleCubeDirectMarshallerTransport.java          | 17 +++++++----------
 .../network/scalecube/ScaleCubeTopologyService.java  |  9 ++++++---
 .../ScaleCubeDirectMarshallerTransportTest.java      |  5 ++---
 .../scalecube/ScaleCubeTopologyServiceTest.java      | 13 +++++--------
 settings.gradle                                      |  1 +
 8 files changed, 32 insertions(+), 41 deletions(-)

diff --git a/build.gradle b/build.gradle
index f62aa2775a3..dbe1b130f32 100644
--- a/build.gradle
+++ b/build.gradle
@@ -180,6 +180,10 @@ subprojects {
             }
         }
 
+        maven {
+            url = uri('https://jitpack.io')
+        }
+
         mavenLocal()
     }
 
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index d42ee32d8d5..5ab3325bd2b 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -60,7 +60,7 @@ hamcrest = "3.0"
 hamcrestOptional = "2.0.0"
 hamcrestPath = "1.0.1"
 hamcrestJson = "0.3"
-scalecube = "2.6.17"
+scalecube = "2.7.7-java11"
 calcite = "1.41.0"
 value = "2.12.1"
 janino = "3.1.12"
@@ -251,7 +251,7 @@ spoon-core = { module = "fr.inria.gforge.spoon:spoon-core", 
version.ref = "spoon
 
 fastutil-core = { module = "it.unimi.dsi:fastutil-core", version.ref = 
"fastutil" }
 
-scalecube-cluster = { module = "io.scalecube:scalecube-cluster", version.ref = 
"scalecube" }
+scalecube-cluster = { module = 
"com.github.gridgain.scalecube-cluster:scalecube-cluster", version.ref = 
"scalecube" }
 
 kryo = { module = "com.esotericsoftware:kryo", version.ref = "kryo" }
 
diff --git 
a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterService.java
 
b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterService.java
index 62a4fb881f7..31e92094eb8 100644
--- 
a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterService.java
+++ 
b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeClusterService.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.internal.network.scalecube;
 
 import static io.scalecube.cluster.membership.MembershipEvent.createAdded;
+import static java.util.stream.Collectors.toList;
 import static 
org.apache.ignite.internal.util.CompletableFutures.nullCompletedFuture;
 import static org.apache.ignite.lang.ErrorGroups.Common.INTERNAL_ERR;
 import static 
org.apache.ignite.lang.ErrorGroups.Network.ADDRESS_UNRESOLVED_ERR;
@@ -27,12 +28,10 @@ import io.scalecube.cluster.ClusterImpl;
 import io.scalecube.cluster.ClusterMessageHandler;
 import io.scalecube.cluster.membership.MembershipEvent;
 import io.scalecube.cluster.metadata.MetadataCodec;
-import io.scalecube.net.Address;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.UnknownHostException;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
@@ -40,7 +39,6 @@ import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.TimeoutException;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
 import org.apache.ignite.internal.failure.FailureProcessor;
 import org.apache.ignite.internal.lang.IgniteInternalException;
 import org.apache.ignite.internal.logger.IgniteLogger;
@@ -291,13 +289,15 @@ public class ScaleCubeClusterService implements 
ClusterService {
     }
 
     private ClusterImpl createCluster() {
-        var transport = new 
ScaleCubeDirectMarshallerTransport(parseAddress(localNode.address()), 
messagingService, messageFactory);
+        var transport = new 
ScaleCubeDirectMarshallerTransport(localNode.address(), messagingService, 
messageFactory);
+
+        List<String> seedMembers = 
nodeFinder.findNodes().stream().map(NetworkAddress::toString).collect(toList());
 
         ClusterConfig clusterConfig = 
clusterConfig(config.membership().value())
                 .memberId(localNode.id().toString())
                 .memberAlias(localNode.name())
                 .transport(opts -> opts.transportFactory(transportConfig -> 
transport))
-                .membership(opts -> 
opts.seedMembers(parseAddresses(nodeFinder.findNodes())))
+                .membership(opts -> opts.seedMembers(seedMembers))
                 .metadataCodec(METADATA_CODEC);
 
         return new ClusterImpl(clusterConfig)
@@ -351,16 +351,6 @@ public class ScaleCubeClusterService implements 
ClusterService {
         return new 
UserObjectSerializationContext(userObjectDescriptorRegistry, 
userObjectDescriptorFactory, userObjectMarshaller);
     }
 
-    private static List<Address> parseAddresses(Collection<NetworkAddress> 
addresses) {
-        return addresses.stream()
-                .map(ScaleCubeClusterService::parseAddress)
-                .collect(Collectors.toList());
-    }
-
-    private static Address parseAddress(NetworkAddress address) {
-        return Address.create(address.host(), address.port());
-    }
-
     private void shutdownCluster() {
         ClusterImpl cluster = this.cluster;
 
diff --git 
a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransport.java
 
b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransport.java
index 7222f4c2719..f543bbeab19 100644
--- 
a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransport.java
+++ 
b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransport.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.network.scalecube;
 
 import io.scalecube.cluster.transport.api.Message;
 import io.scalecube.cluster.transport.api.Transport;
-import io.scalecube.net.Address;
 import java.util.Map;
 import java.util.Objects;
 import org.apache.ignite.internal.lang.IgniteInternalException;
@@ -66,7 +65,7 @@ class ScaleCubeDirectMarshallerTransport implements Transport 
{
     private final NetworkMessagesFactory messageFactory;
 
     /** Node address. */
-    private final Address localAddress;
+    private final String localAddress;
 
     /**
      * Constructor.
@@ -76,11 +75,11 @@ class ScaleCubeDirectMarshallerTransport implements 
Transport {
      * @param messageFactory Message factory.
      */
     ScaleCubeDirectMarshallerTransport(
-            Address localAddress,
+            NetworkAddress localAddress,
             MessagingService messagingService,
             NetworkMessagesFactory messageFactory
     ) {
-        this.localAddress = localAddress;
+        this.localAddress = localAddress.toString();
         this.messagingService = messagingService;
         this.messageFactory = messageFactory;
 
@@ -110,7 +109,7 @@ class ScaleCubeDirectMarshallerTransport implements 
Transport {
     }
 
     @Override
-    public Address address() {
+    public String address() {
         return localAddress;
     }
 
@@ -130,10 +129,8 @@ class ScaleCubeDirectMarshallerTransport implements 
Transport {
     }
 
     @Override
-    public Mono<Void> send(Address address, Message message) {
-        var addr = new NetworkAddress(address.host(), address.port());
-
-        return Mono.fromFuture(() -> messagingService.send(addr, 
SCALE_CUBE_CHANNEL_TYPE, fromMessage(message)));
+    public Mono<Void> send(String address, Message message) {
+        return Mono.fromFuture(() -> 
messagingService.send(NetworkAddress.from(address), SCALE_CUBE_CHANNEL_TYPE, 
fromMessage(message)));
     }
 
     /**
@@ -201,7 +198,7 @@ class ScaleCubeDirectMarshallerTransport implements 
Transport {
     }
 
     @Override
-    public Mono<Message> requestResponse(Address address, Message request) {
+    public Mono<Message> requestResponse(String address, Message request) {
         return Mono.create(sink -> {
             Objects.requireNonNull(request, "request must be not null");
             Objects.requireNonNull(request.correlationId(), "correlationId 
must be not null");
diff --git 
a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyService.java
 
b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyService.java
index f9949236a6c..5e57a949989 100644
--- 
a/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyService.java
+++ 
b/modules/network/src/main/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyService.java
@@ -320,9 +320,12 @@ final class ScaleCubeTopologyService extends 
AbstractTopologyService {
      * @return Cluster node.
      */
     private static InternalClusterNode fromMember(Member member, @Nullable 
NodeMetadata nodeMetadata) {
-        var addr = new NetworkAddress(member.address().host(), 
member.address().port());
-
-        return new ClusterNodeImpl(UUID.fromString(member.id()), 
member.alias(), addr, nodeMetadata);
+        return new ClusterNodeImpl(
+                UUID.fromString(member.id()),
+                member.alias(),
+                NetworkAddress.from(member.address()),
+                nodeMetadata
+        );
     }
 
 
diff --git 
a/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransportTest.java
 
b/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransportTest.java
index 814ea1d315c..3e95895bbce 100644
--- 
a/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransportTest.java
+++ 
b/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeDirectMarshallerTransportTest.java
@@ -24,7 +24,6 @@ import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.when;
 
 import io.scalecube.cluster.transport.api.Message;
-import io.scalecube.net.Address;
 import java.util.concurrent.CompletableFuture;
 import org.apache.ignite.internal.network.MessagingService;
 import org.apache.ignite.internal.network.NetworkMessagesFactory;
@@ -47,7 +46,7 @@ class ScaleCubeDirectMarshallerTransportTest extends 
BaseIgniteAbstractTest {
     @BeforeEach
     void createAndStartTransport() {
         transport = new ScaleCubeDirectMarshallerTransport(
-                Address.create("localhost", 3000),
+                new NetworkAddress("localhost", 3000),
                 messagingService,
                 new NetworkMessagesFactory()
         );
@@ -66,7 +65,7 @@ class ScaleCubeDirectMarshallerTransportTest extends 
BaseIgniteAbstractTest {
     void transportSendsByAddress() {
         when(messagingService.send(any(NetworkAddress.class), any(), 
any())).thenReturn(nullCompletedFuture());
 
-        CompletableFuture<Void> future = 
transport.send(Address.create("localhost", 3001), 
Message.withData("test").build()).toFuture();
+        CompletableFuture<Void> future = transport.send("localhost:3001", 
Message.withData("test").build()).toFuture();
 
         assertThat(future, willCompleteSuccessfully());
     }
diff --git 
a/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyServiceTest.java
 
b/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyServiceTest.java
index b3290cc0e7d..71cdcd854d9 100644
--- 
a/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyServiceTest.java
+++ 
b/modules/network/src/test/java/org/apache/ignite/internal/network/scalecube/ScaleCubeTopologyServiceTest.java
@@ -32,7 +32,6 @@ import static 
org.junit.jupiter.api.Assertions.assertDoesNotThrow;
 
 import io.scalecube.cluster.Member;
 import io.scalecube.cluster.membership.MembershipEvent;
-import io.scalecube.net.Address;
 import java.util.UUID;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutorService;
@@ -50,8 +49,8 @@ import org.junit.jupiter.api.extension.ExtendWith;
 class ScaleCubeTopologyServiceTest {
     private final ScaleCubeTopologyService topologyService = new 
ScaleCubeTopologyService();
 
-    private final Member member1 = new Member(new UUID(0, 1).toString(), 
"first", Address.create("host", 1001), "default");
-    private final Member member2 = new Member(new UUID(0, 2).toString(), 
"second", Address.create("host", 1002), "default");
+    private final Member member1 = new Member(new UUID(0, 1).toString(), 
"first", "host:1001", "default");
+    private final Member member2 = new Member(new UUID(0, 2).toString(), 
"second", "host:1002", "default");
 
     @Test
     void addedEventAddsNodeToTopology() {
@@ -96,7 +95,7 @@ class ScaleCubeTopologyServiceTest {
     void getByAddressWorksWithConcurrentModifications(@InjectExecutorService 
ExecutorService executor) {
         testGetNodeWorksWithConcurrentModifications(
                 executor,
-                member -> topologyService.getByAddress(new 
NetworkAddress(member.address().host(), member.address().port()))
+                member -> 
topologyService.getByAddress(NetworkAddress.from(member.address()))
         );
     }
 
@@ -109,7 +108,7 @@ class ScaleCubeTopologyServiceTest {
             @InjectExecutorService ExecutorService executor,
             Function<Member, InternalClusterNode> getter
     ) {
-        Member member = new Member(randomUUID().toString(), "test", 
Address.create("host", 1001), "default");
+        Member member = new Member(randomUUID().toString(), "test", 
"host:1001", "default");
 
         AtomicBoolean proceed = new AtomicBoolean(true);
 
@@ -146,9 +145,7 @@ class ScaleCubeTopologyServiceTest {
         InternalClusterNode firstByConsistentId = 
topologyService.getByConsistentId("first");
         assertThatMatchesFirstMemberNewVersion(firstByConsistentId, 
member1NewVersion);
 
-        InternalClusterNode firstByAddress = topologyService.getByAddress(
-                new NetworkAddress(member1.address().host(), 
member1.address().port())
-        );
+        InternalClusterNode firstByAddress = 
topologyService.getByAddress(NetworkAddress.from(member1.address()));
         assertThatMatchesFirstMemberNewVersion(firstByAddress, 
member1NewVersion);
     }
 
diff --git a/settings.gradle b/settings.gradle
index a4598996721..801925571a9 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -234,6 +234,7 @@ dependencyResolutionManagement {
     repositories {
         maven { url 'https://plugins.gradle.org/m2/' }
         maven { url 'https://repo.maven.apache.org/maven2/' }
+        maven { url 'https://jitpack.io' }
     }
 
     versionCatalogs {

Reply via email to