From 5ff458133cc006186b143771f106629d418cd136 Mon Sep 17 00:00:00 2001 From: Ryan Emerson Date: Thu, 21 May 2020 11:54:23 +0100 Subject: [PATCH] ISPN-11845 SingleFileStore location validation should be skipped when global state is disabled --- ...RodNonIndexedSingleFileStoreQueryTest.java | 4 +- .../SingleFileStoreConfigurationBuilder.java | 2 + .../persistence/PersistenceUtil.java | 26 +- .../java/org/infinispan/util/logging/Log.java | 6 + .../EvictionWithConcurrentOperationsTest.java | 2 +- ...leFileStoreDistListenerFunctionalTest.java | 4 +- .../MultiStoresFunctionalTest.java | 21 +- .../file/SingleFileStoreStressTest.java | 2 +- ...yncStoreWithoutEvictionFunctionalTest.java | 2 +- .../support/BatchAsyncStoreTest.java | 2 +- .../ReplStateTransferCacheLoaderTest.java | 4 +- .../resources/configs/named-cache-test.xml | 2 +- .../proc_setting_persistent_location.adoc | 9 +- persistence/rocksdb/output.txt | 282 ++++++++++++++++++ .../RocksDBStoreConfigurationBuilder.java | 12 + ...oftIndexFileStoreConfigurationBuilder.java | 11 + .../sifs/SoftIndexFileStoreTest.java | 8 +- .../query/backend/QueryInterceptorTest.java | 2 +- ...SingleFileStoreQueryDslConditionsTest.java | 2 +- .../InconsistentIndexesAfterRestartTest.java | 2 +- 20 files changed, 365 insertions(+), 40 deletions(-) create mode 100644 persistence/rocksdb/output.txt diff --git a/client/hotrod-client/src/test/java/org/infinispan/client/hotrod/query/HotRodNonIndexedSingleFileStoreQueryTest.java b/client/hotrod-client/src/test/java/org/infinispan/client/hotrod/query/HotRodNonIndexedSingleFileStoreQueryTest.java index 21c26f2d2209..edd3621022b1 100644 --- a/client/hotrod-client/src/test/java/org/infinispan/client/hotrod/query/HotRodNonIndexedSingleFileStoreQueryTest.java +++ b/client/hotrod-client/src/test/java/org/infinispan/client/hotrod/query/HotRodNonIndexedSingleFileStoreQueryTest.java @@ -39,7 +39,9 @@ protected void configure(GlobalConfigurationBuilder builder) { @Override protected ConfigurationBuilder getConfigurationBuilder() { ConfigurationBuilder builder = new ConfigurationBuilder(); - builder.persistence().addStore(SingleFileStoreConfigurationBuilder.class); + builder.persistence() + .addStore(SingleFileStoreConfigurationBuilder.class) + .location(tmpDirectory); // ensure the data container contains minimal data so the store will need to be accessed to get the rest builder.locking().concurrencyLevel(1).memory().size(1); diff --git a/core/src/main/java/org/infinispan/configuration/cache/SingleFileStoreConfigurationBuilder.java b/core/src/main/java/org/infinispan/configuration/cache/SingleFileStoreConfigurationBuilder.java index 150f14831a72..6aa0f11f4599 100644 --- a/core/src/main/java/org/infinispan/configuration/cache/SingleFileStoreConfigurationBuilder.java +++ b/core/src/main/java/org/infinispan/configuration/cache/SingleFileStoreConfigurationBuilder.java @@ -11,6 +11,7 @@ import org.infinispan.commons.configuration.attributes.AttributeSet; import org.infinispan.commons.configuration.elements.ElementDefinition; import org.infinispan.configuration.global.GlobalConfiguration; +import org.infinispan.persistence.PersistenceUtil; import org.infinispan.persistence.file.SingleFileStore; import org.infinispan.util.logging.Log; @@ -103,6 +104,7 @@ public void validate() { @Override public void validate(GlobalConfiguration globalConfig) { + PersistenceUtil.validateGlobalStateStoreLocation(globalConfig, SingleFileStore.class.getSimpleName(), attributes.attribute(LOCATION)); super.validate(globalConfig); } diff --git a/core/src/main/java/org/infinispan/persistence/PersistenceUtil.java b/core/src/main/java/org/infinispan/persistence/PersistenceUtil.java index e26c11fc3e23..024fa4d627db 100644 --- a/core/src/main/java/org/infinispan/persistence/PersistenceUtil.java +++ b/core/src/main/java/org/infinispan/persistence/PersistenceUtil.java @@ -13,9 +13,11 @@ import java.util.function.Predicate; import java.util.stream.Collectors; +import org.infinispan.commons.configuration.attributes.Attribute; import org.infinispan.commons.time.TimeService; import org.infinispan.commons.util.IntSet; import org.infinispan.configuration.global.GlobalConfiguration; +import org.infinispan.configuration.global.GlobalStateConfiguration; import org.infinispan.container.DataContainer; import org.infinispan.container.entries.InternalCacheEntry; import org.infinispan.container.impl.InternalEntryFactory; @@ -25,6 +27,7 @@ import org.infinispan.persistence.spi.MarshallableEntry; import org.infinispan.persistence.spi.NonBlockingStore; import org.infinispan.persistence.spi.SegmentedAdvancedLoadWriteStore; +import org.infinispan.util.logging.Log; import org.reactivestreams.Publisher; import io.reactivex.rxjava3.core.Flowable; @@ -171,11 +174,20 @@ public static Path getQualifiedLocation(GlobalConfiguration globalConfiguration, } public static Path getLocation(GlobalConfiguration globalConfiguration, String location) { - Path persistentLocation = Paths.get(globalConfiguration.globalState().persistentLocation()); - if (location == null) - return persistentLocation; + GlobalStateConfiguration globalState = globalConfiguration.globalState(); + Path persistentLocation = Paths.get(globalState.persistentLocation()); + if (location == null) { + if (!globalState.enabled()) { + // Should never be reached as store builders should ensure that the locations are not null during validation. + throw PERSISTENCE.storeLocationRequired(); + } + return persistentLocation; + } Path path = Paths.get(location); + if (!globalState.enabled()) { + return path; + } if (path.isAbsolute()) { // Ensure that the path lives under the global persistent location if (path.startsWith(persistentLocation)) { @@ -186,4 +198,12 @@ public static Path getLocation(GlobalConfiguration globalConfiguration, String l } return persistentLocation.resolve(path); } + + public static void validateGlobalStateStoreLocation(GlobalConfiguration globalConfiguration, String storeType, Attribute... attributes) { + if (!globalConfiguration.globalState().enabled()) { + for (Attribute attr : attributes) + if (attr.isNull()) + throw Log.CONFIG.storeLocationRequired(storeType, attr.name()); + } + } } diff --git a/core/src/main/java/org/infinispan/util/logging/Log.java b/core/src/main/java/org/infinispan/util/logging/Log.java index a3ae3b4ed0a2..7ea227594354 100644 --- a/core/src/main/java/org/infinispan/util/logging/Log.java +++ b/core/src/main/java/org/infinispan/util/logging/Log.java @@ -2026,4 +2026,10 @@ CacheConfigurationException storeConfiguredHasBothReadAndWriteOnly(String storeC @Message(value = "Store %s cannot be configured to be transactional as it does not contain the TRANSACTIONAL characteristic", id = 597) CacheConfigurationException storeConfiguredTransactionalButCharacteristicNotPresent(String storeClassName); + + @Message(value = "Store must specify a location when global state is disabled", id = 598) + CacheConfigurationException storeLocationRequired(); + + @Message(value = "Store '%s' must specify the '%s' attribute when global state is disabled", id = 598) + CacheConfigurationException storeLocationRequired(String storeType, String attributeName); } diff --git a/core/src/test/java/org/infinispan/eviction/impl/EvictionWithConcurrentOperationsTest.java b/core/src/test/java/org/infinispan/eviction/impl/EvictionWithConcurrentOperationsTest.java index bd5e2b07df94..7e214cc5613b 100644 --- a/core/src/test/java/org/infinispan/eviction/impl/EvictionWithConcurrentOperationsTest.java +++ b/core/src/test/java/org/infinispan/eviction/impl/EvictionWithConcurrentOperationsTest.java @@ -513,7 +513,7 @@ protected EmbeddedCacheManager createCacheManager() throws Exception { configureEviction(builder); GlobalConfigurationBuilder globalBuilder = new GlobalConfigurationBuilder().nonClusteredDefault(); globalBuilder.serialization().addContextInitializer(new EvictionWithConcurrentOperationsSCIImpl()); - globalBuilder.globalState().persistentLocation(PERSISTENT_LOCATION); + globalBuilder.globalState().enable().persistentLocation(PERSISTENT_LOCATION); return TestCacheManagerFactory.createCacheManager(globalBuilder, builder); } diff --git a/core/src/test/java/org/infinispan/expiration/impl/ExpirationSingleFileStoreDistListenerFunctionalTest.java b/core/src/test/java/org/infinispan/expiration/impl/ExpirationSingleFileStoreDistListenerFunctionalTest.java index 89d30e41a2e6..1dd270582f21 100644 --- a/core/src/test/java/org/infinispan/expiration/impl/ExpirationSingleFileStoreDistListenerFunctionalTest.java +++ b/core/src/test/java/org/infinispan/expiration/impl/ExpirationSingleFileStoreDistListenerFunctionalTest.java @@ -78,7 +78,7 @@ protected EmbeddedCacheManager createCacheManager(ConfigurationBuilder builder) GlobalConfigurationBuilder globalBuilder = GlobalConfigurationBuilder.defaultClusteredBuilder(); // Make sure each cache writes to a different location - globalBuilder.globalState().persistentLocation(EXTRA_MANAGER_LOCATION); + globalBuilder.globalState().enable().persistentLocation(EXTRA_MANAGER_LOCATION); extraManager = createClusteredCacheManager(false, globalBuilder, builder, new TransportFlags()); // Inject our time service into the new CacheManager as well @@ -87,7 +87,7 @@ protected EmbeddedCacheManager createCacheManager(ConfigurationBuilder builder) globalBuilder = GlobalConfigurationBuilder.defaultClusteredBuilder(); // Make sure each cache writes to a different location - globalBuilder.globalState().persistentLocation(PERSISTENT_LOCATION); + globalBuilder.globalState().enable().persistentLocation(PERSISTENT_LOCATION); EmbeddedCacheManager returned = createClusteredCacheManager(false, globalBuilder, builder, new TransportFlags()); // Unfortunately we can't reinject timeservice once a cache has been started, thus we have to inject diff --git a/core/src/test/java/org/infinispan/persistence/MultiStoresFunctionalTest.java b/core/src/test/java/org/infinispan/persistence/MultiStoresFunctionalTest.java index 8ace8fcae1b2..a1b8ef1a577f 100644 --- a/core/src/test/java/org/infinispan/persistence/MultiStoresFunctionalTest.java +++ b/core/src/test/java/org/infinispan/persistence/MultiStoresFunctionalTest.java @@ -9,12 +9,10 @@ import java.util.List; import org.infinispan.Cache; -import org.infinispan.commons.test.CommonsTestingUtil; import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder; import org.infinispan.configuration.cache.CacheMode; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.configuration.cache.PersistenceConfigurationBuilder; -import org.infinispan.configuration.global.GlobalConfigurationBuilder; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.test.AbstractInfinispanTest; import org.infinispan.test.CacheManagerCallable; @@ -51,20 +49,14 @@ protected List configs(int n, Method method) throws Except return r; } - private GlobalConfigurationBuilder globalConfig() { - GlobalConfigurationBuilder global = GlobalConfigurationBuilder.defaultClusteredBuilder(); - global.globalState().persistentLocation(CommonsTestingUtil.tmpDirectory(this.getClass())); - return global; - } - /** * when a node that persisted KEY wakes up, it can't rewrite existing value. */ public void testStartStopOfBackupDoesntRewriteValue(Method m) throws Exception { final List configs = configs(2, m); withCacheManagers(new MultiCacheManagerCallable( - TestCacheManagerFactory.createClusteredCacheManager(globalConfig(), configs.get(0)), - TestCacheManagerFactory.createClusteredCacheManager(globalConfig(), configs.get(1))) { + TestCacheManagerFactory.createClusteredCacheManager(configs.get(0)), + TestCacheManagerFactory.createClusteredCacheManager(configs.get(1))) { @Override public void call() { final EmbeddedCacheManager cacheManager0 = cms[0]; @@ -83,7 +75,7 @@ public void call() { assertEquals("VALUE V2", cache0.get("KEY")); withCacheManager(new CacheManagerCallable( - TestCacheManagerFactory.createClusteredCacheManager(globalConfig(), configs.get(1))) { + TestCacheManagerFactory.createClusteredCacheManager(configs.get(1))) { @Override public void call() { Cache newCache = cm.getCache(); @@ -101,8 +93,8 @@ public void call() { public void testStartStopOfBackupResurrectsDeletedKey(Method m) throws Exception { final List configs = configs(2, m); withCacheManagers(new MultiCacheManagerCallable( - TestCacheManagerFactory.createClusteredCacheManager(globalConfig(), configs.get(0)), - TestCacheManagerFactory.createClusteredCacheManager(globalConfig(), configs.get(1))) { + TestCacheManagerFactory.createClusteredCacheManager(configs.get(0)), + TestCacheManagerFactory.createClusteredCacheManager(configs.get(1))) { @Override public void call() { final EmbeddedCacheManager cacheManager0 = cms[0]; @@ -123,7 +115,7 @@ public void call() { assertEquals(null, cache0.get("KEY2")); withCacheManager(new CacheManagerCallable( - TestCacheManagerFactory.createClusteredCacheManager(globalConfig(), configs.get(1))) { + TestCacheManagerFactory.createClusteredCacheManager(configs.get(1))) { @Override public void call() { Cache newCache = cm.getCache(); @@ -134,5 +126,4 @@ public void call() { } }); } - } diff --git a/core/src/test/java/org/infinispan/persistence/file/SingleFileStoreStressTest.java b/core/src/test/java/org/infinispan/persistence/file/SingleFileStoreStressTest.java index c18f3edcc20c..a5f2a5165c4c 100644 --- a/core/src/test/java/org/infinispan/persistence/file/SingleFileStoreStressTest.java +++ b/core/src/test/java/org/infinispan/persistence/file/SingleFileStoreStressTest.java @@ -56,7 +56,7 @@ protected void teardown() { protected EmbeddedCacheManager createCacheManager() throws Exception { location = CommonsTestingUtil.tmpDirectory(SingleFileStoreStressTest.class); GlobalConfigurationBuilder globalBuilder = new GlobalConfigurationBuilder().nonClusteredDefault(); - globalBuilder.globalState().persistentLocation(location); + globalBuilder.globalState().enable().persistentLocation(location); ConfigurationBuilder builder = new ConfigurationBuilder(); builder.persistence().addSingleFileStore().purgeOnStartup(true).segmented(false); diff --git a/core/src/test/java/org/infinispan/persistence/support/AsyncStoreWithoutEvictionFunctionalTest.java b/core/src/test/java/org/infinispan/persistence/support/AsyncStoreWithoutEvictionFunctionalTest.java index 4225f5313960..67fe902c50d6 100644 --- a/core/src/test/java/org/infinispan/persistence/support/AsyncStoreWithoutEvictionFunctionalTest.java +++ b/core/src/test/java/org/infinispan/persistence/support/AsyncStoreWithoutEvictionFunctionalTest.java @@ -65,7 +65,7 @@ private EmbeddedCacheManager configureCacheManager() { GlobalConfigurationBuilder glob = new GlobalConfigurationBuilder().nonClusteredDefault() .defaultCacheName("cache"); - glob.globalState().persistentLocation(tmpDirectory); + glob.globalState().enable().persistentLocation(tmpDirectory); ConfigurationBuilder cacheb = new ConfigurationBuilder(); cacheb.clustering().cacheMode(CacheMode.LOCAL) .transaction().transactionMode(TransactionMode.NON_TRANSACTIONAL) diff --git a/core/src/test/java/org/infinispan/persistence/support/BatchAsyncStoreTest.java b/core/src/test/java/org/infinispan/persistence/support/BatchAsyncStoreTest.java index 8e7a9da8ca0e..883ed0a43f4d 100644 --- a/core/src/test/java/org/infinispan/persistence/support/BatchAsyncStoreTest.java +++ b/core/src/test/java/org/infinispan/persistence/support/BatchAsyncStoreTest.java @@ -35,7 +35,7 @@ public BatchAsyncStoreTest() { @Override protected EmbeddedCacheManager createCacheManager() throws Exception { GlobalConfigurationBuilder globalBuilder = new GlobalConfigurationBuilder().nonClusteredDefault(); - globalBuilder.globalState().persistentLocation(tmpDirectory); + globalBuilder.globalState().enable().persistentLocation(tmpDirectory); ConfigurationBuilder configuration = new ConfigurationBuilder(); configuration.invocationBatching().enable(); diff --git a/core/src/test/java/org/infinispan/statetransfer/ReplStateTransferCacheLoaderTest.java b/core/src/test/java/org/infinispan/statetransfer/ReplStateTransferCacheLoaderTest.java index ad66882a9f71..c624f348dfae 100644 --- a/core/src/test/java/org/infinispan/statetransfer/ReplStateTransferCacheLoaderTest.java +++ b/core/src/test/java/org/infinispan/statetransfer/ReplStateTransferCacheLoaderTest.java @@ -58,7 +58,7 @@ protected void createCacheManagers() { .memory().storageType(StorageType.BINARY) .clustering().remoteTimeout(20000) .stateTransfer().timeout(240000).fetchInMemoryState(false).chunkSize(10000) - .persistence().addSingleFileStore().location("store0"); + .persistence().addSingleFileStore().location(new File(tmpDir, "store0").getAbsolutePath()); createCluster(globalBuilder, builder, 1); waitForClusterToForm(); @@ -82,7 +82,7 @@ public void testStateTransfer() { log.info("Adding a new node .."); // make sure this node writes in a different location - builder.persistence().clearStores().addSingleFileStore().location("store1").fetchPersistentState(true); + builder.persistence().clearStores().addSingleFileStore().location(new File(tmpDir, "store0").getAbsolutePath()).fetchPersistentState(true); addClusterEnabledCacheManager(globalBuilder, builder); log.info("Added a new node"); diff --git a/core/src/test/resources/configs/named-cache-test.xml b/core/src/test/resources/configs/named-cache-test.xml index 7c69ca73e790..4e4568da711d 100644 --- a/core/src/test/resources/configs/named-cache-test.xml +++ b/core/src/test/resources/configs/named-cache-test.xml @@ -78,7 +78,7 @@ - + diff --git a/documentation/src/main/asciidoc/topics/proc_setting_persistent_location.adoc b/documentation/src/main/asciidoc/topics/proc_setting_persistent_location.adoc index c13a8ada219e..f44cee783684 100644 --- a/documentation/src/main/asciidoc/topics/proc_setting_persistent_location.adoc +++ b/documentation/src/main/asciidoc/topics/proc_setting_persistent_location.adoc @@ -12,7 +12,7 @@ share data between multiple instances, use a shared persistent location. {brandname} servers use the `{server_home}/server/data` directory as the global persistent location. -If you are using {brandname} as a library embedded in custom applications, the +If you are using {brandname} as a library embedded in custom applications and global-state is enabled, the global persistent location defaults to the `user.dir` system property. This system property typically uses the directory where your application starts. You should configure a global persistent location to use a suitable location. @@ -31,10 +31,7 @@ should configure a global persistent location to use a suitable location. [source,java,options="nowrap",subs=attributes+] ---- -public GlobalStateConfigurationBuilder persistentLocation(String path, String relativeTo) { - persistentLocation.location(example, my.data); - return this; -} +new GlobalConfigurationBuilder().globalState().enable().persistentLocation("example", "my.data"); ---- .File-Based Cache Stores and Global Persistent Location @@ -63,7 +60,7 @@ You then configure a Single File cache store that uses a path named In this case, the configuration results in a Single File cache store in `/tmp/example/myDataStore/myCache.dat` If you attempt to set an absolute path that resides outside the global -persistent location, {brandname} throws the following exception: +persistent location and global-state is enabled, {brandname} throws the following exception: ---- ISPN000558: "The store location 'foo' is not a child of the global persistent location 'bar'" diff --git a/persistence/rocksdb/output.txt b/persistence/rocksdb/output.txt new file mode 100644 index 000000000000..04fc215c2c81 --- /dev/null +++ b/persistence/rocksdb/output.txt @@ -0,0 +1,282 @@ +OpenJDK 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0 +[INFO] Scanning for projects... +[INFO] Inspecting build with total of 1 modules... +[INFO] Installing Nexus Staging features: +[INFO] ... total of 1 executions of maven-deploy-plugin replaced with nexus-staging-maven-plugin +[INFO] ------------------------------------------------------------------------ +[INFO] Detecting the operating system and CPU architecture +[INFO] ------------------------------------------------------------------------ +[INFO] os.detected.name: linux +[INFO] os.detected.arch: x86_64 +[INFO] os.detected.version: 5.6 +[INFO] os.detected.version.major: 5 +[INFO] os.detected.version.minor: 6 +[INFO] os.detected.release: fedora +[INFO] os.detected.release.version: 32 +[INFO] os.detected.release.like.fedora: true +[INFO] os.detected.classifier: linux-x86_64 +[INFO] +[INFO] ------------< org.infinispan:infinispan-cachestore-rocksdb >------------ +[INFO] Building Infinispan RocksDB CacheStore 11.0.0-SNAPSHOT +[INFO] -------------------------------[ bundle ]------------------------------- +[INFO] +[INFO] --- maven-clean-plugin:2.6.1:clean (default-clean) @ infinispan-cachestore-rocksdb --- +[INFO] Deleting /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target +[INFO] +[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce-java) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- build-helper-maven-plugin:3.1.0:timestamp-property (timestamp-property) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ infinispan-cachestore-rocksdb --- +[INFO] Executing: /bin/sh -c cd '/home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb' && 'git' 'rev-parse' '--verify' 'HEAD' +[INFO] Working directory: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb +[INFO] Storing buildNumber: 4c3f2f5b35004ef72a0be2acd8245a357656576d at timestamp: 1590058085570 +[INFO] Storing buildScmBranch: ISPN-11845 +[INFO] +[INFO] --- maven-checkstyle-plugin:3.1.1:check (checkstyle) @ infinispan-cachestore-rocksdb --- +[INFO] Starting audit... +Audit done. +[INFO] You have 0 Checkstyle violations. +[INFO] +[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ infinispan-cachestore-rocksdb --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Copying 1 resource +[INFO] Copying 1 resource +[INFO] Copying 1 resource +[INFO] +[INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ infinispan-cachestore-rocksdb --- +[INFO] Changes detected - recompiling the module! +[INFO] Compiling 12 source files to /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/classes +ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console... +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/RocksDBStore.java: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/RocksDBStore.java uses or overrides a deprecated API. +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/RocksDBStore.java: Recompile with -Xlint:deprecation for details. +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/RocksDBStore.java: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/RocksDBStore.java uses unchecked or unsafe operations. +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/RocksDBStore.java: Recompile with -Xlint:unchecked for details. +[INFO] +[INFO] --- infinispan-defaults-maven-plugin:11.0.0-SNAPSHOT:extract-defaults (extract-defaults) @ infinispan-cachestore-rocksdb --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Copying 1 resource to /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/classes/schema +[INFO] +[INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ infinispan-cachestore-rocksdb --- +[INFO] Using 'UTF-8' encoding to copy filtered resources. +[INFO] Copying 15 resources +[INFO] +[INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ infinispan-cachestore-rocksdb --- +[INFO] Changes detected - recompiling the module! +[INFO] Compiling 8 source files to /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/test-classes +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/test/java/org/infinispan/persistence/rocksdb/RocksDBStoreTest.java: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/test/java/org/infinispan/persistence/rocksdb/RocksDBStoreTest.java uses or overrides a deprecated API. +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/test/java/org/infinispan/persistence/rocksdb/RocksDBStoreTest.java: Recompile with -Xlint:deprecation for details. +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/test/java/org/infinispan/persistence/rocksdb/RocksDBStoreTest.java: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/test/java/org/infinispan/persistence/rocksdb/RocksDBStoreTest.java uses unchecked or unsafe operations. +[INFO] /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/src/test/java/org/infinispan/persistence/rocksdb/RocksDBStoreTest.java: Recompile with -Xlint:unchecked for details. +[INFO] +[INFO] --- maven-surefire-plugin:3.0.0-M4:test (default-test) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] ------------------------------------------------------- +[INFO] T E S T S +[INFO] ------------------------------------------------------- +[INFO] Running TestSuite +[OK: 0, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.config.ConfigurationTest.testConfigBuilder +[OK: 0, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.config.ConfigurationSerializerTest.configurationSerializationTest([config/rocksdb-config.xml]) +[OK: 0, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBMultiCacheStoreFunctionalTest.testStartStopOfBackupDoesntRewriteValue +[OK: 1, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.config.ConfigurationSerializerTest.configurationSerializationTest([rocksdb-config.xml]) +[OK: 1, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.config.ConfigurationSerializerTest.jsonSerializationTest([config/rocksdb-config.xml]) +[OK: 2, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.config.ConfigurationSerializerTest.jsonSerializationTest([rocksdb-config.xml]) +Transport protocol stack used = udp +[OK: 2, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testLoadEntrySet +[OK: 2, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreCompatibilityTest.testReadWriteFrom101 +[OK: 3, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreCompatibilityTest.testReadWriteFrom101 +[OK: 3, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testEmptyWriteAndDeleteBatchIterable[true] +[OK: 4, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testEmptyWriteAndDeleteBatchIterable[true] +[OK: 4, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testIsAvailable[true] +[OK: 5, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testIsAvailable[true] +[OK: 5, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAll[true] +[OK: 6, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAll[true] +[OK: 6, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreBytesValues[true] +[OK: 7, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreBytesValues[true] +[OK: 7, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreImmortal[true] +[OK: 8, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreImmortal[true] +[OK: 8, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithIdle[true] +[OK: 9, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithIdle[true] +[OK: 9, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespan[true] +[OK: 10, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespan[true] +[OK: 10, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle[true] +[OK: 11, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle[true] +[OK: 11, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle2[true] +[OK: 12, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle2[true] +[OK: 12, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPreload[true] +[OK: 13, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPreload[true] +[OK: 13, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPurgeExpired[true] +[OK: 14, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPurgeExpired[true] +[OK: 14, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceEntry[true] +[OK: 15, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceEntry[true] +[OK: 15, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceExpiredEntry[true] +[OK: 16, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceExpiredEntry[true] +[OK: 16, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStopStartDoesNotNukeValues[true] +[OK: 17, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStopStartDoesNotNukeValues[true] +[OK: 17, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStoreAndRemove[true] +[OK: 18, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStoreAndRemove[true] +[OK: 18, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatch[true] +[OK: 19, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatch[true] +[OK: 19, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatchIterable[true] +[OK: 20, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatchIterable[true] +[OK: 20, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testSegmentsRemovedAndAdded[true] +[OK: 21, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testSegmentsRemovedAndAdded[true] +[OK: 21, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testEmptyWriteAndDeleteBatchIterable[false] +[OK: 22, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testEmptyWriteAndDeleteBatchIterable[false] +[OK: 22, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testIsAvailable[false] +[OK: 23, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testIsAvailable[false] +[OK: 23, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAll[false] +[OK: 24, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAll[false] +[OK: 24, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreBytesValues[false] +[OK: 25, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreBytesValues[false] +[OK: 25, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreImmortal[false] +[OK: 26, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreImmortal[false] +[OK: 26, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testParallelIterationWithValue +[OK: 26, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithIdle[false] +[OK: 27, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithIdle[false] +[OK: 28, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testParallelIterationWithValue +[OK: 28, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespan[false] +[OK: 29, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespan[false] +[OK: 29, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle[false] +[OK: 30, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle[false] +[OK: 30, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle2[false] +[OK: 31, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testLoadAndStoreWithLifespanAndIdle2[false] +[OK: 31, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPreload[false] +[OK: 32, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPreload[false] +[OK: 33, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testLoadEntrySet +[OK: 33, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPurgeExpired[false] +[OK: 34, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testPurgeExpired[false] +[OK: 34, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testPreloadAndExpiry +[OK: 34, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceEntry[false] +[OK: 35, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceEntry[false] +[OK: 35, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceExpiredEntry[false] +[OK: 36, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testReplaceExpiredEntry[false] +[OK: 36, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.IracRocksDBStoreTest.testWriteAndLoad +[OK: 37, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.IracRocksDBStoreTest.testWriteAndLoad +[OK: 37, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.IracRocksDBStoreTest.testWriteAndPublisher +[OK: 38, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.IracRocksDBStoreTest.testWriteAndPublisher +[OK: 38, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStopStartDoesNotNukeValues[false] +[OK: 39, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStopStartDoesNotNukeValues[false] +[OK: 39, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStoreAndRemove[false] +[OK: 40, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testStoreAndRemove[false] +[OK: 40, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatch[false] +[OK: 41, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatch[false] +[OK: 41, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testParallelIterationWithoutValue +[OK: 41, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatchIterable[false] +[OK: 42, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testWriteAndDeleteBatchIterable[false] +[OK: 43, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testParallelIterationWithoutValue +[OK: 43, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testSegmentsRemovedAndAdded[false] +[OK: 44, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreTest.testSegmentsRemovedAndAdded[false] +[OK: 44, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testSequentialIterationWithValue +[OK: 45, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testSequentialIterationWithValue +[OK: 46, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.config.ConfigurationTest.testConfigBuilder +[OK: 46, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.config.ConfigurationTest.testXmlConfig +[OK: 47, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.config.ConfigurationTest.testXmlConfig +[OK: 47, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testSequentialIterationWithoutValue +[OK: 48, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBParallelIterationTest.testSequentialIterationWithoutValue +[OK: 49, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testPreloadAndExpiry +[OK: 49, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testPreloadStoredAsBinary +[OK: 50, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBMultiCacheStoreFunctionalTest.testStartStopOfBackupDoesntRewriteValue +[OK: 50, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBMultiCacheStoreFunctionalTest.testStartStopOfBackupResurrectsDeletedKey +[OK: 51, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testPreloadStoredAsBinary +[OK: 51, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testPutAllBatch +[OK: 52, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testPutAllBatch +[OK: 52, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testReloadWithEviction +[OK: 53, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBMultiCacheStoreFunctionalTest.testStartStopOfBackupResurrectsDeletedKey +[OK: 54, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testReloadWithEviction +[OK: 54, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testRemoveCache +[OK: 55, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testRemoveCache +[OK: 55, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testRemoveCacheWithPassivation +[OK: 56, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testRemoveCacheWithPassivation +[OK: 56, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testStoreByteArrays +[OK: 57, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testStoreByteArrays +[OK: 57, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testTwoCachesSameCacheStore +[OK: 58, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testTwoCachesSameCacheStore +[OK: 58, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testKnownProperties +[OK: 59, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testKnownProperties +[OK: 59, KO: 0, SKIP: 0] Test starting: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testUnknownProperties +[OK: 60, KO: 0, SKIP: 0] Test succeeded: org.infinispan.persistence.rocksdb.RocksDBStoreFunctionalTest.testUnknownProperties +[INFO] Tests run: 60, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 55.844 s - in TestSuite +[INFO] +[INFO] Results: +[INFO] +[INFO] Tests run: 60, Failures: 0, Errors: 0, Skipped: 0 +[INFO] +[INFO] +[INFO] --- licenses-plugin:2.1.0.Final:insert-versions (update-licenses-xml) @ infinispan-cachestore-rocksdb --- +[INFO] Sort licenses true +[INFO] +[INFO] --- maven-antrun-plugin:3.0.0:run (generate-blueprint) @ infinispan-cachestore-rocksdb --- +[INFO] Executing tasks +[INFO] Executed tasks +[INFO] +[INFO] --- maven-bundle-plugin:4.2.1:bundle (default-bundle) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- build-helper-maven-plugin:3.1.0:attach-artifact (attach-artifacts) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- maven-jar-plugin:3.2.0:test-jar (build-test-jar) @ infinispan-cachestore-rocksdb --- +[INFO] Building jar: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-tests.jar +[INFO] +[INFO] --- proto-schema-compatibility:1.0.2.Final:proto-schema-compatibility-check (default) @ infinispan-cachestore-rocksdb --- +[INFO] Backwards compatibility check passed. +[INFO] +[INFO] >>> maven-source-plugin:3.2.0:jar (attach-sources) > generate-sources @ infinispan-cachestore-rocksdb >>> +[INFO] +[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce-java) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- build-helper-maven-plugin:3.1.0:timestamp-property (timestamp-property) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- maven-checkstyle-plugin:3.1.1:check (checkstyle) @ infinispan-cachestore-rocksdb --- +[INFO] Starting audit... +Audit done. +[INFO] You have 0 Checkstyle violations. +[INFO] +[INFO] <<< maven-source-plugin:3.2.0:jar (attach-sources) < generate-sources @ infinispan-cachestore-rocksdb <<< +[INFO] +[INFO] +[INFO] --- maven-source-plugin:3.2.0:jar (attach-sources) @ infinispan-cachestore-rocksdb --- +[INFO] Building jar: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-sources.jar +[INFO] +[INFO] >>> maven-source-plugin:3.2.0:test-jar (attach-sources) > generate-sources @ infinispan-cachestore-rocksdb >>> +[INFO] +[INFO] --- maven-enforcer-plugin:3.0.0-M1:enforce (enforce-java) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- build-helper-maven-plugin:3.1.0:timestamp-property (timestamp-property) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- buildnumber-maven-plugin:1.4:create (default) @ infinispan-cachestore-rocksdb --- +[INFO] +[INFO] --- maven-checkstyle-plugin:3.1.1:check (checkstyle) @ infinispan-cachestore-rocksdb --- +[INFO] Starting audit... +Audit done. +[INFO] You have 0 Checkstyle violations. +[INFO] +[INFO] <<< maven-source-plugin:3.2.0:test-jar (attach-sources) < generate-sources @ infinispan-cachestore-rocksdb <<< +[INFO] +[INFO] +[INFO] --- maven-source-plugin:3.2.0:test-jar (attach-sources) @ infinispan-cachestore-rocksdb --- +[INFO] Building jar: /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-test-sources.jar +[INFO] +[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ infinispan-cachestore-rocksdb --- +[INFO] Installing /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT.jar to /home/remerson/.m2/repository/org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT.jar +[INFO] Installing /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/pom.xml to /home/remerson/.m2/repository/org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT.pom +[INFO] Installing /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/classes/features.xml to /home/remerson/.m2/repository/org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-features.xml +[INFO] Installing /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-tests.jar to /home/remerson/.m2/repository/org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-tests.jar +[INFO] Installing /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-sources.jar to /home/remerson/.m2/repository/org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-sources.jar +[INFO] Installing /home/remerson/workspace/RedHat/infinispan/infinispan/persistence/rocksdb/target/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-test-sources.jar to /home/remerson/.m2/repository/org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT-test-sources.jar +[INFO] +[INFO] --- maven-bundle-plugin:4.2.1:install (default-install) @ infinispan-cachestore-rocksdb --- +[INFO] Installing org/infinispan/infinispan-cachestore-rocksdb/11.0.0-SNAPSHOT/infinispan-cachestore-rocksdb-11.0.0-SNAPSHOT.jar +[INFO] Writing OBR metadata +[INFO] +[INFO] --- karaf-maven-plugin:4.2.8:verify (validate) @ infinispan-cachestore-rocksdb --- +[INFO] Using repositories: https://repo.maven.apache.org/maven2/@id=central,https://repository.jboss.org/nexus/content/groups/public-jboss@id=jboss-public-repository-group@snapshots,https://maven.repository.redhat.com/ga/@id=redhat@snapshots +[INFO] Verification of feature infinispan-cachestore-rocksdb/11.0.0.SNAPSHOT succeeded +[INFO] Features verified: 1, failures: 0, ignored: 0, skipped: 0 +[INFO] ------------------------------------------------------------------------ +[INFO] BUILD SUCCESS +[INFO] ------------------------------------------------------------------------ +[INFO] Total time: 01:12 min +[INFO] Finished at: 2020-05-21T11:49:16+01:00 +[INFO] ------------------------------------------------------------------------ diff --git a/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationBuilder.java b/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationBuilder.java index 20ee85c8b769..6f7945f4a2c0 100644 --- a/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationBuilder.java +++ b/persistence/rocksdb/src/main/java/org/infinispan/persistence/rocksdb/configuration/RocksDBStoreConfigurationBuilder.java @@ -1,5 +1,6 @@ package org.infinispan.persistence.rocksdb.configuration; +import static org.infinispan.persistence.rocksdb.configuration.RocksDBExpirationConfiguration.EXPIRED_LOCATION; import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.BLOCK_SIZE; import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.CACHE_SIZE; import static org.infinispan.persistence.rocksdb.configuration.RocksDBStoreConfiguration.CLEAR_THRESHOLD; @@ -15,6 +16,8 @@ import org.infinispan.commons.configuration.elements.ElementDefinition; import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder; import org.infinispan.configuration.cache.PersistenceConfigurationBuilder; +import org.infinispan.configuration.global.GlobalConfiguration; +import org.infinispan.persistence.PersistenceUtil; /** * @@ -95,6 +98,15 @@ public void validate() { expiration.validate(); } + @Override + public void validate(GlobalConfiguration globalConfig) { + PersistenceUtil.validateGlobalStateStoreLocation(globalConfig, RocksDBStoreConfiguration.class.getSimpleName(), + attributes.attribute(LOCATION), + expiration.attributes().attribute(EXPIRED_LOCATION)); + + super.validate(globalConfig); + } + @Override public RocksDBStoreConfiguration create() { return new RocksDBStoreConfiguration(attributes.protect(), async.create(), expiration.create()); diff --git a/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationBuilder.java b/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationBuilder.java index 60153087535f..efa40cf98e76 100644 --- a/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationBuilder.java +++ b/persistence/soft-index/src/main/java/org/infinispan/persistence/sifs/configuration/SoftIndexFileStoreConfigurationBuilder.java @@ -15,7 +15,9 @@ import org.infinispan.commons.configuration.elements.ElementDefinition; import org.infinispan.configuration.cache.AbstractStoreConfigurationBuilder; import org.infinispan.configuration.cache.PersistenceConfigurationBuilder; +import org.infinispan.configuration.global.GlobalConfiguration; import org.infinispan.configuration.global.GlobalStateConfiguration; +import org.infinispan.persistence.PersistenceUtil; import org.infinispan.persistence.sifs.Log; import org.infinispan.persistence.sifs.SoftIndexFileStore; import org.infinispan.util.logging.LogFactory; @@ -187,6 +189,15 @@ protected void validate(boolean skipClassChecks) { } } + @Override + public void validate(GlobalConfiguration globalConfig) { + PersistenceUtil.validateGlobalStateStoreLocation(globalConfig, SoftIndexFileStore.class.getSimpleName(), + data.attributes().attribute(DataConfiguration.DATA_LOCATION), + index.attributes().attribute(IndexConfiguration.INDEX_LOCATION)); + + super.validate(globalConfig); + } + @Override public String toString() { return "SoftIndexFileStoreConfigurationBuilder{" + diff --git a/persistence/soft-index/src/test/java/org/infinispan/persistence/sifs/SoftIndexFileStoreTest.java b/persistence/soft-index/src/test/java/org/infinispan/persistence/sifs/SoftIndexFileStoreTest.java index 6e060aed50dd..7ef79607de8c 100644 --- a/persistence/soft-index/src/test/java/org/infinispan/persistence/sifs/SoftIndexFileStoreTest.java +++ b/persistence/soft-index/src/test/java/org/infinispan/persistence/sifs/SoftIndexFileStoreTest.java @@ -7,6 +7,7 @@ import org.infinispan.commons.test.CommonsTestingUtil; import org.infinispan.commons.util.Util; +import org.infinispan.configuration.cache.Configuration; import org.infinispan.configuration.cache.ConfigurationBuilder; import org.infinispan.container.entries.InternalCacheEntry; import org.infinispan.marshall.persistence.impl.MarshalledEntryUtil; @@ -18,7 +19,7 @@ import org.infinispan.test.fwk.TestCacheManagerFactory; import org.infinispan.test.fwk.TestInternalCacheEntryFactory; import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeMethod; +import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; /** @@ -35,7 +36,7 @@ public class SoftIndexFileStoreTest extends BaseStoreTest { boolean startIndex = true; boolean keepIndex = false; - @BeforeMethod + @BeforeClass protected void setUpTempDir() { tmpDirectory = CommonsTestingUtil.tmpDirectory(this.getClass()); } @@ -81,7 +82,8 @@ public void stop() { .indexLocation(tmpDirectory).dataLocation(tmpDirectory) .maxFileSize(1000); - store.init(createContext(builder.build())); + Configuration c = builder.build(); + store.init(createContext(c)); return store; } diff --git a/query/src/test/java/org/infinispan/query/backend/QueryInterceptorTest.java b/query/src/test/java/org/infinispan/query/backend/QueryInterceptorTest.java index 5e98d4fb012a..238d3ebc9949 100644 --- a/query/src/test/java/org/infinispan/query/backend/QueryInterceptorTest.java +++ b/query/src/test/java/org/infinispan/query/backend/QueryInterceptorTest.java @@ -220,7 +220,7 @@ public Work createPerEntityWork(Serializable id, IndexedTypeIdentifier entityTyp protected EmbeddedCacheManager createCacheManager(int maxEntries) throws Exception { GlobalConfigurationBuilder globalBuilder = new GlobalConfigurationBuilder().nonClusteredDefault(); - globalBuilder.globalState().persistentLocation(storeDir.getAbsolutePath()); + globalBuilder.globalState().enable().persistentLocation(storeDir.getAbsolutePath()); globalBuilder.serialization().addContextInitializer(QueryTestSCI.INSTANCE); ConfigurationBuilder b = new ConfigurationBuilder(); diff --git a/query/src/test/java/org/infinispan/query/dsl/embedded/NonIndexedSingleFileStoreQueryDslConditionsTest.java b/query/src/test/java/org/infinispan/query/dsl/embedded/NonIndexedSingleFileStoreQueryDslConditionsTest.java index 1c1bb97d4488..28ddf8c10bd2 100644 --- a/query/src/test/java/org/infinispan/query/dsl/embedded/NonIndexedSingleFileStoreQueryDslConditionsTest.java +++ b/query/src/test/java/org/infinispan/query/dsl/embedded/NonIndexedSingleFileStoreQueryDslConditionsTest.java @@ -35,7 +35,7 @@ protected void createCacheManagers() throws Throwable { Util.recursiveFileRemove(tmpDirectory); GlobalConfigurationBuilder globalBuilder = GlobalConfigurationBuilder.defaultClusteredBuilder(); globalBuilder.serialization().addContextInitializer(DslSCI.INSTANCE); - globalBuilder.globalState().persistentLocation(tmpDirectory); + globalBuilder.globalState().enable().persistentLocation(tmpDirectory); ConfigurationBuilder cfg = TestCacheManagerFactory.getDefaultCacheConfiguration(true); cfg.persistence().addStore(SingleFileStoreConfigurationBuilder.class); diff --git a/query/src/test/java/org/infinispan/query/persistence/InconsistentIndexesAfterRestartTest.java b/query/src/test/java/org/infinispan/query/persistence/InconsistentIndexesAfterRestartTest.java index 61fbe14744ac..c8a1474bafc7 100644 --- a/query/src/test/java/org/infinispan/query/persistence/InconsistentIndexesAfterRestartTest.java +++ b/query/src/test/java/org/infinispan/query/persistence/InconsistentIndexesAfterRestartTest.java @@ -79,7 +79,7 @@ public void call() throws Exception { private EmbeddedCacheManager getCacheManager(boolean batchingEnabled) { GlobalConfigurationBuilder globalBuilder = new GlobalConfigurationBuilder().nonClusteredDefault(); - globalBuilder.globalState().persistentLocation(TMP_DIR); + globalBuilder.globalState().enable().persistentLocation(TMP_DIR); globalBuilder.serialization().addContextInitializer(SCI.INSTANCE); ConfigurationBuilder builder = new ConfigurationBuilder();