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