diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2093629..96519cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,6 +30,7 @@ All notable changes to this project are documented here. The format follows Keep
- None for the health migration; both Test connection record actions, including on-demand write tests, are retained.
### Changed
+- Read the qbit metadata version from the Maven-filtered artifact version so release metadata matches the build and help bundle.
- Rechecked the released RC.8 JARs: core still has no S3 session-token/provider hook or file-reference interpreter. Retained both compatibility shims and moved their review deadline to RC.9 under issue #10.
- Raised the QQQ BOM baseline to released `4.1.0-RC.8` for the central health API.
- Raised the QQQ BOM baseline to released `4.1.0-RC.7` for the core help-bundle registry and coverage assertions.
diff --git a/pom.xml b/pom.xml
index 3637ef2..919eb97 100644
--- a/pom.xml
+++ b/pom.xml
@@ -179,6 +179,7 @@
true
help/*.yaml
+ qbit-object-storage.properties
@@ -186,10 +187,20 @@
false
help/*.yaml
+ qbit-object-storage.properties
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ ${project.version}
+
+
+
org.apache.maven.plugins
maven-checkstyle-plugin
diff --git a/src/main/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducer.java b/src/main/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducer.java
index 6d47ab2..367a102 100644
--- a/src/main/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducer.java
+++ b/src/main/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducer.java
@@ -21,8 +21,11 @@
package com.kingsrook.qbits.objectstorage;
+import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
+import java.util.Properties;
import com.kingsrook.qbits.objectstorage.app.StorageWidgets;
import com.kingsrook.qbits.objectstorage.health.ObjectStorageConnectionChecks;
import com.kingsrook.qbits.objectstorage.internal.ConfigSync;
@@ -60,13 +63,41 @@ public class ObjectStorageQBitProducer implements QBitMetaDataProducer assertThat(bundle.getId()).isEqualTo("qbit-object-storage"));
+ .satisfies(bundle ->
+ {
+ assertThat(bundle.getId()).isEqualTo("qbit-object-storage");
+ assertThat(System.getProperty("qbit.artifactVersion")).isNotBlank();
+ assertThat(bundle.getVersion()).isEqualTo(System.getProperty("qbit.artifactVersion"))
+ .isEqualTo(ObjectStorageQBitProducer.VERSION);
+ });
HelpBundles.syncOnStartup(instance);
Set keys = HelpBundles.of(instance).getBundles().get(0).getEntries().stream()
.map(entry -> entry.getKey()).collect(Collectors.toSet());
diff --git a/src/test/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducerTest.java b/src/test/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducerTest.java
index efbb394..ff815f8 100644
--- a/src/test/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducerTest.java
+++ b/src/test/java/com/kingsrook/qbits/objectstorage/ObjectStorageQBitProducerTest.java
@@ -44,6 +44,10 @@ class ObjectStorageQBitProducerTest
ObjectStorageQBitConfig config = new ObjectStorageQBitConfig().withBackendName("rdbms");
ObjectStorageQBitProducer producer = new ObjectStorageQBitProducer().withQBitConfig(config).withNamespace("object_storage");
+ String artifactVersion = System.getProperty("qbit.artifactVersion");
+ assertThat(artifactVersion).isNotBlank();
+ assertThat(ObjectStorageQBitProducer.VERSION).isEqualTo(artifactVersion);
+ assertThat(producer.getQBitMetaData().getVersion()).isEqualTo(artifactVersion);
assertThat(producer.isEnabled()).isTrue();
assertThat(producer.getQBitConfig()).isSameAs(config);
assertThat(producer.getNamespace()).isEqualTo("object_storage");