Red Hat Data Grid - Deprecated Features and Functionality

Updated

Deprecated Features and Functionality

This document lists deprecated features and functionality in Red Hat Data Grid releases.

When features and functionality are deprecated, Red Hat no longer provides support for those capabilities as of the next Data Grid version. Red Hat also removes components, libraries, and other code dependencies that have been deprecated in a previous version.

When migrating or upgrading to a Data Grid release where capabilities or features are deprecated, you should adapt your deployments and dependent application code as necessary.
Deprecation signals the end of Red Hat's intention to test and support certain features.
While inconvenient at times, deprecation is an important part of the lifespan for a software project to ensure technological advancements and reduce security vulnerabilities.
Red Hat's deprecation policy allows you to stay with your current implementation and perform a migration on a phased basis.
However, to get the best enterprise-grade performance from Data Grid and be sure your deployment is fully supported by Red Hat, you should always plan to migrate away from deprecated capabilities and features as soon as possible.

Removed in Data Grid 8.5

See Data Grid 8.5 release notes.

Java EE namespace

If an application added to the RHDG server, or a client HotRod application uses 'javax' packages a migration is mandatory to jakarta.

Java Cache CDI (JCache) support

The JCache CDI implementation has been removed. All other parts of the JCache implementation remain fully functional in a Jakarta EE context.

Java Security Manager

As of JDK 17 has deprecated the SecurityManager/AccessControlContext RHDG has remove related code.

EAP modules for RHDG

EAP 8 will fully support the use of Red Hat DataGrid API as the necessary artifacts are shipped with EAP and public available.
See article EAP 8 now supports full Infinispan functionality.

Clients for C++, .NET, node.js

The Clients for thoses languages will no longer maintained in the future.
It is still possible to use the existing client versions with future versions of the server, the HotRod protocol will handle that.
But new features are not available for such clients if a client side change is required.
For Java 8 the latest RHDG 8.3 client should be used.
For Java 11 the latest RHDG 8.4 client should be used.

Tomcat session manager

Tomcat session manager is no longer distributed.

SpringBoot 2.x and Spring 5.x

Use of SpringBoot 2.x and Spring 5.x has been removed.

Service type 'cache' in InfinispanCR

The service type 'cache' has been removed from the Operator CR.

Production support for Server on Windows

The server is no longer supported if running on a Windows platform in Production

Deprecations in Data Grid 8.4.0

Java EE namespace

The namespace for JavaEE is deprecated and will be removed with RHDG 8.5.
If an application added to the RHDG server, or a client HotRod application uses 'javax' packages a migration is needed.

Java Cache CDI (JCache) support

Because the JCache specification has not been updated to work against the Jakarta EE APIs, the JCache CDI implementation has been removed. All other parts of the JCache implementation remain fully functional in a Jakarta EE context.

Java Security Manager

As of JDK 17 has deprecated the SecurityManager/AccessControlContext RHDG will remove related code with RHDG 8.5.

Java 11 Support

Support for Java 11 is deprecated for server, embedded installations (referred to as Library Mode in previous versions) and for Hot Rod Java clients with server installations. Java 11 support is planned for removal starting with RHDG 8.5.

Note: Hot Rod Java clients that require JDK 11 can continue using older versions of client libraries. Red Hat supports older versions of Hot Rod Java clients that connect to the latest RHDG Server version.

EAP modules for RHDG

EAP 8 will fully support the use of Red Hat DataGrid API as the necessary artifacts are shipped with EAP and public available.
Because of this the EAP modules are deprecated.
The redhat-datagrid....-eap-modules.zip file will no longer shipped with RHDG 8.5.

Clients for C++, .NET, node.js

The Clients for thoses languages will no longer maintained in the future and are deprecated.
It is still possible to use the existing client versions with future versions of the server, the HotRod protocol will handle that. But new features are not available for such clients if a client side change is required.

SpringBoot 2.x and Spring 5.x

Use of SpringBoot 2.x and Spring 5.x is deprecated and will be marked for removal in RHDG 8.5.

RocksDB Cache Store

The RocksDB cache store is deprecated, and the RocksDB implementation is not shipped anymore.

Scattered Cache

Scattered cache is deprecated in Infinispan 14 (used by Data Grid 8.4.0) and marked for removal in RHDG 8.5.

Hide and/or ignore cache

A cache can be marked as hidden within the console or REST command to prevent from access.
The functionallity is deprecated and will be removed in a future release.

Service type 'cache' in InfinispanCR

The service type 'cache' is deprecated and will be marked for removal in RHDG 8.5.

Removed in Data Grid 8.4.0

Java 8 Support
For all installations of RHDG server, use of embedded mode and Java clients it is mandatory to use Java 11 or better.
Legacy Java clients are able to continue with a legacy RHDG version with the lack of missing security or bug fixes.

Deprecations in Data Grid 8.3.0

Server configuration

The following attributes are now deprecated in Data Grid Server configuration:

  • worker-threadsand io-threads attribute on the endpoint element, any configuration will be ignored. The threads are consolidated with the non-blocking pool

Deprecations in Data Grid 8.2.0

Java 8 Support

As of Data Grid 8.0, server installations are supported with JDK 11 only.

As of Data Grid 8.2, support for Java 8 is deprecated for embedded installations (referred to as Library Mode in previous versions) and for Hot Rod Java clients with server installations. Java 8 support is planned for removal starting with RHDG 8.4.

Note: Hot Rod Java clients that require JDK 8 can continue using older versions of client libraries. Red Hat supports older versions of Hot Rod Java clients that connect to the latest RHDG Server version.

Hot Rod Java client trust store property

The Hot Rod Java client configuration API deprecates the .trustStorePath() method and infinispan.client.hotrod.trust_store_path property.

Query statistics

The following endpoints for Ickle query statistics are now deprecated in the REST API:

  • /v2/caches/{cacheName}/search/query/stats
  • /v2/caches/{cacheName}/search/indexes/stats

You should start using the /v2/caches/{cacheName}/search/stats endpoint instead.

Kryo and Protostuff marshallers

The Kryo and Protostuff marshallers are deprecated and planned for removal. You should use ProtoStream for marshalling capabilities.

Cache media type encoding

org.infinispan.commons.dataconversion.Encoder is deprecated and planned for removal without a direct replacement.

Additionally, conversion of cache data between application/x-java-object and application/json media types is not deprecated. For JSON support with RHDG Server requests, you should configure caches with the application/x-protostream encoding.

Indexing configuration

The following elements and properties for configuring indexed caches are now deprecated:

  • property
  • lucene_version
  • default.sharding_strategy.nbr_of_shards
  • infinispan.query.lucene.max-boolean-clauses (You can now configure this as a JVM property only.)

Important: Rather than using the lucene_version` property, Data Grid recommends re-indexing caches after migrating from previous versions instead of re-using underlying indexes on disk created with older Lucene versions.

Server configuration

The following attributes are now deprecated in Data Grid Server configuration:

  • security-realm attribute on the authentication element
  • security-realm attribute on the encryption element
  • worker-threads attribute on the endpointelement is ignored

Removed in Data Grid 8.2.0

Query APIs

The following Query APIs were deprecated in a previous release and are now removed:

  • MassIndexer
  • CacheQuery
  • SearchManager

REST API

Support for the ?action URL parameter with the GET method was deprecated in a previous release and is now removed.

OSGi

Support for OSGi was deprecated in a previous release and is now removed.

Deprecations in Data Grid 8.1.0

JBoss Marshalling

JBoss marshalling is deprecated and Hot Rod Java clients no longer configure GenericJBossMarshaller automatically if you add the infinispan-jboss- marshalling module to your classpath.
You should use Protostream instead of serialization-based marshalling.
However, if you require jboss-marshalling do the following:

  • Add the infinispan-jboss-marshalling dependency to your classpath.
  • Explicitly configure org.infinispan.jboss.marshalling.commons.GenericJBossMarshaller when you create RemoteCacheManager.

Note:
On startup, Data Grid Server writes the following log message:

WARN  (main) [org.infinispan.PERSISTENCE] ISPN000554: jboss-marshalling is deprecated and planned for removal

You can safely ignore this message. It serves as a notification about JBoss Marshalling deprecation.
The deprecation will be reverted with RHDG 8.5 because of requirements.

SearchManager API
The Data Grid This content is not included.SearchManager API is now deprecated and planned for removal.
Important: You should plan to migrate any usage of deprecated search functionality and start using the org.infinispan.query.Search class as an entry point for performing searches with the Ickle query language.

The following methods and interface for performing Data Grid queries are deprecated:

  • org.infinispan.query.SearchManager
  • org.infinispan.query.CacheQuery
  • org.infinispan.query.MassIndexer

The following features for performing Data Grid queries are now deprecated:

  • Legacy, programatic Infinispan Query DSL
  • Custom bridges, declared with @FieldBridge and @ClassBridge.
  • Analyzer definitions, declared with @AnalyzerDef and @NormalizerDef.
  • Dynamic selection of analyzers based on a discriminator, declared with @AnalyzerDiscriminator.
  • Index time boosting, declared as an attribute of the @Field annotation.
  • Definition of a default analyzer, either using the configuration property hibernate.search.analyzer or using the @Analyzer annotation.
  • indexNullAs, used as an attribute in the @Field declaration.
  • The hibernate.search.index_uninverting_allowed configuration that allows regular @Field to be sortable by un-inverting them at runtime.

Data Grid Modules for Red Hat JBoss EAP
Data Grid modules are deprecated and planned for removal as soon as EAP 7.4 is released. EAP 7.4 will include the capability and support using embedded or remote caches without the necessity for additional libraries.
This is a simplified Module and JGroups, Infinispan and endpoint extensions are removed. All components are available in a single org.infinispan module.

Memory Configuration
The binary configuration setting is now deprecated along with the <object>, <binary>, and <off-heap> elements.
It is replaced with a combination of encoding and memory setting, see this documentation

Cross-Site Replication
The org.infinispan.xsite.CustomFailurePolicy interface is deprecated. Use the org.infinispan.configuration.cache.CustomFailurePolicy interface instead.
There is no longer a backup location configuration for local caches because they cannot send or receive updates from remote clusters.

OSGi
OSGi support is deprecated and planned for removal.

ClusterLoader and Lazy Retrieval
The org.infinispan.persistence.cluster.ClusterLoader class is deprecated. This includes the LAZY_RETRIEVAL option for Hot Rod clients because it uses the ClusterLoader class. Both are planned for removal with no direct replacement.

Persistence SPI
Several interfaces in the Persistence SPI are now deprecated, including CacheLoader and CacheWriter. The NonBlockingStore should be used instead.

Removed in Data Grid 8.1.0

  • Attributes for asynchronous cross-site replication are no longer updated so Data Grid 8.1 does not expose them via JMX. This includes AsyncXSiteRequestsReceived, AsyncXSiteAcksCount, AsyncXSiteCount, AverageAsyncXSiteReplicationTime, AverageXSiteReplicationTime, and MinimumAsyncXSiteReplicationTime. Use the synchronous cross-site replication attributes instead, even if you configure asynchronous backups.
  • Total Order transaction protocol.
  • ThreadGroup programmatic configuration. Use the groupName() method ThreadFactoryConfigurationBuilder to be consistent with the declarative configuration.
  • relative-to attribute for Single File cache stores. If your cache store configuration includes this attribute, Data Grid ignores it and uses only path to configure store location.
  • thread-pool-size attribute for Write-Behind mode is removed.
  • allowDuplicateDomains in the global JMX configuration is removed.
  • Native Hibernate and Lucene search functionallity including Spatial Search capabilities.

Deprecations in Data Grid 8.0.0

Multiple Cache Managers

In Data Grid 8 you must not configure multiple cache containers because the Data Grid CLI and Console can handle only one Cache Manager per cluster.
However you can change the name of the cache container to something more meaningful to your environment than "default", if necessary. You should use separate Data Grid clusters to achieve multitenancy to ensure that Cache Managers do not interfere with each other.

SearchManager API
The Data Grid This content is not included.SearchManager API contains direct use of Hibernate and Lucene which is now deprecated and planned for removal.
Important: You should plan to migrate any usage of deprecated search functionality, including Lucene-based queries, and start using the org.infinispan.query.Search class as an entry point for performing searches with the Ickle query language.

The following methods and interface for performing Data Grid queries are also deprecated:

  • .getQuery(org.apache.lucene.search.Query query, ...)
  • .buildQueryBuilderForClass()

The following features for performing Data Grid queries are now deprecated:

  • Native Hibernate Search
  • Spatial search as it uses native Hibernate

Memcached Endpoint Connector
As of this release, Data Grid no longer supports the Memcached endpoint. The Memcached connector in its current implementation is deprecated and planned for removal in a future release.
Note: Memcached will be replaced by the memcached binary protocol, see This content is not included.JDG-3874 which is planned for RHDG 8.5. If you have questions or requirements for the Memcached connector please contact your Red Hat support team to discuss your needs.

JBoss Marshalling
JBoss Marshalling is a Serialization-based marshalling library and was the default marshaller in previous Data Grid versions. You should not use serialization-based marshalling with Data Grid but instead use Protostream, which is a high-performance binary wire format that ensures backwards compatibility.

Externalizers
The following interfaces and annotations are now deprecated:

  • org.infinispan.commons.marshall.AdvancedExternalizer
  • org.infinispan.commons.marshall.Externalizer
  • @SerializeWith

Note: Data Grid ignores AdvancedExternalizer implementations when persisting data unless you use JBoss Marshalling.

Total Order Transaction Protocol
The org.infinispan.transaction.TransactionProtocol#TOTAL_ORDER protocol is deprecated. The default 2PC protocol should be used instead.

Lucene Directory
The functionality to use Data Grid as a shared, in-memory index for Hibernate Search queries is now deprecated.

Custom Interceptors
The functionality to create custom interceptors with the AdvancedCache interface is now deprecated.

Removed in Data Grid 8.0.0

  • Uberjars (replaced with Maven dependencies and individual JAR files)
  • Cassandra Cache Store
  • Apache Spark Connector
  • Apache Hadoop Connector
  • Apache Camel component: jboss-datagrid-camel-library is replaced by the camel-infinispan component in Red Hat Fuse 7.3 and later.
  • REST Cache Store
  • REST API v1 (replaced by REST API v2)
  • Compatibility Mode
  • Distributed Execution
  • CLI Cache Loader
  • LevelDB Cache Store
  • infinispan-cloud (replaced by default configuration in infinispan-core)
  • org.infinispan.atomic package along with the AtomicMap and FineGrainedAtomicMap APIs
  • getBulk() methods in the RemoteCache API for Hot Rod clients
  • JDBC PooledConnectionFactory via C3P0 and HikariCP connection pools
  • infinispan.server.hotrod.workerThreads system property
  • JON Plugin
  • Data Grid Modules for Red Hat JBoss EAP. (Provided in DG 8.1 because of delay for EAP 7.4 which include the RHDG bits)

Deprecations in Data Grid 7.3

Hot Rod v1.x
Hot Rod protocol version 1.x is not supported beyond Data Grid 7.3.

RocksDB Replaces LevelDB Cache Store
The LevelDB cache store is deprecated and replaced with the RocksDB cache store. If you have data stored in a LevelDB cache store, the RocksDB cache store converts it to the SST-based format on the first run.

Compatibility Mode
Compatibility mode is deprecated in 7.3. To access a cache from multiple endpoints, you should store data in binary format and configure the MediaType for keys and values.

Clustered Executor Replaces Distributed Executor API
Data Grid 7.3 replaces Distributed Executor with Clustered Executor, which is a utility for executing arbitrary code in the cluster.

RemoteCache getBulk()
The getBulk() method is deprecated in the RemoteCache interface.

Agroal PooledConnectionFactory Replaces c3p0/HikariCP JDBC PooledConnectionFactory
The JDBC PooledConnectionFactory provides connection pools that you configure with c3p0.properties and hikari.properties. Data Grid 8.0 and later provides a PooledConnectionFactory that you configure only with an agroal compatible properties file.

CLI Loader
infinispan-persistence-cli is deprecated in 7.3.

Deprecated APIs and Classes

  • org.infinispan.atomic package with the AtomicMap and FineGrainedAtomicMap APIs
  • org.infinispan.lifecycle.AbstractModuleLifecycle and org.infinispan.lifecycle.Lifecycle

Eager Near Caching Residual Code
Residual code artifacts for eager near caching functionality are not supported beyond Data Grid 7.3.

Deprecations in Data Grid 7.2

Eviction Configuration
The eviction configuration element is deprecated and replaced with the memory configuration element.

Deprecations in Data Grid 7.1

No deprecations were made in Data Grid 7.1.

Deprecations in Data Grid 7.0

JGroups ENCRYPT Protocol
The JGroups ENCRYPT protocol is deprecated and replaced with either the SYM_ENCRYPT or ASYM_ENCRYPT protocols.

NotifyingFuture Interface
The NotifyingFuture interface is deprecated and replaced with CompletableFuture.

Deprecated Methods
remoteCache.getVersioned is deprecated and replaced with remoteCache.getWithMetadata(Object).
remoteCache.getBulk and getBulk(size) are deprecated and replaced with remoteCache.retrieveEntries* methods.

Custom Interceptors
Support for custom interceptors is deprecated in Data Grid 7.0.

Hibernate Search Classes
The following classes are deprecated in the Hibernate Search modules:

org.hibernate.search.annotations.Key is deprecated with no replacement.
ContainedInMapping#numericField() is deprecated and replaced with field().numericField().

Product(s)
Category
Components
Article Type