diff --git a/integration-tests/build.gradle b/integration-tests/build.gradle index c0c400c..734941a 100644 --- a/integration-tests/build.gradle +++ b/integration-tests/build.gradle @@ -46,6 +46,12 @@ createDockerFile { dependsOn(configurations.backupJar) if (flavor == "solr6") { + // Remove the old imported solr-backup from docker-solr: + // Resolves DOUBLE library issues! + runCommand 'rm /opt/alfresco-search-services/solrhome/lib/solr-backup-0.0.11.jar' + runCommand 'rm /opt/alfresco-search-services/solrhome/lib/aws-java-sdk*' + runCommand 'rm /opt/alfresco-search-services/solrhome/lib/jackson-*' + smartCopy "${project.projectDir}/src/test/resources/solr.xml", "/opt/alfresco-search-services/solrhome/solr.xml" smartCopy configurations.backupJar, "/opt/alfresco-search-services/solrhome/lib/" } diff --git a/integration-tests/src/test/java/eu/xenit/solr/backup/s3/SolrBackupTest.java b/integration-tests/src/test/java/eu/xenit/solr/backup/s3/SolrBackupTest.java index e420129..41121c0 100644 --- a/integration-tests/src/test/java/eu/xenit/solr/backup/s3/SolrBackupTest.java +++ b/integration-tests/src/test/java/eu/xenit/solr/backup/s3/SolrBackupTest.java @@ -7,7 +7,6 @@ import com.amazonaws.client.builder.AwsClientBuilder; import com.amazonaws.services.s3.AmazonS3; import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import com.amazonaws.services.s3.model.ObjectListing; import groovy.util.logging.Slf4j; import io.restassured.RestAssured; import io.restassured.builder.RequestSpecBuilder; @@ -15,11 +14,7 @@ import io.restassured.specification.RequestSpecification; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.MethodOrderer; -import org.junit.jupiter.api.Order; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestMethodOrder; +import org.junit.jupiter.api.*; import java.util.concurrent.TimeUnit; @@ -33,13 +28,13 @@ class SolrBackupTest { private static final Log log = LogFactory.getLog(SolrBackupTest.class); static RequestSpecification spec; - static RequestSpecification specBackup; - static RequestSpecification specBackupDetails; - static RequestSpecification specRestore; - static RequestSpecification specRestoreStatus; + static RequestSpecification backupRequestSpec; + static RequestSpecification backupDetailsRequestSpec; + static RequestSpecification restoreRequestSpec; + static RequestSpecification restoreStatusRequestSpec; + static RequestSpecification restoreFixedSnapshotRequestSpec; static AmazonS3 s3Client; static final String BUCKET = "bucket"; - @BeforeEach public void setup() { String basePathSolr = "solr/alfresco"; @@ -66,7 +61,7 @@ public void setup() { .setPort(solrPort) .setBasePath(basePathSolr) .build(); - specBackup = new RequestSpecBuilder() + backupRequestSpec = new RequestSpecBuilder() .setBaseUri(baseURISolr) .setPort(solrPort) .setBasePath(basePathSolrBackup) @@ -75,29 +70,36 @@ public void setup() { .addParam("numberToKeep", "2") .addParam("wt", "json") .build(); - specBackupDetails = new RequestSpecBuilder() + backupDetailsRequestSpec = new RequestSpecBuilder() .setBaseUri(baseURISolr) .setPort(solrPort) .setBasePath(basePathSolrBackup) .addParam("command", "details") .addParam("wt", "json") .build(); - specRestore = new RequestSpecBuilder() + restoreRequestSpec = new RequestSpecBuilder() .setBaseUri(baseURISolr) .setPort(solrPort) .setBasePath(basePathSolrBackup) .addParam("command", "restore") .addParam("repository", "s3") .build(); - specRestoreStatus = new RequestSpecBuilder() + restoreStatusRequestSpec = new RequestSpecBuilder() .setBaseUri(baseURISolr) .setPort(solrPort) .setBasePath(basePathSolrBackup) .addParam("command", "restorestatus") .addParam("wt", "json") .build(); - - + restoreFixedSnapshotRequestSpec = new RequestSpecBuilder() + .setBaseUri(baseURISolr) + .setPort(solrPort) + .setBasePath(basePathSolrBackup) + .addParam("command", "restore") + .addParam("repository", "s3") + .addParam("location", "bucket") + .addParam("name", "my-alfresco-backup-20251006") + .build(); // wait for solr to track try { sleep(30000); @@ -106,12 +108,43 @@ public void setup() { } } + @Test + @Order(3) + void testRestorePointInTimeScriptEndpoint() { + System.out.println("Restore triggered at solr-startup after health-check succeeded, will wait maximum 3 minutes"); + // Check logs for restore at startup... (Solr doesnt remember by the time we reach our test). + // Retrigger a restore from the backup + String responseBody = given() + .spec(restoreFixedSnapshotRequestSpec) + .when() + .get() + .then() + .statusCode(200) + .extract() + .body() // Extract the whole body + .asString(); // as a simple string + System.out.println("RAW RESPONSE: " + responseBody); // Print it! + long startTime = System.currentTimeMillis(); + await().atMost(180, TimeUnit.SECONDS) + .pollInterval(1, TimeUnit.SECONDS).until(() -> { + String status = given() + .spec(restoreStatusRequestSpec) + .when() + .get() + .then() + .statusCode(200) + .extract() + .path("restorestatus.status"); + System.out.println("elapsed = " + (System.currentTimeMillis() - startTime) + "with status= " + status); + return "success".equals(status); + }); + } @Test @Order(2) void testRestoreEndpoint() { given() - .spec(specRestore) + .spec(restoreRequestSpec) .when() .get() .then() @@ -121,7 +154,7 @@ void testRestoreEndpoint() { await().atMost(180, TimeUnit.SECONDS) .pollInterval(1, TimeUnit.SECONDS).until(() -> { String status = given() - .spec(specRestoreStatus) + .spec(restoreStatusRequestSpec) .when() .get() .then() @@ -137,11 +170,13 @@ void testRestoreEndpoint() { @Order(1) void testBackupWithNumberToLiveEndpoint() { validateSnapshotCount(0); - callBackupEndpoint(1); + triggerBackupAndWaitForCompletion(1, backupRequestSpec); + validateSnapshotCount(1); - callBackupEndpoint(2); + triggerBackupAndWaitForCompletion(2, backupRequestSpec); + validateSnapshotCount(2); - callBackupEndpoint(3); + triggerBackupAndWaitForCompletion(3, backupRequestSpec); validateSnapshotCount(2); } @@ -156,12 +191,9 @@ void validateSnapshotCount(long count) { .count() == count); } - private void callBackupEndpoint() { - callBackupEndpoint(0); - } - private void callBackupEndpoint(int count) { + private void triggerBackupAndWaitForCompletion(int count, RequestSpecification solrBackupRequestSpec) { String status = given() - .spec(specBackup) + .spec(solrBackupRequestSpec) .when() .get() .then() @@ -169,13 +201,13 @@ private void callBackupEndpoint(int count) { .extract() .path("status"); assertEquals("OK", status); - System.out.println("Backup triggered" + (count == 0 ? "" : count + " time ") + ", will wait maximum 9 minutes"); + System.out.println("Solr backup triggered" + (count == 0 ? "" : count + " time ") + ", will wait maximum 9 minutes"); long startTime = System.currentTimeMillis(); await().atMost(540, TimeUnit.SECONDS) .pollInterval(1, TimeUnit.SECONDS) .until(() -> { Object backup = given() - .spec(specBackupDetails) + .spec(backupDetailsRequestSpec) .when() .get() .then() diff --git a/integration-tests/src/test/resources/compose/aws/script.sh b/integration-tests/src/test/resources/compose/aws/script.sh index 9e92a35..0e5bfa9 100755 --- a/integration-tests/src/test/resources/compose/aws/script.sh +++ b/integration-tests/src/test/resources/compose/aws/script.sh @@ -1,2 +1,6 @@ #!/bin/bash -awslocal s3 mb s3://bucket \ No newline at end of file +echo "--- Creating S3 bucket for Solr backups ---" +awslocal s3 mb s3://bucket + +echo "--- Uploading Solr snapshot 'my-test-name-x' to S3 ---" +awslocal s3 sync /backups/snapshot s3://bucket/opt/alfresco-search-services/data/solr6Backup/alfresco/snapshot.my-alfresco-backup-20251006 \ No newline at end of file diff --git a/integration-tests/src/test/resources/compose/docker-compose.yml b/integration-tests/src/test/resources/compose/docker-compose.yml index dec52eb..26fe4b8 100644 --- a/integration-tests/src/test/resources/compose/docker-compose.yml +++ b/integration-tests/src/test/resources/compose/docker-compose.yml @@ -1,8 +1,8 @@ -version: '3.8' - services: alfresco: - image: ${ALFRESCO_IMAGE} + image: "${ALFRESCO_IMAGE:-local}" + networks: + - solr-backup-local-network restart: unless-stopped ports: - "8080" @@ -12,9 +12,10 @@ services: - GLOBAL_local.transform.service.enabled=false - GLOBAL_solr.sharedSecret=mysolrsecret - JAVA_XMX=2048M - postgresql: image: docker.io/xenit/postgres + networks: + - solr-backup-local-network environment: - POSTGRES_USER=alfresco - POSTGRES_PASSWORD=admin @@ -23,13 +24,17 @@ services: share: image: docker.io/xenit/alfresco-share-community:7.3 + networks: + - solr-backup-local-network ports: - "8080" solr: - image: ${DOCKER_IMAGE} + image: "${DOCKER_IMAGE:-local}" restart: unless-stopped hostname: solr + networks: + - solr-backup-local-network ports: - "8080:8080" - "8000:8000" @@ -45,10 +50,35 @@ services: - S3_ACCESS_KEY=access_key - S3_SECRET_KEY=secret_key - S3_PATH_STYLE_ACCESS_ENABLED=true - +# solr-fixed-snapshot-restore: +# image: "${DOCKER_IMAGE:-local}" +# restart: unless-stopped +# hostname: solr-fixed-snapshot-restore +# networks: +# - solr-backup-local-network +# ports: +# - "8081:8080" +# - "8001:8000" +# environment: +# - ALFRESCO_SSL=secret +# - DEBUG=true +# - JMX_ENABLED=true +# - JAVA_XMX=1024M +# - ALFRESCO_SECRET=mysolrsecret +# - S3_ENDPOINT=http://localstack:4566 +# - S3_REGION=us-east-1 +# - S3_BUCKET_NAME=bucket +# - S3_ACCESS_KEY=access_key +# - S3_SECRET_KEY=secret_key +# - S3_PATH_STYLE_ACCESS_ENABLED=true +# - RESTORE_FROM_BACKUP=true +# - RESTORE_BACKUP_NAME=my-alfresco-backup-20251006 +# - RESTORE_BACKUP_PATH=bucket localstack: container_name: localstack image: localstack/localstack:2.3.2 + networks: + - solr-backup-local-network ports: - "4566:4566" environment: @@ -58,5 +88,7 @@ services: - AWS_DEFAULT_REGION=us-east-1 volumes: - ./aws:/etc/localstack/init/ready.d - - + - ./solr-snapshot:/backups +networks: + solr-backup-local-network: + driver: bridge \ No newline at end of file diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fdt b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fdt new file mode 100644 index 0000000..726e082 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fdt differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fdx b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fdx new file mode 100644 index 0000000..7a6734c Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fdx differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fnm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fnm new file mode 100644 index 0000000..95d1330 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.fnm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.nvd b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.nvd new file mode 100644 index 0000000..fb20469 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.nvd differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.nvm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.nvm new file mode 100644 index 0000000..36039f4 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.nvm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.si b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.si new file mode 100644 index 0000000..643a7bd Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g.si differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.doc b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.doc new file mode 100644 index 0000000..094e6d4 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.doc differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.pos b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.pos new file mode 100644 index 0000000..f16b1bc Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.pos differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.tim b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.tim new file mode 100644 index 0000000..28c91df Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.tim differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.tip b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.tip new file mode 100644 index 0000000..f6d8f49 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene50_0.tip differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene54_0.dvd b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene54_0.dvd new file mode 100644 index 0000000..4887018 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene54_0.dvd differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene54_0.dvm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene54_0.dvm new file mode 100644 index 0000000..ee1215c Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_g_Lucene54_0.dvm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fdt b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fdt new file mode 100644 index 0000000..2af1b4a Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fdt differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fdx b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fdx new file mode 100644 index 0000000..596abc5 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fdx differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fnm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fnm new file mode 100644 index 0000000..ade43e3 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.fnm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.nvd b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.nvd new file mode 100644 index 0000000..a5ab1ea Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.nvd differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.nvm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.nvm new file mode 100644 index 0000000..6b6a1f4 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.nvm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.si b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.si new file mode 100644 index 0000000..ece62fc Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i.si differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.doc b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.doc new file mode 100644 index 0000000..17252fc Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.doc differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.pos b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.pos new file mode 100644 index 0000000..5633a42 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.pos differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.tim b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.tim new file mode 100644 index 0000000..4d92e6a Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.tim differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.tip b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.tip new file mode 100644 index 0000000..121dde1 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene50_0.tip differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene54_0.dvd b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene54_0.dvd new file mode 100644 index 0000000..08b2d3d Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene54_0.dvd differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene54_0.dvm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene54_0.dvm new file mode 100644 index 0000000..68a498c Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_i_Lucene54_0.dvm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fdt b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fdt new file mode 100644 index 0000000..2b0c2a5 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fdt differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fdx b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fdx new file mode 100644 index 0000000..c3698d1 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fdx differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fnm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fnm new file mode 100644 index 0000000..f3c899d Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.fnm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.nvd b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.nvd new file mode 100644 index 0000000..4f21d29 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.nvd differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.nvm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.nvm new file mode 100644 index 0000000..f889841 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.nvm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.si b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.si new file mode 100644 index 0000000..9eadad5 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n.si differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.doc b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.doc new file mode 100644 index 0000000..42a8ef5 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.doc differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.pos b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.pos new file mode 100644 index 0000000..80876e4 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.pos differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.tim b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.tim new file mode 100644 index 0000000..953becf Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.tim differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.tip b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.tip new file mode 100644 index 0000000..517764a Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene50_0.tip differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene54_0.dvd b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene54_0.dvd new file mode 100644 index 0000000..0688ec0 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene54_0.dvd differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene54_0.dvm b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene54_0.dvm new file mode 100644 index 0000000..39a6ac3 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/_n_Lucene54_0.dvm differ diff --git a/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/segments_5 b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/segments_5 new file mode 100644 index 0000000..72e7769 Binary files /dev/null and b/integration-tests/src/test/resources/compose/solr-snapshot/snapshot/segments_5 differ