From 0bec290d13967c2ee1d7da9ea92177cbf4c9c383 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Mon, 22 Jun 2026 17:41:01 +0300 Subject: [PATCH 1/7] IGNITE-28799 Fix documentation code snippets compilation --- .../clustering/discovery-in-the-cloud.adoc | 4 +- docs/_docs/code-snippets/java/pom.xml | 36 ++++++ .../ignite/snippets/BasicCacheOperations.java | 1 + .../ignite/snippets/DiscoveryInTheCloud.java | 11 +- .../ignite/snippets/IgniteSessionContext.java | 23 +++- .../ignite/snippets/JavaThinClient.java | 12 +- .../org/apache/ignite/snippets/Snapshots.java | 5 +- .../org/apache/ignite/snippets/SqlAPI.java | 3 + .../java/org/apache/ignite/snippets/TDE.java | 1 + .../ignite/snippets/WarmUpStrategy.java | 111 +++++++++++------- .../snippets/WorkingWithBinaryObjects.java | 47 ++++++-- .../org/apache/ignite/snippets/k8s/K8s.java | 4 +- .../ignite/snippets/services/EchoService.java | 2 +- .../snippets/services/EchoServiceImpl.java | 2 +- .../snippets/services/ServiceExample.java | 3 +- 15 files changed, 187 insertions(+), 78 deletions(-) diff --git a/docs/_docs/clustering/discovery-in-the-cloud.adoc b/docs/_docs/clustering/discovery-in-the-cloud.adoc index 9f52c9197750d..8d43a8eeb0c8b 100644 --- a/docs/_docs/clustering/discovery-in-the-cloud.adoc +++ b/docs/_docs/clustering/discovery-in-the-cloud.adoc @@ -273,10 +273,10 @@ tab:C++[unsupported] == Azure Blob Storage Ignite supports automatic node discovery by utilizing Azure Blob Storage. -This mechanism is implemented in `TcpDiscoveryAzureBlobStorageIpFinder`. +This mechanism is implemented in `TcpDiscoveryAzureBlobStoreIpFinder`. On start-up, each node registers its IP address in the storage and discovers other nodes by reading the storage. -IMPORTANT: To use `TcpDiscoveryAzureBlobStorageIpFinder` you must download and link:setup#enabling-modules[enable the 'ignite-azure-ext' extension]. +IMPORTANT: To use `TcpDiscoveryAzureBlobStoreIpFinder` you must download and link:setup#enabling-modules[enable the 'ignite-azure-ext' extension]. Here is an example of how to configure Azure Blob Storage based IP finder: diff --git a/docs/_docs/code-snippets/java/pom.xml b/docs/_docs/code-snippets/java/pom.xml index 990895f58a84b..40d4df04e991b 100644 --- a/docs/_docs/code-snippets/java/pom.xml +++ b/docs/_docs/code-snippets/java/pom.xml @@ -25,6 +25,7 @@ UTF-8 2.19.0-SNAPSHOT + 1.0.0 @@ -67,12 +68,47 @@ ignite-zookeeper ${ignite.version} + + ${project.groupId} + ignite-aws-ext + ${ignite.extensions.version} + + + ${project.groupId} + ignite-azure-ext + ${ignite.extensions.version} + + + ${project.groupId} + ignite-cloud + 2.13.0 + + + ${project.groupId} + ignite-gce-ext + ${ignite.extensions.version} + + + ${project.groupId} + ignite-kubernetes + ${ignite.version} + + + ${project.groupId} + ignite-zookeeper-ip-finder-ext + ${ignite.extensions.version} + ${project.groupId} ignite-opencensus ${ignite.version} + + io.opencensus + opencensus-exporter-trace-zipkin + 0.31.1 + ${project.groupId} diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/BasicCacheOperations.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/BasicCacheOperations.java index 3d445fe453826..60c4023e0d5c2 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/BasicCacheOperations.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/BasicCacheOperations.java @@ -21,6 +21,7 @@ import org.apache.ignite.IgniteCompute; import org.apache.ignite.Ignition; import org.apache.ignite.cache.CacheAtomicityMode; +import org.apache.ignite.cache.ReadRepairStrategy; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.lang.IgniteFuture; import org.junit.jupiter.api.Test; diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/DiscoveryInTheCloud.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/DiscoveryInTheCloud.java index 607eb5aa2d158..66556c2efe85e 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/DiscoveryInTheCloud.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/DiscoveryInTheCloud.java @@ -25,6 +25,7 @@ import org.apache.ignite.Ignition; import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; +import org.apache.ignite.spi.discovery.tcp.ipfinder.azure.TcpDiscoveryAzureBlobStoreIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.cloud.TcpDiscoveryCloudIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.elb.TcpDiscoveryElbIpFinder; import org.apache.ignite.spi.discovery.tcp.ipfinder.gce.TcpDiscoveryGoogleStorageIpFinder; @@ -153,13 +154,13 @@ public static void azureBlobStorageExample() { //tag::azureBlobStorage[] TcpDiscoverySpi spi = new TcpDiscoverySpi(); - TcpDiscoveryAzureBlobStorageIpFinder ipFinder = new TcpDiscoveryGoogleStorageIpFinder(); + TcpDiscoveryAzureBlobStoreIpFinder ipFinder = new TcpDiscoveryAzureBlobStoreIpFinder(); - finder.setAccountName("yourAccountName"); - finder.setAccountKey("yourAccountKey"); - finder.setAccountEndpoint("yourEndpoint"); + ipFinder.setAccountName("yourAccountName"); + ipFinder.setAccountKey("yourAccountKey"); + ipFinder.setAccountEndpoint("yourEndpoint"); - finder.setContainerName("yourContainerName"); + ipFinder.setContainerName("yourContainerName"); spi.setIpFinder(ipFinder); diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/IgniteSessionContext.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/IgniteSessionContext.java index a295169cb002b..e9cecdd8c28ea 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/IgniteSessionContext.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/IgniteSessionContext.java @@ -16,16 +16,17 @@ */ package org.apache.ignite.snippets; -import javax.cache.Cache; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Map; +import javax.cache.Cache; +import org.apache.ignite.Ignite; +import org.apache.ignite.Ignition; +import org.apache.ignite.cache.CacheInterceptor; import org.apache.ignite.cache.query.annotations.QuerySqlFunction; import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.util.typedef.F; -import org.apache.ignite.cache.CacheInterceptor; import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.resources.SessionContextProviderResource; import org.apache.ignite.session.SessionContextProvider; @@ -75,12 +76,22 @@ public class SessionContextCacheInterceptor implements CacheInterceptor entry) { + // No-op. + } + /** */ @Override public @Nullable IgniteBiTuple onBeforeRemove(Cache.Entry entry) { String ret = sesCtxPrv.getSessionContext().getAttribute("onBeforeRemove"); return new IgniteBiTuple<>(ret != null, entry.getValue()); } + + /** */ + @Override public void onAfterRemove(Cache.Entry entry) { + // No-op. + } } //end::cache-interceptor[] @@ -89,9 +100,9 @@ public void igniteSessContext() { //tag::ignite-context[] try (Ignite ign = Ignition.start(ignCfg)) { - Map appAttrs = F.asMap("SESSION_ID", "1234"); + Map appAttrs = Map.of("SESSION_ID", "1234"); - Ignite app = Ignite.withApplicationAttributes(appAttrs); + Ignite app = ign.withApplicationAttributes(appAttrs); //Your code here... } @@ -113,4 +124,4 @@ public void jdbcSessContext() { throw new RuntimeException(e); } } -} \ No newline at end of file +} diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java index 50bb9cd3f939a..fa6944098d809 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java @@ -25,6 +25,8 @@ import javax.cache.event.CacheEntryEvent; import javax.cache.event.CacheEntryListenerException; import javax.cache.event.CacheEntryUpdatedListener; +import javax.cache.processor.EntryProcessor; +import javax.cache.processor.MutableEntry; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteBinary; import org.apache.ignite.Ignition; @@ -32,6 +34,8 @@ import org.apache.ignite.cache.CacheAtomicityMode; import org.apache.ignite.cache.CacheMode; import org.apache.ignite.cache.CacheWriteSynchronizationMode; +import org.apache.ignite.cache.affinity.AffinityFunction; +import org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction; import org.apache.ignite.cache.query.ContinuousQuery; import org.apache.ignite.cache.query.FieldsQueryCursor; import org.apache.ignite.cache.query.Query; @@ -47,6 +51,8 @@ import org.apache.ignite.client.ClientConnectionException; import org.apache.ignite.client.ClientDisconnectListener; import org.apache.ignite.client.ClientException; +import org.apache.ignite.client.ClientPartitionAwarenessMapper; +import org.apache.ignite.client.ClientPartitionAwarenessMapperFactory; import org.apache.ignite.client.ClientTransaction; import org.apache.ignite.client.ClientTransactions; import org.apache.ignite.client.IgniteClient; @@ -361,7 +367,7 @@ void partitionAwareness() throws Exception { // Put, get or remove data from the cache... cache.put(0, "Hello, world!"); // The partition number can be specified with IndexQuery#setPartition(Integer) as well. - ScanQuery scanQuery = new ScanQuery().setPartition(part); + ScanQuery scanQuery = new ScanQuery().setPartition(0); } catch (ClientException e) { System.err.println(e.getMessage()); } @@ -380,10 +386,10 @@ void partitionAwarenessWithCustomMapper() throws Exception { return aff::partition; } - }) + }); try (IgniteClient client = Ignition.startClient(cfg)) { - ClientCache cache = client.cache(PART_CUSTOM_AFFINITY_CACHE_NAME); + ClientCache cache = client.cache("partitioned_custom_affinity_cache"); // Put, get or remove data from the cache, partition awarenes will be enabled. } catch (ClientException e) { diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java index 0aa2fb44414b2..feb3e8a5970a1 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java @@ -16,7 +16,10 @@ */ package org.apache.ignite.snippets; +import java.io.File; +import java.util.Collections; import org.apache.ignite.Ignite; +import org.apache.ignite.IgniteCache; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; @@ -28,7 +31,7 @@ void configuration() { //tag::config[] IgniteConfiguration cfg = new IgniteConfiguration(); - File exSnpDir = U.resolveWorkDirectory(U.defaultWorkDirectory(), "ex_snapshots", true); + File exSnpDir = new File("work", "ex_snapshots"); cfg.setSnapshotPath(exSnpDir.getAbsolutePath()); //end::config[] diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/SqlAPI.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/SqlAPI.java index eff7d0376767a..60308e4b392c9 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/SqlAPI.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/SqlAPI.java @@ -17,8 +17,10 @@ package org.apache.ignite.snippets; import java.io.Serializable; +import java.util.Arrays; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteCache; @@ -26,6 +28,7 @@ import org.apache.ignite.cache.query.SqlFieldsQuery; import org.apache.ignite.cache.query.annotations.QuerySqlField; import org.apache.ignite.cache.query.annotations.QuerySqlFunction; +import org.apache.ignite.cache.query.annotations.QuerySqlTableFunction; import org.apache.ignite.configuration.CacheConfiguration; import org.junit.jupiter.api.Test; diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/TDE.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/TDE.java index d0da94689e128..9391e326e833a 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/TDE.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/TDE.java @@ -16,6 +16,7 @@ */ package org.apache.ignite.snippets; +import java.util.Collections; import org.apache.ignite.Ignite; import org.apache.ignite.Ignition; import org.apache.ignite.configuration.CacheConfiguration; diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WarmUpStrategy.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WarmUpStrategy.java index 667b2d4cf55b9..4d5c80f9be282 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WarmUpStrategy.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WarmUpStrategy.java @@ -14,70 +14,91 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -//tag::warm-all-regions[] -IgniteConfiguration cfg = new IgniteConfiguration(); +package org.apache.ignite.snippets; -DataStorageConfiguration storageCfg = new DataStorageConfiguration(); +import org.apache.ignite.configuration.DataRegionConfiguration; +import org.apache.ignite.configuration.DataStorageConfiguration; +import org.apache.ignite.configuration.IgniteConfiguration; +import org.apache.ignite.configuration.LoadAllWarmUpConfiguration; +import org.apache.ignite.configuration.NoOpWarmUpConfiguration; -//Changing the default warm-up strategy for all data regions -storageCfg.setDefaultWarmUpConfiguration(new LoadAllWarmUpConfiguration()); +public class WarmUpStrategy { + public void warmAllRegions() { + //tag::warm-all-regions[] + IgniteConfiguration cfg = new IgniteConfiguration(); -cfg.setDataStorageConfiguration(storageCfg); -//end::warm-all-regions[] -//tag::warm-specific-region[] -IgniteConfiguration cfg = new IgniteConfiguration(); + DataStorageConfiguration storageCfg = new DataStorageConfiguration(); -DataStorageConfiguration storageCfg = new DataStorageConfiguration(); + //Changing the default warm-up strategy for all data regions + storageCfg.setDefaultWarmUpConfiguration(new LoadAllWarmUpConfiguration()); -//Setting another warm-up strategy for a custom data region -DataRegionConfiguration myNewDataRegion = new DataRegionConfiguration(); + cfg.setDataStorageConfiguration(storageCfg); + //end::warm-all-regions[] + } -myNewDataRegion.setName("NewDataRegion"); + public void warmSpecificRegion() { + //tag::warm-specific-region[] + IgniteConfiguration cfg = new IgniteConfiguration(); -//You can tweak the initial size as well as other settings -myNewDataRegion.setInitialSize(100 * 1024 * 1024); + DataStorageConfiguration storageCfg = new DataStorageConfiguration(); -//Performing data loading from disk in DRAM on restarts. -myNewDataRegion.setWarmUpConfiguration(new LoadAllWarmUpConfiguration()); + //Setting another warm-up strategy for a custom data region + DataRegionConfiguration myNewDataRegion = new DataRegionConfiguration(); -//Enabling Ignite persistence. Ignite reads data from disk when queried for tables/caches from this region. -myNewDataRegion.setPersistenceEnabled(true); + myNewDataRegion.setName("NewDataRegion"); -//Applying the configuration. -storageCfg.setDataRegionConfigurations(myNewDataRegion); + //You can tweak the initial size as well as other settings + myNewDataRegion.setInitialSize(100 * 1024 * 1024); -cfg.setDataStorageConfiguration(storageCfg); -//end::warm-specific-region[] -//tag::disable-all-regions[] -IgniteConfiguration cfg = new IgniteConfiguration(); + //Performing data loading from disk in DRAM on restarts. + myNewDataRegion.setWarmUpConfiguration(new LoadAllWarmUpConfiguration()); -DataStorageConfiguration storageCfg = new DataStorageConfiguration(); + //Enabling Ignite persistence. Ignite reads data from disk when queried for tables/caches from this region. + myNewDataRegion.setPersistenceEnabled(true); -storageCfg.setDefaultWarmUpConfiguration(new NoOpWarmUpConfiguration()); + //Applying the configuration. + storageCfg.setDataRegionConfigurations(myNewDataRegion); -cfg.setDataStorageConfiguration(storageCfg); -//end::disable-all-regions[] -//tag::disable-specific-region[] -IgniteConfiguration cfg = new IgniteConfiguration(); + cfg.setDataStorageConfiguration(storageCfg); + //end::warm-specific-region[] + } -DataStorageConfiguration storageCfg = new DataStorageConfiguration(); + public void disableAllRegions() { + //tag::disable-all-regions[] + IgniteConfiguration cfg = new IgniteConfiguration(); -//Setting another warm-up strategy for a custom data region -DataRegionConfiguration myNewDataRegion = new DataRegionConfiguration(); + DataStorageConfiguration storageCfg = new DataStorageConfiguration(); -myNewDataRegion.setName("NewDataRegion"); + storageCfg.setDefaultWarmUpConfiguration(new NoOpWarmUpConfiguration()); -//You can tweak the initial size as well as other settings -myNewDataRegion.setInitialSize(100 * 1024 * 1024); + cfg.setDataStorageConfiguration(storageCfg); + //end::disable-all-regions[] + } -//Skip data loading from disk in DRAM on restarts. -myNewDataRegion.setWarmUpConfiguration(new NoOpWarmUpConfiguration()); + public void disableSpecificRegion() { + //tag::disable-specific-region[] + IgniteConfiguration cfg = new IgniteConfiguration(); -//Enabling Ignite persistence. Ignite reads data from disk when queried for tables/caches from this region. -myNewDataRegion.setPersistenceEnabled(true); + DataStorageConfiguration storageCfg = new DataStorageConfiguration(); -//Applying the configuration. -storageCfg.setDataRegionConfigurations(myNewDataRegion); + //Setting another warm-up strategy for a custom data region + DataRegionConfiguration myNewDataRegion = new DataRegionConfiguration(); -cfg.setDataStorageConfiguration(storageCfg); -//end::disable-specific-region[] \ No newline at end of file + myNewDataRegion.setName("NewDataRegion"); + + //You can tweak the initial size as well as other settings + myNewDataRegion.setInitialSize(100 * 1024 * 1024); + + //Skip data loading from disk in DRAM on restarts. + myNewDataRegion.setWarmUpConfiguration(new NoOpWarmUpConfiguration()); + + //Enabling Ignite persistence. Ignite reads data from disk when queried for tables/caches from this region. + myNewDataRegion.setPersistenceEnabled(true); + + //Applying the configuration. + storageCfg.setDataRegionConfigurations(myNewDataRegion); + + cfg.setDataStorageConfiguration(storageCfg); + //end::disable-specific-region[] + } +} diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WorkingWithBinaryObjects.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WorkingWithBinaryObjects.java index 0c7fc69d3d1c9..63a4f91449570 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WorkingWithBinaryObjects.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/WorkingWithBinaryObjects.java @@ -19,6 +19,7 @@ import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import javax.cache.Cache; import org.apache.ignite.Ignite; import org.apache.ignite.IgniteBinary; import org.apache.ignite.IgniteCache; @@ -34,8 +35,12 @@ import org.apache.ignite.binary.BinaryTypeConfiguration; import org.apache.ignite.binary.BinaryWriter; import org.apache.ignite.cache.CacheEntryProcessor; +import org.apache.ignite.cache.CacheInterceptor; import org.apache.ignite.configuration.BinaryConfiguration; +import org.apache.ignite.configuration.CacheConfiguration; import org.apache.ignite.configuration.IgniteConfiguration; +import org.apache.ignite.lang.IgniteBiTuple; +import org.jetbrains.annotations.Nullable; public class WorkingWithBinaryObjects { @@ -145,38 +150,56 @@ public static void configuringBinaryObjects() { //tag::keepBinaryWithCacheInterceptor[] public static void cacheWithInterceptorExample() { try (Ignite ignite = Ignition.start()) { - CacheConfiguration specConfig = new CacheConfiguration("personSpecCache"); - ccfg.setInterceptor(new CustomInterceptor(false)); - IgniteCache cache = ignite.createCache(ccfg); + CacheConfiguration specConfig = new CacheConfiguration<>("personSpecCache"); + specConfig.setInterceptor(new CustomInterceptor<>(false)); + IgniteCache cache = ignite.createCache(specConfig); cache.put(1, new Person(1, "FirstPerson")); - CacheConfiguration boConfig = new CacheConfiguration("boSpecCache"); - ccfg.setInterceptor(new CustomInterceptor(true)); - IgniteCache cache = ignite.createCache(ccfg); - cache = cache.withKeepBinary(); - cache.put(1, new Person(1, "FirstPerson")); + CacheConfiguration boConfig = new CacheConfiguration<>("boSpecCache"); + boConfig.setInterceptor(new CustomInterceptor<>(true)); + IgniteCache binaryCache = ignite.createCache(boConfig).withKeepBinary(); + binaryCache.put(1, ignite.binary().toBinary(new Person(1, "FirstPerson"))); } } - private static class CustomInterceptor implements CacheInterceptor { + private static class CustomInterceptor implements CacheInterceptor { boolean keepBinary; CustomInterceptor(boolean keepBinary) { this.keepBinary = keepBinary; } - @Nullable @Override public Object onBeforePut(Cache.Entry entry, Object newVal) { + /** */ + @Nullable @Override public V onGet(K key, @Nullable V val) { + return val; + } + + /** */ + @Nullable @Override public V onBeforePut(Cache.Entry entry, V newVal) { assert keepBinary == newVal instanceof BinaryObject; // do smth. + return newVal; } - @Nullable @Override public IgniteBiTuple onBeforeRemove(Cache.Entry entry) { - Object val = entry.getValue(); + /** */ + @Override public void onAfterPut(Cache.Entry entry) { + // No-op. + } + + /** */ + @Nullable @Override public IgniteBiTuple onBeforeRemove(Cache.Entry entry) { + V val = entry.getValue(); if (val != null) { assert keepBinary == entry.getValue() instanceof BinaryObject; } // do smth. + return new IgniteBiTuple<>(false, val); + } + + /** */ + @Override public void onAfterRemove(Cache.Entry entry) { + // No-op. } } //end::keepBinaryWithCacheInterceptor[] diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/k8s/K8s.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/k8s/K8s.java index 856ac0ec0486e..121ff30265705 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/k8s/K8s.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/k8s/K8s.java @@ -19,7 +19,9 @@ import org.apache.ignite.Ignition; import org.apache.ignite.client.ClientCache; import org.apache.ignite.client.IgniteClient; +import org.apache.ignite.client.ThinClientKubernetesAddressFinder; import org.apache.ignite.configuration.ClientConfiguration; +import org.apache.ignite.kubernetes.configuration.KubernetesConnectionConfiguration; public class K8s { @@ -47,7 +49,7 @@ public static void connectThinClientWithConfiguration() throws Exception { ClientConfiguration ccfg = new ClientConfiguration(); ccfg.setAddressesFinder(new ThinClientKubernetesAddressFinder(kcfg)); - IgniteClient client = Ignition.startClient(cfg); + IgniteClient client = Ignition.startClient(ccfg); ClientCache cache = client.getOrCreateCache("test_cache"); diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoService.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoService.java index 70a7227dc8b36..114680651ad81 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoService.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoService.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ignite.examples; +package org.apache.ignite.snippets.services; import org.apache.ignite.services.Service; diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceImpl.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceImpl.java index cfa934800e41d..a39cd9cc6f736 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceImpl.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceImpl.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ignite.examples; +package org.apache.ignite.snippets.services; import org.apache.ignite.resources.ServiceContextResource; import org.apache.ignite.services.ServiceCallContext; diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java index cd9218bcf789a..c51b116e07e9e 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/ServiceExample.java @@ -23,7 +23,8 @@ import org.apache.ignite.configuration.IgniteConfiguration; import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.services.ServiceConfiguration; -import org.junit.Test; +import org.apache.ignite.services.ServiceCallContext; +import org.junit.jupiter.api.Test; public class ServiceExample { From efbf32fc429a582ef9fc0d95845fa16058dc76e5 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Fri, 26 Jun 2026 12:18:46 +0300 Subject: [PATCH 2/7] IGNITE-28799 Fix warm-up documentation references --- docs/_docs/memory-configuration/data-regions.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/_docs/memory-configuration/data-regions.adoc b/docs/_docs/memory-configuration/data-regions.adoc index 9f958c77278ec..27f089dad0bf1 100644 --- a/docs/_docs/memory-configuration/data-regions.adoc +++ b/docs/_docs/memory-configuration/data-regions.adoc @@ -88,7 +88,7 @@ Ignite does not require you to warm memory up from disk on restarts. As soon as Presently, the Ignite warm-up strategy implies loading data into all or specific data regions of Ignite, starting with indexes, until it runs out of free space. It can be configured both for all regions (by default) or for each region separately. -To warm up all data regions, pass the configuration parameter `LoadAllWarmUpStrategy` to the `DataStorageConfiguration#setDefaultWarmUpConfiguration` as follows: +To warm up all data regions, pass the configuration parameter `LoadAllWarmUpConfiguration` to the `DataStorageConfiguration#setDefaultWarmUpConfiguration` as follows: :xmlFile: code-snippets/xml/warm-up-strategy.xml :javaFile: {javaCodeDir}/WarmUpStrategy.java @@ -111,7 +111,7 @@ tab:C++[unsupported] -- -To warm up a specific data region, pass the configuration parameter `LoadAllWarmUpStrategy` to the `DataStorageConfiguration#setWarmUpConfiguration` as follows: +To warm up a specific data region, pass the configuration parameter `LoadAllWarmUpConfiguration` to the `DataRegionConfiguration#setWarmUpConfiguration` as follows: [tabs] @@ -153,7 +153,7 @@ tab:C++[unsupported] -- -To stop the warm-up for a specific data region, pass the configuration parameter `NoOpWarmUpStrategy` to the `DataStorageConfiguration#setWarmUpConfiguration` as follows: +To stop the warm-up for a specific data region, pass the configuration parameter `NoOpWarmUpConfiguration` to the `DataRegionConfiguration#setWarmUpConfiguration` as follows: [tabs] -- From 8a8ef699da60ffe76394214afd14b050d3e69681 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Fri, 26 Jun 2026 12:28:10 +0300 Subject: [PATCH 3/7] IGNITE-28799 Document legacy cloud snippet dependency --- docs/_docs/code-snippets/java/pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/_docs/code-snippets/java/pom.xml b/docs/_docs/code-snippets/java/pom.xml index 40d4df04e991b..ab6aeaee0d94e 100644 --- a/docs/_docs/code-snippets/java/pom.xml +++ b/docs/_docs/code-snippets/java/pom.xml @@ -80,6 +80,8 @@ ${project.groupId} + ignite-cloud 2.13.0 From 3ac788eb365659e7005e1f5ce997635a9922f396 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Fri, 26 Jun 2026 12:28:34 +0300 Subject: [PATCH 4/7] IGNITE-28799 Clarify snapshot path example --- .../java/src/main/java/org/apache/ignite/snippets/Snapshots.java | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java index feb3e8a5970a1..fe0c026ed501e 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/Snapshots.java @@ -31,6 +31,7 @@ void configuration() { //tag::config[] IgniteConfiguration cfg = new IgniteConfiguration(); + // Any directory the Ignite process can write to (example value). File exSnpDir = new File("work", "ex_snapshots"); cfg.setSnapshotPath(exSnpDir.getAbsolutePath()); From f71732cb46b952f594bb73eb407d71192a8011ec Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Fri, 26 Jun 2026 12:30:53 +0300 Subject: [PATCH 5/7] IGNITE-28799 Reformat cloud dependency comment --- docs/_docs/code-snippets/java/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/_docs/code-snippets/java/pom.xml b/docs/_docs/code-snippets/java/pom.xml index ab6aeaee0d94e..3ddb1e6261008 100644 --- a/docs/_docs/code-snippets/java/pom.xml +++ b/docs/_docs/code-snippets/java/pom.xml @@ -80,8 +80,7 @@ ${project.groupId} - + ignite-cloud 2.13.0 From 9be16dfbb11ef926006a713ecbe151654f041f07 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Fri, 26 Jun 2026 15:21:23 +0300 Subject: [PATCH 6/7] IGNITE-28799 Fix service interceptor snippet package --- .../ignite/snippets/services/EchoServiceAccessInterceptor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceAccessInterceptor.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceAccessInterceptor.java index 9137c52214db7..1bbff74228461 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceAccessInterceptor.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/services/EchoServiceAccessInterceptor.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.ignite.examples; +package org.apache.ignite.snippets.services; import java.util.concurrent.Callable; import org.apache.ignite.services.ServiceCallContext; From 4785ac8fa6a31b3f669643e9bcddc57b54206b62 Mon Sep 17 00:00:00 2001 From: chesnokoff Date: Fri, 26 Jun 2026 15:47:05 +0300 Subject: [PATCH 7/7] IGNITE-28799 Clarify partition-aware scan query snippet --- .../java/org/apache/ignite/snippets/JavaThinClient.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java index fa6944098d809..f8ec3b224b113 100644 --- a/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java +++ b/docs/_docs/code-snippets/java/src/main/java/org/apache/ignite/snippets/JavaThinClient.java @@ -365,9 +365,11 @@ void partitionAwareness() throws Exception { try (IgniteClient client = Ignition.startClient(cfg)) { ClientCache cache = client.cache("myCache"); // Put, get or remove data from the cache... - cache.put(0, "Hello, world!"); - // The partition number can be specified with IndexQuery#setPartition(Integer) as well. - ScanQuery scanQuery = new ScanQuery().setPartition(0); + + // Route the scan query to a node that owns the specified partition. + ScanQuery scanQuery = new ScanQuery().setPartition(0); + + cache.query(scanQuery); } catch (ClientException e) { System.err.println(e.getMessage()); }