This is an automated email from the ASF dual-hosted git repository.
nizhikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git
The following commit(s) were added to refs/heads/master by this push:
new 2aeba5cf2f4 IGNITE-20528 Support cache objects transformation for
StandaloneKernal (#11001)
2aeba5cf2f4 is described below
commit 2aeba5cf2f4325175692ef311dacad5061f0d8c3
Author: Anton Vinogradov <[email protected]>
AuthorDate: Tue Oct 24 07:22:38 2023 +0300
IGNITE-20528 Support cache objects transformation for StandaloneKernal
(#11001)
---
.../AbstractCacheObjectCompressionTest.java | 2 +-
.../apache/ignite/internal/GridKernalContext.java | 8 ++
.../ignite/internal/GridKernalContextImpl.java | 12 +++
.../org/apache/ignite/internal/IgniteKernal.java | 12 ++-
...r.java => CacheObjectTransformerProcessor.java} | 4 +-
.../org/apache/ignite/internal/cdc/CdcMain.java | 1 +
.../cache/CacheObjectTransformerUtils.java | 29 ++++--
.../processors/cache/GridCacheProcessor.java | 6 +-
.../processors/cache/GridCacheSharedContext.java | 24 +----
.../snapshot/IgniteSnapshotManager.java | 2 +-
.../wal/reader/IgniteWalIteratorFactory.java | 33 ++++++-
.../wal/reader/StandaloneGridKernalContext.java | 45 +++++++--
.../reader/StandaloneIgnitePluginProcessor.java | 5 +-
.../apache/ignite/internal/util/IgniteUtils.java | 11 +++
.../apache/ignite/cdc/TransformedCdcSelfTest.java} | 34 +++----
.../db/wal/IgniteWalIteratorSwitchSegmentTest.java | 2 -
.../pagemem/BPlusTreePageMemoryImplTest.java | 3 +-
.../BPlusTreeReuseListPageMemoryImplTest.java | 1 -
.../pagemem/IndexStoragePageMemoryImplTest.java | 3 +-
.../pagemem/PageMemoryImplNoLoadTest.java | 1 -
.../persistence/pagemem/PageMemoryImplTest.java | 1 -
.../AbstractCacheObjectTransformationTest.java | 2 +-
.../TestCacheObjectTransformerManagerAdapter.java | 63 -------------
.../TestCacheObjectTransformerPluginProvider.java | 8 +-
...TestCacheObjectTransformerProcessorAdapter.java | 103 +++++++++++++++++++++
.../loadtests/hashmap/GridCacheTestContext.java | 3 +-
.../ignite/testsuites/IgnitePdsTestSuite2.java | 2 +
...dexQueryCacheKeyValueTransformedFieldsTest.java | 4 +-
28 files changed, 268 insertions(+), 156 deletions(-)
diff --git
a/modules/compress/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectCompressionTest.java
b/modules/compress/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectCompressionTest.java
index a9451d88211..e1f0dead6a4 100644
---
a/modules/compress/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectCompressionTest.java
+++
b/modules/compress/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectCompressionTest.java
@@ -89,7 +89,7 @@ public abstract class AbstractCacheObjectCompressionTest
extends AbstractCacheOb
/**
*
*/
- protected static class CompressionTransformer extends
TestCacheObjectTransformerManagerAdapter {
+ protected static class CompressionTransformer extends
TestCacheObjectTransformerProcessorAdapter {
/** Comptession type. */
protected static volatile CompressionType type =
CompressionType.defaultType();
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
index 544b6b5d2eb..0de85f965f8 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
@@ -24,6 +24,7 @@ import java.util.concurrent.Executor;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.cache.query.index.IndexProcessor;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
import org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager;
import org.apache.ignite.internal.managers.collision.GridCollisionManager;
import org.apache.ignite.internal.managers.communication.GridIoManager;
@@ -207,6 +208,13 @@ public interface GridKernalContext extends
Iterable<GridComponent> {
*/
public MaintenanceRegistry maintenanceRegistry();
+ /**
+ * Gets transformation processor.
+ *
+ * @return Transformation processor.
+ */
+ public CacheObjectTransformerProcessor transformer();
+
/**
* Gets system view manager.
*
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
index 18e70f0326a..9bce003e3cc 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
@@ -39,6 +39,7 @@ import org.apache.ignite.cluster.ClusterNode;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.failure.FailureType;
import org.apache.ignite.internal.cache.query.index.IndexProcessor;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
import org.apache.ignite.internal.maintenance.MaintenanceProcessor;
import org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager;
import org.apache.ignite.internal.managers.collision.GridCollisionManager;
@@ -332,6 +333,10 @@ public class GridKernalContextImpl implements
GridKernalContext, Externalizable
@GridToStringExclude
private MaintenanceProcessor maintenanceProc;
+ /** */
+ @GridToStringExclude
+ private CacheObjectTransformerProcessor transProc;
+
/** */
@GridToStringExclude
private List<GridComponent> comps = new LinkedList<>();
@@ -585,6 +590,8 @@ public class GridKernalContextImpl implements
GridKernalContext, Externalizable
durableBackgroundTasksProcessor =
(DurableBackgroundTasksProcessor)comp;
else if (comp instanceof MaintenanceProcessor)
maintenanceProc = (MaintenanceProcessor)comp;
+ else if (comp instanceof CacheObjectTransformerProcessor)
+ transProc = (CacheObjectTransformerProcessor)comp;
else if (comp instanceof PerformanceStatisticsProcessor)
perfStatProc = (PerformanceStatisticsProcessor)comp;
else if (comp instanceof IndexProcessor)
@@ -687,6 +694,11 @@ public class GridKernalContextImpl implements
GridKernalContext, Externalizable
return maintenanceProc;
}
+ /** {@inheritDoc} */
+ @Override public CacheObjectTransformerProcessor transformer() {
+ return transProc;
+ }
+
/** {@inheritDoc} */
@Override public GridCacheProcessor cache() {
return cacheProc;
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 538840c3bd3..0cafc69d0c4 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -91,6 +91,7 @@ import org.apache.ignite.internal.binary.BinaryEnumCache;
import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.binary.BinaryUtils;
import org.apache.ignite.internal.cache.query.index.IndexProcessor;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
import org.apache.ignite.internal.cluster.ClusterGroupAdapter;
import org.apache.ignite.internal.cluster.IgniteClusterEx;
import org.apache.ignite.internal.maintenance.MaintenanceProcessor;
@@ -917,8 +918,7 @@ public class IgniteKernal implements IgniteEx,
Externalizable {
throw new IgniteCheckedException("User attribute has illegal
name: '" + name + "'. Note that all names " +
"starting with '" + ATTR_PREFIX + "' are reserved for
internal use.");
- List<PluginProvider> plugins = cfg.getPluginProviders() != null &&
cfg.getPluginProviders().length > 0 ?
- Arrays.asList(cfg.getPluginProviders()) : U.allPluginProviders();
+ List<PluginProvider> plugins = U.allPluginProviders(cfg);
// Spin out SPIs & managers.
try {
@@ -1101,6 +1101,11 @@ public class IgniteKernal implements IgniteEx,
Externalizable {
startProcessor(new DistributedConfigurationProcessor(ctx));
startProcessor(new DurableBackgroundTasksProcessor(ctx));
+ CacheObjectTransformerProcessor transProc =
createComponent(CacheObjectTransformerProcessor.class, ctx);
+
+ if (transProc != null)
+ startProcessor(transProc);
+
startTimer.finishGlobalStage("Start processors");
// Start plugins.
@@ -3321,6 +3326,9 @@ public class IgniteKernal implements IgniteEx,
Externalizable {
if (cls.equals(IgniteRestProcessor.class))
return (T)new GridRestProcessor(ctx);
+ if (cls.equals(CacheObjectTransformerProcessor.class))
+ return null;
+
Class<T> implCls = null;
try {
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/cache/transform/CacheObjectTransformerManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/cache/transform/CacheObjectTransformerProcessor.java
similarity index 91%
rename from
modules/core/src/main/java/org/apache/ignite/internal/cache/transform/CacheObjectTransformerManager.java
rename to
modules/core/src/main/java/org/apache/ignite/internal/cache/transform/CacheObjectTransformerProcessor.java
index 3d693589559..e08258d4815 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/cache/transform/CacheObjectTransformerManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/cache/transform/CacheObjectTransformerProcessor.java
@@ -19,13 +19,13 @@ package org.apache.ignite.internal.cache.transform;
import java.nio.ByteBuffer;
import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import org.apache.ignite.internal.processors.cache.GridCacheSharedManager;
+import org.apache.ignite.internal.processors.GridProcessor;
import org.jetbrains.annotations.Nullable;
/**
* Provides cache object's bytes transformation (eg. encryption, compression,
etc).
*/
-public interface CacheObjectTransformerManager extends GridCacheSharedManager {
+public interface CacheObjectTransformerProcessor extends GridProcessor {
/**
* Transforms the data.
*
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcMain.java
b/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcMain.java
index 2e5914d58d2..079b5ed72f6 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcMain.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/cdc/CdcMain.java
@@ -484,6 +484,7 @@ public class CdcMain implements Runnable {
.log(log)
.binaryMetadataFileStoreDir(binaryMeta)
.marshallerMappingFileStoreDir(marshaller)
+ .igniteConfigurationModifier((cfg) ->
cfg.setPluginProviders(igniteCfg.getPluginProviders()))
.keepBinary(cdcCfg.isKeepBinary())
.filesOrDirs(segment.toFile())
.addFilter((type, ptr) -> type == DATA_RECORD_V2 || type ==
CDC_DATA_RECORD);
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectTransformerUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectTransformerUtils.java
index d6db1e0f72c..58eff96b98c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectTransformerUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheObjectTransformerUtils.java
@@ -19,7 +19,7 @@ package org.apache.ignite.internal.processors.cache;
import java.nio.ByteBuffer;
import org.apache.ignite.events.CacheObjectTransformedEvent;
-import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerManager;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
import org.apache.ignite.internal.util.typedef.internal.U;
import static org.apache.ignite.events.EventType.EVT_CACHE_OBJECT_TRANSFORMED;
@@ -28,12 +28,12 @@ import static
org.apache.ignite.internal.binary.GridBinaryMarshaller.TRANSFORMED
/** */
public class CacheObjectTransformerUtils {
/** */
- private static CacheObjectTransformerManager
transformer(CacheObjectValueContext ctx) {
- return ctx.kernalContext().cache().context().transformer();
+ private static CacheObjectTransformerProcessor
transformer(CacheObjectValueContext ctx) {
+ return ctx.kernalContext().transformer();
}
/**
- * Transforms bytes according to {@link CacheObjectTransformerManager}
when specified.
+ * Transforms bytes according to {@link CacheObjectTransformerProcessor}
when specified.
* @param bytes Given bytes.
* @param ctx Context.
* @return Transformed bytes.
@@ -43,7 +43,7 @@ public class CacheObjectTransformerUtils {
}
/**
- * Transforms bytes according to {@link CacheObjectTransformerManager}
when specified.
+ * Transforms bytes according to {@link CacheObjectTransformerProcessor}
when specified.
* @param bytes Given bytes.
* @param ctx Context.
* @return Transformed bytes.
@@ -51,7 +51,7 @@ public class CacheObjectTransformerUtils {
public static byte[] transformIfNecessary(byte[] bytes, int offset, int
length, CacheObjectValueContext ctx) {
assert bytes[offset] != TRANSFORMED;
- CacheObjectTransformerManager transformer = transformer(ctx);
+ CacheObjectTransformerProcessor transformer = transformer(ctx);
if (transformer == null)
return bytes;
@@ -64,7 +64,7 @@ public class CacheObjectTransformerUtils {
byte[] res = toArray(transformed);
- if
(ctx.kernalContext().event().isRecordable(EVT_CACHE_OBJECT_TRANSFORMED)) {
+ if (recordable(ctx, EVT_CACHE_OBJECT_TRANSFORMED)) {
ctx.kernalContext().event().record(
new
CacheObjectTransformedEvent(ctx.kernalContext().discovery().localNode(),
"Object transformed",
@@ -79,7 +79,7 @@ public class CacheObjectTransformerUtils {
else {
byte[] res = detachIfNecessary(bytes, offset, length);
- if
(ctx.kernalContext().event().isRecordable(EVT_CACHE_OBJECT_TRANSFORMED)) {
+ if (recordable(ctx, EVT_CACHE_OBJECT_TRANSFORMED)) {
ctx.kernalContext().event().record(
new
CacheObjectTransformedEvent(ctx.kernalContext().discovery().localNode(),
"Object transformation was cancelled.",
@@ -117,14 +117,14 @@ public class CacheObjectTransformerUtils {
if (bytes[0] != TRANSFORMED)
return bytes;
- CacheObjectTransformerManager transformer = transformer(ctx);
+ CacheObjectTransformerProcessor transformer = transformer(ctx);
ByteBuffer src = ByteBuffer.wrap(bytes, 1, bytes.length - 1); //
Skipping TRANSFORMED.
ByteBuffer restored = transformer.restore(src);
byte[] res = toArray(restored);
- if
(ctx.kernalContext().event().isRecordable(EVT_CACHE_OBJECT_TRANSFORMED)) {
+ if (recordable(ctx, EVT_CACHE_OBJECT_TRANSFORMED)) {
ctx.kernalContext().event().record(
new
CacheObjectTransformedEvent(ctx.kernalContext().discovery().localNode(),
"Object restored",
@@ -158,4 +158,13 @@ public class CacheObjectTransformerUtils {
return buf.array();
}
}
+
+ /**
+ * @param ctx Context.
+ * @param type Type.
+ */
+ private static boolean recordable(CacheObjectValueContext ctx, int type) {
+ return ctx.kernalContext().event() != null // Can be null at external
usage (via StandaloneGridKernalContext)
+ && ctx.kernalContext().event().isRecordable(type);
+ }
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 482ea647e8a..2a12207311c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -78,7 +78,6 @@ import org.apache.ignite.internal.IgniteTransactionsEx;
import org.apache.ignite.internal.binary.BinaryContext;
import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.binary.GridBinaryMarshaller;
-import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerManager;
import org.apache.ignite.internal.cluster.ClusterTopologyCheckedException;
import org.apache.ignite.internal.cluster.DetachedClusterNode;
import org.apache.ignite.internal.managers.communication.GridIoPolicy;
@@ -3074,8 +3073,6 @@ public class GridCacheProcessor extends
GridProcessorAdapter {
if (snapshotMgr == null)
snapshotMgr = new IgniteSnapshotManager(ctx);
- CacheObjectTransformerManager transMgr =
ctx.plugins().createComponent(CacheObjectTransformerManager.class);
-
GridCacheIoManager ioMgr = new GridCacheIoManager();
CacheAffinitySharedManager topMgr = new CacheAffinitySharedManager();
GridCacheSharedTtlCleanupManager ttl = new
GridCacheSharedTtlCleanupManager();
@@ -3106,8 +3103,7 @@ public class GridCacheProcessor extends
GridProcessorAdapter {
jta,
storeSesLsnrs,
mvccCachingMgr,
- diagnosticMgr,
- transMgr
+ diagnosticMgr
);
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
index 6811c5d660d..b0cf6b0b93f 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheSharedContext.java
@@ -36,7 +36,6 @@ import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.configuration.TransactionConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.IgniteInternalFuture;
-import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerManager;
import org.apache.ignite.internal.managers.communication.GridIoManager;
import org.apache.ignite.internal.managers.deployment.GridDeploymentManager;
import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
@@ -140,9 +139,6 @@ public class GridCacheSharedContext<K, V> {
/** Mvcc caching manager. */
private MvccCachingManager mvccCachingMgr;
- /** Cache objects transformation manager. */
- private CacheObjectTransformerManager transMgr;
-
/** Cache contexts map. */
private final ConcurrentHashMap<Integer, GridCacheContext<K, V>> ctxMap;
@@ -229,8 +225,7 @@ public class GridCacheSharedContext<K, V> {
CacheJtaManagerAdapter jtaMgr,
Collection<CacheStoreSessionListener> storeSesLsnrs,
MvccCachingManager mvccCachingMgr,
- CacheDiagnosticManager diagnosticMgr,
- CacheObjectTransformerManager transMgr
+ CacheDiagnosticManager diagnosticMgr
) {
this.kernalCtx = kernalCtx;
@@ -253,8 +248,7 @@ public class GridCacheSharedContext<K, V> {
ttlMgr,
evictMgr,
mvccCachingMgr,
- diagnosticMgr,
- transMgr
+ diagnosticMgr
);
this.storeSesLsnrs = storeSesLsnrs;
@@ -432,8 +426,7 @@ public class GridCacheSharedContext<K, V> {
ttlMgr,
evictMgr,
mvccCachingMgr,
- diagnosticMgr,
- transMgr
+ diagnosticMgr
);
this.mgrs = mgrs;
@@ -482,8 +475,7 @@ public class GridCacheSharedContext<K, V> {
GridCacheSharedTtlCleanupManager ttlMgr,
PartitionsEvictManager evictMgr,
MvccCachingManager mvccCachingMgr,
- CacheDiagnosticManager diagnosticMgr,
- CacheObjectTransformerManager transMgr
+ CacheDiagnosticManager diagnosticMgr
) {
this.diagnosticMgr = add(mgrs, diagnosticMgr);
this.mvccMgr = add(mgrs, mvccMgr);
@@ -506,7 +498,6 @@ public class GridCacheSharedContext<K, V> {
this.ttlMgr = add(mgrs, ttlMgr);
this.evictMgr = add(mgrs, evictMgr);
this.mvccCachingMgr = add(mgrs, mvccCachingMgr);
- this.transMgr = add(mgrs, transMgr);
}
/**
@@ -876,13 +867,6 @@ public class GridCacheSharedContext<K, V> {
return diagnosticMgr;
}
- /**
- * @return Cache objects transformation manager.
- */
- public CacheObjectTransformerManager transformer() {
- return transMgr;
- }
-
/**
* @return Node ID.
*/
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
index 29560a7228d..9776948fc4c 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/snapshot/IgniteSnapshotManager.java
@@ -2645,7 +2645,7 @@ public class IgniteSnapshotManager extends
GridCacheSharedManagerAdapter
GridCacheSharedContext<?, ?> sctx = new GridCacheSharedContext<>(ctx,
null, null, null,
null, null, null, null, null,
null, null, null, null, null,
- null, null, null, null, null, null);
+ null, null, null, null, null);
return new DataPageIterator(sctx, coctx, pageStore, partId);
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
index d01a2f84139..931ac80e245 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/IgniteWalIteratorFactory.java
@@ -31,9 +31,11 @@ import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;
+import java.util.function.Consumer;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.pagemem.wal.WALIterator;
import org.apache.ignite.internal.pagemem.wal.record.WALRecord.RecordType;
@@ -393,8 +395,18 @@ public class IgniteWalIteratorFactory {
) throws IgniteCheckedException {
GridKernalContext kernalCtx = new StandaloneGridKernalContext(log,
iteratorParametersBuilder.binaryMetadataFileStoreDir,
- iteratorParametersBuilder.marshallerMappingFileStoreDir
- );
+ iteratorParametersBuilder.marshallerMappingFileStoreDir) {
+ @Override protected IgniteConfiguration
prepareIgniteConfiguration() {
+ IgniteConfiguration cfg = super.prepareIgniteConfiguration();
+
+ Consumer<IgniteConfiguration> modifier =
iteratorParametersBuilder.ignCfgMod;
+
+ if (modifier != null)
+ modifier.accept(cfg);
+
+ return cfg;
+ }
+ };
StandaloneIgniteCacheDatabaseSharedManager dbMgr = new
StandaloneIgniteCacheDatabaseSharedManager(kernalCtx);
@@ -404,7 +416,7 @@ public class IgniteWalIteratorFactory {
kernalCtx, null, null, null,
null, null, null, dbMgr, null,
null, null, null, null, null,
- null, null, null, null, null, null
+ null, null, null, null, null
);
}
@@ -457,6 +469,11 @@ public class IgniteWalIteratorFactory {
* */
@Nullable private GridCacheSharedContext sharedCtx;
+ /**
+ * Ignite configuration modifier.
+ */
+ @Nullable private Consumer<IgniteConfiguration> ignCfgMod;
+
/** */
@Nullable private IgniteBiPredicate<RecordType, WALPointer> filter;
@@ -584,6 +601,16 @@ public class IgniteWalIteratorFactory {
return this;
}
+ /**
+ * @param ignCfgMod Ignite configuration modifier.
+ * @return IteratorParametersBuilder Self reference.
+ */
+ public IteratorParametersBuilder
igniteConfigurationModifier(Consumer<IgniteConfiguration> ignCfgMod) {
+ this.ignCfgMod = ignCfgMod;
+
+ return this;
+ }
+
/**
* @param filter Record filter for skip records during iteration.
* @return IteratorParametersBuilder Self reference.
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java
index 1103f198dde..a7e25921479 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneGridKernalContext.java
@@ -27,6 +27,7 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.Executor;
import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.IgniteException;
import org.apache.ignite.IgniteLogger;
import org.apache.ignite.configuration.DataRegionConfiguration;
import org.apache.ignite.configuration.DataStorageConfiguration;
@@ -40,6 +41,7 @@ import org.apache.ignite.internal.LongJVMPauseDetector;
import org.apache.ignite.internal.MarshallerContextImpl;
import org.apache.ignite.internal.binary.BinaryMarshaller;
import org.apache.ignite.internal.cache.query.index.IndexProcessor;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
import org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager;
import org.apache.ignite.internal.managers.collision.GridCollisionManager;
import org.apache.ignite.internal.managers.communication.GridIoManager;
@@ -97,6 +99,7 @@ import
org.apache.ignite.internal.processors.tracing.NoopTracing;
import org.apache.ignite.internal.processors.tracing.Tracing;
import org.apache.ignite.internal.suggestions.GridPerformanceSuggestions;
import org.apache.ignite.internal.util.IgniteExceptionRegistry;
+import org.apache.ignite.internal.util.tostring.GridToStringExclude;
import org.apache.ignite.internal.util.typedef.internal.U;
import org.apache.ignite.internal.worker.WorkersRegistry;
import org.apache.ignite.maintenance.MaintenanceRegistry;
@@ -135,6 +138,10 @@ public class StandaloneGridKernalContext implements
GridKernalContext {
/** System view manager. */
private final GridSystemViewManager sysViewMgr;
+ /** */
+ @GridToStringExclude
+ private CacheObjectTransformerProcessor transProc;
+
/**
* Cache object processor. Used for converting cache objects and keys into
binary objects. Null means there is no
* convert is configured. All entries in this case will be lazy data
entries.
@@ -182,24 +189,26 @@ public class StandaloneGridKernalContext implements
GridKernalContext {
) throws IgniteCheckedException {
this.log = log;
+ marshallerCtx = new MarshallerContextImpl(null, null);
+ cfg = prepareIgniteConfiguration();
+
try {
- pluginProc = new StandaloneIgnitePluginProcessor(this, config());
+ pluginProc = new StandaloneIgnitePluginProcessor(this, cfg);
}
catch (IgniteCheckedException e) {
throw new IllegalStateException("Must not fail on empty providers
list.", e);
}
- this.marshallerCtx = new MarshallerContextImpl(null, null);
- this.cfg = prepareIgniteConfiguration();
- this.rsrcProc = new GridResourceProcessor(this);
- this.metricMgr = new GridMetricManager(this);
- this.sysViewMgr = new GridSystemViewManager(this);
+ rsrcProc = new GridResourceProcessor(this);
+ metricMgr = new GridMetricManager(this);
+ sysViewMgr = new GridSystemViewManager(this);
+ transProc = createComponent(CacheObjectTransformerProcessor.class);
// Fake folder provided to perform processor startup on empty folder.
if (binaryMetadataFileStoreDir == null)
binaryMetadataFileStoreDir = new
File(DataStorageConfiguration.DFLT_BINARY_METADATA_PATH).getAbsoluteFile();
- this.cacheObjProcessor = binaryProcessor(this,
binaryMetadataFileStoreDir);
+ cacheObjProcessor = binaryProcessor(this, binaryMetadataFileStoreDir);
comps.add(rsrcProc);
comps.add(cacheObjProcessor);
@@ -416,6 +425,11 @@ public class StandaloneGridKernalContext implements
GridKernalContext {
return null;
}
+ /** {@inheritDoc} */
+ @Override public CacheObjectTransformerProcessor transformer() {
+ return transProc;
+ }
+
/** {@inheritDoc} */
@Override public IgniteRestProcessor rest() {
return null;
@@ -577,12 +591,25 @@ public class StandaloneGridKernalContext implements
GridKernalContext {
/** {@inheritDoc} */
@Override public PluginProvider pluginProvider(String name) throws
PluginNotFoundException {
- return null;
+ PluginProvider plugin = pluginProc.pluginProvider(name);
+
+ if (plugin == null)
+ throw new PluginNotFoundException(name);
+
+ return plugin;
}
/** {@inheritDoc} */
@Override public <T> T createComponent(Class<T> cls) {
- return null;
+ T res = pluginProc.createComponent(cls);
+
+ if (res != null)
+ return res;
+
+ if (cls.equals(CacheObjectTransformerProcessor.class))
+ return null;
+
+ throw new IgniteException("Unsupported component type: " + cls);
}
/** {@inheritDoc} */
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneIgnitePluginProcessor.java
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneIgnitePluginProcessor.java
index 78588ce02c5..5ad46234811 100644
---
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneIgnitePluginProcessor.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/wal/reader/StandaloneIgnitePluginProcessor.java
@@ -17,12 +17,11 @@
package org.apache.ignite.internal.processors.cache.persistence.wal.reader;
-import java.util.Collections;
import org.apache.ignite.IgniteCheckedException;
import org.apache.ignite.configuration.IgniteConfiguration;
import org.apache.ignite.internal.GridKernalContext;
import org.apache.ignite.internal.processors.plugin.IgnitePluginProcessor;
-import org.apache.ignite.plugin.PluginProvider;
+import org.apache.ignite.internal.util.typedef.internal.U;
/**
* No operation, empty plugin processor for creating WAL iterator without node
start up
@@ -33,6 +32,6 @@ class StandaloneIgnitePluginProcessor extends
IgnitePluginProcessor {
* @param cfg Ignite configuration.
*/
StandaloneIgnitePluginProcessor(GridKernalContext ctx, IgniteConfiguration
cfg) throws IgniteCheckedException {
- super(ctx, cfg, Collections.<PluginProvider>emptyList());
+ super(ctx, cfg, U.allPluginProviders(cfg));
}
}
diff --git
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index 94af5147336..660a8924550 100755
---
a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++
b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
@@ -1091,6 +1091,17 @@ public abstract class IgniteUtils {
return providers;
}
+ /**
+ * Gets all plugin providers.
+ *
+ * @param cfg Configuration.
+ * @return Plugins.
+ */
+ public static List<PluginProvider> allPluginProviders(IgniteConfiguration
cfg) {
+ return cfg.getPluginProviders() != null &&
cfg.getPluginProviders().length > 0 ?
+ Arrays.asList(cfg.getPluginProviders()) : U.allPluginProviders();
+ }
+
/**
* @param svcCls Service class to load.
* @param <S> Type of loaded interfaces.
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
b/modules/core/src/test/java/org/apache/ignite/cdc/TransformedCdcSelfTest.java
similarity index 64%
copy from
modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
copy to
modules/core/src/test/java/org/apache/ignite/cdc/TransformedCdcSelfTest.java
index 60da8048b97..72880aec0a3 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/cdc/TransformedCdcSelfTest.java
@@ -15,39 +15,37 @@
* limitations under the License.
*/
-package org.apache.ignite.cache.query;
+package org.apache.ignite.cdc;
import java.nio.ByteBuffer;
-import java.util.concurrent.ThreadLocalRandom;
import org.apache.ignite.configuration.IgniteConfiguration;
-import
org.apache.ignite.internal.processors.cache.transform.TestCacheObjectTransformerManagerAdapter;
import
org.apache.ignite.internal.processors.cache.transform.TestCacheObjectTransformerPluginProvider;
+import
org.apache.ignite.internal.processors.cache.transform.TestCacheObjectTransformerProcessorAdapter;
import static
org.apache.ignite.internal.binary.GridBinaryMarshaller.TRANSFORMED;
-/** Test checks that indexing works (including inlining) with enabled cache
objects transformer. */
-public class IndexQueryCacheKeyValueTransformedFieldsTest extends
IndexQueryCacheKeyValueFieldsTest {
+/**
+ *
+ */
+public class TransformedCdcSelfTest extends CdcSelfTest {
/** {@inheritDoc} */
- @Override protected IgniteConfiguration getConfiguration(String
instanceName) throws Exception {
- return super.getConfiguration(instanceName).setPluginProviders(
- new TestCacheObjectTransformerPluginProvider(new
RandomShiftCacheObjectTransformer()));
+ @Override protected IgniteConfiguration getConfiguration(String
igniteInstanceName) throws Exception {
+ return super.getConfiguration(igniteInstanceName).setPluginProviders(
+ new TestCacheObjectTransformerPluginProvider(new
CacheObjectShiftTransformer()));
}
/**
- * Transforms each object with a random shift.
+ * Transforms each object with a shift.
*/
- protected static final class RandomShiftCacheObjectTransformer extends
TestCacheObjectTransformerManagerAdapter {
+ private static final class CacheObjectShiftTransformer extends
TestCacheObjectTransformerProcessorAdapter {
/** {@inheritDoc} */
@Override public ByteBuffer transform(ByteBuffer original) {
- ByteBuffer transformed = ByteBuffer.wrap(new
byte[original.remaining() + 5]);
-
- int shift = ThreadLocalRandom.current().nextInt();
+ ByteBuffer transformed = ByteBuffer.wrap(new
byte[original.remaining() + 1]);
transformed.put(TRANSFORMED);
- transformed.putInt(shift);
while (original.hasRemaining())
- transformed.put((byte)(original.get() + shift));
+ transformed.put((byte)(original.get() + 42));
transformed.flip();
@@ -56,12 +54,10 @@ public class IndexQueryCacheKeyValueTransformedFieldsTest
extends IndexQueryCach
/** {@inheritDoc} */
@Override public ByteBuffer restore(ByteBuffer transformed) {
- ByteBuffer restored = ByteBuffer.wrap(new
byte[transformed.remaining() - 4]);
-
- int shift = transformed.getInt();
+ ByteBuffer restored = ByteBuffer.wrap(new
byte[transformed.remaining()]);
while (transformed.hasRemaining())
- restored.put((byte)(transformed.get() - shift));
+ restored.put((byte)(transformed.get() - 42));
restored.flip();
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalIteratorSwitchSegmentTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalIteratorSwitchSegmentTest.java
index 340a8a4b534..5e7c1a19dd3 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalIteratorSwitchSegmentTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/db/wal/IgniteWalIteratorSwitchSegmentTest.java
@@ -182,7 +182,6 @@ public class IgniteWalIteratorSwitchSegmentTest extends
GridCommonAbstractTest {
null,
null,
null,
- null,
null)
).createSerializer(serVer);
@@ -477,7 +476,6 @@ public class IgniteWalIteratorSwitchSegmentTest extends
GridCommonAbstractTest {
null,
null,
null,
- null,
null
);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreePageMemoryImplTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreePageMemoryImplTest.java
index 0d25bd5442e..54f8e134fa1 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreePageMemoryImplTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreePageMemoryImplTest.java
@@ -95,8 +95,7 @@ public class BPlusTreePageMemoryImplTest extends
BPlusTreeSelfTest {
null,
null,
null,
- new CacheDiagnosticManager(),
- null
+ new CacheDiagnosticManager()
);
IgniteOutClosure<CheckpointProgress> clo = new
IgniteOutClosure<CheckpointProgress>() {
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreeReuseListPageMemoryImplTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreeReuseListPageMemoryImplTest.java
index 16ddf83119e..e1618b665e8 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreeReuseListPageMemoryImplTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreeReuseListPageMemoryImplTest.java
@@ -94,7 +94,6 @@ public class BPlusTreeReuseListPageMemoryImplTest extends
BPlusTreeReuseSelfTest
null,
null,
null,
- null,
null
);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IndexStoragePageMemoryImplTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IndexStoragePageMemoryImplTest.java
index 0e92905efaf..ff47f6fe4bb 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IndexStoragePageMemoryImplTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IndexStoragePageMemoryImplTest.java
@@ -110,8 +110,7 @@ public class IndexStoragePageMemoryImplTest extends
IndexStorageSelfTest {
null,
null,
null,
- new CacheDiagnosticManager(),
- null
+ new CacheDiagnosticManager()
);
IgniteOutClosure<CheckpointProgress> clo = () ->
Mockito.mock(CheckpointProgressImpl.class);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplNoLoadTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplNoLoadTest.java
index b67cc8aca89..7ad03e33431 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplNoLoadTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplNoLoadTest.java
@@ -99,7 +99,6 @@ public class PageMemoryImplNoLoadTest extends
PageMemoryNoLoadSelfTest {
null,
null,
null,
- null,
null
);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplTest.java
index 8090393028d..ff2c3c439c5 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplTest.java
@@ -630,7 +630,6 @@ public class PageMemoryImplTest extends
GridCommonAbstractTest {
null,
null,
null,
- null,
null
);
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectTransformationTest.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectTransformationTest.java
index fdfe14b5c69..d3d0db68777 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectTransformationTest.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/AbstractCacheObjectTransformationTest.java
@@ -277,7 +277,7 @@ public abstract class AbstractCacheObjectTransformationTest
extends GridCommonAb
/**
*
*/
- protected static final class ControllableCacheObjectTransformer extends
TestCacheObjectTransformerManagerAdapter {
+ protected static final class ControllableCacheObjectTransformer extends
TestCacheObjectTransformerProcessorAdapter {
/** Shift. */
private static volatile int shift;
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerManagerAdapter.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerManagerAdapter.java
deleted file mode 100644
index 25944ef2956..00000000000
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerManagerAdapter.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.processors.cache.transform;
-
-import org.apache.ignite.IgniteCheckedException;
-import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerManager;
-import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
-import org.apache.ignite.lang.IgniteFuture;
-
-/**
- *
- */
-public abstract class TestCacheObjectTransformerManagerAdapter implements
CacheObjectTransformerManager {
- /** {@inheritDoc} */
- @Override public void start(GridCacheSharedContext cctx) throws
IgniteCheckedException {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void onKernalStart(boolean active) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void stop(boolean cancel) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void onKernalStop(boolean cancel) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void onReconnected(boolean active) {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void printMemoryStats() {
- // No-op.
- }
-
- /** {@inheritDoc} */
- @Override public void onDisconnected(IgniteFuture reconnectFut) {
- // No-op.
- }
-}
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerPluginProvider.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerPluginProvider.java
index 0db5d192308..32c1cc6acaf 100644
---
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerPluginProvider.java
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerPluginProvider.java
@@ -17,7 +17,7 @@
package org.apache.ignite.internal.processors.cache.transform;
-import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerManager;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
import org.apache.ignite.plugin.AbstractTestPluginProvider;
import org.apache.ignite.plugin.PluginContext;
import org.jetbrains.annotations.Nullable;
@@ -27,12 +27,12 @@ import org.jetbrains.annotations.Nullable;
*/
public class TestCacheObjectTransformerPluginProvider extends
AbstractTestPluginProvider {
/** Manager. */
- private final CacheObjectTransformerManager mgr;
+ private final CacheObjectTransformerProcessor mgr;
/**
* @param mgr Manager.
*/
- public
TestCacheObjectTransformerPluginProvider(CacheObjectTransformerManager mgr) {
+ public
TestCacheObjectTransformerPluginProvider(CacheObjectTransformerProcessor mgr) {
this.mgr = mgr;
}
@@ -43,7 +43,7 @@ public class TestCacheObjectTransformerPluginProvider extends
AbstractTestPlugin
/** {@inheritDoc} */
@Nullable @Override public <T> T createComponent(PluginContext ctx,
Class<T> cls) {
- if (CacheObjectTransformerManager.class.equals(cls))
+ if (CacheObjectTransformerProcessor.class.equals(cls))
return (T)mgr;
return null;
diff --git
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerProcessorAdapter.java
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerProcessorAdapter.java
new file mode 100644
index 00000000000..6b64756b706
--- /dev/null
+++
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/transform/TestCacheObjectTransformerProcessorAdapter.java
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.cache.transform;
+
+import org.apache.ignite.IgniteCheckedException;
+import org.apache.ignite.cluster.ClusterNode;
+import org.apache.ignite.internal.IgniteInternalFuture;
+import
org.apache.ignite.internal.cache.transform.CacheObjectTransformerProcessor;
+import org.apache.ignite.lang.IgniteFuture;
+import org.apache.ignite.spi.IgniteNodeValidationResult;
+import org.apache.ignite.spi.discovery.DiscoveryDataBag;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ *
+ */
+public abstract class TestCacheObjectTransformerProcessorAdapter implements
CacheObjectTransformerProcessor {
+ /** {@inheritDoc} */
+ @Override public void start() throws IgniteCheckedException {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void stop(boolean cancel) throws IgniteCheckedException {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onKernalStart(boolean active) throws
IgniteCheckedException {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onKernalStop(boolean cancel) {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void collectJoiningNodeData(DiscoveryDataBag dataBag) {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void collectGridNodeData(DiscoveryDataBag dataBag) {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void
onGridDataReceived(DiscoveryDataBag.GridDiscoveryData data) {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void
onJoiningNodeDataReceived(DiscoveryDataBag.JoiningNodeDiscoveryData data) {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public void printMemoryStats() {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public @Nullable IgniteNodeValidationResult
validateNode(ClusterNode node) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public @Nullable IgniteNodeValidationResult
validateNode(ClusterNode node,
+ DiscoveryDataBag.JoiningNodeDiscoveryData discoData) {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public @Nullable DiscoveryDataExchangeType discoveryDataType() {
+ return null;
+ }
+
+ /** {@inheritDoc} */
+ @Override public void onDisconnected(IgniteFuture<?> reconnectFut) throws
IgniteCheckedException {
+ // No-op.
+ }
+
+ /** {@inheritDoc} */
+ @Override public @Nullable IgniteInternalFuture<?> onReconnected(boolean
clusterRestarted) {
+ return null;
+ }
+}
diff --git
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
index 1a632db0fc1..4bf824701b4 100644
---
a/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
+++
b/modules/core/src/test/java/org/apache/ignite/loadtests/hashmap/GridCacheTestContext.java
@@ -83,8 +83,7 @@ public class GridCacheTestContext<K, V> extends
GridCacheContext<K, V> {
new CacheNoopJtaManager(),
null,
null,
- new CacheDiagnosticManager(),
- null
+ new CacheDiagnosticManager()
),
defaultCacheConfiguration(),
null,
diff --git
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
index 2d3e06fffd4..2848898cada 100644
---
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
+++
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java
@@ -25,6 +25,7 @@ import org.apache.ignite.cdc.CdcCacheVersionTest;
import org.apache.ignite.cdc.CdcNonDefaultWorkDirTest;
import org.apache.ignite.cdc.CdcSelfTest;
import org.apache.ignite.cdc.RestartWithWalForceArchiveTimeoutTest;
+import org.apache.ignite.cdc.TransformedCdcSelfTest;
import org.apache.ignite.cdc.WalForCdcTest;
import org.apache.ignite.cdc.WalRolloverOnStopTest;
import
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.HistoricalRebalanceCheckpointTest;
@@ -154,6 +155,7 @@ public class IgnitePdsTestSuite2 {
// CDC tests.
GridTestUtils.addTestIfNeeded(suite, CdcSelfTest.class, ignoredTests);
+ GridTestUtils.addTestIfNeeded(suite, TransformedCdcSelfTest.class,
ignoredTests);
GridTestUtils.addTestIfNeeded(suite, CdcCacheVersionTest.class,
ignoredTests);
GridTestUtils.addTestIfNeeded(suite,
RestartWithWalForceArchiveTimeoutTest.class, ignoredTests);
GridTestUtils.addTestIfNeeded(suite, WalRolloverOnStopTest.class,
ignoredTests);
diff --git
a/modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
b/modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
index 60da8048b97..25ac8d6ddc0 100644
---
a/modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
+++
b/modules/indexing/src/test/java/org/apache/ignite/cache/query/IndexQueryCacheKeyValueTransformedFieldsTest.java
@@ -20,8 +20,8 @@ package org.apache.ignite.cache.query;
import java.nio.ByteBuffer;
import java.util.concurrent.ThreadLocalRandom;
import org.apache.ignite.configuration.IgniteConfiguration;
-import
org.apache.ignite.internal.processors.cache.transform.TestCacheObjectTransformerManagerAdapter;
import
org.apache.ignite.internal.processors.cache.transform.TestCacheObjectTransformerPluginProvider;
+import
org.apache.ignite.internal.processors.cache.transform.TestCacheObjectTransformerProcessorAdapter;
import static
org.apache.ignite.internal.binary.GridBinaryMarshaller.TRANSFORMED;
@@ -36,7 +36,7 @@ public class IndexQueryCacheKeyValueTransformedFieldsTest
extends IndexQueryCach
/**
* Transforms each object with a random shift.
*/
- protected static final class RandomShiftCacheObjectTransformer extends
TestCacheObjectTransformerManagerAdapter {
+ protected static final class RandomShiftCacheObjectTransformer extends
TestCacheObjectTransformerProcessorAdapter {
/** {@inheritDoc} */
@Override public ByteBuffer transform(ByteBuffer original) {
ByteBuffer transformed = ByteBuffer.wrap(new
byte[original.remaining() + 5]);